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