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