f416b8c6f5c8bd98b79b6311413c10aa978cf074
[platform/kernel/linux-rpi.git] / arch / arm / boot / dts / bcm2710-rpi-3-b.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-smsc9514.dtsi"
10 #include "bcm283x-rpi-csi1-2lane.dtsi"
11 #include <dt-bindings/input/input.h>
12
13 / {
14         compatible = "raspberrypi,3-model-b", "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-up {
43                         lable = "up";
44                         linux,code = <KEY_VOLUMEUP>;
45                         gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
46                 };
47
48                 key-down {
49                         lable = "down";
50                         linux,code = <KEY_VOLUMEDOWN>;
51                         gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
52                 };
53
54                 key-left {
55                         lable = "left";
56                         linux,code = <KEY_FASTFORWARD>;
57                         gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
58                 };
59
60                 key-right {
61                         lable = "right";
62                         linux,code = <KEY_REWIND>;
63                         gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
64                 };
65
66                 key-center {
67                         lable = "center";
68                         linux,code = <KEY_PLAYPAUSE>;
69                         gpios = <&gpio 26 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         audio_pins: audio_pins {
125                 brcm,pins = <40 41>;
126                 brcm,function = <4>;
127         };
128
129         /* Needs to describe gpio settings at config.txt */
130         key_up: key_up {
131                 brcm,pins = <16>;
132                 brcm,function = <1>; /* BCM2835_FSEL_GPIO_IN */
133                 brcm,pull = <2>; /* BCM2835_PUD_UP */
134         };
135
136         key_down: key_down {
137                 brcm,pins = <13>;
138                 brcm,function = <1>;
139                 brcm,pull = <2>;
140         };
141
142         key_left: key_left {
143                 brcm,pins = <6>;
144                 brcm,function = <1>;
145                 brcm,pull = <2>;
146         };
147
148         key_right: key_right {
149                 brcm,pins = <12>;
150                 brcm,function = <1>;
151                 brcm,pull = <2>;
152         };
153
154         key_center: key_center {
155                 brcm,pins = <26>;
156                 brcm,function = <1>;
157                 brcm,pull = <2>;
158         };
159 };
160
161 &mmcnr {
162         pinctrl-names = "default";
163         pinctrl-0 = <&sdio_pins>;
164         bus-width = <4>;
165         status = "okay";
166 };
167
168 &soc {
169         virtgpio: virtgpio {
170                 compatible = "brcm,bcm2835-virtgpio";
171                 gpio-controller;
172                 #gpio-cells = <2>;
173                 firmware = <&firmware>;
174                 status = "okay";
175         };
176
177 };
178
179 &firmware {
180         expgpio: expgpio {
181                 compatible = "raspberrypi,firmware-gpio";
182                 gpio-controller;
183                 #gpio-cells = <2>;
184                 status = "okay";
185         };
186 };
187
188 &uart0 {
189         pinctrl-names = "default";
190         pinctrl-0 = <&uart0_pins &bt_pins>;
191         status = "okay";
192 };
193
194 &uart1 {
195         pinctrl-names = "default";
196         pinctrl-0 = <&uart1_pins>;
197         status = "okay";
198 };
199
200 &spi0 {
201         pinctrl-names = "default";
202         pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
203         cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
204         status = "okay";
205
206         spidev0: spidev@0{
207                 compatible = "spidev";
208                 reg = <0>;      /* CE0 */
209                 #address-cells = <1>;
210                 #size-cells = <0>;
211                 spi-max-frequency = <125000000>;
212         };
213
214         spidev1: spidev@1{
215                 compatible = "spidev";
216                 reg = <1>;      /* CE1 */
217                 #address-cells = <1>;
218                 #size-cells = <0>;
219                 spi-max-frequency = <125000000>;
220         };
221 };
222
223 &i2c0 {
224         pinctrl-names = "default";
225         pinctrl-0 = <&i2c0_pins>;
226         clock-frequency = <100000>;
227 };
228
229 &i2c1 {
230         pinctrl-names = "default";
231         pinctrl-0 = <&i2c1_pins>;
232         clock-frequency = <100000>;
233         status = "okay";
234 };
235
236 &i2c2 {
237         clock-frequency = <100000>;
238         status = "okay";
239 };
240
241 &dpi {
242         status = "okay";
243 };
244
245 &hvs {
246         status = "okay";
247 };
248
249 &pixelvalve0 {
250         status = "okay";
251 };
252
253 &pixelvalve1 {
254         status = "okay";
255 };
256
257 &pixelvalve2 {
258         status = "okay";
259 };
260
261 &hdmi {
262         status = "okay";
263 };
264
265 &v3d {
266         status = "okay";
267 };
268
269 &vc4 {
270         status = "okay";
271 };
272
273 &i2s {
274         pinctrl-names = "default";
275         pinctrl-0 = <&i2s_pins>;
276 };
277
278 &leds {
279         act_led: act {
280                 label = "led0";
281                 linux,default-trigger = "mmc0";
282                 gpios = <&virtgpio 0 0>;
283         };
284
285         pwr_led: pwr {
286                 label = "led1";
287                 linux,default-trigger = "input";
288                 gpios = <&expgpio 7 0>;
289         };
290 };
291
292 &hdmi {
293         hpd-gpios = <&expgpio 4 GPIO_ACTIVE_LOW>;
294 };
295
296 &audio {
297         pinctrl-names = "default";
298         pinctrl-0 = <&audio_pins>;
299         status = "okay";
300 };
301
302 / {
303         __overrides__ {
304                 act_led_gpio = <&act_led>,"gpios:4";
305                 act_led_activelow = <&act_led>,"gpios:8";
306                 act_led_trigger = <&act_led>,"linux,default-trigger";
307
308                 pwr_led_gpio = <&pwr_led>,"gpios:4";
309                 pwr_led_activelow = <&pwr_led>,"gpios:8";
310                 pwr_led_trigger = <&pwr_led>,"linux,default-trigger";
311         };
312 };
313
314 &i2c_dsi {
315         gpios = <&gpio 44 0
316                  &gpio 45 0>;
317         status = "okay";
318 };
319
320 &dsi1 {
321         #address-cells = <1>;
322         #size-cells = <0>;
323         status = "okay";
324
325         pitouchscreen: panel@0 {
326                 compatible = "raspberrypi,touchscreen";
327                 reg = <0>;
328                 raspberrypi,touchscreen-bridge = <&pitouchscreen_bridge>;
329         };
330 };