mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 22:44:27 -05:00 
			
		
		
		
	The patches were generated from the RPi repo with the following command: git format-patch v6.6.34..rpi-6.1.y Some patches needed rebasing and, as usual, the applied and reverted, wireless drivers, Github workflows, READMEs and defconfigs patches were removed. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
		
			
				
	
	
		
			178 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			178 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 50219853bd209f6a4d2dc508ab6d583b476ca02d Mon Sep 17 00:00:00 2001
 | 
						|
From: Timon Skerutsch <kernel@diodes-delight.com>
 | 
						|
Date: Mon, 13 Nov 2023 22:52:35 +0100
 | 
						|
Subject: [PATCH 0759/1085] overlays: example overlay for using panel-dsi on
 | 
						|
 RPi
 | 
						|
 | 
						|
Analog to the generic panel-dpi overlay to use panel-dsi with dtparam
 | 
						|
to not require a panel specific overlay for simple use cases that
 | 
						|
do not require setting more niche DSI modes.
 | 
						|
 | 
						|
Signed-off-by: Timon Skerutsch <kernel@diodes-delight.com>
 | 
						|
---
 | 
						|
 arch/arm/boot/dts/overlays/Makefile           |   1 +
 | 
						|
 arch/arm/boot/dts/overlays/README             |  31 +++++
 | 
						|
 .../overlays/vc4-kms-dsi-generic-overlay.dts  | 106 ++++++++++++++++++
 | 
						|
 3 files changed, 138 insertions(+)
 | 
						|
 create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-dsi-generic-overlay.dts
 | 
						|
 | 
						|
--- a/arch/arm/boot/dts/overlays/Makefile
 | 
						|
+++ b/arch/arm/boot/dts/overlays/Makefile
 | 
						|
@@ -293,6 +293,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
 | 
						|
 	vc4-kms-dpi-hyperpixel4sq.dtbo \
 | 
						|
 	vc4-kms-dpi-panel.dtbo \
 | 
						|
 	vc4-kms-dsi-7inch.dtbo \
 | 
						|
+	vc4-kms-dsi-generic.dtbo \
 | 
						|
 	vc4-kms-dsi-lt070me05000.dtbo \
 | 
						|
 	vc4-kms-dsi-lt070me05000-v2.dtbo \
 | 
						|
 	vc4-kms-dsi-waveshare-panel.dtbo \
 | 
						|
--- a/arch/arm/boot/dts/overlays/README
 | 
						|
+++ b/arch/arm/boot/dts/overlays/README
 | 
						|
@@ -4785,6 +4785,37 @@ Params: sizex                   Touchscr
 | 
						|
                                 the default DSI1 and i2c_csi_dsi).
 | 
						|
 
 | 
						|
 
 | 
						|
+Name:   vc4-kms-dsi-generic
 | 
						|
+Info:   Enable a generic DSI display under KMS.
 | 
						|
+        Default timings are for a 840x480 RGB888 panel.
 | 
						|
+        Requires vc4-kms-v3d to be loaded.
 | 
						|
+Load:   dtoverlay=vc4-kms-dsi-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
 | 
						|
+        width-mm                Define the screen width in mm
 | 
						|
+        height-mm               Define the screen height in mm
 | 
						|
+        rgb565                  Change to RGB565 output
 | 
						|
+        rgb666                  Change to RGB666 output
 | 
						|
+        rgb666p                 Change to RGB666 output with pixel packing
 | 
						|
+        rgb888                  Change to RGB888 output, this is the default
 | 
						|
+        one-lane                Use one DSI lane for data transmission
 | 
						|
+                                This is the default
 | 
						|
+        two-lane                Use two DSI lanes for data transmission
 | 
						|
+        three-lane              Use three DSI lanes for data transmission
 | 
						|
+                                Only supported on Pi5 and CM
 | 
						|
+        four-lane               Use four DSI lanes for data transmission
 | 
						|
+                                Only supported on Pi5 and CM
 | 
						|
+        dsi0                    Switch DSI port to DSI0
 | 
						|
+                                Only supported on Pi5 and CM
 | 
						|
+
 | 
						|
+
 | 
						|
 Name:   vc4-kms-dsi-lt070me05000
 | 
						|
 Info:   Enable a JDI LT070ME05000 DSI display on DSI1.
 | 
						|
         Note that this is a 4 lane DSI device, so it will only work on a Compute
 | 
						|
--- /dev/null
 | 
						|
+++ b/arch/arm/boot/dts/overlays/vc4-kms-dsi-generic-overlay.dts
 | 
						|
