Skip to content

Commit b81f6e2

Browse files
committed
eadtec Open Source‌ HMI panel driver
1 parent 79dc190 commit b81f6e2

10 files changed

Lines changed: 1725 additions & 3 deletions

File tree

arch/arm/boot/dts/overlays/Makefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,9 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
370370
wifimac.dtbo \
371371
wittypi.dtbo \
372372
wm8960-soundcard.dtbo \
373-
ws2812-pio.dtbo
373+
ws2812-pio.dtbo \
374+
vc4-kms-dsi-edatec-panel-070c.dtbo \
375+
vc4-kms-dsi-edatec-panel-101c.dtbo
374376

375377
targets += dtbs dtbs_install
376378
targets += $(dtbo-y)
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
/dts-v1/;
2+
/plugin/;
3+
4+
/ {
5+
compatible = "brcm,bcm2835";
6+
7+
i2c_frag: fragment@0 {
8+
target = <&i2c_csi_dsi>;
9+
__overlay__ {
10+
#gpio-cells = <2>;
11+
#address-cells = <1>;
12+
#size-cells = <0>;
13+
status = "okay";
14+
15+
reg_display: reg_display@27 {
16+
reg = <0x27>;
17+
compatible = "rzw,t70p383rk-v2";
18+
19+
gpio-controller;
20+
#gpio-cells = <2>;
21+
22+
port {
23+
panel_in: endpoint {
24+
remote-endpoint = <&dsi_out>;
25+
};
26+
};
27+
};
28+
29+
gt911: gt911@14 {
30+
compatible = "goodix,gt911";
31+
reg = <0x14>;
32+
33+
reset-gpios = <&reg_display 3 0>;
34+
interrupt-parent = <&gpio>;
35+
interrupts = <2 2>;
36+
irq-gpios = <&gpio 2 0>;
37+
};
38+
};
39+
};
40+
41+
fragment@1 {
42+
target = <&dsi1>;
43+
__overlay__ {
44+
status = "okay";
45+
port {
46+
dsi_out: endpoint {
47+
remote-endpoint = <&panel_in>;
48+
};
49+
};
50+
};
51+
};
52+
53+
fragment@2 {
54+
target = <&i2c0if>;
55+
__overlay__ {
56+
status = "okay";
57+
};
58+
};
59+
60+
fragment@3 {
61+
target = <&i2c0mux>;
62+
__overlay__ {
63+
status = "okay";
64+
};
65+
};
66+
67+
fragment@4 {
68+
target = <&i2c_arm>;
69+
__dormant__ {
70+
status = "okay";
71+
};
72+
};
73+
74+
fragment@5 {
75+
target = <&gpio>;
76+
__overlay__ {
77+
gt911_pins: gt911_pins {
78+
brcm,pins = <2>;
79+
brcm,function = <0>;
80+
brcm,pull = <2>;
81+
};
82+
};
83+
};
84+
85+
fragment@6 {
86+
target = <&reg_display>;
87+
__dormant__ {
88+
compatible = "rzw,t70p383rk-lite";
89+
};
90+
};
91+
92+
__overrides__ {
93+
i2c1 = <&i2c_frag>, "target:0=",<&i2c1>,
94+
<0>,"-2-3+4";
95+
interrupt = <&gt911_pins>,"brcm,pins:0",
96+
<&gt911>,"interrupts:0",
97+
<&gt911>,"irq-gpios:4";
98+
99+
pi4 = <&i2c_frag>, "target:0=",<&i2c_csi_dsi>;
100+
cm4 = <&i2c_frag>, "target:0=",<&i2c_csi_dsi>;
101+
pi5 = <&i2c_frag>, "target:0=",<&i2c_csi_dsi>;
102+
cm5 = <&i2c_frag>, "target:0=",<&i2c_csi_dsi0>;
103+
cm0 = <&i2c_frag>, "target:0=",<&i2c_csi_dsi>,<0>, "+6";
104+
};
105+
};
Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
/dts-v1/;
2+
/plugin/;
3+
4+
/ {
5+
compatible = "brcm,bcm2835";
6+
7+
fragment@0 {
8+
target-path = "/";
9+
__overlay__ {
10+
vdd_lcd: fixedregulator_lcd {
11+
compatible = "regulator-fixed";
12+
regulator-name = "vdd_lcd";
13+
regulator-max-microvolt = <5000000>;
14+
regulator-min-microvolt = <5000000>;
15+
16+
gpios = <&reg_display 4 0>;
17+
regulator-boot-on;
18+
enable-active-high;
19+
};
20+
};
21+
};
22+
23+
fragment@1 {
24+
target = <&dsi1>;
25+
__overlay__{
26+
status = "okay";
27+
#address-cells = <1>;
28+
#size-cells = <0>;
29+
port {
30+
dsi_out_port:endpoint {
31+
remote-endpoint = <&panel_dsi_port>;
32+
};
33+
};
34+
35+
ili9881c:ili9881c@0 {
36+
compatible = "rzw,t101p136cq-rpi4";
37+
status = "okay";
38+
reg = <0>;
39+
40+
reset-gpios = <&reg_display 2 0>;
41+
backlight = <&reg_display>;
42+
power-supply = <&vdd_lcd>;
43+
rotation = <270>;
44+
45+
port {
46+
panel_dsi_port: endpoint {
47+
remote-endpoint = <&dsi_out_port>;
48+
};
49+
};
50+
};
51+
};
52+
};
53+
54+
fragment@2 {
55+
target = <&i2c0if>;
56+
__overlay__ {
57+
status = "okay";
58+
};
59+
};
60+
61+
fragment@3 {
62+
target = <&i2c0mux>;
63+
__overlay__ {
64+
status = "okay";
65+
};
66+
};
67+
68+
fragment@4 {
69+
target = <&gpio>;
70+
__overlay__ {
71+
gt928_pins: gt928_pins {
72+
brcm,pins = <16>;
73+
brcm,function = <0>;
74+
brcm,pull = <2>;
75+
};
76+
};
77+
};
78+
79+
i2c_frag: fragment@5 {
80+
target = <&i2c_csi_dsi>;
81+
__overlay__ {
82+
#address-cells = <1>;
83+
#size-cells = <0>;
84+
status = "okay";
85+
86+
reg_display: reg_display@27 {
87+
compatible = "edatec,disp-regulator";
88+
reg = <0x27>;
89+
gpio-controller;
90+
#gpio-cells = <2>;
91+
};
92+
93+
gt928:gt928@14 {
94+
compatible = "goodix,gt928";
95+
reg = <0x14>;
96+
97+
reset-gpios = <&reg_display 3 0>;
98+
interrupt-parent = <&gpio>;
99+
interrupts = <16 2>;
100+
irq-gpios = <&gpio 16 0>;
101+
};
102+
};
103+
};
104+
105+
fragment@6 {
106+
target = <&ili9881c>;
107+
__dormant__ {
108+
compatible = "rzw,t101p136cq-rpi4-lite";
109+
};
110+
};
111+
112+
fragment@7 {
113+
target = <&ili9881c>;
114+
__dormant__ {
115+
compatible = "rzw,t101p136cq-rpi5";
116+
};
117+
};
118+
119+
__overrides__ {
120+
interrupt = <&gt928_pins>,"brcm,pins:0",
121+
<&gt928>,"interrupts:0",
122+
<&gt928>,"irq-gpios:4";
123+
rotation = <&ili9881c>,"rotation:0";
124+
125+
pi4 = <&i2c_frag>, "target:0=",<&i2c_csi_dsi>,<0>, "+6";
126+
cm4 = <&i2c_frag>, "target:0=",<&i2c_csi_dsi>;
127+
pi5 = <&i2c_frag>, "target:0=",<&i2c_csi_dsi>,<0>, "+7";
128+
cm5 = <&i2c_frag>, "target:0=",<&i2c_csi_dsi0>,<0>, "+7";
129+
cm0 = <&i2c_frag>, "target:0=",<&i2c_csi_dsi>,<0>, "+6";
130+
};
131+
};

