Loading...
Note: File does not exist in v6.13.7.
1// SPDX-License-Identifier: GPL-2.0
2/dts-v1/;
3#include "bcm2711.dtsi"
4#include "bcm2835-rpi.dtsi"
5#include "bcm283x-rpi-usb-peripheral.dtsi"
6
7/ {
8 compatible = "raspberrypi,4-model-b", "brcm,bcm2711";
9 model = "Raspberry Pi 4 Model B";
10
11 chosen {
12 /* 8250 auxiliary UART instead of pl011 */
13 stdout-path = "serial1:115200n8";
14 };
15
16 /* Will be filled by the bootloader */
17 memory@0 {
18 device_type = "memory";
19 reg = <0 0 0>;
20 };
21
22 aliases {
23 emmc2bus = &emmc2bus;
24 ethernet0 = &genet;
25 pcie0 = &pcie0;
26 };
27
28 leds {
29 act {
30 gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
31 };
32
33 pwr {
34 label = "PWR";
35 gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
36 default-state = "keep";
37 linux,default-trigger = "default-on";
38 };
39 };
40
41 wifi_pwrseq: wifi-pwrseq {
42 compatible = "mmc-pwrseq-simple";
43 reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>;
44 };
45
46 sd_io_1v8_reg: sd_io_1v8_reg {
47 compatible = "regulator-gpio";
48 regulator-name = "vdd-sd-io";
49 regulator-min-microvolt = <1800000>;
50 regulator-max-microvolt = <3300000>;
51 regulator-boot-on;
52 regulator-always-on;
53 regulator-settling-time-us = <5000>;
54 gpios = <&expgpio 4 GPIO_ACTIVE_HIGH>;
55 states = <1800000 0x1
56 3300000 0x0>;
57 status = "okay";
58 };
59
60 sd_vcc_reg: sd_vcc_reg {
61 compatible = "regulator-fixed";
62 regulator-name = "vcc-sd";
63 regulator-min-microvolt = <3300000>;
64 regulator-max-microvolt = <3300000>;
65 regulator-boot-on;
66 enable-active-high;
67 gpio = <&expgpio 6 GPIO_ACTIVE_HIGH>;
68 };
69};
70
71&firmware {
72 firmware_clocks: clocks {
73 compatible = "raspberrypi,firmware-clocks";
74 #clock-cells = <1>;
75 };
76
77 expgpio: gpio {
78 compatible = "raspberrypi,firmware-gpio";
79 gpio-controller;
80 #gpio-cells = <2>;
81 gpio-line-names = "BT_ON",
82 "WL_ON",
83 "PWR_LED_OFF",
84 "GLOBAL_RESET",
85 "VDD_SD_IO_SEL",
86 "CAM_GPIO",
87 "SD_PWR_ON",
88 "";
89 status = "okay";
90 };
91};
92
93&gpio {
94 /*
95 * Parts taken from rpi_SCH_4b_4p0_reduced.pdf and
96 * the official GPU firmware DT blob.
97 *
98 * Legend:
99 * "FOO" = GPIO line named "FOO" on the schematic
100 * "FOO_N" = GPIO line named "FOO" on schematic, active low
101 */
102 gpio-line-names = "ID_SDA",
103 "ID_SCL",
104 "SDA1",
105 "SCL1",
106 "GPIO_GCLK",
107 "GPIO5",
108 "GPIO6",
109 "SPI_CE1_N",
110 "SPI_CE0_N",
111 "SPI_MISO",
112 "SPI_MOSI",
113 "SPI_SCLK",
114 "GPIO12",
115 "GPIO13",
116 /* Serial port */
117 "TXD1",
118 "RXD1",
119 "GPIO16",
120 "GPIO17",
121 "GPIO18",
122 "GPIO19",
123 "GPIO20",
124 "GPIO21",
125 "GPIO22",
126 "GPIO23",
127 "GPIO24",
128 "GPIO25",
129 "GPIO26",
130 "GPIO27",
131 "RGMII_MDIO",
132 "RGMIO_MDC",
133 /* Used by BT module */
134 "CTS0",
135 "RTS0",
136 "TXD0",
137 "RXD0",
138 /* Used by Wifi */
139 "SD1_CLK",
140 "SD1_CMD",
141 "SD1_DATA0",
142 "SD1_DATA1",
143 "SD1_DATA2",
144 "SD1_DATA3",
145 /* Shared with SPI flash */
146 "PWM0_MISO",
147 "PWM1_MOSI",
148 "STATUS_LED_G_CLK",
149 "SPIFLASH_CE_N",
150 "SDA0",
151 "SCL0",
152 "RGMII_RXCLK",
153 "RGMII_RXCTL",
154 "RGMII_RXD0",
155 "RGMII_RXD1",
156 "RGMII_RXD2",
157 "RGMII_RXD3",
158 "RGMII_TXCLK",
159 "RGMII_TXCTL",
160 "RGMII_TXD0",
161 "RGMII_TXD1",
162 "RGMII_TXD2",
163 "RGMII_TXD3";
164};
165
166&pwm1 {
167 pinctrl-names = "default";
168 pinctrl-0 = <&pwm1_0_gpio40 &pwm1_1_gpio41>;
169 status = "okay";
170};
171
172/* SDHCI is used to control the SDIO for wireless */
173&sdhci {
174 #address-cells = <1>;
175 #size-cells = <0>;
176 pinctrl-names = "default";
177 pinctrl-0 = <&emmc_gpio34>;
178 bus-width = <4>;
179 non-removable;
180 mmc-pwrseq = <&wifi_pwrseq>;
181 status = "okay";
182
183 brcmf: wifi@1 {
184 reg = <1>;
185 compatible = "brcm,bcm4329-fmac";
186 };
187};
188
189/* EMMC2 is used to drive the SD card */
190&emmc2 {
191 vqmmc-supply = <&sd_io_1v8_reg>;
192 vmmc-supply = <&sd_vcc_reg>;
193 broken-cd;
194 status = "okay";
195};
196
197&genet {
198 phy-handle = <&phy1>;
199 phy-mode = "rgmii-rxid";
200 status = "okay";
201};
202
203&genet_mdio {
204 phy1: ethernet-phy@1 {
205 /* No PHY interrupt */
206 reg = <0x1>;
207 };
208};
209
210/* uart0 communicates with the BT module */
211&uart0 {
212 pinctrl-names = "default";
213 pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32>;
214 uart-has-rtscts;
215 status = "okay";
216
217 bluetooth {
218 compatible = "brcm,bcm43438-bt";
219 max-speed = <2000000>;
220 shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
221 };
222};
223
224/* uart1 is mapped to the pin header */
225&uart1 {
226 pinctrl-names = "default";
227 pinctrl-0 = <&uart1_gpio14>;
228 status = "okay";
229};
230
231&vchiq {
232 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
233};