Path: blob/master/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-ovl-rp1.dts
29274 views
// 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"; };