Skip to content

Commit

Permalink
overlays: example overlay for using panel-dsi on RPi
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
Timon Skerutsch committed Dec 1, 2023
1 parent 57cea9c commit 5614937
Show file tree
Hide file tree
Showing 3 changed files with 138 additions and 0 deletions.
1 change: 1 addition & 0 deletions arch/arm/boot/dts/overlays/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -294,6 +294,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 \
Expand Down
31 changes: 31 additions & 0 deletions arch/arm/boot/dts/overlays/README
Original file line number Diff line number Diff line change
Expand Up @@ -4789,6 +4789,37 @@ Params: sizex Touchscreen size x (default 800)
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
Expand Down
106 changes: 106 additions & 0 deletions arch/arm/boot/dts/overlays/vc4-kms-dsi-generic-overlay.dts
Original file line number Diff line number Diff line change
@@ -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";
};

};

0 comments on commit 5614937

Please sign in to comment.