Merge tag 'v5.15.57' into rpi-5.15.y
[platform/kernel/linux-rpi.git] / arch / arm / boot / dts / overlays / rpi-display-overlay.dts
1 /*
2  * Device Tree overlay for rpi-display by Watterott
3  *
4  */
5
6 /dts-v1/;
7 /plugin/;
8
9 / {
10         compatible = "brcm,bcm2835";
11
12         fragment@0 {
13                 target = <&spi0>;
14                 __overlay__ {
15                         status = "okay";
16                 };
17         };
18
19         fragment@1 {
20                 target = <&spidev0>;
21                 __overlay__ {
22                         status = "disabled";
23                 };
24         };
25
26         fragment@2 {
27                 target = <&spidev1>;
28                 __overlay__ {
29                         status = "disabled";
30                 };
31         };
32
33         fragment@3 {
34                 target = <&gpio>;
35                 __overlay__ {
36                         rpi_display_pins: rpi_display_pins {
37                                 brcm,pins = <18 23 24 25>;
38                                 brcm,function = <1 1 1 0>; /* out out out in */
39                                 brcm,pull = <0 0 0 2>; /* - - - up */
40                         };
41                 };
42         };
43
44         fragment@4 {
45                 target = <&spi0>;
46                 __overlay__ {
47                         /* needed to avoid dtc warning */
48                         #address-cells = <1>;
49                         #size-cells = <0>;
50
51                         rpidisplay: rpi-display@0{
52                                 compatible = "ilitek,ili9341";
53                                 reg = <0>;
54                                 pinctrl-names = "default";
55                                 pinctrl-0 = <&rpi_display_pins>;
56
57                                 spi-max-frequency = <32000000>;
58                                 rotate = <270>;
59                                 bgr;
60                                 fps = <30>;
61                                 buswidth = <8>;
62                                 reset-gpios = <&gpio 23 1>;
63                                 dc-gpios = <&gpio 24 0>;
64                                 led-gpios = <&gpio 18 0>;
65                                 debug = <0>;
66                         };
67
68                         rpidisplay_ts: rpi-display-ts@1 {
69                                 compatible = "ti,ads7846";
70                                 reg = <1>;
71
72                                 spi-max-frequency = <2000000>;
73                                 interrupts = <25 2>; /* high-to-low edge triggered */
74                                 interrupt-parent = <&gpio>;
75                                 pendown-gpio = <&gpio 25 1>;
76                                 ti,x-plate-ohms = /bits/ 16 <60>;
77                                 ti,pressure-max = /bits/ 16 <255>;
78                         };
79                 };
80         };
81
82         fragment@10 {
83                 target = <&rpidisplay>;
84                 __dormant__  {
85                         backlight = <&backlight_gpio>;
86                 };
87         };
88
89         fragment@11 {
90                 target-path = "/";
91                 __dormant__  {
92                         backlight_gpio: backlight_gpio {
93                                 compatible = "gpio-backlight";
94                                 gpios = <&gpio 18 0>; /* GPIO_ACTIVE_HIGH */
95                         };
96                 };
97         };
98
99         fragment@20 {
100                 target = <&rpidisplay>;
101                 __dormant__  {
102                         backlight = <&backlight_pwm>;
103                 };
104         };
105
106         fragment@21 {
107                 target-path = "/";
108                 __dormant__  {
109                         backlight_pwm: backlight_pwm {
110                                 compatible = "pwm-backlight";
111                                 brightness-levels = <0 6 8 12 16 24 32 40 48 64 96 128 160 192 224 255>;
112                                 default-brightness-level = <16>;
113                                 pwms = <&pwm 0 200000>;
114                         };
115                 };
116         };
117
118         fragment@22 {
119                 target = <&pwm>;
120                 __dormant__ {
121                         assigned-clock-rates = <1000000>;
122                         status = "okay";
123                 };
124         };
125
126         fragment@23 {
127                 target = <&audio>;
128                 __dormant__  {
129                     brcm,disable-headphones;
130                 };
131         };
132
133         __overrides__ {
134                 speed =     <&rpidisplay>,"spi-max-frequency:0";
135                 rotate =    <&rpidisplay>,"rotate:0", /* fbtft */
136                             <&rpidisplay>,"rotation:0"; /* drm */
137                 fps =       <&rpidisplay>,"fps:0";
138                 debug =     <&rpidisplay>,"debug:0";
139                 xohms =     <&rpidisplay_ts>,"ti,x-plate-ohms;0";
140                 swapxy =    <&rpidisplay_ts>,"ti,swap-xy?";
141                 backlight = <&rpidisplay>,"led-gpios:4",
142                             <&rpi_display_pins>,"brcm,pins:0";
143                 drm =       <&rpidisplay>, "compatible=multi-inno,mi0283qt",
144                             <&rpidisplay>, "spi-max-frequency:0=70000000",
145                             <&rpidisplay>, "reset-gpios:8=0", /* GPIO_ACTIVE_HIGH */
146                             <0>, "+10+11";
147                 backlight-pwm = <0>, "-10-11+20+21+22+23",
148                                 <&rpi_display_pins>, "brcm,function:0=2"; /* Alt5 */
149         };
150 };