Merge tag 'v5.15.57' into rpi-5.15.y
[platform/kernel/linux-rpi.git] / arch / arm / boot / dts / bcm2710-rpi-3-b.dts
1 /dts-v1/;
2
3 #include "bcm2710.dtsi"
4 #include "bcm2709-rpi.dtsi"
5 #include "bcm283x-rpi-smsc9514.dtsi"
6 #include "bcm283x-rpi-csi1-2lane.dtsi"
7 #include "bcm283x-rpi-i2c0mux_0_44.dtsi"
8 #include "bcm271x-rpi-bt.dtsi"
9
10 / {
11         compatible = "raspberrypi,3-model-b", "brcm,bcm2837";
12         model = "Raspberry Pi 3 Model B";
13
14         chosen {
15                 bootargs = "coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1";
16         };
17
18         aliases {
19                 serial0 = &uart1;
20                 serial1 = &uart0;
21                 mmc1 = &mmcnr;
22         };
23 };
24
25 &gpio {
26         /*
27          * Taken from rpi_SCH_3b_1p2_reduced.pdf and
28          * the official GPU firmware DT blob.
29          *
30          * Legend:
31          * "NC" = not connected (no rail from the SoC)
32          * "FOO" = GPIO line named "FOO" on the schematic
33          * "FOO_N" = GPIO line named "FOO" on schematic, active low
34          */
35         gpio-line-names = "ID_SDA",
36                           "ID_SCL",
37                           "SDA1",
38                           "SCL1",
39                           "GPIO_GCLK",
40                           "GPIO5",
41                           "GPIO6",
42                           "SPI_CE1_N",
43                           "SPI_CE0_N",
44                           "SPI_MISO",
45                           "SPI_MOSI",
46                           "SPI_SCLK",
47                           "GPIO12",
48                           "GPIO13",
49                           /* Serial port */
50                           "TXD1",
51                           "RXD1",
52                           "GPIO16",
53                           "GPIO17",
54                           "GPIO18",
55                           "GPIO19",
56                           "GPIO20",
57                           "GPIO21",
58                           "GPIO22",
59                           "GPIO23",
60                           "GPIO24",
61                           "GPIO25",
62                           "GPIO26",
63                           "GPIO27",
64                           "NC", /* GPIO 28 */
65                           "LAN_RUN_BOOT",
66                           /* Used by BT module */
67                           "CTS0",
68                           "RTS0",
69                           "TXD0",
70                           "RXD0",
71                           /* Used by Wifi */
72                           "SD1_CLK",
73                           "SD1_CMD",
74                           "SD1_DATA0",
75                           "SD1_DATA1",
76                           "SD1_DATA2",
77                           "SD1_DATA3",
78                           "PWM0_OUT",
79                           "PWM1_OUT",
80                           "ETH_CLK",
81                           "WIFI_CLK",
82                           "SDA0",
83                           "SCL0",
84                           "SMPS_SCL",
85                           "SMPS_SDA",
86                           /* Used by SD Card */
87                           "SD_CLK_R",
88                           "SD_CMD_R",
89                           "SD_DATA0_R",
90                           "SD_DATA1_R",
91                           "SD_DATA2_R",
92                           "SD_DATA3_R";
93
94         spi0_pins: spi0_pins {
95                 brcm,pins = <9 10 11>;
96                 brcm,function = <4>; /* alt0 */
97         };
98
99         spi0_cs_pins: spi0_cs_pins {
100                 brcm,pins = <8 7>;
101                 brcm,function = <1>; /* output */
102         };
103
104         i2c0_pins: i2c0 {
105                 brcm,pins = <0 1>;
106                 brcm,function = <4>;
107         };
108
109         i2c1_pins: i2c1 {
110                 brcm,pins = <2 3>;
111                 brcm,function = <4>;
112         };
113
114         i2s_pins: i2s {
115                 brcm,pins = <18 19 20 21>;
116                 brcm,function = <4>; /* alt0 */
117         };
118
119         sdio_pins: sdio_pins {
120                 brcm,pins =     <34 35 36 37 38 39>;
121                 brcm,function = <7>; // alt3 = SD1
122                 brcm,pull =     <0 2 2 2 2 2>;
123         };
124
125         bt_pins: bt_pins {
126                 brcm,pins = <43>;
127                 brcm,function = <4>; /* alt0:GPCLK2 */
128                 brcm,pull = <0>;
129         };
130
131         uart0_pins: uart0_pins {
132                 brcm,pins = <32 33>;
133                 brcm,function = <7>; /* alt3=UART0 */
134                 brcm,pull = <0 2>;
135         };
136
137         uart1_pins: uart1_pins {
138                 brcm,pins;
139                 brcm,function;
140                 brcm,pull;
141         };
142
143         audio_pins: audio_pins {
144                 brcm,pins = <40 41>;
145                 brcm,function = <4>;
146         };
147 };
148
149 &mmcnr {
150         pinctrl-names = "default";
151         pinctrl-0 = <&sdio_pins>;
152         bus-width = <4>;
153         status = "okay";
154         #address-cells = <1>;
155         #size-cells = <0>;
156
157         brcmf: wifi@1 {
158                 reg = <1>;
159                 compatible = "brcm,bcm4329-fmac";
160         };
161 };
162
163 &soc {
164         virtgpio: virtgpio {
165                 compatible = "brcm,bcm2835-virtgpio";
166                 gpio-controller;
167                 #gpio-cells = <2>;
168                 firmware = <&firmware>;
169                 status = "okay";
170         };
171
172 };
173
174 &firmware {
175         expgpio: expgpio {
176                 compatible = "raspberrypi,firmware-gpio";
177                 gpio-controller;
178                 #gpio-cells = <2>;
179                 gpio-line-names = "BT_ON",
180                                   "WL_ON",
181                                   "STATUS_LED",
182                                   "LAN_RUN",
183                                   "HDMI_HPD_N",
184                                   "CAM_GPIO0",
185                                   "CAM_GPIO1",
186                                   "PWR_LOW_N";
187                 status = "okay";
188         };
189 };
190
191 &uart0 {
192         pinctrl-names = "default";
193         pinctrl-0 = <&uart0_pins &bt_pins>;
194         status = "okay";
195 };
196
197 &uart1 {
198         pinctrl-names = "default";
199         pinctrl-0 = <&uart1_pins>;
200         status = "okay";
201 };
202
203 &bt {
204         max-speed = <921600>;
205 };
206
207 &spi0 {
208         pinctrl-names = "default";
209         pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
210         cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
211
212         spidev0: spidev@0{
213                 compatible = "spidev";
214                 reg = <0>;      /* CE0 */
215                 #address-cells = <1>;
216                 #size-cells = <0>;
217                 spi-max-frequency = <125000000>;
218         };
219
220         spidev1: spidev@1{
221                 compatible = "spidev";
222                 reg = <1>;      /* CE1 */
223                 #address-cells = <1>;
224                 #size-cells = <0>;
225                 spi-max-frequency = <125000000>;
226         };
227 };
228
229 &i2c0if {
230         clock-frequency = <100000>;
231 };
232
233 &i2c1 {
234         pinctrl-names = "default";
235         pinctrl-0 = <&i2c1_pins>;
236         clock-frequency = <100000>;
237 };
238
239 &i2c2 {
240         clock-frequency = <100000>;
241 };
242
243 &i2s {
244         pinctrl-names = "default";
245         pinctrl-0 = <&i2s_pins>;
246 };
247
248 &leds {
249         act_led: led-act {
250                 label = "led0";
251                 linux,default-trigger = "mmc0";
252                 gpios = <&virtgpio 0 0>;
253         };
254
255         pwr_led: led-pwr {
256                 label = "led1";
257                 linux,default-trigger = "input";
258                 gpios = <&expgpio 7 0>;
259         };
260 };
261
262 &hdmi {
263         hpd-gpios = <&expgpio 4 GPIO_ACTIVE_LOW>;
264 };
265
266 &audio {
267         pinctrl-names = "default";
268         pinctrl-0 = <&audio_pins>;
269 };
270
271 &cam1_reg {
272         gpio = <&expgpio 5 GPIO_ACTIVE_HIGH>;
273 };
274
275 cam0_reg: &cam_dummy_reg {
276 };
277
278 / {
279         __overrides__ {
280                 act_led_gpio = <&act_led>,"gpios:4";
281                 act_led_activelow = <&act_led>,"gpios:8";
282                 act_led_trigger = <&act_led>,"linux,default-trigger";
283
284                 pwr_led_gpio = <&pwr_led>,"gpios:4";
285                 pwr_led_activelow = <&pwr_led>,"gpios:8";
286                 pwr_led_trigger = <&pwr_led>,"linux,default-trigger";
287         };
288 };