Skip to content
Draft
2 changes: 2 additions & 0 deletions arch/arm/boot/dts/overlays/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,8 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
vc4-kms-dpi-hyperpixel4sq.dtbo \
vc4-kms-dpi-panel.dtbo \
vc4-kms-dsi-7inch.dtbo \
vc4-kms-dsi-edatec-panel-070c.dtbo \
vc4-kms-dsi-edatec-panel-101c.dtbo \
vc4-kms-dsi-generic.dtbo \
vc4-kms-dsi-ili79600-10-1inch.dtbo \
vc4-kms-dsi-ili9881-5inch.dtbo \
Expand Down
30 changes: 30 additions & 0 deletions arch/arm/boot/dts/overlays/README
Original file line number Diff line number Diff line change
Expand Up @@ -5791,6 +5791,36 @@ Params: sizex Touchscreen size x (default 800)
the default DSI1 and i2c_csi_dsi).


Name: vc4-kms-dsi-edatec-panel-070c
Info: Enable the edatec DSI 7" screen.
support ed-dispr-070c.
support ed-dispr5-070c.
support ed-dispr4-070c.
Load: dtoverlay=vc4-kms-dsi-edatec-panel-070c,<param>=<val>
Params: i2c1 Use i2c1
interrupt GPIO pin for interrupt signal(default 2)
cm0 the default DSI1 and i2c_csi_dsi
pi4 the default DSI1 and i2c_csi_dsi
cm4 the default DSI1 and i2c_csi_dsi
pi5 the default DSI1 and i2c_csi_dsi
cm5 the default DSI0 and i2c_csi_dsi0


Name: vc4-kms-dsi-edatec-panel-101c
Info: Enable the edatec DSI 10" screen.
support ed-dispr-101c.
support ed-dispr5-101c.
support ed-dispr4-101c.
Load: dtoverlay=vc4-kms-dsi-edatec-panel-101c,<param>=<val>
Params: rotation Display rotation {0,90,180,270} (default 0)
interrupt GPIO pin for interrupt signal(default 2)
cm0 the default DSI1 and i2c_csi_dsi
pi4 the default DSI1 and i2c_csi_dsi
cm4 the default DSI1 and i2c_csi_dsi
pi5 the default DSI1 and i2c_csi_dsi
cm5 the default DSI0 and i2c_csi_dsi0


Name: vc4-kms-dsi-generic
Info: Enable a generic DSI display under KMS.
Default timings are for a 840x480 RGB888 panel.
Expand Down
124 changes: 124 additions & 0 deletions arch/arm/boot/dts/overlays/vc4-kms-dsi-edatec-panel-070c-overlay.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
/dts-v1/;
/plugin/;

/ {
compatible = "brcm,bcm2835";

i2c_frag: fragment@0 {
target = <&i2c_csi_dsi>;
__overlay__ {
#gpio-cells = <2>;
#address-cells = <1>;
#size-cells = <0>;
status = "okay";

reg_display: reg_display@27 {
reg = <0x27>;
compatible = "edatec,disp-regulator";

gpio-controller;
#gpio-cells = <2>;
};

gt911: gt911@14 {
compatible = "goodix,gt911";
reg = <0x14>;
pinctrl-names = "default";
pinctrl-0 = <&gt911_pins>;

reset-gpios = <&reg_display 3 0>;
interrupt-parent = <&gpio>;
interrupts = <2 2>;
irq-gpios = <&gpio 2 0>;
};
};
};

fragment@1 {
target = <&dsi1>;
__overlay__ {
status = "okay";
port {
dsi_out: endpoint {
remote-endpoint = <&panel_in>;
};
};

panel: panel@0 {
reg = <0>;
compatible = "rzw,t70p383rk", "panel-dsi";
backlight = <&reg_display>;

width-mm = <154>;
height-mm = <86>;
dsi-color-format = "RGB888";
mode = "MODE_VIDEO","MODE_VIDEO_SYNC_PULSE";

timing: panel-timing {
clock-frequency = <41000000>;
hactive = <1024>;
hfront-porch = <40>;
hsync-len = <10>;
hback-porch = <40>;
vactive = <600>;
vfront-porch = <4>;
vsync-len = <2>;
vback-porch = <4>;
};

port {
panel_in: endpoint {
data-lanes = <1 2>;
remote-endpoint = <&dsi_out>;
};
};
};
};
};

fragment@2 {
target = <&i2c0if>;
__overlay__ {
status = "okay";
};
};

fragment@3 {
target = <&i2c0mux>;
__overlay__ {
status = "okay";
};
};

fragment@4 {
target = <&i2c1>;
__dormant__ {
status = "okay";
};
};

fragment@5 {
target = <&gpio>;
__overlay__ {
gt911_pins: gt911_pins {
brcm,pins = <2>;
brcm,function = <0>;
brcm,pull = <2>;
};
};
};

__overrides__ {
i2c1 = <&i2c_frag>, "target:0=",<&i2c1>,
<0>,"-2-3+4";
interrupt = <&gt911_pins>,"brcm,pins:0",
<&gt911>,"interrupts:0",
<&gt911>,"irq-gpios:4";

pi4 = <&i2c_frag>, "target:0=",<&i2c_csi_dsi>;
cm4 = <&i2c_frag>, "target:0=",<&i2c_csi_dsi>;
pi5 = <&i2c_frag>, "target:0=",<&i2c_csi_dsi>;
cm5 = <&i2c_frag>, "target:0=",<&i2c_csi_dsi0>;
cm0 = <&i2c_frag>, "target:0=",<&i2c_csi_dsi>;
};
};
134 changes: 134 additions & 0 deletions arch/arm/boot/dts/overlays/vc4-kms-dsi-edatec-panel-101c-overlay.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
/dts-v1/;
/plugin/;

