1*bc97e616SAndrea della Porta// SPDX-License-Identifier: (GPL-2.0 OR MIT) 2*bc97e616SAndrea della Porta/dts-v1/; 3*bc97e616SAndrea della Porta 4*bc97e616SAndrea della Porta#include <dt-bindings/gpio/gpio.h> 5*bc97e616SAndrea della Porta#include <dt-bindings/input/input.h> 6*bc97e616SAndrea della Porta#include "bcm2712.dtsi" 7*bc97e616SAndrea della Porta 8*bc97e616SAndrea della Porta/ { 9*bc97e616SAndrea della Porta compatible = "raspberrypi,5-model-b", "brcm,bcm2712"; 10*bc97e616SAndrea della Porta model = "Raspberry Pi 5"; 11*bc97e616SAndrea della Porta 12*bc97e616SAndrea della Porta aliases { 13*bc97e616SAndrea della Porta serial10 = &uart10; 14*bc97e616SAndrea della Porta }; 15*bc97e616SAndrea della Porta 16*bc97e616SAndrea della Porta chosen: chosen { 17*bc97e616SAndrea della Porta stdout-path = "serial10:115200n8"; 18*bc97e616SAndrea della Porta }; 19*bc97e616SAndrea della Porta 20*bc97e616SAndrea della Porta clk_rp1_xosc: clock-50000000 { 21*bc97e616SAndrea della Porta compatible = "fixed-clock"; 22*bc97e616SAndrea della Porta #clock-cells = <0>; 23*bc97e616SAndrea della Porta clock-output-names = "rp1-xosc"; 24*bc97e616SAndrea della Porta clock-frequency = <50000000>; 25*bc97e616SAndrea della Porta }; 26*bc97e616SAndrea della Porta 27*bc97e616SAndrea della Porta /* Will be filled by the bootloader */ 28*bc97e616SAndrea della Porta memory@0 { 29*bc97e616SAndrea della Porta device_type = "memory"; 30*bc97e616SAndrea della Porta reg = <0 0 0 0x28000000>; 31*bc97e616SAndrea della Porta }; 32*bc97e616SAndrea della Porta 33*bc97e616SAndrea della Porta gpio-keys { 34*bc97e616SAndrea della Porta compatible = "gpio-keys"; 35*bc97e616SAndrea della Porta pinctrl-names = "default"; 36*bc97e616SAndrea della Porta pinctrl-0 = <&pwr_button_default>; 37*bc97e616SAndrea della Porta status = "okay"; 38*bc97e616SAndrea della Porta 39*bc97e616SAndrea della Porta power_button: power-button { 40*bc97e616SAndrea della Porta label = "pwr_button"; 41*bc97e616SAndrea della Porta linux,code = <KEY_POWER>; 42*bc97e616SAndrea della Porta gpios = <&gio 20 GPIO_ACTIVE_LOW>; 43*bc97e616SAndrea della Porta debounce-interval = <50>; 44*bc97e616SAndrea della Porta }; 45*bc97e616SAndrea della Porta }; 46*bc97e616SAndrea della Porta 47*bc97e616SAndrea della Porta sd_io_1v8_reg: sd-io-1v8-reg { 48*bc97e616SAndrea della Porta compatible = "regulator-gpio"; 49*bc97e616SAndrea della Porta regulator-name = "vdd-sd-io"; 50*bc97e616SAndrea della Porta regulator-min-microvolt = <1800000>; 51*bc97e616SAndrea della Porta regulator-max-microvolt = <3300000>; 52*bc97e616SAndrea della Porta regulator-boot-on; 53*bc97e616SAndrea della Porta regulator-always-on; 54*bc97e616SAndrea della Porta regulator-settling-time-us = <5000>; 55*bc97e616SAndrea della Porta gpios = <&gio_aon 3 GPIO_ACTIVE_HIGH>; 56*bc97e616SAndrea della Porta states = <1800000 1>, 57*bc97e616SAndrea della Porta <3300000 0>; 58*bc97e616SAndrea della Porta }; 59*bc97e616SAndrea della Porta 60*bc97e616SAndrea della Porta sd_vcc_reg: sd-vcc-reg { 61*bc97e616SAndrea della Porta compatible = "regulator-fixed"; 62*bc97e616SAndrea della Porta regulator-name = "vcc-sd"; 63*bc97e616SAndrea della Porta regulator-min-microvolt = <3300000>; 64*bc97e616SAndrea della Porta regulator-max-microvolt = <3300000>; 65*bc97e616SAndrea della Porta regulator-boot-on; 66*bc97e616SAndrea della Porta enable-active-high; 67*bc97e616SAndrea della Porta gpios = <&gio_aon 4 GPIO_ACTIVE_HIGH>; 68*bc97e616SAndrea della Porta }; 69*bc97e616SAndrea della Porta 70*bc97e616SAndrea della Porta wl_on_reg: wl-on-reg { 71*bc97e616SAndrea della Porta compatible = "regulator-fixed"; 72*bc97e616SAndrea della Porta regulator-name = "wl-on-regulator"; 73*bc97e616SAndrea della Porta regulator-min-microvolt = <3300000>; 74*bc97e616SAndrea della Porta regulator-max-microvolt = <3300000>; 75*bc97e616SAndrea della Porta pinctrl-0 = <&wl_on_default>; 76*bc97e616SAndrea della Porta pinctrl-names = "default"; 77*bc97e616SAndrea della Porta gpio = <&gio 28 GPIO_ACTIVE_HIGH>; 78*bc97e616SAndrea della Porta startup-delay-us = <150000>; 79*bc97e616SAndrea della Porta enable-active-high; 80*bc97e616SAndrea della Porta }; 81*bc97e616SAndrea della Porta}; 82*bc97e616SAndrea della Porta 83*bc97e616SAndrea della Porta&pinctrl { 84*bc97e616SAndrea della Porta bt_shutdown_default: bt-shutdown-default-state { 85*bc97e616SAndrea della Porta function = "gpio"; 86*bc97e616SAndrea della Porta pins = "gpio29"; 87*bc97e616SAndrea della Porta }; 88*bc97e616SAndrea della Porta 89*bc97e616SAndrea della Porta emmc_sd_default: emmc-sd-default-state { 90*bc97e616SAndrea della Porta pins = "emmc_cmd", "emmc_dat0", "emmc_dat1", "emmc_dat2", "emmc_dat3"; 91*bc97e616SAndrea della Porta bias-pull-up; 92*bc97e616SAndrea della Porta }; 93*bc97e616SAndrea della Porta 94*bc97e616SAndrea della Porta pwr_button_default: pwr-button-default-state { 95*bc97e616SAndrea della Porta function = "gpio"; 96*bc97e616SAndrea della Porta pins = "gpio20"; 97*bc97e616SAndrea della Porta bias-pull-up; 98*bc97e616SAndrea della Porta }; 99*bc97e616SAndrea della Porta 100*bc97e616SAndrea della Porta sdio2_30_default: sdio2-30-default-state { 101*bc97e616SAndrea della Porta clk-pins { 102*bc97e616SAndrea della Porta function = "sd2"; 103*bc97e616SAndrea della Porta pins = "gpio30"; 104*bc97e616SAndrea della Porta bias-disable; 105*bc97e616SAndrea della Porta }; 106*bc97e616SAndrea della Porta cmd-pins { 107*bc97e616SAndrea della Porta function = "sd2"; 108*bc97e616SAndrea della Porta pins = "gpio31"; 109*bc97e616SAndrea della Porta bias-pull-up; 110*bc97e616SAndrea della Porta }; 111*bc97e616SAndrea della Porta dat-pins { 112*bc97e616SAndrea della Porta function = "sd2"; 113*bc97e616SAndrea della Porta pins = "gpio32", "gpio33", "gpio34", "gpio35"; 114*bc97e616SAndrea della Porta bias-pull-up; 115*bc97e616SAndrea della Porta }; 116*bc97e616SAndrea della Porta }; 117*bc97e616SAndrea della Porta 118*bc97e616SAndrea della Porta uarta_24_default: uarta-24-default-state { 119*bc97e616SAndrea della Porta rts-pins { 120*bc97e616SAndrea della Porta function = "uart0"; 121*bc97e616SAndrea della Porta pins = "gpio24"; 122*bc97e616SAndrea della Porta bias-disable; 123*bc97e616SAndrea della Porta }; 124*bc97e616SAndrea della Porta cts-pins { 125*bc97e616SAndrea della Porta function = "uart0"; 126*bc97e616SAndrea della Porta pins = "gpio25"; 127*bc97e616SAndrea della Porta bias-pull-up; 128*bc97e616SAndrea della Porta }; 129*bc97e616SAndrea della Porta txd-pins { 130*bc97e616SAndrea della Porta function = "uart0"; 131*bc97e616SAndrea della Porta pins = "gpio26"; 132*bc97e616SAndrea della Porta bias-disable; 133*bc97e616SAndrea della Porta }; 134*bc97e616SAndrea della Porta rxd-pins { 135*bc97e616SAndrea della Porta function = "uart0"; 136*bc97e616SAndrea della Porta pins = "gpio27"; 137*bc97e616SAndrea della Porta bias-pull-up; 138*bc97e616SAndrea della Porta }; 139*bc97e616SAndrea della Porta }; 140*bc97e616SAndrea della Porta 141*bc97e616SAndrea della Porta wl_on_default: wl-on-default-state { 142*bc97e616SAndrea della Porta function = "gpio"; 143*bc97e616SAndrea della Porta pins = "gpio28"; 144*bc97e616SAndrea della Porta }; 145*bc97e616SAndrea della Porta}; 146*bc97e616SAndrea della Porta 147*bc97e616SAndrea della Porta&pinctrl_aon { 148*bc97e616SAndrea della Porta emmc_aon_cd_default: emmc-aon-cd-default-state { 149*bc97e616SAndrea della Porta function = "sd_card_g"; 150*bc97e616SAndrea della Porta pins = "aon_gpio5"; 151*bc97e616SAndrea della Porta bias-pull-up; 152*bc97e616SAndrea della Porta }; 153*bc97e616SAndrea della Porta}; 154*bc97e616SAndrea della Porta 155*bc97e616SAndrea della Porta/* The Debug UART, on Rpi5 it's on JST-SH 1.0mm 3-pin connector 156*bc97e616SAndrea della Porta * labeled "UART", i.e. the interface with the system console. 157*bc97e616SAndrea della Porta */ 158*bc97e616SAndrea della Porta&uart10 { 159*bc97e616SAndrea della Porta status = "okay"; 160*bc97e616SAndrea della Porta}; 161*bc97e616SAndrea della Porta 162*bc97e616SAndrea della Porta/* SDIO1 is used to drive the SD card */ 163*bc97e616SAndrea della Porta&sdio1 { 164*bc97e616SAndrea della Porta pinctrl-0 = <&emmc_sd_default>, <&emmc_aon_cd_default>; 165*bc97e616SAndrea della Porta pinctrl-names = "default"; 166*bc97e616SAndrea della Porta vqmmc-supply = <&sd_io_1v8_reg>; 167*bc97e616SAndrea della Porta vmmc-supply = <&sd_vcc_reg>; 168*bc97e616SAndrea della Porta bus-width = <4>; 169*bc97e616SAndrea della Porta sd-uhs-sdr50; 170*bc97e616SAndrea della Porta sd-uhs-ddr50; 171*bc97e616SAndrea della Porta sd-uhs-sdr104; 172*bc97e616SAndrea della Porta cd-gpios = <&gio_aon 5 GPIO_ACTIVE_LOW>; 173*bc97e616SAndrea della Porta}; 174*bc97e616SAndrea della Porta 175*bc97e616SAndrea della Porta&sdio2 { 176*bc97e616SAndrea della Porta pinctrl-0 = <&sdio2_30_default>; 177*bc97e616SAndrea della Porta pinctrl-names = "default"; 178*bc97e616SAndrea della Porta bus-width = <4>; 179*bc97e616SAndrea della Porta vmmc-supply = <&wl_on_reg>; 180*bc97e616SAndrea della Porta sd-uhs-ddr50; 181*bc97e616SAndrea della Porta non-removable; 182*bc97e616SAndrea della Porta status = "okay"; 183*bc97e616SAndrea della Porta #address-cells = <1>; 184*bc97e616SAndrea della Porta #size-cells = <0>; 185*bc97e616SAndrea della Porta 186*bc97e616SAndrea della Porta wifi: wifi@1 { 187*bc97e616SAndrea della Porta reg = <1>; 188*bc97e616SAndrea della Porta compatible = "brcm,bcm4329-fmac"; 189*bc97e616SAndrea della Porta }; 190*bc97e616SAndrea della Porta}; 191*bc97e616SAndrea della Porta 192*bc97e616SAndrea della Porta&soc { 193*bc97e616SAndrea della Porta firmware: firmware { 194*bc97e616SAndrea della Porta compatible = "raspberrypi,bcm2835-firmware", "simple-mfd"; 195*bc97e616SAndrea della Porta #address-cells = <1>; 196*bc97e616SAndrea della Porta #size-cells = <1>; 197*bc97e616SAndrea della Porta 198*bc97e616SAndrea della Porta mboxes = <&mailbox>; 199*bc97e616SAndrea della Porta dma-ranges; 200*bc97e616SAndrea della Porta 201*bc97e616SAndrea della Porta firmware_clocks: clocks { 202*bc97e616SAndrea della Porta compatible = "raspberrypi,firmware-clocks"; 203*bc97e616SAndrea della Porta #clock-cells = <1>; 204*bc97e616SAndrea della Porta }; 205*bc97e616SAndrea della Porta 206*bc97e616SAndrea della Porta reset: reset { 207*bc97e616SAndrea della Porta compatible = "raspberrypi,firmware-reset"; 208*bc97e616SAndrea della Porta #reset-cells = <1>; 209*bc97e616SAndrea della Porta }; 210*bc97e616SAndrea della Porta }; 211*bc97e616SAndrea della Porta 212*bc97e616SAndrea della Porta power: power { 213*bc97e616SAndrea della Porta compatible = "raspberrypi,bcm2835-power"; 214*bc97e616SAndrea della Porta firmware = <&firmware>; 215*bc97e616SAndrea della Porta #power-domain-cells = <1>; 216*bc97e616SAndrea della Porta }; 217*bc97e616SAndrea della Porta}; 218*bc97e616SAndrea della Porta 219*bc97e616SAndrea della Porta/* uarta communicates with the BT module */ 220*bc97e616SAndrea della Porta&uarta { 221*bc97e616SAndrea della Porta uart-has-rtscts; 222*bc97e616SAndrea della Porta pinctrl-0 = <&uarta_24_default &bt_shutdown_default>; 223*bc97e616SAndrea della Porta pinctrl-names = "default"; 224*bc97e616SAndrea della Porta status = "okay"; 225*bc97e616SAndrea della Porta 226*bc97e616SAndrea della Porta bluetooth: bluetooth { 227*bc97e616SAndrea della Porta compatible = "brcm,bcm43438-bt"; 228*bc97e616SAndrea della Porta max-speed = <3000000>; 229*bc97e616SAndrea della Porta shutdown-gpios = <&gio 29 GPIO_ACTIVE_HIGH>; 230*bc97e616SAndrea della Porta }; 231*bc97e616SAndrea della Porta}; 232*bc97e616SAndrea della Porta 233*bc97e616SAndrea della Porta&hvs { 234*bc97e616SAndrea della Porta clocks = <&firmware_clocks 4>, <&firmware_clocks 16>; 235*bc97e616SAndrea della Porta clock-names = "core", "disp"; 236*bc97e616SAndrea della Porta}; 237*bc97e616SAndrea della Porta 238*bc97e616SAndrea della Porta&hdmi0 { 239*bc97e616SAndrea della Porta clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 0>, <&clk_27MHz>; 240*bc97e616SAndrea della Porta clock-names = "hdmi", "bvb", "audio", "cec"; 241*bc97e616SAndrea della Porta}; 242*bc97e616SAndrea della Porta 243*bc97e616SAndrea della Porta&hdmi1 { 244*bc97e616SAndrea della Porta clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 1>, <&clk_27MHz>; 245*bc97e616SAndrea della Porta clock-names = "hdmi", "bvb", "audio", "cec"; 246*bc97e616SAndrea della Porta}; 247*bc97e616SAndrea della Porta 248*bc97e616SAndrea della Porta&pcie1 { 249*bc97e616SAndrea della Porta status = "okay"; 250*bc97e616SAndrea della Porta}; 251*bc97e616SAndrea della Porta 252*bc97e616SAndrea della Porta&pcie2 { 253*bc97e616SAndrea della Porta status = "okay"; 254*bc97e616SAndrea della Porta}; 255