ARM: dts: bcm2710-rpi-3-b-plus: Add cts pin setting for bluetooth uart
[platform/kernel/linux-rpi.git] / arch / arm / boot / dts / bcm2710-rpi-3-b-plus.dts
1 /dts-v1/;
2
3 #ifdef RPI364
4 /memreserve/ 0x08000000 0x02000000;
5 #endif
6
7 #include "bcm2710.dtsi"
8 #include "bcm2709-rpi.dtsi"
9 #include "bcm283x-rpi-lan7515.dtsi"
10 #include "bcm283x-rpi-csi1-2lane.dtsi"
11 #include <dt-bindings/input/input.h>
12
13 / {
14         compatible = "raspberrypi,3-model-b-plus", "brcm,bcm2837";
15         model = "Raspberry Pi 3 Model B+";
16
17         chosen {
18                 bootargs = "coherent_pool=1M 8250.nr_uarts=1";
19         };
20
21         aliases {
22                 serial0 = &uart1;
23                 serial1 = &uart0;
24                 mmc1 = &mmcnr;
25         };
26
27         rpi_backlight: rpi_backlight {
28                 compatible = "raspberrypi,rpi-backlight";
29                 firmware = <&firmware>;
30                 status = "okay";
31         };
32
33         rpi_ft5406: rpi_ft5406 {
34                 compatible = "rpi,rpi-ft5406";
35                 firmware = <&firmware>;
36                 status = "okay";
37         };
38
39         gpio-keys {
40                 compatible = "gpio-keys";
41
42                 key-volume-up {
43                         lable = "volume-up";
44                         linux,code = <KEY_VOLUMEUP>;
45                         gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
46                 };
47
48                 key-volume-down {
49                         lable = "volume-down";
50                         linux,code = <KEY_VOLUMEDOWN>;
51                         gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
52                 };
53
54                 key-fastforward {
55                         lable = "fastforward";
56                         linux,code = <KEY_FASTFORWARD>;
57                         gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
58                 };
59
60                 key-rewind {
61                         lable = "rewind";
62                         linux,code = <KEY_REWIND>;
63                         gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
64                 };
65
66                 key-playpause {
67                         lable = "playpause";
68                         linux,code = <KEY_PLAYPAUSE>;
69                         gpios = <&gpio 25 GPIO_ACTIVE_LOW>;
70                 };
71         };
72 };
73
74 &gpio {
75         spi0_pins: spi0_pins {
76                 brcm,pins = <9 10 11>;
77                 brcm,function = <4>; /* alt0 */
78         };
79
80         spi0_cs_pins: spi0_cs_pins {
81                 brcm,pins = <8 7>;
82                 brcm,function = <1>; /* output */
83         };
84
85         i2c0_pins: i2c0 {
86                 brcm,pins = <0 1>;
87                 brcm,function = <4>;
88         };
89
90         i2c1_pins: i2c1 {
91                 brcm,pins = <2 3>;
92                 brcm,function = <4>;
93         };
94
95         i2s_pins: i2s {
96                 brcm,pins = <18 19 20 21>;
97                 brcm,function = <4>; /* alt0 */
98         };
99
100         sdio_pins: sdio_pins {
101                 brcm,pins =     <34 35 36 37 38 39>;
102                 brcm,function = <7>; // alt3 = SD1
103                 brcm,pull =     <0 2 2 2 2 2>;
104         };
105
106         bt_pins: bt_pins {
107                 brcm,pins = <43>;
108                 brcm,function = <4>; /* alt0:GPCLK2 */
109                 brcm,pull = <0>;
110         };
111
112         uart0_pins: uart0_pins {
113                 brcm,pins = <32 33>;
114                 brcm,function = <7>; /* alt3=UART0 */
115                 brcm,pull = <0 2>;
116         };
117
118         uart1_pins: uart1_pins {
119                 brcm,pins;
120                 brcm,function;
121                 brcm,pull;
122         };
123
124         uart0_ctsrts_gpio30: uart0_ctsrts_gpio30 {
125                 brcm,pins = <30 31>;
126                 brcm,function = <BCM2835_FSEL_ALT3>;
127                 brcm,pull = <BCM2835_PUD_UP BCM2835_PUD_OFF>;
128         };
129
130         audio_pins: audio_pins {
131                 brcm,pins = <40 41>;
132                 brcm,function = <4>;
133         };
134
135         /* Needs to describe gpio settings at config.txt */
136         key_volume_up: key_volume_up {
137                 brcm,pins = <16>;
138                 brcm,function = <1>; /* BCM2835_FSEL_GPIO_IN */
139                 brcm,pull = <2>; /* BCM2835_PUD_UP */
140         };
141
142         key_volume_down: key_volume_down {
143                 brcm,pins = <13>;
144                 brcm,function = <1>;
145                 brcm,pull = <2>;
146         };
147
148         key_fastforward: key_fastforward {
149                 brcm,pins = <6>;
150                 brcm,function = <1>;
151                 brcm,pull = <2>;
152         };
153
154         key_rewind: key_rewind {
155                 brcm,pins = <12>;
156                 brcm,function = <1>;
157                 brcm,pull = <2>;
158         };
159
160         key_playpause: key_playpause {
161                 brcm,pins = <25>;
162                 brcm,function = <1>;
163                 brcm,pull = <2>;
164         };
165 };
166
167 &mmcnr {
168         pinctrl-names = "default";
169         pinctrl-0 = <&sdio_pins>;
170         bus-width = <4>;
171         status = "okay";
172 };
173
174 &firmware {
175         expgpio: expgpio {
176                 compatible = "raspberrypi,firmware-gpio";
177                 gpio-controller;
178                 #gpio-cells = <2>;
179                 status = "okay";
180         };
181 };
182
183 &uart0 {
184         pinctrl-names = "default";
185         pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_pins &bt_pins>;
186         status = "okay";
187 };
188
189 &uart1 {
190         pinctrl-names = "default";
191         pinctrl-0 = <&uart1_pins>;
192         status = "okay";
193 };
194
195 &spi0 {
196         pinctrl-names = "default";
197         pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
198         cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
199         status = "okay";
200
201         spidev0: spidev@0{
202                 compatible = "spidev";
203                 reg = <0>;      /* CE0 */
204                 #address-cells = <1>;
205                 #size-cells = <0>;
206                 spi-max-frequency = <125000000>;
207         };
208
209         spidev1: spidev@1{
210                 compatible = "spidev";
211                 reg = <1>;      /* CE1 */
212                 #address-cells = <1>;
213                 #size-cells = <0>;
214                 spi-max-frequency = <125000000>;
215         };
216 };
217
218 &i2c0 {
219         pinctrl-names = "default";
220         pinctrl-0 = <&i2c0_pins>;
221         clock-frequency = <100000>;
222 };
223
224 &i2c1 {
225         pinctrl-names = "default";
226         pinctrl-0 = <&i2c1_pins>;
227         clock-frequency = <100000>;
228         status = "okay";
229
230         #address-cells = <1>;
231         #size-cells = <0>;
232
233         ac108_a: ac108@3b{
234                 compatible = "x-power,ac108_0";
235                 reg = <0x3b>;
236                 #sound-dai-cells = <0>;
237                 data-protocol = <0>;
238         };
239 };
240
241 &i2c2 {
242         clock-frequency = <100000>;
243         status = "okay";
244 };
245
246 &dpi {
247         status = "okay";
248 };
249
250 &hvs {
251         status = "okay";
252 };
253
254 &pixelvalve0 {
255         status = "okay";
256 };
257
258 &pixelvalve1 {
259         status = "okay";
260 };
261
262 &pixelvalve2 {
263         status = "okay";
264 };
265
266 &hdmi {
267         status = "okay";
268 };
269
270 &v3d {
271         status = "okay";
272 };
273
274 &vc4 {
275         status = "okay";
276 };
277
278 &i2s {
279         pinctrl-names = "default";
280         pinctrl-0 = <&i2s_pins>;
281
282         #sound-dai-cells = <0>;
283         status = "okay";
284 };
285
286 &leds {
287         act_led: act {
288                 label = "led0";
289                 linux,default-trigger = "mmc0";
290                 gpios = <&gpio 29 0>;
291         };
292
293         pwr_led: pwr {
294                 label = "led1";
295                 linux,default-trigger = "default-on";
296                 gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
297         };
298 };
299
300 &hdmi {
301         hpd-gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
302 };
303
304 &audio {
305         pinctrl-names = "default";
306         pinctrl-0 = <&audio_pins>;
307         status = "okay";
308 };
309
310 &sound {
311         compatible = "seeed-voicecard";
312         seeed-voice-card,format = "dsp_a";
313         seeed-voice-card,name = "seeed-4mic-voicecard";
314         status = "okay";
315
316         seeed-voice-card,bitclock-master = <&codec_dai>;
317         seeed-voice-card,frame-master = <&codec_dai>;
318         seeed-voice-card,channels-playback-override = <4>;
319         seeed-voice-card,channels-capture-override  = <4>;
320
321         cpu_dai: seeed-voice-card,cpu {
322                 sound-dai = <&i2s>;
323                 dai-tdm-slot-num     = <2>;
324                 dai-tdm-slot-width   = <32>;
325                 dai-tdm-slot-tx-mask = <1 1 0 0>;
326                 dai-tdm-slot-rx-mask = <1 1 0 0>;
327         };
328         codec_dai: seeed-voice-card,codec {
329                 sound-dai = <&ac108_a>;
330                 system-clock-frequency = <24000000>;
331         };
332 };
333
334 / {
335         __overrides__ {
336                 act_led_gpio = <&act_led>,"gpios:4";
337                 act_led_activelow = <&act_led>,"gpios:8";
338                 act_led_trigger = <&act_led>,"linux,default-trigger";
339
340                 pwr_led_gpio = <&pwr_led>,"gpios:4";
341                 pwr_led_activelow = <&pwr_led>,"gpios:8";
342                 pwr_led_trigger = <&pwr_led>,"linux,default-trigger";
343         };
344 };
345
346 &i2c_dsi {
347         gpios = <&gpio 44 0
348                  &gpio 45 0>;
349         status = "okay";
350 };
351
352 &dsi1 {
353         #address-cells = <1>;
354         #size-cells = <0>;
355         status = "okay";
356 };