mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 01:49:46 +00:00
Leave pcie1/pciex1/nvme disabled unless a DT parameter is used. Signed-off-by: Phil Elwell <phil@raspberrypi.com>
772 lines
15 KiB
Plaintext
772 lines
15 KiB
Plaintext
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
|
/dts-v1/;
|
|
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/clock/rp1.h>
|
|
#include <dt-bindings/interrupt-controller/irq.h>
|
|
#include <dt-bindings/mfd/rp1.h>
|
|
#include <dt-bindings/pwm/pwm.h>
|
|
#include <dt-bindings/reset/raspberrypi,firmware-reset.h>
|
|
|
|
#include "bcm2712-ds.dtsi"
|
|
|
|
/ {
|
|
compatible = "raspberrypi,5-model-b", "brcm,bcm2712";
|
|
model = "Raspberry Pi 5";
|
|
|
|
/* Will be filled by the bootloader */
|
|
memory@0 {
|
|
device_type = "memory";
|
|
#ifndef FIRMWARE_UPDATED
|
|
reg = <0 0 0x28000000>;
|
|
#else
|
|
reg = <0 0 0 0x28000000>;
|
|
#endif
|
|
};
|
|
|
|
leds: leds {
|
|
compatible = "gpio-leds";
|
|
|
|
led_pwr: led-pwr {
|
|
label = "PWR";
|
|
gpios = <&rp1_gpio 44 GPIO_ACTIVE_LOW>;
|
|
default-state = "off";
|
|
linux,default-trigger = "none";
|
|
};
|
|
|
|
led_act: led-act {
|
|
label = "ACT";
|
|
gpios = <&gio_aon 9 GPIO_ACTIVE_LOW>;
|
|
default-state = "off";
|
|
linux,default-trigger = "mmc0";
|
|
};
|
|
};
|
|
|
|
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_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
gpio = <&gio 28 GPIO_ACTIVE_HIGH>;
|
|
|
|
startup-delay-us = <150000>;
|
|
enable-active-high;
|
|
};
|
|
|
|
cam1_clk: cam1_clk {
|
|
compatible = "fixed-clock";
|
|
#clock-cells = <0>;
|
|
status = "disabled";
|
|
};
|
|
|
|
cam0_clk: cam0_clk {
|
|
compatible = "fixed-clock";
|
|
#clock-cells = <0>;
|
|
status = "disabled";
|
|
};
|
|
|
|
cam0_reg: cam0_reg {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "cam0_reg";
|
|
enable-active-high;
|
|
gpio = <&rp1_gpio 34 0>; // CD0_IO0_MICCLK, to MIPI 0 connector
|
|
};
|
|
|
|
cam1_reg: cam1_reg {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "cam1_reg";
|
|
enable-active-high;
|
|
gpio = <&rp1_gpio 46 0>; // CD1_IO0_MICCLK, to MIPI 1 connector
|
|
};
|
|
|
|
cam_dummy_reg: cam_dummy_reg {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "cam-dummy-reg";
|
|
};
|
|
|
|
dummy: dummy {
|
|
// A target for unwanted overlay fragments
|
|
};
|
|
|
|
|
|
// A few extra labels to keep overlays happy
|
|
|
|
i2c0if: i2c0if {};
|
|
i2c0mux: i2c0mux {};
|
|
};
|
|
|
|
rp1_target: &pcie2 {
|
|
brcm,vdm-qos-map = /bits/ 8 <8 8 8 9 10 10 11 11>;
|
|
aspm-no-l0s;
|
|
status = "okay";
|
|
};
|
|
|
|
&pcie1 {
|
|
brcm,fifo-qos-map = /bits/ 8 <3 3 3 3>;
|
|
};
|
|
|
|
// The system SPI for the bootloader EEPROM
|
|
&spi10 { status = "okay"; };
|
|
|
|
#include "rp1.dtsi"
|
|
|
|
&rp1 {
|
|
// PCIe address space layout:
|
|
// 00_00000000-00_00xxxxxx = RP1 peripherals
|
|
// 10_00000000-1x_xxxxxxxx = up to 64GB system RAM
|
|
|
|
// outbound access aimed at PCIe 0_00xxxxxx -> RP1 c0_40xxxxxx
|
|
// This is the RP1 peripheral space
|
|
ranges = <0xc0 0x40000000
|
|
0x02000000 0x00 0x00000000
|
|
0x00 0x00410000>;
|
|
|
|
dma-ranges =
|
|
// inbound RP1 1x_xxxxxxxx -> PCIe 1x_xxxxxxxx
|
|
<0x10 0x00000000
|
|
0x43000000 0x10 0x00000000
|
|
0x10 0x00000000>,
|
|
|
|
// inbound RP1 c0_40xxxxxx -> PCIe 00_00xxxxxx
|
|
// This allows the RP1 DMA controller to address RP1 hardware
|
|
<0xc0 0x40000000
|
|
0x02000000 0x0 0x00000000
|
|
0x0 0x00410000>,
|
|
|
|
// inbound RP1 0x_xxxxxxxx -> PCIe 1x_xxxxxxxx
|
|
<0x00 0x00000000
|
|
0x02000000 0x10 0x00000000
|
|
0x10 0x00000000>;
|
|
};
|
|
|
|
// Expose RP1 nodes as system nodes with labels
|
|
|
|
&rp1_dma {
|
|
status = "okay";
|
|
};
|
|
|
|
&rp1_eth {
|
|
status = "okay";
|
|
phy-handle = <&phy1>;
|
|
phy-reset-gpios = <&rp1_gpio 32 GPIO_ACTIVE_LOW>;
|
|
phy-reset-duration = <5>;
|
|
|
|
phy1: ethernet-phy@1 {
|
|
reg = <0x1>;
|
|
brcm,powerdown-enable;
|
|
eee-broken-1000t;
|
|
eee-broken-100tx;
|
|
};
|
|
};
|
|
|
|
/* 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";
|
|
};
|
|
|
|
gpio: &rp1_gpio {
|
|
status = "okay";
|
|
};
|
|
|
|
aux: &dummy {};
|
|
|
|
&rp1_usb0 {
|
|
pinctrl-0 = <&usb_vbus_pins>;
|
|
pinctrl-names = "default";
|
|
status = "okay";
|
|
};
|
|
|
|
&rp1_usb1 {
|
|
status = "okay";
|
|
};
|
|
|
|
#include "bcm2712-rpi.dtsi"
|
|
|
|
i2c_csi_dsi0: &i2c6 { // Note: This is for MIPI0 connector only
|
|
pinctrl-0 = <&rp1_i2c6_38_39>;
|
|
pinctrl-names = "default";
|
|
clock-frequency = <100000>;
|
|
symlink = "i2c-6";
|
|
};
|
|
|
|
i2c_csi_dsi1: &i2c4 { // Note: This is for MIPI1 connector only
|
|
pinctrl-0 = <&rp1_i2c4_40_41>;
|
|
pinctrl-names = "default";
|
|
clock-frequency = <100000>;
|
|
symlink = "i2c-4";
|
|
};
|
|
|
|
i2c_csi_dsi: &i2c_csi_dsi1 { }; // An alias for compatibility
|
|
|
|
csi0: &rp1_csi0 { };
|
|
csi1: &rp1_csi1 { };
|
|
dsi0: &rp1_dsi0 { };
|
|
dsi1: &rp1_dsi1 { };
|
|
dpi: &rp1_dpi { };
|
|
vec: &rp1_vec { };
|
|
dpi_gpio0: &rp1_dpi_24bit_gpio0 { };
|
|
dpi_gpio1: &rp1_dpi_24bit_gpio2 { };
|
|
dpi_18bit_cpadhi_gpio0: &rp1_dpi_18bit_cpadhi_gpio0 { };
|
|
dpi_18bit_cpadhi_gpio2: &rp1_dpi_18bit_cpadhi_gpio2 { };
|
|
dpi_18bit_gpio0: &rp1_dpi_18bit_gpio0 { };
|
|
dpi_18bit_gpio2: &rp1_dpi_18bit_gpio2 { };
|
|
dpi_16bit_cpadhi_gpio0: &rp1_dpi_16bit_cpadhi_gpio0 { };
|
|
dpi_16bit_cpadhi_gpio2: &rp1_dpi_16bit_cpadhi_gpio2 { };
|
|
dpi_16bit_gpio0: &rp1_dpi_16bit_gpio0 { };
|
|
dpi_16bit_gpio2: &rp1_dpi_16bit_gpio2 { };
|
|
|
|
/* Add the IOMMUs for some RP1 bus masters */
|
|
|
|
&csi0 {
|
|
iommus = <&iommu5>;
|
|
};
|
|
|
|
&csi1 {
|
|
iommus = <&iommu5>;
|
|
};
|
|
|
|
&dsi0 {
|
|
iommus = <&iommu5>;
|
|
};
|
|
|
|
&dsi1 {
|
|
iommus = <&iommu5>;
|
|
};
|
|
|
|
&dpi {
|
|
iommus = <&iommu5>;
|
|
};
|
|
|
|
&vec {
|
|
iommus = <&iommu5>;
|
|
};
|
|
|
|
&ddc0 {
|
|
status = "disabled";
|
|
};
|
|
|
|
&ddc1 {
|
|
status = "disabled";
|
|
};
|
|
|
|
&hdmi0 {
|
|
clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 0>, <&clk_27MHz>;
|
|
clock-names = "hdmi", "bvb", "audio", "cec";
|
|
status = "disabled";
|
|
};
|
|
|
|
&hdmi1 {
|
|
clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 1>, <&clk_27MHz>;
|
|
clock-names = "hdmi", "bvb", "audio", "cec";
|
|
status = "disabled";
|
|
};
|
|
|
|
&hvs {
|
|
clocks = <&firmware_clocks 4>, <&firmware_clocks 16>;
|
|
clock-names = "core", "disp";
|
|
};
|
|
|
|
&mop {
|
|
status = "disabled";
|
|
};
|
|
|
|
&moplet {
|
|
status = "disabled";
|
|
};
|
|
|
|
&pixelvalve0 {
|
|
status = "disabled";
|
|
};
|
|
|
|
&pixelvalve1 {
|
|
status = "disabled";
|
|
};
|
|
|
|
&disp_intr {
|
|
status = "disabled";
|
|
};
|
|
|
|
/* SDIO1 is used to drive the SD card */
|
|
&sdio1 {
|
|
pinctrl-0 = <&emmc_sd_pulls>, <&emmc_aon_cd_pins>;
|
|
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;
|
|
supports-cqe = <1>;
|
|
cd-gpios = <&gio_aon 5 GPIO_ACTIVE_LOW>;
|
|
//no-1-8-v;
|
|
status = "okay";
|
|
};
|
|
|
|
&pinctrl_aon {
|
|
emmc_aon_cd_pins: emmc_aon_cd_pins {
|
|
function = "sd_card_g";
|
|
pins = "aon_gpio5";
|
|
bias-pull-up;
|
|
};
|
|
|
|
/* Slight hack - only one PWM pin (status LED) is usable */
|
|
aon_pwm_1pin: aon_pwm_1pin {
|
|
function = "aon_pwm";
|
|
pins = "aon_gpio9";
|
|
};
|
|
};
|
|
|
|
&pinctrl {
|
|
pwr_button_pins: pwr_button_pins {
|
|
function = "gpio";
|
|
pins = "gpio20";
|
|
bias-pull-up;
|
|
};
|
|
|
|
wl_on_pins: wl_on_pins {
|
|
function = "gpio";
|
|
pins = "gpio28";
|
|
};
|
|
|
|
bt_shutdown_pins: bt_shutdown_pins {
|
|
function = "gpio";
|
|
pins = "gpio29";
|
|
};
|
|
|
|
emmc_sd_pulls: emmc_sd_pulls {
|
|
pins = "emmc_cmd", "emmc_dat0", "emmc_dat1", "emmc_dat2", "emmc_dat3";
|
|
bias-pull-up;
|
|
};
|
|
};
|
|
|
|
/* uarta communicates with the BT module */
|
|
&uarta {
|
|
uart-has-rtscts;
|
|
auto-flow-control;
|
|
status = "okay";
|
|
clock-frequency = <96000000>;
|
|
pinctrl-0 = <&uarta_24_pins &bt_shutdown_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
bluetooth: bluetooth {
|
|
compatible = "brcm,bcm43438-bt";
|
|
max-speed = <3000000>;
|
|
shutdown-gpios = <&gio 29 GPIO_ACTIVE_HIGH>;
|
|
local-bd-address = [ 00 00 00 00 00 00 ];
|
|
};
|
|
};
|
|
|
|
&i2c10 {
|
|
clock-frequency = <400000>;
|
|
pinctrl-0 = <&i2c3_m4_agpio0_pins>;
|
|
pinctrl-names = "default";
|
|
};
|
|
|
|
/ {
|
|
fan: cooling_fan {
|
|
status = "disabled";
|
|
compatible = "pwm-fan";
|
|
#cooling-cells = <2>;
|
|
cooling-min-state = <0>;
|
|
cooling-max-state = <3>;
|
|
cooling-levels = <0 75 125 175 250>;
|
|
pwms = <&rp1_pwm1 3 41566 PWM_POLARITY_INVERTED>;
|
|
rpm-regmap = <&rp1_pwm1>;
|
|
rpm-offset = <0x3c>;
|
|
};
|
|
|
|
pwr_button {
|
|
compatible = "gpio-keys";
|
|
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pwr_button_pins>;
|
|
status = "okay";
|
|
|
|
pwr_key: pwr {
|
|
label = "pwr_button";
|
|
// linux,code = <205>; // KEY_SUSPEND
|
|
linux,code = <116>; // KEY_POWER
|
|
gpios = <&gio 20 GPIO_ACTIVE_LOW>;
|
|
debounce-interval = <50>; // ms
|
|
};
|
|
};
|
|
};
|
|
|
|
&usb {
|
|
power-domains = <&power RPI_POWER_DOMAIN_USB>;
|
|
};
|
|
|
|
/* SDIO2 drives the WLAN interface */
|
|
&sdio2 {
|
|
pinctrl-0 = <&sdio2_30_pins>;
|
|
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";
|
|
local-mac-address = [00 00 00 00 00 00];
|
|
};
|
|
};
|
|
|
|
&pinctrl {
|
|
spi10_gpio2: spi10_gpio2 {
|
|
function = "vc_spi0";
|
|
pins = "gpio2", "gpio3", "gpio4";
|
|
bias-disable;
|
|
};
|
|
|
|
spi10_cs_gpio1: spi10_cs_gpio1 {
|
|
function = "gpio";
|
|
pins = "gpio1";
|
|
bias-pull-up;
|
|
};
|
|
};
|
|
|
|
spi10_pins: &spi10_gpio2 {};
|
|
spi10_cs_pins: &spi10_cs_gpio1 {};
|
|
|
|
&spi10 {
|
|
pinctrl-names = "default";
|
|
cs-gpios = <&gio 1 1>;
|
|
pinctrl-0 = <&spi10_pins &spi10_cs_pins>;
|
|
|
|
spidev10: spidev@0 {
|
|
compatible = "spidev";
|
|
reg = <0>; /* CE0 */
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
spi-max-frequency = <20000000>;
|
|
status = "okay";
|
|
};
|
|
};
|
|
|
|
// =============================================
|
|
// Board specific stuff here
|
|
|
|
&gio_aon {
|
|
// Don't use GIO_AON as an interrupt controller because it will
|
|
// clash with the firmware monitoring the PMIC interrupt via the VPU.
|
|
|
|
/delete-property/ interrupt-controller;
|
|
/delete-property/ #interrupt-cells;
|
|
};
|
|
|
|
&main_aon_irq {
|
|
// Don't use the MAIN_AON_IRQ interrupt controller because it will
|
|
// clash with the firmware monitoring the PMIC interrupt via the VPU.
|
|
|
|
status = "disabled";
|
|
};
|
|
|
|
&rp1_pwm1 {
|
|
status = "disabled";
|
|
pinctrl-0 = <&rp1_pwm1_gpio45>;
|
|
pinctrl-names = "default";
|
|
};
|
|
|
|
&thermal_trips {
|
|
cpu_tepid: cpu-tepid {
|
|
temperature = <50000>;
|
|
hysteresis = <5000>;
|
|
type = "active";
|
|
};
|
|
|
|
cpu_warm: cpu-warm {
|
|
temperature = <60000>;
|
|
hysteresis = <5000>;
|
|
type = "active";
|
|
};
|
|
|
|
cpu_hot: cpu-hot {
|
|
temperature = <67500>;
|
|
hysteresis = <5000>;
|
|
type = "active";
|
|
};
|
|
|
|
cpu_vhot: cpu-vhot {
|
|
temperature = <75000>;
|
|
hysteresis = <5000>;
|
|
type = "active";
|
|
};
|
|
};
|
|
|
|
&cooling_maps {
|
|
tepid {
|
|
trip = <&cpu_tepid>;
|
|
cooling-device = <&fan 1 1>;
|
|
};
|
|
|
|
warm {
|
|
trip = <&cpu_warm>;
|
|
cooling-device = <&fan 2 2>;
|
|
};
|
|
|
|
hot {
|
|
trip = <&cpu_hot>;
|
|
cooling-device = <&fan 3 3>;
|
|
};
|
|
|
|
vhot {
|
|
trip = <&cpu_vhot>;
|
|
cooling-device = <&fan 4 4>;
|
|
};
|
|
|
|
melt {
|
|
trip = <&cpu_crit>;
|
|
cooling-device = <&fan 4 4>;
|
|
};
|
|
};
|
|
|
|
&gio {
|
|
// The GPIOs above 35 are not used on Pi 5, so shrink the upper bank
|
|
// to reduce the clutter in gpioinfo/pinctrl
|
|
brcm,gpio-bank-widths = <32 4>;
|
|
|
|
gpio-line-names =
|
|
"-", // GPIO_000
|
|
"2712_BOOT_CS_N", // GPIO_001
|
|
"2712_BOOT_MISO", // GPIO_002
|
|
"2712_BOOT_MOSI", // GPIO_003
|
|
"2712_BOOT_SCLK", // GPIO_004
|
|
"-", // GPIO_005
|
|
"-", // GPIO_006
|
|
"-", // GPIO_007
|
|
"-", // GPIO_008
|
|
"-", // GPIO_009
|
|
"-", // GPIO_010
|
|
"-", // GPIO_011
|
|
"-", // GPIO_012
|
|
"-", // GPIO_013
|
|
"PCIE_SDA", // GPIO_014
|
|
"PCIE_SCL", // GPIO_015
|
|
"-", // GPIO_016
|
|
"-", // GPIO_017
|
|
"-", // GPIO_018
|
|
"-", // GPIO_019
|
|
"PWR_GPIO", // GPIO_020
|
|
"2712_G21_FS", // GPIO_021
|
|
"-", // GPIO_022
|
|
"-", // GPIO_023
|
|
"BT_RTS", // GPIO_024
|
|
"BT_CTS", // GPIO_025
|
|
"BT_TXD", // GPIO_026
|
|
"BT_RXD", // GPIO_027
|
|
"WL_ON", // GPIO_028
|
|
"BT_ON", // GPIO_029
|
|
"WIFI_SDIO_CLK", // GPIO_030
|
|
"WIFI_SDIO_CMD", // GPIO_031
|
|
"WIFI_SDIO_D0", // GPIO_032
|
|
"WIFI_SDIO_D1", // GPIO_033
|
|
"WIFI_SDIO_D2", // GPIO_034
|
|
"WIFI_SDIO_D3"; // GPIO_035
|
|
};
|
|
|
|
&gio_aon {
|
|
gpio-line-names =
|
|
"RP1_SDA", // AON_GPIO_00
|
|
"RP1_SCL", // AON_GPIO_01
|
|
"RP1_RUN", // AON_GPIO_02
|
|
"SD_IOVDD_SEL", // AON_GPIO_03
|
|
"SD_PWR_ON", // AON_GPIO_04
|
|
"SD_CDET_N", // AON_GPIO_05
|
|
"SD_FLG_N", // AON_GPIO_06
|
|
"-", // AON_GPIO_07
|
|
"2712_WAKE", // AON_GPIO_08
|
|
"2712_STAT_LED", // AON_GPIO_09
|
|
"-", // AON_GPIO_10
|
|
"-", // AON_GPIO_11
|
|
"PMIC_INT", // AON_GPIO_12
|
|
"UART_TX_FS", // AON_GPIO_13
|
|
"UART_RX_FS", // AON_GPIO_14
|
|
"-", // AON_GPIO_15
|
|
"-", // AON_GPIO_16
|
|
|
|
// Pad bank0 out to 32 entries
|
|
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
|
|
|
|
"HDMI0_SCL", // AON_SGPIO_00
|
|
"HDMI0_SDA", // AON_SGPIO_01
|
|
"HDMI1_SCL", // AON_SGPIO_02
|
|
"HDMI1_SDA", // AON_SGPIO_03
|
|
"PMIC_SCL", // AON_SGPIO_04
|
|
"PMIC_SDA"; // AON_SGPIO_05
|
|
|
|
rp1_run_hog {
|
|
gpio-hog;
|
|
gpios = <2 GPIO_ACTIVE_HIGH>;
|
|
output-high;
|
|
line-name = "RP1 RUN pin";
|
|
};
|
|
};
|
|
|
|
&rp1_gpio {
|
|
gpio-line-names =
|
|
"ID_SDA", // GPIO0
|
|
"ID_SCL", // GPIO1
|
|
"GPIO2", // GPIO2
|
|
"GPIO3", // GPIO3
|
|
"GPIO4", // GPIO4
|
|
"GPIO5", // GPIO5
|
|
"GPIO6", // GPIO6
|
|
"GPIO7", // GPIO7
|
|
"GPIO8", // GPIO8
|
|
"GPIO9", // GPIO9
|
|
"GPIO10", // GPIO10
|
|
"GPIO11", // GPIO11
|
|
"GPIO12", // GPIO12
|
|
"GPIO13", // GPIO13
|
|
"GPIO14", // GPIO14
|
|
"GPIO15", // GPIO15
|
|
"GPIO16", // GPIO16
|
|
"GPIO17", // GPIO17
|
|
"GPIO18", // GPIO18
|
|
"GPIO19", // GPIO19
|
|
"GPIO20", // GPIO20
|
|
"GPIO21", // GPIO21
|
|
"GPIO22", // GPIO22
|
|
"GPIO23", // GPIO23
|
|
"GPIO24", // GPIO24
|
|
"GPIO25", // GPIO25
|
|
"GPIO26", // GPIO26
|
|
"GPIO27", // GPIO27
|
|
|
|
"PCIE_RP1_WAKE", // GPIO28
|
|
"FAN_TACH", // GPIO29
|
|
"HOST_SDA", // GPIO30
|
|
"HOST_SCL", // GPIO31
|
|
"ETH_RST_N", // GPIO32
|
|
"-", // GPIO33
|
|
|
|
"CD0_IO0_MICCLK", // GPIO34
|
|
"CD0_IO0_MICDAT0", // GPIO35
|
|
"RP1_PCIE_CLKREQ_N", // GPIO36
|
|
"-", // GPIO37
|
|
"CD0_SDA", // GPIO38
|
|
"CD0_SCL", // GPIO39
|
|
"CD1_SDA", // GPIO40
|
|
"CD1_SCL", // GPIO41
|
|
"USB_VBUS_EN", // GPIO42
|
|
"USB_OC_N", // GPIO43
|
|
"RP1_STAT_LED", // GPIO44
|
|
"FAN_PWM", // GPIO45
|
|
"CD1_IO0_MICCLK", // GPIO46
|
|
"2712_WAKE", // GPIO47
|
|
"CD1_IO1_MICDAT1", // GPIO48
|
|
"EN_MAX_USB_CUR", // GPIO49
|
|
"-", // GPIO50
|
|
"-", // GPIO51
|
|
"-", // GPIO52
|
|
"-"; // GPIO53
|
|
|
|
usb_vbus_pins: usb_vbus_pins {
|
|
function = "vbus1";
|
|
pins = "gpio42", "gpio43";
|
|
};
|
|
};
|
|
|
|
/ {
|
|
__overrides__ {
|
|
sd_cqe = <&sdio1>, "supports-cqe:0";
|
|
};
|
|
};
|
|
|
|
&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";
|
|
};
|
|
|
|
&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 {
|
|
brcm,clkreq-mode = "safe";
|
|
};
|
|
|
|
&pcie2 {
|
|
status = "okay";
|
|
};
|