1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2/dts-v1/;
3
4#include <dt-bindings/gpio/gpio.h>
5#include "bcm2712.dtsi"
6
7/ {
8	compatible = "raspberrypi,5-model-b", "brcm,bcm2712";
9	model = "Raspberry Pi 5";
10
11	aliases {
12		serial10 = &uart10;
13	};
14
15	chosen: chosen {
16		stdout-path = "serial10:115200n8";
17	};
18
19	/* Will be filled by the bootloader */
20	memory@0 {
21		device_type = "memory";
22		reg = <0 0 0 0x28000000>;
23	};
24
25	sd_io_1v8_reg: sd-io-1v8-reg {
26		compatible = "regulator-gpio";
27		regulator-name = "vdd-sd-io";
28		regulator-min-microvolt = <1800000>;
29		regulator-max-microvolt = <3300000>;
30		regulator-boot-on;
31		regulator-always-on;
32		regulator-settling-time-us = <5000>;
33		gpios = <&gio_aon 3 GPIO_ACTIVE_HIGH>;
34		states = <1800000 1>,
35			 <3300000 0>;
36	};
37
38	sd_vcc_reg: sd-vcc-reg {
39		compatible = "regulator-fixed";
40		regulator-name = "vcc-sd";
41		regulator-min-microvolt = <3300000>;
42		regulator-max-microvolt = <3300000>;
43		regulator-boot-on;
44		enable-active-high;
45		gpios = <&gio_aon 4 GPIO_ACTIVE_HIGH>;
46	};
47};
48
49/* The Debug UART, on Rpi5 it's on JST-SH 1.0mm 3-pin connector
50 * labeled "UART", i.e. the interface with the system console.
51 */
52&uart10 {
53	status = "okay";
54};
55
56/* SDIO1 is used to drive the SD card */
57&sdio1 {
58	vqmmc-supply = <&sd_io_1v8_reg>;
59	vmmc-supply = <&sd_vcc_reg>;
60	bus-width = <4>;
61	sd-uhs-sdr50;
62	sd-uhs-ddr50;
63	sd-uhs-sdr104;
64};
65
66&soc {
67	firmware: firmware {
68		compatible = "raspberrypi,bcm2835-firmware", "simple-mfd";
69		#address-cells = <1>;
70		#size-cells = <1>;
71
72		mboxes = <&mailbox>;
73		dma-ranges;
74
75		firmware_clocks: clocks {
76			compatible = "raspberrypi,firmware-clocks";
77			#clock-cells = <1>;
78		};
79
80		reset: reset {
81			compatible = "raspberrypi,firmware-reset";
82			#reset-cells = <1>;
83		};
84	};
85
86	power: power {
87		compatible = "raspberrypi,bcm2835-power";
88		firmware = <&firmware>;
89		#power-domain-cells = <1>;
90	};
91};
92
93&hvs {
94	clocks = <&firmware_clocks 4>, <&firmware_clocks 16>;
95	clock-names = "core", "disp";
96};
97
98&hdmi0 {
99	clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 0>, <&clk_27MHz>;
100	clock-names = "hdmi", "bvb", "audio", "cec";
101};
102
103&hdmi1 {
104	clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 1>, <&clk_27MHz>;
105	clock-names = "hdmi", "bvb", "audio", "cec";
106};
107