drivers/gpu/drm/panel/Kconfig

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1221,4 +1221,14 @@ config DRM_PANEL_XINPENG_XPP055C272
12211221
Say Y here if you want to enable support for the Xinpeng
12221222
XPP055C272 controller for 720x1280 LCD panels with MIPI/RGB/SPI
12231223
system interfaces.
1224+
1225+
config DRM_PANEL_EDATEC_7INCH
1226+
tristate "EDATEC 7INCH TFT LCD panel driver"
1227+
depends on OF
1228+
depends on DRM_MIPI_DSI
1229+
depends on BACKLIGHT_CLASS_DEVICE
1230+
help
1231+
Say Y here if you want to enable support for the EDATEC
1232+
7inch Touchscreens. To compile this driver as a module,
1233+
choose M here.
12241234
endmenu

drivers/gpu/drm/panel/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,3 +122,4 @@ obj-$(CONFIG_DRM_PANEL_WAVESHARE_TOUCHSCREEN) += panel-waveshare-dsi.o
122122
obj-$(CONFIG_DRM_PANEL_WAVESHARE_TOUCHSCREEN_V2) += panel-waveshare-dsi-v2.o
123123
obj-$(CONFIG_DRM_PANEL_WIDECHIPS_WS2401) += panel-widechips-ws2401.o
124124
obj-$(CONFIG_DRM_PANEL_XINPENG_XPP055C272) += panel-xinpeng-xpp055c272.o
125+
obj-$(CONFIG_DRM_PANEL_EDATEC_7INCH) += panel-edatec-dsi.o

0 commit comments

Comments
 (0)