@@ -0,0 +1,106 @@
 | 
						|
+/dts-v1/;
 | 
						|
+/plugin/;
 | 
						|
+
 | 
						|
+/ {
 | 
						|
+	compatible = "brcm,bcm2835";
 | 
						|
+
 | 
						|
+	dsi_frag: fragment@0 {
 | 
						|
+		target = <&dsi1>;
 | 
						|
+		__overlay__{
 | 
						|
+			status = "okay";
 | 
						|
+			#address-cells = <1>;
 | 
						|
+			#size-cells = <0>;
 | 
						|
+			port {
 | 
						|
+				dsi_out:endpoint {
 | 
						|
+					remote-endpoint = <&panel_dsi_port>;
 | 
						|
+				};
 | 
						|
+			};
 | 
						|
+			panel: panel-dsi-generic@0 {
 | 
						|
+				// See panel-dsi.yaml binding
 | 
						|
+				// Using dummy name for panel model
 | 
						|
+				compatible = "Generic,panel-dsi","panel-dsi";
 | 
						|
+				reg = <0>;
 | 
						|
+				power-supply = <0>;
 | 
						|
+				backlight = <0>;
 | 
						|
+				dsi-color-format = "RGB888";
 | 
						|
+				mode = "MODE_VIDEO";
 | 
						|
+				width-mm = <0>;
 | 
						|
+				height-mm = <0>;
 | 
						|
+
 | 
						|
+				port {
 | 
						|
+					panel_dsi_port: endpoint {
 | 
						|
+						data-lanes = <1>;
 | 
						|
+						remote-endpoint = <&dsi_out>;
 | 
						|
+					};
 | 
						|
+				};
 | 
						|
+
 | 
						|
+				timing: panel-timing {
 | 
						|
+					clock-frequency = <30000000>;
 | 
						|
+					hactive = <840>;
 | 
						|
+					vactive = <480>;
 | 
						|
+					hback-porch = <44>;
 | 
						|
+					hfront-porch = <46>;
 | 
						|
+					hsync-len = <2>;
 | 
						|
+					vback-porch = <18>;
 | 
						|
+					vfront-porch = <16>;
 | 
						|
+					vsync-len = <2>;
 | 
						|
+				};
 | 
						|
+			};
 | 
						|
+		};
 | 
						|
+	};
 | 
						|
+
 | 
						|
+	fragment@1 {
 | 
						|
+		target = <&panel_dsi_port>;
 | 
						|
+		__dormant__ {
 | 
						|
+			data-lanes = <1>;
 | 
						|
+		};
 | 
						|
+	};
 | 
						|
+
 | 
						|
+	fragment@2 {
 | 
						|
+		target = <&panel_dsi_port>;
 | 
						|
+		__dormant__ {
 | 
						|
+			data-lanes = <1 2>;
 | 
						|
+		};
 | 
						|
+	};
 | 
						|
+
 | 
						|
+	fragment@3 {
 | 
						|
+		target = <&panel_dsi_port>;
 | 
						|
+		__dormant__ {
 | 
						|
+			data-lanes = <1 2 3>;
 | 
						|
+		};
 | 
						|
+	};
 | 
						|
+
 | 
						|
+	fragment@4 {
 | 
						|
+		target = <&panel_dsi_port>;
 | 
						|
+		__dormant__ {
 | 
						|
+			data-lanes = <1 2 3 4>;
 | 
						|
+		};
 | 
						|
+	};
 | 
						|
+
 | 
						|
+	__overrides__ {
 | 
						|
+		dsi0 = <&dsi_frag>, "target:0=",<&dsi0>;
 | 
						|
+
 | 
						|
+		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";
 | 
						|
+
 | 
						|
+		width-mm = <&panel>, "width-mm:0";
 | 
						|
+		height-mm = <&panel>, "height-mm:0";
 | 
						|
+
 | 
						|
+		rgb565 = <&panel>, "dsi-color-format=RGB565";
 | 
						|
+		rgb666p = <&panel>, "dsi-color-format=RGB666_PACKED";
 | 
						|
+		rgb666 = <&panel>, "dsi-color-format=RGB666";
 | 
						|
+		rgb888 = <&panel>, "dsi-color-format=RGB888";
 | 
						|
+		one-lane = <0>,"+1";
 | 
						|
+		two-lane = <0>,"+2";
 | 
						|
+		three-lane = <0>,"+3";
 | 
						|
+		four-lane = <0>,"+4";
 | 
						|
+	};
 | 
						|
+
 | 
						|
+};
 |