#include <dt-bindings/gpio/gpio.h>

/ {
compatible = "brcm,bcm2835";

fragment@0 {
target-path = "/";
__overlay__ {
vdd_lcd: fixedregulator_lcd {
compatible = "regulator-fixed";
regulator-name = "vdd_lcd";

gpios = <&reg_display 4 0>;
startup-delay-us = <5000>;
regulator-boot-on;
enable-active-high;
};
};
};

fragment@1 {
target = <&dsi1>;
__overlay__{
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
port {
dsi_out_port:endpoint {
remote-endpoint = <&panel_dsi_port>;
};
};

ili9881c:ili9881c@0 {
compatible = "rzw,t101p136cq-rpi4";
status = "okay";
reg = <0>;

reset-gpios = <&reg_display 2 GPIO_ACTIVE_LOW>;
backlight = <&reg_display>;
power-supply = <&vdd_lcd>;
rotation = <270>;

port {
panel_dsi_port: endpoint {
remote-endpoint = <&dsi_out_port>;
};
};
};
};
};

fragment@2 {
target = <&i2c0if>;
__overlay__ {
status = "okay";
};
};

fragment@3 {
target = <&i2c0mux>;
__overlay__ {
status = "okay";
};
};

fragment@4 {
target = <&gpio>;
__overlay__ {
gt928_pins: gt928_pins {
brcm,pins = <16>;
brcm,function = <0>;
brcm,pull = <2>;
};
};
};

i2c_frag: fragment@5 {
target = <&i2c_csi_dsi>;
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";

reg_display: reg_display@27 {
compatible = "edatec,disp-regulator";
reg = <0x27>;
gpio-controller;
#gpio-cells = <2>;
};

gt928:gt928@14 {
compatible = "goodix,gt928";
reg = <0x14>;
pinctrl-names = "default";
pinctrl-0 = <&gt928_pins>;

reset-gpios = <&reg_display 3 0>;
interrupt-parent = <&gpio>;
interrupts = <16 2>;
irq-gpios = <&gpio 16 0>;
};
};
};

fragment@6 {
target = <&ili9881c>;
__dormant__ {
compatible = "rzw,t101p136cq-rpi4-lite";
};
};

fragment@7 {
target = <&ili9881c>;
__dormant__ {
compatible = "rzw,t101p136cq-rpi5";
};
};

__overrides__ {
interrupt = <&gt928_pins>,"brcm,pins:0",
<&gt928>,"interrupts:0",
<&gt928>,"irq-gpios:4";
rotation = <&ili9881c>,"rotation:0";

pi4 = <&i2c_frag>, "target:0=",<&i2c_csi_dsi>,<0>, "+6";
cm4 = <&i2c_frag>, "target:0=",<&i2c_csi_dsi>;
pi5 = <&i2c_frag>, "target:0=",<&i2c_csi_dsi>,<0>, "+7";
cm5 = <&i2c_frag>, "target:0=",<&i2c_csi_dsi0>,<0>, "+7";
cm0 = <&i2c_frag>, "target:0=",<&i2c_csi_dsi>,<0>, "+6";
};
};
Loading
Loading