blob: 353bb50ce5425c9763f1a1f9d067bf1055ce4bb2 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: GPL-2.0
2/dts-v1/;
3#include "bcm2711.dtsi"
4#include "bcm2711-rpi.dtsi"
5#include "bcm283x-rpi-led-deprecated.dtsi"
6#include "bcm283x-rpi-usb-peripheral.dtsi"
7#include "bcm283x-rpi-wifi-bt.dtsi"
Tom Rini762f85b2024-07-20 11:15:10 -06008#include <dt-bindings/leds/common.h>
Tom Rini53633a82024-02-29 12:33:36 -05009
10/ {
11 compatible = "raspberrypi,4-model-b", "brcm,bcm2711";
12 model = "Raspberry Pi 4 Model B";
13
14 chosen {
15 /* 8250 auxiliary UART instead of pl011 */
16 stdout-path = "serial1:115200n8";
17 };
18
Tom Rini762f85b2024-07-20 11:15:10 -060019 cam1_reg: regulator-cam1 {
20 compatible = "regulator-fixed";
21 regulator-name = "cam1-reg";
22 enable-active-high;
23 gpio = <&expgpio 5 GPIO_ACTIVE_HIGH>;
24 };
25
Tom Rini53633a82024-02-29 12:33:36 -050026 sd_io_1v8_reg: regulator-sd-io-1v8 {
27 compatible = "regulator-gpio";
28 regulator-name = "vdd-sd-io";
29 regulator-min-microvolt = <1800000>;
30 regulator-max-microvolt = <3300000>;
31 regulator-boot-on;
32 regulator-always-on;
33 regulator-settling-time-us = <5000>;
34 gpios = <&expgpio 4 GPIO_ACTIVE_HIGH>;
35 states = <1800000 0x1>,
36 <3300000 0x0>;
37 status = "okay";
38 };
39
40 sd_vcc_reg: regulator-sd-vcc {
41 compatible = "regulator-fixed";
42 regulator-name = "vcc-sd";
43 regulator-min-microvolt = <3300000>;
44 regulator-max-microvolt = <3300000>;
45 regulator-boot-on;
46 enable-active-high;
47 gpio = <&expgpio 6 GPIO_ACTIVE_HIGH>;
48 };
49};
50
51&bt {
52 shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
53};
54
55&ddc0 {
56 status = "okay";
57};
58
59&ddc1 {
60 status = "okay";
61};
62
63&expgpio {
64 gpio-line-names = "BT_ON", /* 0 */
65 "WL_ON",
66 "PWR_LED_OFF",
67 "GLOBAL_RESET",
68 "VDD_SD_IO_SEL",
69 "CAM_GPIO", /* 5 */
70 "SD_PWR_ON",
71 "";
72};
73
74&gpio {
75 /*
76 * Parts taken from rpi_SCH_4b_4p0_reduced.pdf and
77 * the official GPU firmware DT blob.
78 *
79 * Legend:
80 * "FOO" = GPIO line named "FOO" on the schematic
81 * "FOO_N" = GPIO line named "FOO" on schematic, active low
82 */
83 gpio-line-names = "ID_SDA", /* 0 */
84 "ID_SCL",
85 "SDA1",
86 "SCL1",
87 "GPIO_GCLK",
88 "GPIO5", /* 5 */
89 "GPIO6",
90 "SPI_CE1_N",
91 "SPI_CE0_N",
92 "SPI_MISO",
93 "SPI_MOSI", /* 10 */
94 "SPI_SCLK",
95 "GPIO12",
96 "GPIO13",
97 /* Serial port */
98 "TXD1",
99 "RXD1", /* 15 */
100 "GPIO16",
101 "GPIO17",
102 "GPIO18",
103 "GPIO19",
104 "GPIO20", /* 20 */
105 "GPIO21",
106 "GPIO22",
107 "GPIO23",
108 "GPIO24",
109 "GPIO25", /* 25 */
110 "GPIO26",
111 "GPIO27",
112 "RGMII_MDIO",
113 "RGMIO_MDC",
114 /* Used by BT module */
115 "CTS0", /* 30 */
116 "RTS0",
117 "TXD0",
118 "RXD0",
119 /* Used by Wifi */
120 "SD1_CLK",
121 "SD1_CMD", /* 35 */
122 "SD1_DATA0",
123 "SD1_DATA1",
124 "SD1_DATA2",
125 "SD1_DATA3",
126 /* Shared with SPI flash */
127 "PWM0_MISO", /* 40 */
128 "PWM1_MOSI",
129 "STATUS_LED_G_CLK",
130 "SPIFLASH_CE_N",
131 "SDA0",
132 "SCL0", /* 45 */
133 "RGMII_RXCLK",
134 "RGMII_RXCTL",
135 "RGMII_RXD0",
136 "RGMII_RXD1",
137 "RGMII_RXD2", /* 50 */
138 "RGMII_RXD3",
139 "RGMII_TXCLK",
140 "RGMII_TXCTL",
141 "RGMII_TXD0",
142 "RGMII_TXD1", /* 55 */
143 "RGMII_TXD2",
144 "RGMII_TXD3";
145};
146
147&hdmi0 {
148 status = "okay";
149};
150
151&hdmi1 {
152 status = "okay";
153};
154
155&led_act {
156 gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
157};
158
159&leds {
160 led_pwr: led-pwr {
161 label = "PWR";
162 gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
163 default-state = "keep";
164 linux,default-trigger = "default-on";
165 };
166};
167
168&pixelvalve0 {
169 status = "okay";
170};
171
172&pixelvalve1 {
173 status = "okay";
174};
175
176&pixelvalve2 {
177 status = "okay";
178};
179
180&pixelvalve4 {
181 status = "okay";
182};
183
184&pwm1 {
185 pinctrl-names = "default";
186 pinctrl-0 = <&pwm1_0_gpio40 &pwm1_1_gpio41>;
187 status = "okay";
188};
189
190/* EMMC2 is used to drive the SD card */
191&emmc2 {
192 vqmmc-supply = <&sd_io_1v8_reg>;
193 vmmc-supply = <&sd_vcc_reg>;
194 broken-cd;
195 status = "okay";
196};
197
198&genet {
199 phy-handle = <&phy1>;
200 phy-mode = "rgmii-rxid";
201 status = "okay";
202};
203
204&genet_mdio {
205 phy1: ethernet-phy@1 {
206 /* No PHY interrupt */
207 reg = <0x1>;
Tom Rini762f85b2024-07-20 11:15:10 -0600208
209 leds {
210 #address-cells = <1>;
211 #size-cells = <0>;
212
213 /* LED1 */
214 led@0 {
215 reg = <0>;
216 color = <LED_COLOR_ID_GREEN>;
217 function = LED_FUNCTION_LAN;
218 default-state = "keep";
219 };
220
221 /* LED2 */
222 led@1 {
223 reg = <1>;
224 color = <LED_COLOR_ID_AMBER>;
225 function = LED_FUNCTION_LAN;
226 default-state = "keep";
227 };
228 };
Tom Rini53633a82024-02-29 12:33:36 -0500229 };
230};
231
232&pcie0 {
233 pci@0,0 {
234 device_type = "pci";
235 #address-cells = <3>;
236 #size-cells = <2>;
237 ranges;
238
239 reg = <0 0 0 0 0>;
240
241 usb@0,0 {
242 reg = <0 0 0 0 0>;
243 resets = <&reset RASPBERRYPI_FIRMWARE_RESET_ID_USB>;
244 };
245 };
246};
247
248/* uart0 communicates with the BT module */
249&uart0 {
250 pinctrl-names = "default";
251 pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32>;
252 uart-has-rtscts;
253};
254
255/* uart1 is mapped to the pin header */
256&uart1 {
257 pinctrl-names = "default";
258 pinctrl-0 = <&uart1_gpio14>;
259 status = "okay";
260};
261
262&vc4 {
263 status = "okay";
264};
265
266&vec {
267 status = "disabled";
268};
269
270&wifi_pwrseq {
271 reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>;
272};