mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-01-11 17:10:13 +00:00
The node describing the RP1 endpoint currently uses a specific name
('rp1_nexus') that does not correctly reflect the PCI topology.
Update the DT with the correct topology and use generic node names.
Additionally, since the driver dropped overlay support in favor of a
fully described DT, rename '...-ovl-rp1.dts' to '...-base.dtsi' for
inclusion in the board DTB, as it is no longer compiled as a
standalone DTB.
Signed-off-by: Andrea della Porta <andrea.porta@suse.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/827b12ba48bb47bc77a0f5e5617aea961c8bc6b5.1766077285.git.andrea.porta@suse.com
Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
255 lines
5.0 KiB
Plaintext
255 lines
5.0 KiB
Plaintext
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
|
/dts-v1/;
|
|
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/input/input.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>;
|
|
};
|
|
|
|
gpio-keys {
|
|
compatible = "gpio-keys";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pwr_button_default>;
|
|
status = "okay";
|
|
|
|
power_button: power-button {
|
|
label = "pwr_button";
|
|
linux,code = <KEY_POWER>;
|
|
gpios = <&gio 20 GPIO_ACTIVE_LOW>;
|
|
debounce-interval = <50>;
|
|
};
|
|
};
|
|
|
|
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>;
|
|
};
|
|
|
|
wl_on_reg: wl-on-reg {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "wl-on-regulator";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
pinctrl-0 = <&wl_on_default>;
|
|
pinctrl-names = "default";
|
|
gpio = <&gio 28 GPIO_ACTIVE_HIGH>;
|
|
startup-delay-us = <150000>;
|
|
enable-active-high;
|
|
};
|
|
};
|
|
|
|
&pinctrl {
|
|
bt_shutdown_default: bt-shutdown-default-state {
|
|
function = "gpio";
|
|
pins = "gpio29";
|
|
};
|
|
|
|
emmc_sd_default: emmc-sd-default-state {
|
|
pins = "emmc_cmd", "emmc_dat0", "emmc_dat1", "emmc_dat2", "emmc_dat3";
|
|
bias-pull-up;
|
|
};
|
|
|
|
pwr_button_default: pwr-button-default-state {
|
|
function = "gpio";
|
|
pins = "gpio20";
|
|
bias-pull-up;
|
|
};
|
|
|
|
sdio2_30_default: sdio2-30-default-state {
|
|
clk-pins {
|
|
function = "sd2";
|
|
pins = "gpio30";
|
|
bias-disable;
|
|
};
|
|
cmd-pins {
|
|
function = "sd2";
|
|
pins = "gpio31";
|
|
bias-pull-up;
|
|
};
|
|
dat-pins {
|
|
function = "sd2";
|
|
pins = "gpio32", "gpio33", "gpio34", "gpio35";
|
|
bias-pull-up;
|
|
};
|
|
};
|
|
|
|
uarta_24_default: uarta-24-default-state {
|
|
rts-pins {
|
|
function = "uart0";
|
|
pins = "gpio24";
|
|
bias-disable;
|
|
};
|
|
cts-pins {
|
|
function = "uart0";
|
|
pins = "gpio25";
|
|
bias-pull-up;
|
|
};
|
|
txd-pins {
|
|
function = "uart0";
|
|
pins = "gpio26";
|
|
bias-disable;
|
|
};
|
|
rxd-pins {
|
|
function = "uart0";
|
|
pins = "gpio27";
|
|
bias-pull-up;
|
|
};
|
|
};
|
|
|
|
wl_on_default: wl-on-default-state {
|
|
function = "gpio";
|
|
pins = "gpio28";
|
|
};
|
|
};
|
|
|
|
&pinctrl_aon {
|
|
emmc_aon_cd_default: emmc-aon-cd-default-state {
|
|
function = "sd_card_g";
|
|
pins = "aon_gpio5";
|
|
bias-pull-up;
|
|
};
|
|
};
|
|
|
|
/* 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 {
|
|
pinctrl-0 = <&emmc_sd_default>, <&emmc_aon_cd_default>;
|
|
pinctrl-names = "default";
|
|
vqmmc-supply = <&sd_io_1v8_reg>;
|
|
vmmc-supply = <&sd_vcc_reg>;
|
|
bus-width = <4>;
|
|
sd-uhs-sdr50;
|
|
sd-uhs-ddr50;
|
|
sd-uhs-sdr104;
|
|
cd-gpios = <&gio_aon 5 GPIO_ACTIVE_LOW>;
|
|
};
|
|
|
|
&sdio2 {
|
|
pinctrl-0 = <&sdio2_30_default>;
|
|
pinctrl-names = "default";
|
|
bus-width = <4>;
|
|
vmmc-supply = <&wl_on_reg>;
|
|
sd-uhs-ddr50;
|
|
non-removable;
|
|
status = "okay";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
wifi: wifi@1 {
|
|
reg = <1>;
|
|
compatible = "brcm,bcm4329-fmac";
|
|
};
|
|
};
|
|
|
|
&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>;
|
|
};
|
|
};
|
|
|
|
/* uarta communicates with the BT module */
|
|
&uarta {
|
|
uart-has-rtscts;
|
|
pinctrl-0 = <&uarta_24_default &bt_shutdown_default>;
|
|
pinctrl-names = "default";
|
|
status = "okay";
|
|
|
|
bluetooth: bluetooth {
|
|
compatible = "brcm,bcm43438-bt";
|
|
max-speed = <3000000>;
|
|
shutdown-gpios = <&gio 29 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
};
|
|
|
|
&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";
|
|
};
|