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 Nov 27, 2023
1 parent 57cea9c commit a9d093f
Show file tree
Hide file tree
Showing 3 changed files with 136 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 \
vc4-kms-dsi-lt070me05000.dtbo \
vc4-kms-dsi-lt070me05000-v2.dtbo \
vc4-kms-dsi-waveshare-panel.dtbo \
Expand Down
29 changes: 29 additions & 0 deletions arch/arm/boot/dts/overlays/README
Original file line number Diff line number Diff line change
Expand Up @@ -4712,6 +4712,35 @@ Params: clock-frequency Display clock frequency (Hz)
rotate Display rotation {0,90,180,270} (default 0)


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


Name: vc4-kms-dpi-hyperpixel2r
Info: Enable the KMS drivers for the Pimoroni HyperPixel2 Round DPI display.
Requires vc4-kms-v3d to be loaded.
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 a9d093f

Please sign in to comment.