Skip to content

Commit c7712fa

Browse files
Alessandro Pecugipelwell
authored andcommitted
dtoverlays: add overlay for Pi Vision
Add overlay for SECO Pi Vision adapter HAT, with the sn65dsi83 LVDS bridge, a 10.1-inch LVDS panel, and Atmel mxt touch controller For the pi4ioe5v6408 GPIO expander, the equivalent fxl6408 driver is used. Signed-off-by: Alessandro Pecugi <[email protected]>
1 parent 8b43ae4 commit c7712fa

File tree

3 files changed

+163
-0
lines changed

3 files changed

+163
-0
lines changed

arch/arm/boot/dts/overlays/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
222222
pitft28-capacitive.dtbo \
223223
pitft28-resistive.dtbo \
224224
pitft35-resistive.dtbo \
225+
pivision.dtbo \
225226
pps-gpio.dtbo \
226227
proto-codec.dtbo \
227228
pwm.dtbo \

arch/arm/boot/dts/overlays/README

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4058,6 +4058,13 @@ Params: speed Display SPI bus speed
40584058
touch-swapxy Touchscreen swapped x y axis
40594059

40604060

4061+
Name: pivision
4062+
Info: Overlay to enable the SECO Pi Vision 10.1 HMI hardware for Compute Module 5.
4063+
Will be loaded automatically by up-to-date firmware via EEPROM detection.
4064+
Load: dtoverlay=pivision
4065+
Params: <None>
4066+
4067+
40614068
Name: pps-gpio
40624069
Info: Configures the pps-gpio (pulse-per-second time signal via GPIO).
40634070
Load: dtoverlay=pps-gpio,<param>=<val>
Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
#include <dt-bindings/gpio/gpio.h>
2+
#include <dt-bindings/interrupt-controller/irq.h>
3+
4+
/dts-v1/;
5+
/plugin/;
6+
7+
/ {
8+
compatible = "brcm,bcm2712";
9+
10+
fragment@0 {
11+
target = <&i2c_csi_dsi0>;
12+
__overlay__ {
13+
status = "okay";
14+
pi4io: pi4io@44 {
15+
compatible = "fcs,fxl6408";
16+
reg = <0x44>;
17+
gpio-controller;
18+
#gpio-cells = <2>;
19+
status = "okay";
20+
};
21+
22+
sn65dsi83: bridge@2c {
23+
compatible = "ti,sn65dsi83";
24+
reg = <0x2c>;
25+
status = "okay";
26+
27+
ports {
28+
#address-cells = <1>;
29+
#size-cells = <0>;
30+
31+
port@0 {
32+
reg = <0>;
33+
34+
in_dsi: endpoint {
35+
remote-endpoint = <&dsi_out>;
36+
data-lanes = <1 2 3 4>;
37+
};
38+
};
39+
40+
port@2 {
41+
reg = <2>;
42+
43+
lvds_out: endpoint {
44+
remote-endpoint = <&in_lvds>;
45+
};
46+
};
47+
};
48+
};
49+
50+
mxt1066td: touch@4a {
51+
compatible = "atmel,maxtouch";
52+
reg = <0x4a>;
53+
interrupt-parent = <&rp1_gpio>;
54+
interrupts = <34 IRQ_TYPE_EDGE_FALLING>;
55+
pinctrl-names = "default";
56+
pinctrl-0 = <&rp1_gpio_34>;
57+
reset-gpios = <&pi4io 1 GPIO_ACTIVE_LOW>;
58+
status = "okay";
59+
};
60+
};
61+
};
62+
63+
fragment@1 {
64+
target = <&dsi0>;
65+
__overlay__{
66+
status = "okay";
67+
port {
68+
dsi_out: endpoint {
69+
remote-endpoint = <&in_dsi>;
70+
};
71+
};
72+
};
73+
};
74+
75+
fragment@2 {
76+
target-path = "/";
77+
__overlay__ {
78+
panel: panel {
79+
compatible = "auo,g101ean02-2", "panel-lvds";
80+
width-mm = <217>;
81+
height-mm = <136>;
82+
data-mapping = "vesa-24";
83+
backlight = <&backlight>;
84+
status = "okay";
85+
86+
panel-timing {
87+
clock-frequency = <71100000>;
88+
hactive = <1280>;
89+
vactive = <800>;
90+
hfront-porch = <50>;
91+
hsync-len = <60>;
92+
hback-porch = <50>;
93+
vfront-porch = <7>;
94+
vsync-len = <9>;
95+
vback-porch = <7>;
96+
};
97+
98+
port {
99+
in_lvds: endpoint {
100+
remote-endpoint = <&lvds_out>;
101+
};
102+
};
103+
};
104+
105+
display_enable: display_enable {
106+
compatible = "regulator-fixed";
107+
regulator-name = "display_enable";
108+
regulator-always-on;
109+
enable-active-high;
110+
gpio = <&pi4io 0 GPIO_ACTIVE_HIGH>;
111+
status = "okay";
112+
};
113+
114+
backlight: backlight {
115+
compatible = "pwm-backlight";
116+
pwms = <&pwm1 0 5000000 0>;
117+
brightness-levels = <0 65535>;
118+
num-interpolated-steps = <4096>;
119+
default-brightness-level = <3000>;
120+
status = "okay";
121+
};
122+
};
123+
};
124+
125+
fragment@3 {
126+
target = <&rp1_gpio>;
127+
__overlay__ {
128+
rp1_gpio_34: rp1_gpio_34 {
129+
function = "gpio";
130+
pins = "gpio34";
131+
bias-pull-up;
132+
};
133+
rp1_gpio_35: rp1_gpio_35 {
134+
function = "pwm1";
135+
pins = "gpio35";
136+
};
137+
};
138+
};
139+
140+
fragment@4 {
141+
target = <&cam0_reg>;
142+
__overlay__ {
143+
status = "disabled";
144+
};
145+
};
146+
147+
fragment@5 {
148+
target = <&pwm1>;
149+
__overlay__ {
150+
pinctrl-names = "default";
151+
pinctrl-0 = <&rp1_gpio_35>;
152+
status = "okay";
153+
};
154+
};
155+
};

0 commit comments

Comments
 (0)