xref: /linux/arch/arm/boot/dts/broadcom/bcm2711-rpi-4-b.dts (revision 621cde16e49b3ecf7d59a8106a20aaebfb4a59a9)
1// 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"
8#include <dt-bindings/leds/common.h>
9
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
19	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
26	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>;
208
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		};
229	};
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};
273