mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-01 15:14:52 +00:00

Add the fully populated DTS for RaspberryPi 5 which includes the RP1 node definition. The inclusion tree is as follow (the arrow points to the includer): rp1-common.dtsi ----> rp1-nexus.dtsi ----> bcm2712-rpi-5-b.dts ^ | bcm2712-rpi-5-b-ovl-rp1.dts This is designed to maximize the compatibility with downstream DT while ensuring that a fully defined DT (one which includes the RP1 node as opposed to load it from overlay at runtime) is present since early boot stage. Since the preferred board DT is the fully populated one, name it bcm2712-rpi-5-b.dts and move the previous one into bcm2712-rpi-5-b-ovl-rp1.dts. Signed-off-by: Andrea della Porta <andrea.porta@suse.com> Link: https://lore.kernel.org/r/20250529135052.28398-9-andrea.porta@suse.com Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
122 lines
2.4 KiB
Plaintext
122 lines
2.4 KiB
Plaintext
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
|
/dts-v1/;
|
|
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include "bcm2712.dtsi"
|
|
|
|
/ {
|
|
compatible = "raspberrypi,5-model-b", "brcm,bcm2712";
|
|
model = "Raspberry Pi 5";
|
|
|
|
aliases {
|
|
serial10 = &uart10;
|
|
};
|
|
|
|
chosen: chosen {
|
|
stdout-path = "serial10:115200n8";
|
|
};
|
|
|
|
clk_rp1_xosc: clock-50000000 {
|
|
compatible = "fixed-clock";
|
|
#clock-cells = <0>;
|
|
clock-output-names = "rp1-xosc";
|
|
clock-frequency = <50000000>;
|
|
};
|
|
|
|
/* Will be filled by the bootloader */
|
|
memory@0 {
|
|
device_type = "memory";
|
|
reg = <0 0 0 0x28000000>;
|
|
};
|
|
|
|
sd_io_1v8_reg: sd-io-1v8-reg {
|
|
compatible = "regulator-gpio";
|
|
regulator-name = "vdd-sd-io";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
regulator-settling-time-us = <5000>;
|
|
gpios = <&gio_aon 3 GPIO_ACTIVE_HIGH>;
|
|
states = <1800000 1>,
|
|
<3300000 0>;
|
|
};
|
|
|
|
sd_vcc_reg: sd-vcc-reg {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "vcc-sd";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-boot-on;
|
|
enable-active-high;
|
|
gpios = <&gio_aon 4 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
};
|
|
|
|
/* The Debug UART, on Rpi5 it's on JST-SH 1.0mm 3-pin connector
|
|
* labeled "UART", i.e. the interface with the system console.
|
|
*/
|
|
&uart10 {
|
|
status = "okay";
|
|
};
|
|
|
|
/* SDIO1 is used to drive the SD card */
|
|
&sdio1 {
|
|
vqmmc-supply = <&sd_io_1v8_reg>;
|
|
vmmc-supply = <&sd_vcc_reg>;
|
|
bus-width = <4>;
|
|
sd-uhs-sdr50;
|
|
sd-uhs-ddr50;
|
|
sd-uhs-sdr104;
|
|
};
|
|
|
|
&soc {
|
|
firmware: firmware {
|
|
compatible = "raspberrypi,bcm2835-firmware", "simple-mfd";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
mboxes = <&mailbox>;
|
|
dma-ranges;
|
|
|
|
firmware_clocks: clocks {
|
|
compatible = "raspberrypi,firmware-clocks";
|
|
#clock-cells = <1>;
|
|
};
|
|
|
|
reset: reset {
|
|
compatible = "raspberrypi,firmware-reset";
|
|
#reset-cells = <1>;
|
|
};
|
|
};
|
|
|
|
power: power {
|
|
compatible = "raspberrypi,bcm2835-power";
|
|
firmware = <&firmware>;
|
|
#power-domain-cells = <1>;
|
|
};
|
|
};
|
|
|
|
&hvs {
|
|
clocks = <&firmware_clocks 4>, <&firmware_clocks 16>;
|
|
clock-names = "core", "disp";
|
|
};
|
|
|
|
&hdmi0 {
|
|
clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 0>, <&clk_27MHz>;
|
|
clock-names = "hdmi", "bvb", "audio", "cec";
|
|
};
|
|
|
|
&hdmi1 {
|
|
clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 1>, <&clk_27MHz>;
|
|
clock-names = "hdmi", "bvb", "audio", "cec";
|
|
};
|
|
|
|
&pcie1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&pcie2 {
|
|
status = "okay";
|
|
};
|