File Index
Files and directories
Sign in
FILE

bcm2712-rpi-5-b-base.dtsi

File preview with syntax highlighting.

linux-6.19.14/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi DEVICETREE
  1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
  2/dts-v1/;
  3
  4#include <dt-bindings/gpio/gpio.h>
  5#include <dt-bindings/input/input.h>
  6#include "bcm2712.dtsi"
  7
  8/ {
  9	compatible = "raspberrypi,5-model-b", "brcm,bcm2712";
 10	model = "Raspberry Pi 5";
 11
 12	aliases {
 13		serial10 = &uart10;
 14	};
 15
 16	chosen: chosen {
 17		stdout-path = "serial10:115200n8";
 18	};
 19
 20	clk_rp1_xosc: clock-50000000 {
 21		compatible = "fixed-clock";
 22		#clock-cells = <0>;
 23		clock-output-names = "rp1-xosc";
 24		clock-frequency = <50000000>;
 25	};
 26
 27	/* Will be filled by the bootloader */
 28	memory@0 {
 29		device_type = "memory";
 30		reg = <0 0 0 0x28000000>;
 31	};
 32
 33	gpio-keys {
 34		compatible = "gpio-keys";
 35		pinctrl-names = "default";
 36		pinctrl-0 = <&pwr_button_default>;
 37		status = "okay";
 38
 39		power_button: power-button {
 40			label = "pwr_button";
 41			linux,code = <KEY_POWER>;
 42			gpios = <&gio 20 GPIO_ACTIVE_LOW>;
 43			debounce-interval = <50>;
 44		};
 45	};
 46
 47	sd_io_1v8_reg: sd-io-1v8-reg {
 48		compatible = "regulator-gpio";
 49		regulator-name = "vdd-sd-io";
 50		regulator-min-microvolt = <1800000>;
 51		regulator-max-microvolt = <3300000>;
 52		regulator-boot-on;
 53		regulator-always-on;
 54		regulator-settling-time-us = <5000>;
 55		gpios = <&gio_aon 3 GPIO_ACTIVE_HIGH>;
 56		states = <1800000 1>,
 57			 <3300000 0>;
 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		gpios = <&gio_aon 4 GPIO_ACTIVE_HIGH>;
 68	};
 69
 70	wl_on_reg: wl-on-reg {
 71		compatible = "regulator-fixed";
 72		regulator-name = "wl-on-regulator";
 73		regulator-min-microvolt = <3300000>;
 74		regulator-max-microvolt = <3300000>;
 75		pinctrl-0 = <&wl_on_default>;
 76		pinctrl-names = "default";
 77		gpio = <&gio 28 GPIO_ACTIVE_HIGH>;
 78		startup-delay-us = <150000>;
 79		enable-active-high;
 80	};
 81};
 82
 83&pinctrl {
 84	bt_shutdown_default: bt-shutdown-default-state {
 85		function = "gpio";
 86		pins = "gpio29";
 87	};
 88
 89	emmc_sd_default: emmc-sd-default-state {
 90		pins = "emmc_cmd", "emmc_dat0", "emmc_dat1", "emmc_dat2", "emmc_dat3";
 91		bias-pull-up;
 92	};
 93
 94	pwr_button_default: pwr-button-default-state {
 95		function = "gpio";
 96		pins = "gpio20";
 97		bias-pull-up;
 98	};
 99
100	sdio2_30_default: sdio2-30-default-state {
101		clk-pins {
102			function = "sd2";
103			pins = "gpio30";
104			bias-disable;
105		};
106		cmd-pins {
107			function = "sd2";
108			pins = "gpio31";
109			bias-pull-up;
110		};
111		dat-pins {
112			function = "sd2";
113			pins = "gpio32", "gpio33", "gpio34", "gpio35";
114			bias-pull-up;
115		};
116	};
117
118	uarta_24_default: uarta-24-default-state {
119		rts-pins {
120			function = "uart0";
121			pins = "gpio24";
122			bias-disable;
123		};
124		cts-pins {
125			function = "uart0";
126			pins = "gpio25";
127			bias-pull-up;
128		};
129		txd-pins {
130			function = "uart0";
131			pins = "gpio26";
132			bias-disable;
133		};
134		rxd-pins {
135			function = "uart0";
136			pins = "gpio27";
137			bias-pull-up;
138		};
139	};
140
141	wl_on_default: wl-on-default-state {
142		function = "gpio";
143		pins = "gpio28";
144	};
145};
146
147&pinctrl_aon {
148	emmc_aon_cd_default: emmc-aon-cd-default-state {
149		function = "sd_card_g";
150		pins = "aon_gpio5";
151		bias-pull-up;
152	};
153};
154
155/* The Debug UART, on Rpi5 it's on JST-SH 1.0mm 3-pin connector
156 * labeled "UART", i.e. the interface with the system console.
157 */
158&uart10 {
159	status = "okay";
160};
161
162/* SDIO1 is used to drive the SD card */
163&sdio1 {
164	pinctrl-0 = <&emmc_sd_default>, <&emmc_aon_cd_default>;
165	pinctrl-names = "default";
166	vqmmc-supply = <&sd_io_1v8_reg>;
167	vmmc-supply = <&sd_vcc_reg>;
168	bus-width = <4>;
169	sd-uhs-sdr50;
170	sd-uhs-ddr50;
171	sd-uhs-sdr104;
172	cd-gpios = <&gio_aon 5 GPIO_ACTIVE_LOW>;
173};
174
175&sdio2 {
176	pinctrl-0 = <&sdio2_30_default>;
177	pinctrl-names = "default";
178	bus-width = <4>;
179	vmmc-supply = <&wl_on_reg>;
180	sd-uhs-ddr50;
181	non-removable;
182	status = "okay";
183	#address-cells = <1>;
184	#size-cells = <0>;
185
186	wifi: wifi@1 {
187		reg = <1>;
188		compatible = "brcm,bcm4329-fmac";
189	};
190};
191
192&soc {
193	firmware: firmware {
194		compatible = "raspberrypi,bcm2835-firmware", "simple-mfd";
195		#address-cells = <1>;
196		#size-cells = <1>;
197
198		mboxes = <&mailbox>;
199		dma-ranges;
200
201		firmware_clocks: clocks {
202			compatible = "raspberrypi,firmware-clocks";
203			#clock-cells = <1>;
204		};
205
206		reset: reset {
207			compatible = "raspberrypi,firmware-reset";
208			#reset-cells = <1>;
209		};
210	};
211
212	power: power {
213		compatible = "raspberrypi,bcm2835-power";
214		firmware = <&firmware>;
215		#power-domain-cells = <1>;
216	};
217};
218
219/* uarta communicates with the BT module */
220&uarta {
221	uart-has-rtscts;
222	pinctrl-0 = <&uarta_24_default &bt_shutdown_default>;
223	pinctrl-names = "default";
224	status = "okay";
225
226	bluetooth: bluetooth {
227		compatible = "brcm,bcm43438-bt";
228		max-speed = <3000000>;
229		shutdown-gpios = <&gio 29 GPIO_ACTIVE_HIGH>;
230	};
231};
232
233&hvs {
234	clocks = <&firmware_clocks 4>, <&firmware_clocks 16>;
235	clock-names = "core", "disp";
236};
237
238&hdmi0 {
239	clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 0>, <&clk_27MHz>;
240	clock-names = "hdmi", "bvb", "audio", "cec";
241};
242
243&hdmi1 {
244	clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 1>, <&clk_27MHz>;
245	clock-names = "hdmi", "bvb", "audio", "cec";
246};
247
248&pcie1 {
249	status = "okay";
250};
251
252&pcie2 {
253	status = "okay";
254};
~/ Read-only file preview.