mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-27 17:18:59 +00:00
20ea6adbf1
Build system: x86_64 Build-tested: bcm2708, bcm2709, bcm2710, bcm2711 Run-tested: bcm2708/RPiB+, bcm2709/RPi3B, bcm2710/RPi3B, bcm2711/RPi4B Signed-off-by: Marty Jones <mj8263788@gmail.com> Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
159 lines
5.0 KiB
Diff
159 lines
5.0 KiB
Diff
From 208d270a7b613e5593390d38a9fba8bd248c5928 Mon Sep 17 00:00:00 2001
|
|
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
|
Date: Thu, 2 Dec 2021 18:06:37 +0000
|
|
Subject: [PATCH] dtoverlays: Add a generic DPI panel overlay for KMS
|
|
|
|
Uses the "panel-dpi" compatible to set panel timings from
|
|
DT.
|
|
|
|
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
|
---
|
|
arch/arm/boot/dts/overlays/Makefile | 1 +
|
|
arch/arm/boot/dts/overlays/README | 28 ++++++
|
|
.../overlays/vc4-kms-dpi-generic-overlay.dts | 92 +++++++++++++++++++
|
|
3 files changed, 121 insertions(+)
|
|
create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-dpi-generic-overlay.dts
|
|
|
|
--- a/arch/arm/boot/dts/overlays/Makefile
|
|
+++ b/arch/arm/boot/dts/overlays/Makefile
|
|
@@ -232,6 +232,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
|
|
vc4-fkms-v3d.dtbo \
|
|
vc4-fkms-v3d-pi4.dtbo \
|
|
vc4-kms-dpi-at056tn53v1.dtbo \
|
|
+ vc4-kms-dpi-generic.dtbo \
|
|
vc4-kms-dsi-7inch.dtbo \
|
|
vc4-kms-dsi-lt070me05000.dtbo \
|
|
vc4-kms-dsi-lt070me05000-v2.dtbo \
|
|
--- a/arch/arm/boot/dts/overlays/README
|
|
+++ b/arch/arm/boot/dts/overlays/README
|
|
@@ -3563,6 +3563,34 @@ Load: dtoverlay=vc4-kms-dpi-at056tn53v
|
|
Params: <None>
|
|
|
|
|
|
+Name: vc4-kms-dpi-generic
|
|
+Info: Enable a generic DPI display under KMS. Default timings are for the
|
|
+ Adafruit Kippah with 800x480 panel and RGB666 (GPIOs 0-21)
|
|
+ Requires vc4-kms-v3d to be loaded.
|
|
+Load: dtoverlay=vc4-kms-dpi-generic,<param>=<val>
|
|
+Params: clock-frequency Display clock frequency (Hz)
|
|
+ hactive Horizontal active pixels
|
|
+ hfp Horizontal front porch
|
|
+ hsync Horizontal sync pulse width
|
|
+ hbp Horizontal back porch
|
|
+ vactive Vertical active lines
|
|
+ vfp Vertical front porch
|
|
+ vsync Vertical sync pulse width
|
|
+ vbp Vertical back porch
|
|
+ hsync-invert Horizontal sync active low
|
|
+ vsync-invert Vertical sync active low
|
|
+ de-invert Data Enable active low
|
|
+ pixclk-invert Negative edge pixel clock
|
|
+ width-mm Define the screen width in mm
|
|
+ height-mm Define the screen height in mm
|
|
+ rgb565 Change to RGB565 output on GPIOs 0-19
|
|
+ rgb666-padhi Change to RGB666 output on GPIOs 0-9, 12-17, and
|
|
+ 20-25
|
|
+ rgb888 Change to RGB888 output on GPIOs 0-27
|
|
+ bus-format Override the bus format for a MEDIA_BUS_FMT_*
|
|
+ value. NB also overridden by rgbXXX overrides.
|
|
+
|
|
+
|
|
Name: vc4-kms-dsi-7inch
|
|
Info: Enable the Raspberry Pi DSI 7" screen.
|
|
Includes the edt-ft5406 for the touchscreen element.
|
|
--- /dev/null
|
|
+++ b/arch/arm/boot/dts/overlays/vc4-kms-dpi-generic-overlay.dts
|
|
@@ -0,0 +1,92 @@
|
|
+/*
|
|
+ * vc4-kms-dpi-at056tn53v1-overlay.dts
|
|
+ */
|
|
+
|
|
+/dts-v1/;
|
|
+/plugin/;
|
|
+
|
|
+#include <dt-bindings/gpio/gpio.h>
|
|
+#include <dt-bindings/pinctrl/bcm2835.h>
|
|
+
|
|
+/ {
|
|
+ compatible = "brcm,bcm2835";
|
|
+
|
|
+ fragment@0 {
|
|
+ target-path = "/";
|
|
+ __overlay__ {
|
|
+ panel: panel {
|
|
+ compatible = "panel-dpi";
|
|
+
|
|
+ width-mm = <154>;
|
|
+ height-mm = <83>;
|
|
+ bus-format = <0x1009>;
|
|
+
|
|
+ timing: panel-timing {
|
|
+ clock-frequency = <29500000>;
|
|
+ hactive = <800>;
|
|
+ hfront-porch = <24>;
|
|
+ hsync-len = <72>;
|
|
+ hback-porch = <96>;
|
|
+ hsync-active = <0>;
|
|
+ vactive = <480>;
|
|
+ vfront-porch = <3>;
|
|
+ vsync-len = <10>;
|
|
+ vback-porch = <7>;
|
|
+ vsync-active = <0>;
|
|
+
|
|
+ de-active = <1>;
|
|
+ pixelclk-active = <1>;
|
|
+ };
|
|
+
|
|
+ port {
|
|
+ panel_in: endpoint {
|
|
+ remote-endpoint = <&dpi_out>;
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+
|
|
+ fragment@1 {
|
|
+ target = <&dpi>;
|
|
+ dpi_node: __overlay__ {
|
|
+ status = "okay";
|
|
+
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&dpi_18bit_gpio0>;
|
|
+
|
|
+ port {
|
|
+ dpi_out: endpoint {
|
|
+ remote-endpoint = <&panel_in>;
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+
|
|
+ __overrides__ {
|
|
+ clock-frequency = <&timing>, "clock-frequency:0";
|
|
+ hactive = <&timing>, "hactive:0";
|
|
+ hfp = <&timing>, "hfront-porch:0";
|
|
+ hsync = <&timing>, "hsync-len:0";
|
|
+ hbp = <&timing>, "hback-porch:0";
|
|
+ vactive = <&timing>, "vactive:0";
|
|
+ vfp = <&timing>, "vfront-porch:0";
|
|
+ vsync = <&timing>, "vsync-len:0";
|
|
+ vbp = <&timing>, "vback-porch:0";
|
|
+ hsync-invert = <&timing>, "hsync-active:0=0";
|
|
+ vsync-invert = <&timing>, "vsync-active:0=0";
|
|
+ de-invert = <&timing>, "de-active:0=0";
|
|
+ pixclk-invert = <&timing>, "pixelclk-active:0=0";
|
|
+
|
|
+ width-mm = <&panel>, "width-mm:0";
|
|
+ height-mm = <&panel>, "height-mm:0";
|
|
+
|
|
+ rgb565 = <&panel>, "bus-format:0=0x1017",
|
|
+ <&dpi_node>, "pinctrl-0:0=",<&dpi_16bit_gpio0>;
|
|
+ rgb666-padhi = <&panel>, "bus-format:0=0x1015",
|
|
+ <&dpi_node>, "pinctrl-0:0=",<&dpi_18bit_cpadhi_gpio0>;
|
|
+ rgb888 = <&panel>, "bus-format:0=0x100a",
|
|
+ <&dpi_node>, "pinctrl-0:0=",<&dpi_gpio0>;
|
|
+ bus-format = <&panel>, "bus-format:0";
|
|
+ };
|
|
+};
|