Skip to content

Commit a6aa70c

Browse files
committed
dtoverlays: Rework vc4-kms-dpi overlays to remove duplication
Removes all the common panel, dpi, and backlight configuration from the individual vc4-kms-dpi-* files into vc4-kms-dpi.dtsi. Creates a new vc4-kms-dpi-panel-overlay.dts for preconfigured panels, with overrides to enable the different panel configurations. Signed-off-by: Dave Stevenson <[email protected]>
1 parent 54728ce commit a6aa70c

File tree

8 files changed

+253
-185
lines changed

8 files changed

+253
-185
lines changed

arch/arm/boot/dts/overlays/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,10 +234,10 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
234234
vc4-fkms-v3d-pi4.dtbo \
235235
vc4-kms-dpi-at056tn53v1.dtbo \
236236
vc4-kms-dpi-generic.dtbo \
237+
vc4-kms-dpi-panel.dtbo \
237238
vc4-kms-dsi-7inch.dtbo \
238239
vc4-kms-dsi-lt070me05000.dtbo \
239240
vc4-kms-dsi-lt070me05000-v2.dtbo \
240-
vc4-kms-kippah-7inch.dtbo \
241241
vc4-kms-v3d.dtbo \
242242
vc4-kms-v3d-pi4.dtbo \
243243
vc4-kms-vga666.dtbo \

arch/arm/boot/dts/overlays/README

Lines changed: 49 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3601,8 +3601,26 @@ Params: cma-512 CMA is 512MB (needs 1GB)
36013601
Name: vc4-kms-dpi-at056tn53v1
36023602
Info: Enable an Innolux 5.6in VGA TFT connected to DPI interface under KMS.
36033603
Requires vc4-kms-v3d to be loaded.
3604-
Load: dtoverlay=vc4-kms-dpi-at056tn53v1
3605-
Params: <None>
3604+
Load: dtoverlay=vc4-kms-dpi-at056tn53v1,<param>=<val>
3605+
Params: backlight-gpio Defines a GPIO to be used for backlight control
3606+
(default of none).
3607+
backlight-pwm Defines a PWM channel to be used for backlight
3608+
control (default of none). NB Disables audio
3609+
headphone output as that also uses PWM.
3610+
backlight-pwm-chan Choose channel on &pwm node for backlight
3611+
control.
3612+
(default 0).
3613+
backlight-pwm-gpio GPIO pin to be used for the PWM backlight. See
3614+
pwm-2chan for valid options.
3615+
(default 18 - note this can only work with
3616+
rgb666-padhi).
3617+
backlight-pwm-func Pin function of GPIO used for the PWM
3618+
backlight.
3619+
See pwm-2chan for valid options.
3620+
(default 2).
3621+
backlight-def-brightness
3622+
Set the default brightness. Normal range 1-16.
3623+
(default 16).
36063624

36073625

36083626
Name: vc4-kms-dpi-generic
@@ -3652,6 +3670,33 @@ Params: clock-frequency Display clock frequency (Hz)
36523670
(default 16).
36533671

36543672

3673+
Name: vc4-kms-dpi-panel
3674+
Info: Enable a preconfigured KMS DPI panel.
3675+
Requires vc4-kms-v3d to be loaded.
3676+
Load: dtoverlay=vc4-kms-dpi-panel,<param>=<val>
3677+
Params: at056tn53v1 Enable an Innolux 5.6in VGA TFT
3678+
kippah-7inch Enable an Adafruit Kippah with 7inch panel.
3679+
backlight-gpio Defines a GPIO to be used for backlight control
3680+
(default of none).
3681+
backlight-pwm Defines a PWM channel to be used for backlight
3682+
control (default of none). NB Disables audio
3683+
headphone output as that also uses PWM.
3684+
backlight-pwm-chan Choose channel on &pwm node for backlight
3685+
control.
3686+
(default 0).
3687+
backlight-pwm-gpio GPIO pin to be used for the PWM backlight. See
3688+
pwm-2chan for valid options.
3689+
(default 18 - note this can only work with
3690+
rgb666-padhi).
3691+
backlight-pwm-func Pin function of GPIO used for the PWM
3692+
backlight.
3693+
See pwm-2chan for valid options.
3694+
(default 2).
3695+
backlight-def-brightness
3696+
Set the default brightness. Normal range 1-16.
3697+
(default 16).
3698+
3699+
36553700
Name: vc4-kms-dsi-7inch
36563701
Info: Enable the Raspberry Pi DSI 7" screen.
36573702
Includes the edt-ft5406 for the touchscreen element.
@@ -3687,10 +3732,8 @@ Params: <None>
36873732

