| From b229e7f5a6d21d1b52f3f19fed58bba638714884 Mon Sep 17 00:00:00 2001 |
| From: Phil Elwell <phil@raspberrypi.com> |
| Date: Thu, 30 Jan 2020 15:48:00 +0000 |
| Subject: [PATCH] ARM: dts: Rebuild downstream DTS files |
| |
| Refactor the tree of downstream DTS files to achieve approximately the |
| same end result but wihout modifying upstream files (except for |
| bcm2711-rpi-4-b.dts). |
| |
| Signed-off-by: Phil Elwell <phil@raspberrypi.com> |
| --- |
| arch/arm/boot/dts/bcm2708-rpi.dtsi | 133 +-------- |
| arch/arm/boot/dts/bcm2708.dtsi | 4 + |
| arch/arm/boot/dts/bcm2709.dtsi | 4 + |
| arch/arm/boot/dts/bcm270x-rpi.dtsi | 139 +++++++++ |
| arch/arm/boot/dts/bcm270x.dtsi | 98 ++++--- |
| arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts | 13 + |
| arch/arm/boot/dts/bcm2710.dtsi | 4 + |
| arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 315 ++++++++++++++++++++- |
| arch/arm/boot/dts/bcm2711-rpi.dtsi | 222 +++++++++++++++ |
| 9 files changed, 766 insertions(+), 166 deletions(-) |
| create mode 100644 arch/arm/boot/dts/bcm270x-rpi.dtsi |
| create mode 100644 arch/arm/boot/dts/bcm2711-rpi.dtsi |
| |
| --- a/arch/arm/boot/dts/bcm2708-rpi.dtsi |
| +++ b/arch/arm/boot/dts/bcm2708-rpi.dtsi |
| @@ -1,6 +1,7 @@ |
| -/* Downstream modifications to bcm2835-rpi.dtsi */ |
| +/* Downstream modifications common to bcm2835, bcm2836, bcm2837 */ |
| |
| #include "bcm2835-rpi.dtsi" |
| +#include "bcm270x-rpi.dtsi" |
| |
| / { |
| memory@0 { |
| @@ -9,147 +10,27 @@ |
| }; |
| |
| aliases { |
| - audio = &audio; |
| - aux = &aux; |
| - sound = &sound; |
| - soc = &soc; |
| - dma = &dma; |
| - intc = &intc; |
| - watchdog = &watchdog; |
| - random = &random; |
| - mailbox = &mailbox; |
| - gpio = &gpio; |
| - uart0 = &uart0; |
| - sdhost = &sdhost; |
| - mmc0 = &sdhost; |
| - i2s = &i2s; |
| - spi0 = &spi0; |
| - i2c0 = &i2c0; |
| - uart1 = &uart1; |
| - spi1 = &spi1; |
| - spi2 = &spi2; |
| - mmc = &mmc; |
| - mmc1 = &mmc; |
| - i2c1 = &i2c1; |
| i2c2 = &i2c2; |
| - usb = &usb; |
| - leds = &leds; |
| - fb = &fb; |
| - thermal = &thermal; |
| - axiperf = &axiperf; |
| - }; |
| - |
| - leds: leds { |
| - compatible = "gpio-leds"; |
| - }; |
| - |
| - soc { |
| - gpiomem { |
| - compatible = "brcm,bcm2835-gpiomem"; |
| - reg = <0x7e200000 0x1000>; |
| - }; |
| - |
| - fb: fb { |
| - compatible = "brcm,bcm2708-fb"; |
| - firmware = <&firmware>; |
| - status = "okay"; |
| - }; |
| - |
| - vcsm: vcsm { |
| - compatible = "raspberrypi,bcm2835-vcsm"; |
| - firmware = <&firmware>; |
| - status = "okay"; |
| - }; |
| - |
| - /* Onboard audio */ |
| - audio: audio { |
| - compatible = "brcm,bcm2835-audio"; |
| - brcm,pwm-channels = <8>; |
| - status = "disabled"; |
| - }; |
| - |
| - /* External sound card */ |
| - sound: sound { |
| - status = "disabled"; |
| - }; |
| }; |
| |
| __overrides__ { |
| - cache_line_size; |
| - |
| - uart0 = <&uart0>,"status"; |
| - uart1 = <&uart1>,"status"; |
| - i2s = <&i2s>,"status"; |
| - spi = <&spi0>,"status"; |
| - i2c0 = <&i2c0>,"status"; |
| - i2c1 = <&i2c1>,"status"; |
| i2c2_iknowwhatimdoing = <&i2c2>,"status"; |
| - i2c0_baudrate = <&i2c0>,"clock-frequency:0"; |
| - i2c1_baudrate = <&i2c1>,"clock-frequency:0"; |
| i2c2_baudrate = <&i2c2>,"clock-frequency:0"; |
| - |
| - audio = <&audio>,"status"; |
| - watchdog = <&watchdog>,"status"; |
| - random = <&random>,"status"; |
| - sd_overclock = <&sdhost>,"brcm,overclock-50:0"; |
| - sd_poll_once = <&sdhost>,"non-removable?"; |
| - sd_force_pio = <&sdhost>,"brcm,force-pio?"; |
| - sd_pio_limit = <&sdhost>,"brcm,pio-limit:0"; |
| - sd_debug = <&sdhost>,"brcm,debug"; |
| - sdio_overclock = <&mmc>,"brcm,overclock-50:0", |
| - <&mmcnr>,"brcm,overclock-50:0"; |
| - axiperf = <&axiperf>,"status"; |
| + sd_poll_once = <&sdhost>, "non-removable?"; |
| }; |
| }; |
| |
| -&hdmi { |
| - power-domains = <&power RPI_POWER_DOMAIN_HDMI>; |
| - status = "disabled"; |
| -}; |
| - |
| -&txp { |
| - status = "disabled"; |
| -}; |
| - |
| -&i2c0 { |
| - status = "disabled"; |
| -}; |
| - |
| -&i2c1 { |
| - status = "disabled"; |
| -}; |
| - |
| -&i2c2 { |
| - status = "disabled"; |
| -}; |
| - |
| -&clocks { |
| - firmware = <&firmware>; |
| -}; |
| - |
| -&sdhci { |
| - pinctrl-names = "default"; |
| - pinctrl-0 = <&emmc_gpio48>; |
| - bus-width = <4>; |
| -}; |
| - |
| -sdhost_pins: &sdhost_gpio48 { |
| - /* Add alias */ |
| -}; |
| - |
| &sdhost { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&sdhost_gpio48>; |
| - bus-width = <4>; |
| - brcm,overclock-50 = <0>; |
| - brcm,pio-limit = <1>; |
| status = "okay"; |
| }; |
| |
| -&cpu_thermal { |
| - /delete-node/ trips; |
| +&hdmi { |
| + power-domains = <&power RPI_POWER_DOMAIN_HDMI>; |
| + status = "disabled"; |
| }; |
| |
| -&vec { |
| +&i2c2 { |
| status = "disabled"; |
| }; |
| --- a/arch/arm/boot/dts/bcm2708.dtsi |
| +++ b/arch/arm/boot/dts/bcm2708.dtsi |
| @@ -8,3 +8,7 @@ |
| arm_freq; |
| }; |
| }; |
| + |
| +&vc4 { |
| + status = "disabled"; |
| +}; |
| --- a/arch/arm/boot/dts/bcm2709.dtsi |
| +++ b/arch/arm/boot/dts/bcm2709.dtsi |
| @@ -16,3 +16,7 @@ |
| <&v7_cpu3>, "clock-frequency:0"; |
| }; |
| }; |
| + |
| +&vc4 { |
| + status = "disabled"; |
| +}; |
| --- /dev/null |
| +++ b/arch/arm/boot/dts/bcm270x-rpi.dtsi |
| @@ -0,0 +1,139 @@ |
| +/* Downstream modifications to bcm2835-rpi.dtsi */ |
| + |
| +/ { |
| + aliases { |
| + audio = &audio; |
| + aux = &aux; |
| + sound = &sound; |
| + soc = &soc; |
| + dma = &dma; |
| + intc = &intc; |
| + watchdog = &watchdog; |
| + random = &random; |
| + mailbox = &mailbox; |
| + gpio = &gpio; |
| + uart0 = &uart0; |
| + uart1 = &uart1; |
| + sdhost = &sdhost; |
| + mmc = &mmc; |
| + mmc1 = &mmc; |
| + mmc0 = &sdhost; |
| + i2s = &i2s; |
| + i2c0 = &i2c0; |
| + i2c1 = &i2c1; |
| + spi0 = &spi0; |
| + spi1 = &spi1; |
| + spi2 = &spi2; |
| + usb = &usb; |
| + leds = &leds; |
| + fb = &fb; |
| + thermal = &thermal; |
| + axiperf = &axiperf; |
| + }; |
| + |
| + /* Define these notional regulators for use by overlays */ |
| + vdd_3v3_reg: fixedregulator_3v3 { |
| + compatible = "regulator-fixed"; |
| + regulator-always-on; |
| + regulator-max-microvolt = <3300000>; |
| + regulator-min-microvolt = <3300000>; |
| + regulator-name = "3v3"; |
| + }; |
| + |
| + vdd_5v0_reg: fixedregulator_5v0 { |
| + compatible = "regulator-fixed"; |
| + regulator-always-on; |
| + regulator-max-microvolt = <5000000>; |
| + regulator-min-microvolt = <5000000>; |
| + regulator-name = "5v0"; |
| + }; |
| + |
| + leds: leds { |
| + compatible = "gpio-leds"; |
| + }; |
| + |
| + soc { |
| + gpiomem { |
| + compatible = "brcm,bcm2835-gpiomem"; |
| + reg = <0x7e200000 0x1000>; |
| + }; |
| + |
| + fb: fb { |
| + compatible = "brcm,bcm2708-fb"; |
| + firmware = <&firmware>; |
| + status = "okay"; |
| + }; |
| + |
| + vcsm: vcsm { |
| + compatible = "raspberrypi,bcm2835-vcsm"; |
| + firmware = <&firmware>; |
| + status = "okay"; |
| + }; |
| + |
| + /* Onboard audio */ |
| + audio: audio { |
| + compatible = "brcm,bcm2835-audio"; |
| + brcm,pwm-channels = <8>; |
| + status = "disabled"; |
| + }; |
| + |
| + /* External sound card */ |
| + sound: sound { |
| + status = "disabled"; |
| + }; |
| + }; |
| + |
| + __overrides__ { |
| + cache_line_size; |
| + |
| + uart0 = <&uart0>,"status"; |
| + uart1 = <&uart1>,"status"; |
| + i2s = <&i2s>,"status"; |
| + spi = <&spi0>,"status"; |
| + i2c0 = <&i2c0>,"status"; |
| + i2c1 = <&i2c1>,"status"; |
| + i2c0_baudrate = <&i2c0>,"clock-frequency:0"; |
| + i2c1_baudrate = <&i2c1>,"clock-frequency:0"; |
| + |
| + audio = <&audio>,"status"; |
| + watchdog = <&watchdog>,"status"; |
| + random = <&random>,"status"; |
| + sd_overclock = <&sdhost>,"brcm,overclock-50:0"; |
| + sd_force_pio = <&sdhost>,"brcm,force-pio?"; |
| + sd_pio_limit = <&sdhost>,"brcm,pio-limit:0"; |
| + sd_debug = <&sdhost>,"brcm,debug"; |
| + sdio_overclock = <&mmc>,"brcm,overclock-50:0", |
| + <&mmcnr>,"brcm,overclock-50:0"; |
| + axiperf = <&axiperf>,"status"; |
| + }; |
| +}; |
| + |
| +&txp { |
| + status = "disabled"; |
| +}; |
| + |
| +&i2c0 { |
| + status = "disabled"; |
| +}; |
| + |
| +&i2c1 { |
| + status = "disabled"; |
| +}; |
| + |
| +&clocks { |
| + firmware = <&firmware>; |
| +}; |
| + |
| +&sdhci { |
| + pinctrl-names = "default"; |
| + pinctrl-0 = <&emmc_gpio48>; |
| + bus-width = <4>; |
| +}; |
| + |
| +&cpu_thermal { |
| + /delete-node/ trips; |
| +}; |
| + |
| +&vec { |
| + status = "disabled"; |
| +}; |
| --- a/arch/arm/boot/dts/bcm270x.dtsi |
| +++ b/arch/arm/boot/dts/bcm270x.dtsi |
| @@ -17,32 +17,8 @@ |
| /* Add label */ |
| }; |
| |
| - gpio@7e200000 { /* gpio */ |
| - interrupts = <2 17>, <2 18>; |
| - |
| - dpi_18bit_gpio0: dpi_18bit_gpio0 { |
| - brcm,pins = <0 1 2 3 4 5 6 7 8 9 10 11 |
| - 12 13 14 15 16 17 18 19 |
| - 20 21>; |
| - brcm,function = <BCM2835_FSEL_ALT2>; |
| - }; |
| - }; |
| - |
| - serial@7e201000 { /* uart0 */ |
| - /* Enable CTS bug workaround */ |
| - cts-event-workaround; |
| - }; |
| - |
| - i2s@7e203000 { /* i2s */ |
| - #sound-dai-cells = <0>; |
| - reg = <0x7e203000 0x24>; |
| - clocks = <&clocks BCM2835_CLOCK_PCM>; |
| - }; |
| - |
| spi0: spi@7e204000 { |
| /* Add label */ |
| - dmas = <&dma 6>, <&dma 7>; |
| - dma-names = "tx", "rx"; |
| }; |
| |
| pixelvalve0: pixelvalve@7e206000 { |
| @@ -55,17 +31,6 @@ |
| status = "disabled"; |
| }; |
| |
| - dpi: dpi@7e208000 { |
| - compatible = "brcm,bcm2835-dpi"; |
| - reg = <0x7e208000 0x8c>; |
| - clocks = <&clocks BCM2835_CLOCK_VPU>, |
| - <&clocks BCM2835_CLOCK_DPI>; |
| - clock-names = "core", "pixel"; |
| - #address-cells = <1>; |
| - #size-cells = <0>; |
| - status = "disabled"; |
| - }; |
| - |
| /delete-node/ sdhci@7e300000; |
| |
| sdhci: mmc: mmc@7e300000 { |
| @@ -118,6 +83,34 @@ |
| status = "disabled"; |
| }; |
| |
| + csi0: csi@7e800000 { |
| + compatible = "brcm,bcm2835-unicam"; |
| + reg = <0x7e800000 0x800>, |
| + <0x7e802000 0x4>; |
| + interrupts = <2 6>; |
| + clocks = <&clocks BCM2835_CLOCK_CAM0>; |
| + clock-names = "lp"; |
| + power-domains = <&power RPI_POWER_DOMAIN_UNICAM0>; |
| + #address-cells = <1>; |
| + #size-cells = <0>; |
| + #clock-cells = <1>; |
| + status = "disabled"; |
| + }; |
| + |
| + csi1: csi@7e801000 { |
| + compatible = "brcm,bcm2835-unicam"; |
| + reg = <0x7e801000 0x800>, |
| + <0x7e802004 0x4>; |
| + interrupts = <2 7>; |
| + clocks = <&clocks BCM2835_CLOCK_CAM1>; |
| + clock-names = "lp"; |
| + power-domains = <&power RPI_POWER_DOMAIN_UNICAM1>; |
| + #address-cells = <1>; |
| + #size-cells = <0>; |
| + #clock-cells = <1>; |
| + status = "disabled"; |
| + }; |
| + |
| pixelvalve2: pixelvalve@7e807000 { |
| /* Add label */ |
| status = "disabled"; |
| @@ -160,6 +153,37 @@ |
| }; |
| }; |
| |
| -&vc4 { |
| - status = "disabled"; |
| +&gpio { |
| + interrupts = <2 17>, <2 18>; |
| + |
| + dpi_18bit_gpio0: dpi_18bit_gpio0 { |
| + brcm,pins = <0 1 2 3 4 5 6 7 8 9 10 11 |
| + 12 13 14 15 16 17 18 19 |
| + 20 21>; |
| + brcm,function = <BCM2835_FSEL_ALT2>; |
| + }; |
| +}; |
| + |
| +&uart0 { |
| + /* Enable CTS bug workaround */ |
| + cts-event-workaround; |
| +}; |
| + |
| +&i2s { |
| + #sound-dai-cells = <0>; |
| + dmas = <&dma 2>, <&dma 3>; |
| + dma-names = "tx", "rx"; |
| +}; |
| + |
| +&sdhost { |
| + dmas = <&dma (13|(1<<29))>; |
| + dma-names = "rx-tx"; |
| + bus-width = <4>; |
| + brcm,overclock-50 = <0>; |
| + brcm,pio-limit = <1>; |
| +}; |
| + |
| +&spi0 { |
| + dmas = <&dma 6>, <&dma 7>; |
| + dma-names = "tx", "rx"; |
| }; |
| --- a/arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts |
| +++ b/arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts |
| @@ -170,6 +170,12 @@ |
| pinctrl-0 = <&audio_pins>; |
| }; |
| |
| +ð_phy { |
| + microchip,eee-enabled; |
| + microchip,tx-lpi-timer = <600>; /* non-aggressive*/ |
| + microchip,downshift-after = <2>; |
| +}; |
| + |
| / { |
| __overrides__ { |
| act_led_gpio = <&act_led>,"gpios:4"; |
| @@ -179,5 +185,12 @@ |
| pwr_led_gpio = <&pwr_led>,"gpios:4"; |
| pwr_led_activelow = <&pwr_led>,"gpios:8"; |
| pwr_led_trigger = <&pwr_led>,"linux,default-trigger"; |
| + |
| + eee = <ð_phy>,"microchip,eee-enabled?"; |
| + tx_lpi_timer = <ð_phy>,"microchip,tx-lpi-timer:0"; |
| + eth_led0 = <ð_phy>,"microchip,led-modes:0"; |
| + eth_led1 = <ð_phy>,"microchip,led-modes:4"; |
| + eth_downshift_after = <ð_phy>,"microchip,downshift-after:0"; |
| + eth_max_speed = <ð_phy>,"max-speed:0"; |
| }; |
| }; |
| --- a/arch/arm/boot/dts/bcm2710.dtsi |
| +++ b/arch/arm/boot/dts/bcm2710.dtsi |
| @@ -23,3 +23,7 @@ |
| <&cpu3>, "clock-frequency:0"; |
| }; |
| }; |
| + |
| +&vc4 { |
| + status = "disabled"; |
| +}; |
| --- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts |
| +++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts |
| @@ -2,7 +2,6 @@ |
| /dts-v1/; |
| #include "bcm2711.dtsi" |
| #include "bcm2835-rpi.dtsi" |
| -#include "bcm283x-rpi-usb-peripheral.dtsi" |
| |
| / { |
| compatible = "raspberrypi,4-model-b", "brcm,bcm2711"; |
| @@ -65,8 +64,8 @@ |
| "GLOBAL_RESET", |
| "VDD_SD_IO_SEL", |
| "CAM_GPIO", |
| - "", |
| - ""; |
| + "SD_PWR_ON", |
| + "SD_OC_N"; |
| status = "okay"; |
| }; |
| }; |
| @@ -138,3 +137,313 @@ |
| &vchiq { |
| interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; |
| }; |
| + |
| +// ============================================= |
| +// Downstream rpi- changes |
| + |
| +#include "bcm270x.dtsi" |
| +#include "bcm2711-rpi.dtsi" |
| +#include "bcm283x-rpi-csi1-2lane.dtsi" |
| + |
| +/ { |
| + chosen { |
| + bootargs = "coherent_pool=1M 8250.nr_uarts=1 cma=64M"; |
| + }; |
| + |
| + aliases { |
| + serial0 = &uart1; |
| + serial1 = &uart0; |
| + mmc0 = &emmc2; |
| + mmc1 = &mmcnr; |
| + mmc2 = &sdhost; |
| + /delete-property/ i2c2; |
| + i2c3 = &i2c3; |
| + i2c4 = &i2c4; |
| + i2c5 = &i2c5; |
| + i2c6 = &i2c6; |
| + /delete-property/ ethernet; |
| + /delete-property/ intc; |
| + pcie0 = &pcie_0; |
| + }; |
| + |
| + /delete-node/ wifi-pwrseq; |
| +}; |
| + |
| +&mmcnr { |
| + pinctrl-names = "default"; |
| + pinctrl-0 = <&sdio_pins>; |
| + bus-width = <4>; |
| + status = "okay"; |
| +}; |
| + |
| +&uart0 { |
| + pinctrl-0 = <&uart0_pins &bt_pins>; |
| + status = "okay"; |
| + |
| + /delete-node/ bluetooth; |
| +}; |
| + |
| +&uart1 { |
| + pinctrl-0 = <&uart1_pins>; |
| +}; |
| + |
| +&spi0 { |
| + pinctrl-names = "default"; |
| + pinctrl-0 = <&spi0_pins &spi0_cs_pins>; |
| + cs-gpios = <&gpio 8 1>, <&gpio 7 1>; |
| + |
| + spidev0: spidev@0{ |
| + compatible = "spidev"; |
| + reg = <0>; /* CE0 */ |
| + #address-cells = <1>; |
| + #size-cells = <0>; |
| + spi-max-frequency = <125000000>; |
| + }; |
| + |
| + spidev1: spidev@1{ |
| + compatible = "spidev"; |
| + reg = <1>; /* CE1 */ |
| + #address-cells = <1>; |
| + #size-cells = <0>; |
| + spi-max-frequency = <125000000>; |
| + }; |
| +}; |
| + |
| +&gpio { |
| + spi0_pins: spi0_pins { |
| + brcm,pins = <9 10 11>; |
| + brcm,function = <BCM2835_FSEL_ALT0>; |
| + }; |
| + |
| + spi0_cs_pins: spi0_cs_pins { |
| + brcm,pins = <8 7>; |
| + brcm,function = <BCM2835_FSEL_GPIO_OUT>; |
| + }; |
| + |
| + spi3_pins: spi3_pins { |
| + brcm,pins = <1 2 3>; |
| + brcm,function = <BCM2835_FSEL_ALT3>; |
| + }; |
| + |
| + spi3_cs_pins: spi3_cs_pins { |
| + brcm,pins = <0 24>; |
| + brcm,function = <BCM2835_FSEL_GPIO_OUT>; |
| + }; |
| + |
| + spi4_pins: spi4_pins { |
| + brcm,pins = <5 6 7>; |
| + brcm,function = <BCM2835_FSEL_ALT3>; |
| + }; |
| + |
| + spi4_cs_pins: spi4_cs_pins { |
| + brcm,pins = <4 25>; |
| + brcm,function = <BCM2835_FSEL_GPIO_OUT>; |
| + }; |
| + |
| + spi5_pins: spi5_pins { |
| + brcm,pins = <13 14 15>; |
| + brcm,function = <BCM2835_FSEL_ALT3>; |
| + }; |
| + |
| + spi5_cs_pins: spi5_cs_pins { |
| + brcm,pins = <12 26>; |
| + brcm,function = <BCM2835_FSEL_GPIO_OUT>; |
| + }; |
| + |
| + spi6_pins: spi6_pins { |
| + brcm,pins = <19 20 21>; |
| + brcm,function = <BCM2835_FSEL_ALT3>; |
| + }; |
| + |
| + spi6_cs_pins: spi6_cs_pins { |
| + brcm,pins = <18 27>; |
| + brcm,function = <BCM2835_FSEL_GPIO_OUT>; |
| + }; |
| + |
| + i2c0_pins: i2c0 { |
| + brcm,pins = <0 1>; |
| + brcm,function = <BCM2835_FSEL_ALT0>; |
| + brcm,pull = <BCM2835_PUD_UP>; |
| + }; |
| + |
| + i2c1_pins: i2c1 { |
| + brcm,pins = <2 3>; |
| + brcm,function = <BCM2835_FSEL_ALT0>; |
| + brcm,pull = <BCM2835_PUD_UP>; |
| + }; |
| + |
| + i2c3_pins: i2c3 { |
| + brcm,pins = <4 5>; |
| + brcm,function = <BCM2835_FSEL_ALT5>; |
| + brcm,pull = <BCM2835_PUD_UP>; |
| + }; |
| + |
| + i2c4_pins: i2c4 { |
| + brcm,pins = <8 9>; |
| + brcm,function = <BCM2835_FSEL_ALT5>; |
| + brcm,pull = <BCM2835_PUD_UP>; |
| + }; |
| + |
| + i2c5_pins: i2c5 { |
| + brcm,pins = <12 13>; |
| + brcm,function = <BCM2835_FSEL_ALT5>; |
| + brcm,pull = <BCM2835_PUD_UP>; |
| + }; |
| + |
| + i2c6_pins: i2c6 { |
| + brcm,pins = <22 23>; |
| + brcm,function = <BCM2835_FSEL_ALT5>; |
| + brcm,pull = <BCM2835_PUD_UP>; |
| + }; |
| + |
| + i2s_pins: i2s { |
| + brcm,pins = <18 19 20 21>; |
| + brcm,function = <BCM2835_FSEL_ALT0>; |
| + }; |
| + |
| + sdio_pins: sdio_pins { |
| + brcm,pins = <34 35 36 37 38 39>; |
| + brcm,function = <BCM2835_FSEL_ALT3>; // alt3 = SD1 |
| + brcm,pull = <0 2 2 2 2 2>; |
| + }; |
| + |
| + bt_pins: bt_pins { |
| + brcm,pins = "-"; // non-empty to keep btuart happy, //4 = 0 |
| + // to fool pinctrl |
| + brcm,function = <0>; |
| + brcm,pull = <2>; |
| + }; |
| + |
| + uart0_pins: uart0_pins { |
| + brcm,pins = <32 33>; |
| + brcm,function = <BCM2835_FSEL_ALT3>; |
| + brcm,pull = <0 2>; |
| + }; |
| + |
| + uart1_pins: uart1_pins { |
| + brcm,pins; |
| + brcm,function; |
| + brcm,pull; |
| + }; |
| + |
| + uart2_pins: uart2_pins { |
| + brcm,pins = <0 1>; |
| + brcm,function = <BCM2835_FSEL_ALT4>; |
| + brcm,pull = <0 2>; |
| + }; |
| + |
| + uart3_pins: uart3_pins { |
| + brcm,pins = <4 5>; |
| + brcm,function = <BCM2835_FSEL_ALT4>; |
| + brcm,pull = <0 2>; |
| + }; |
| + |
| + uart4_pins: uart4_pins { |
| + brcm,pins = <8 9>; |
| + brcm,function = <BCM2835_FSEL_ALT4>; |
| + brcm,pull = <0 2>; |
| + }; |
| + |
| + uart5_pins: uart5_pins { |
| + brcm,pins = <12 13>; |
| + brcm,function = <BCM2835_FSEL_ALT4>; |
| + brcm,pull = <0 2>; |
| + }; |
| +}; |
| + |
| +&i2c0 { |
| + pinctrl-names = "default"; |
| + pinctrl-0 = <&i2c0_pins>; |
| + clock-frequency = <100000>; |
| +}; |
| + |
| +&i2c1 { |
| + pinctrl-names = "default"; |
| + pinctrl-0 = <&i2c1_pins>; |
| + clock-frequency = <100000>; |
| +}; |
| + |
| +&i2s { |
| + pinctrl-names = "default"; |
| + pinctrl-0 = <&i2s_pins>; |
| +}; |
| + |
| +/ { |
| + __overrides__ { |
| + /delete-property/ i2c2_baudrate; |
| + /delete-property/ i2c2_iknowwhatimdoing; |
| + }; |
| +}; |
| + |
| +// ============================================= |
| +// Board specific stuff here |
| + |
| +/ { |
| + 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; |
| + gpio = <&expgpio 6 GPIO_ACTIVE_HIGH>; |
| + }; |
| +}; |
| + |
| +&sdhost { |
| + status = "disabled"; |
| +}; |
| + |
| +&emmc2 { |
| + vmmc-supply = <&sd_vcc_reg>; |
| +}; |
| + |
| +&phy1 { |
| + led-modes = <0x00 0x08>; /* link/activity link */ |
| +}; |
| + |
| +&gpio { |
| + audio_pins: audio_pins { |
| + brcm,pins = <40 41>; |
| + brcm,function = <4>; |
| + }; |
| +}; |
| + |
| +&leds { |
| + act_led: act { |
| + label = "led0"; |
| + linux,default-trigger = "mmc0"; |
| + gpios = <&gpio 42 GPIO_ACTIVE_HIGH>; |
| + }; |
| + |
| + pwr_led: pwr { |
| + label = "led1"; |
| + linux,default-trigger = "default-on"; |
| + gpios = <&expgpio 2 GPIO_ACTIVE_LOW>; |
| + }; |
| +}; |
| + |
| +&pwm1 { |
| + status = "disabled"; |
| +}; |
| + |
| +&audio { |
| + pinctrl-names = "default"; |
| + pinctrl-0 = <&audio_pins>; |
| +}; |
| + |
| +/ { |
| + __overrides__ { |
| + act_led_gpio = <&act_led>,"gpios:4"; |
| + act_led_activelow = <&act_led>,"gpios:8"; |
| + act_led_trigger = <&act_led>,"linux,default-trigger"; |
| + |
| + pwr_led_gpio = <&pwr_led>,"gpios:4"; |
| + pwr_led_activelow = <&pwr_led>,"gpios:8"; |
| + pwr_led_trigger = <&pwr_led>,"linux,default-trigger"; |
| + |
| + eth_led0 = <&phy1>,"led-modes:0"; |
| + eth_led1 = <&phy1>,"led-modes:4"; |
| + |
| + }; |
| +}; |
| --- /dev/null |
| +++ b/arch/arm/boot/dts/bcm2711-rpi.dtsi |
| @@ -0,0 +1,222 @@ |
| +// SPDX-License-Identifier: GPL-2.0 |
| +#include "bcm270x-rpi.dtsi" |
| + |
| +/ { |
| + soc { |
| + /delete-node/ v3d@7ec00000; |
| + /delete-node/ mailbox@7e00b840; |
| + }; |
| + |
| + __overrides__ { |
| + arm_freq; |
| + sd_poll_once = <&emmc2>, "non-removable?"; |
| + }; |
| + |
| + v3dbus { |
| + compatible = "simple-bus"; |
| + #address-cells = <1>; |
| + #size-cells = <2>; |
| + ranges = <0x7c500000 0x0 0xfc500000 0x0 0x03300000>, |
| + <0x40000000 0x0 0xff800000 0x0 0x00800000>; |
| + dma-ranges = <0x00000000 0x0 0x00000000 0x4 0x00000000>; |
| + |
| + v3d: v3d@7ec04000 { |
| + compatible = "brcm,2711-v3d"; |
| + reg = |
| + <0x7ec00000 0x0 0x4000>, |
| + <0x7ec04000 0x0 0x4000>; |
| + reg-names = "hub", "core0"; |
| + |
| + power-domains = <&pm BCM2835_POWER_DOMAIN_GRAFX_V3D>; |
| + resets = <&pm BCM2835_RESET_V3D>; |
| + clocks = <&clocks BCM2835_CLOCK_V3D>; |
| + interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; |
| + status = "disabled"; |
| + }; |
| + }; |
| + |
| + scb: scb { |
| + /* Add a label */ |
| + }; |
| +}; |
| + |
| +&soc { |
| + thermal: thermal@7d5d2200 { |
| + compatible = "brcm,avs-tmon-bcm2838"; |
| + reg = <0x7d5d2200 0x2c>; |
| + interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>; |
| + interrupt-names = "tmon"; |
| + clocks = <&clocks BCM2835_CLOCK_TSENS>; |
| + #thermal-sensor-cells = <0>; |
| + status = "okay"; |
| + }; |
| + |
| + vc4: gpu { |
| + compatible = "brcm,bcm2835-vc4"; |
| + status = "disabled"; |
| + }; |
| +}; |
| + |
| +&scb { |
| + ranges = <0x0 0x7c000000 0x0 0xfc000000 0x03800000>, |
| + <0x0 0x40000000 0x0 0xff800000 0x00800000>, |
| + <0x6 0x00000000 0x6 0x00000000 0x40000000>, |
| + <0x0 0x00000000 0x0 0x00000000 0xfc000000>; |
| + dma-ranges = <0x0 0x00000000 0x0 0x00000000 0xfc000000>; |
| + |
| + pcie_0: pcie@7d500000 { |
| + reg = <0x0 0x7d500000 0x9310>, |
| + <0x0 0x7e00f300 0x20>; |
| + msi-controller; |
| + msi-parent = <&pcie_0>; |
| + #address-cells = <3>; |
| + #interrupt-cells = <1>; |
| + #size-cells = <2>; |
| + bus-range = <0x0 0x01>; |
| + compatible = "brcm,bcm2711b0-pcie", // Safe value |
| + "brcm,bcm2711-pcie", |
| + "brcm,pci-plat-dev"; |
| + max-link-speed = <2>; |
| + tot-num-pcie = <1>; |
| + linux,pci-domain = <0>; |
| + interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>, |
| + <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>; |
| + interrupt-names = "pcie", "msi"; |
| + interrupt-map-mask = <0x0 0x0 0x0 0x7>; |
| + interrupt-map = <0 0 0 1 &gicv2 GIC_SPI 143 |
| + IRQ_TYPE_LEVEL_HIGH |
| + 0 0 0 2 &gicv2 GIC_SPI 144 |
| + IRQ_TYPE_LEVEL_HIGH |
| + 0 0 0 3 &gicv2 GIC_SPI 145 |
| + IRQ_TYPE_LEVEL_HIGH |
| + 0 0 0 4 &gicv2 GIC_SPI 146 |
| + IRQ_TYPE_LEVEL_HIGH>; |
| + |
| + /* Map outbound accesses from scb:0x6_00000000-03ffffff |
| + * to pci:0x0_f8000000-fbffffff |
| + */ |
| + ranges = <0x02000000 0x0 0xf8000000 0x6 0x00000000 |
| + 0x0 0x04000000>; |
| + /* Map inbound accesses from pci:0x0_00000000..ffffffff |
| + * to scb:0x0_00000000-ffffffff |
| + */ |
| + dma-ranges = <0x02000000 0x0 0x00000000 0x0 0x00000000 |
| + 0x1 0x00000000>; |
| + status = "okay"; |
| + }; |
| + |
| + dma40: dma@7e007b00 { |
| + compatible = "brcm,bcm2838-dma"; |
| + reg = <0x0 0x7e007b00 0x400>; |
| + interrupts = |
| + <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>, /* dma4 11 */ |
| + <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>, /* dma4 12 */ |
| + <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>, /* dma4 13 */ |
| + <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; /* dma4 14 */ |
| + interrupt-names = "dma11", |
| + "dma12", |
| + "dma13", |
| + "dma14"; |
| + #dma-cells = <1>; |
| + brcm,dma-channel-mask = <0x7800>; |
| + }; |
| + |
| + vchiq: mailbox@7e00b840 { |
| + compatible = "brcm,bcm2838-vchiq"; |
| + reg = <0 0x7e00b840 0x3c>; |
| + interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; |
| + }; |
| + |
| + xhci: xhci@7e9c0000 { |
| + compatible = "generic-xhci"; |
| + status = "disabled"; |
| + reg = <0x0 0x7e9c0000 0x100000>; |
| + interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>; |
| + }; |
| + |
| + hevc-decoder@7eb00000 { |
| + compatible = "raspberrypi,rpivid-hevc-decoder"; |
| + reg = <0x0 0x7eb00000 0x10000>; |
| + status = "okay"; |
| + }; |
| + |
| + rpivid-local-intc@7eb10000 { |
| + compatible = "raspberrypi,rpivid-local-intc"; |
| + reg = <0x0 0x7eb10000 0x1000>; |
| + status = "okay"; |
| + interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; |
| + }; |
| + |
| + h264-decoder@7eb20000 { |
| + compatible = "raspberrypi,rpivid-h264-decoder"; |
| + reg = <0x0 0x7eb20000 0x10000>; |
| + status = "okay"; |
| + }; |
| + |
| + vp9-decoder@7eb30000 { |
| + compatible = "raspberrypi,rpivid-vp9-decoder"; |
| + reg = <0x0 0x7eb30000 0x10000>; |
| + status = "okay"; |
| + }; |
| +}; |
| + |
| +&dma { |
| + /* The VPU firmware uses DMA channel 11 for VCHIQ */ |
| + brcm,dma-channel-mask = <0x1f5>; |
| +}; |
| + |
| +&dma40 { |
| + /* The VPU firmware DMA channel 11 for VCHIQ */ |
| + brcm,dma-channel-mask = <0x7000>; |
| +}; |
| + |
| +&firmwarekms { |
| + interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; |
| +}; |
| + |
| +&smi { |
| + interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; |
| +}; |
| + |
| +&mmc { |
| + interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>; |
| +}; |
| + |
| +&mmcnr { |
| + interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>; |
| +}; |
| + |
| +&csi0 { |
| + interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>; |
| +}; |
| + |
| +&csi1 { |
| + interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; |
| +}; |
| + |
| +&random { |
| + compatible = "brcm,bcm2711-rng200", "brcm,bcm2838-rng200"; |
| + status = "okay"; |
| +}; |
| + |
| +&usb { |
| + /* Enable the FIQ support */ |
| + reg = <0x7e980000 0x10000>, |
| + <0x7e00b200 0x200>; |
| + interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>, |
| + <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; |
| + status = "disabled"; |
| +}; |
| + |
| +&gpio { |
| + interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>, |
| + <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>; |
| +}; |
| + |
| +&cpu_thermal { |
| + thermal-sensors = <&thermal>; |
| +}; |
| + |
| +&genet { |
| + compatible = "brcm,bcm2711-genet-v5", "brcm,genet-v5"; |
| +}; |