36883733

36893734
Name: vc4-kms-kippah-7inch
3690-
Info: Enable the Adafruit DPI Kippah with the 7" Ontat panel attached.
3691-
Requires vc4-kms-v3d to be loaded.
3692-
Load: dtoverlay=vc4-kms-kippah-7inch
3693-
Params: <None>
3735+
Info: This overlay is now deprecated - see i2c-sensor
3736+
Load: <Deprecated>
36943737

36953738

36963739
Name: vc4-kms-v3d

arch/arm/boot/dts/overlays/overlay_map.dts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,10 @@
142142
bcm2711;
143143
};
144144

145+
vc4-kms-kippah-7inch {
146+
deprecated = "use vc4-kms-dpi-panel,kippah-7inch";
147+
};
148+
145149
vc4-fkms-v3d {
146150
bcm2835;
147151
bcm2711 = "vc4-fkms-v3d-pi4";

arch/arm/boot/dts/overlays/vc4-kms-dpi-at056tn53v1-overlay.dts

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,40 +5,22 @@
55
/dts-v1/;
66
/plugin/;
77

8-
#include <dt-bindings/gpio/gpio.h>
9-
#include <dt-bindings/pinctrl/bcm2835.h>
8+
#include "vc4-kms-dpi.dtsi"
109

1110
/ {
1211
compatible = "brcm,bcm2835";
1312

1413
fragment@0 {
15-
target-path = "/";
16-
__overlay__ {
17-
panel: panel {
18-
compatible = "innolux,at056tn53v1", "simple-panel";
19-
20-
port {
21-
panel_in: endpoint {
22-
remote-endpoint = <&dpi_out>;
23-
};
24-
};
25-
};
14+
target = <&panel>;
15+
__overlay__ {
16+
compatible = "innolux,at056tn53v1", "simple-panel";
2617
};
2718
};
2819

2920
fragment@1 {
3021
target = <&dpi>;
3122
__overlay__ {
32-
status = "okay";
33-
34-
pinctrl-names = "default";
3523
pinctrl-0 = <&dpi_18bit_cpadhi_gpio0>;
36-
37-
port {
38-
dpi_out: endpoint {
39-
remote-endpoint = <&panel_in>;
40-
};
41-
};
4224
};
4325
};
4426
};

arch/arm/boot/dts/overlays/vc4-kms-dpi-generic-overlay.dts

Lines changed: 25 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -5,124 +5,43 @@
55
/dts-v1/;
66
/plugin/;
77

8-
#include <dt-bindings/gpio/gpio.h>
9-
#include <dt-bindings/pinctrl/bcm2835.h>
8+
#include "vc4-kms-dpi.dtsi"
109

1110
/ {
1211
compatible = "brcm,bcm2835";
1312

1413
fragment@0 {
15-
target-path = "/";
16-
__overlay__ {
17-
panel: panel {
18-
compatible = "panel-dpi";
19-
20-
width-mm = <154>;
21-
height-mm = <83>;
22-
bus-format = <0x1009>;
23-
24-
timing: panel-timing {
25-
clock-frequency = <29500000>;
26-
hactive = <800>;
27-
hfront-porch = <24>;
28-
hsync-len = <72>;
29-
hback-porch = <96>;
30-
hsync-active = <1>;
31-
vactive = <480>;
32-
vfront-porch = <3>;
33-
vsync-len = <10>;
34-
vback-porch = <7>;
35-
vsync-active = <1>;
36-
37-
de-active = <1>;
38-
pixelclk-active = <1>;
39-
};
40-
41-
port {
42-
panel_in: endpoint {
43-
remote-endpoint = <&dpi_out>;
44-
};
45-
};
14+
target = <&panel>;
15+
__overlay__ {
16+
compatible = "panel-dpi";
17+
18+
width-mm = <154>;
19+
height-mm = <83>;
20+
bus-format = <0x1009>;
21+
22+
timing: panel-timing {
23+
clock-frequency = <29500000>;
24+
hactive = <800>;
25+
hfront-porch = <24>;
26+
hsync-len = <72>;
27+
hback-porch = <96>;
28+
hsync-active = <1>;
29+
vactive = <480>;
30+
vfront-porch = <3>;
31+
vsync-len = <10>;
32+
vback-porch = <7>;
33+
vsync-active = <1>;
34+
35+
de-active = <1>;
36+
pixelclk-active = <1>;
4637
};
4738
};
4839
};
4940

5041
fragment@1 {
5142
target = <&dpi>;
52-
dpi_node: __overlay__ {
53-
status = "okay";
54-
55-
pinctrl-names = "default";
43+
__overlay__ {
5644
pinctrl-0 = <&dpi_18bit_gpio0>;
57-
58-
port {
59-
dpi_out: endpoint {
60-
remote-endpoint = <&panel_in>;
61-
};
62-
};
63-
};
64-
};
65-
66-
fragment@2 {
67-
target = <&panel>;
68-
__dormant__ {
69-
backlight = <&backlight>;
70-
};
71-
};
72-
73-
fragment@3 {
74-
target-path = "/";
75-
__dormant__ {
76-
backlight: backlight {
77-
compatible = "gpio-backlight";
78-
gpios = <&gpio 255 GPIO_ACTIVE_HIGH>;
79-
};
80-
};
81-
};
82-
83-
fragment@4 {
84-
target = <&panel>;
85-
__dormant__ {
86-
backlight = <&backlight_pwm>;
87-
};
88-
};
89-
90-
fragment@5 {
91-
target-path = "/";
92-
__dormant__ {
93-
backlight_pwm: backlight_pwm {
94-
compatible = "pwm-backlight";
95-
brightness-levels = <0 6 8 12 16 24 32 40 48 64 96 128 160 192 224 255>;
96-
default-brightness-level = <16>;
97-
pwms = <&pwm 0 200000>;
98-
};
99-
};
100-
};
101-
102-
fragment@6 {
103-
target = <&pwm>;
104-
__dormant__ {
105-
pinctrl-names = "default";
106-
pinctrl-0 = <&pwm_pins>;
107-
assigned-clock-rates = <1000000>;
108-
status = "okay";
109-
};
110-
};
111-
112-
fragment@7 {
113-
target = <&gpio>;
114-
__dormant__ {
115-
pwm_pins: pwm_pins {
116-
brcm,pins = <18>;
117-
brcm,function = <2>; /* Alt5 */
118-
};
119-
};
120-
};
121-
122-
fragment@8 {
123-
target = <&audio>;
124-
__dormant__ {
125-
brcm,disable-headphones;
12645
};
12746
};
12847

@@ -151,12 +70,5 @@
15170
rgb888 = <&panel>, "bus-format:0=0x100a",
15271
<&dpi_node>, "pinctrl-0:0=",<&dpi_gpio0>;
15372
bus-format = <&panel>, "bus-format:0";
154-
backlight-gpio = <0>, "+2+3",
155-
<&backlight>, "gpios:4";
156-
backlight-pwm = <0>, "+4+5+6+7+8";
157-
backlight-pwm-chan = <&backlight_pwm>, "pwms:4";
158-
backlight-pwm-gpio = <&pwm_pins>, "brcm,pins:0";
159-
backlight-pwm-func = <&pwm_pins>, "brcm,function:0";
160-
backlight-def-brightness = <&backlight_pwm>, "default-brightness-level:0";
16173
};
16274
};
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
/*
2+
* vc4-kms-dpi-at056tn53v1-overlay.dts
3+
*/
4+
5+
/dts-v1/;
6+
/plugin/;
7+
8+
#include "vc4-kms-dpi.dtsi"
9+
10+
/ {
11+
compatible = "brcm,bcm2835";
12+
13+
fragment@0 {
14+
target = <&panel>;
15+
__dormant__ {
16+
compatible = "innolux,at056tn53v1", "simple-panel";
17+
};
18+
};
19+
fragment@1 {
20+
target = <&panel>;
21+
__dormant__ {
22+
compatible = "ontat,yx700wv03", "simple-panel";
23+
};
24+
};
25+
26+
fragment@90 {
27+
target = <&dpi>;
28+
__dormant__ {
29+
pinctrl-0 = <&dpi_18bit_cpadhi_gpio0>;
30+
};
31+
};
32+
fragment@91 {
33+
target = <&dpi>;
34+
__dormant__ {
35+
pinctrl-0 = <&dpi_18bit_gpio0>;
36+
};
37+
};
38+
fragment@92 {
39+
target = <&dpi>;
40+
__dormant__ {
41+
pinctrl-0 = <&dpi_gpio0>;
42+
};
43+
};
44+
fragment@93 {
45+
target = <&dpi>;
46+
__dormant__ {
47+
pinctrl-0 = <&dpi_16bit_cpadhi_gpio0>;
48+
};
49+
};
50+
fragment@94 {
51+
target = <&dpi>;
52+
__dormant__ {
53+
pinctrl-0 = <&dpi_16bit_gpio0>;
54+
};
55+
};
56+
57+
__overrides__ {
58+
at056tn53v1 = <0>, "+0+90";
59+
kippah-7inch = <0>, "+1+91";
60+
};
61+
};

0 commit comments

Comments
 (0)