1d1b2237bSStefan Wahren// SPDX-License-Identifier: GPL-2.0 2d1b2237bSStefan Wahren/dts-v1/; 3d1b2237bSStefan Wahren#include "bcm2711.dtsi" 4d1b2237bSStefan Wahren#include "bcm2711-rpi.dtsi" 5d1b2237bSStefan Wahren#include "bcm283x-rpi-wifi-bt.dtsi" 6d1b2237bSStefan Wahren 7d1b2237bSStefan Wahren/ { 8d1b2237bSStefan Wahren compatible = "raspberrypi,4-compute-module", "brcm,bcm2711"; 9d1b2237bSStefan Wahren 10d1b2237bSStefan Wahren chosen { 11d1b2237bSStefan Wahren /* 8250 auxiliary UART instead of pl011 */ 12d1b2237bSStefan Wahren stdout-path = "serial1:115200n8"; 13d1b2237bSStefan Wahren }; 14d1b2237bSStefan Wahren 15*a9865ec3SStefan Wahren sd_io_1v8_reg: regulator-sd-io-1v8 { 16d1b2237bSStefan Wahren compatible = "regulator-gpio"; 17d1b2237bSStefan Wahren regulator-name = "vdd-sd-io"; 18d1b2237bSStefan Wahren regulator-min-microvolt = <1800000>; 19d1b2237bSStefan Wahren regulator-max-microvolt = <3300000>; 20d1b2237bSStefan Wahren regulator-boot-on; 21d1b2237bSStefan Wahren regulator-always-on; 22d1b2237bSStefan Wahren regulator-settling-time-us = <5000>; 23d1b2237bSStefan Wahren gpios = <&expgpio 4 GPIO_ACTIVE_HIGH>; 24d1b2237bSStefan Wahren states = <1800000 0x1>, 25d1b2237bSStefan Wahren <3300000 0x0>; 26d1b2237bSStefan Wahren status = "okay"; 27d1b2237bSStefan Wahren }; 28d1b2237bSStefan Wahren 29*a9865ec3SStefan Wahren sd_vcc_reg: regulator-sd-vcc { 30d1b2237bSStefan Wahren compatible = "regulator-fixed"; 31d1b2237bSStefan Wahren regulator-name = "vcc-sd"; 32d1b2237bSStefan Wahren regulator-min-microvolt = <3300000>; 33d1b2237bSStefan Wahren regulator-max-microvolt = <3300000>; 34d1b2237bSStefan Wahren regulator-boot-on; 35d1b2237bSStefan Wahren enable-active-high; 36d1b2237bSStefan Wahren gpio = <&expgpio 6 GPIO_ACTIVE_HIGH>; 37d1b2237bSStefan Wahren }; 38d1b2237bSStefan Wahren}; 39d1b2237bSStefan Wahren 40d1b2237bSStefan Wahren&bt { 41d1b2237bSStefan Wahren shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>; 42d1b2237bSStefan Wahren}; 43d1b2237bSStefan Wahren 44d1b2237bSStefan Wahren/* EMMC2 is used to drive the eMMC */ 45d1b2237bSStefan Wahren&emmc2 { 46d1b2237bSStefan Wahren bus-width = <8>; 47d1b2237bSStefan Wahren vqmmc-supply = <&sd_io_1v8_reg>; 48d1b2237bSStefan Wahren vmmc-supply = <&sd_vcc_reg>; 49d1b2237bSStefan Wahren broken-cd; 50d1b2237bSStefan Wahren /* Even the IP block is limited to 100 MHz 51d1b2237bSStefan Wahren * this provides a throughput gain 52d1b2237bSStefan Wahren */ 53d1b2237bSStefan Wahren mmc-hs200-1_8v; 54d1b2237bSStefan Wahren status = "okay"; 55d1b2237bSStefan Wahren}; 56d1b2237bSStefan Wahren 57d1b2237bSStefan Wahren&expgpio { 58d1b2237bSStefan Wahren gpio-line-names = "BT_ON", 59d1b2237bSStefan Wahren "WL_ON", 60d1b2237bSStefan Wahren "PWR_LED_OFF", 61d1b2237bSStefan Wahren "ANT1", 62d1b2237bSStefan Wahren "VDD_SD_IO_SEL", 63d1b2237bSStefan Wahren "CAM_GPIO", 64d1b2237bSStefan Wahren "SD_PWR_ON", 65d1b2237bSStefan Wahren "ANT2"; 66d1b2237bSStefan Wahren 67d1b2237bSStefan Wahren ant1: ant1-hog { 68d1b2237bSStefan Wahren gpio-hog; 69d1b2237bSStefan Wahren gpios = <3 GPIO_ACTIVE_HIGH>; 70d1b2237bSStefan Wahren /* internal antenna enabled */ 71d1b2237bSStefan Wahren output-high; 72d1b2237bSStefan Wahren line-name = "ant1"; 73d1b2237bSStefan Wahren }; 74d1b2237bSStefan Wahren 75d1b2237bSStefan Wahren ant2: ant2-hog { 76d1b2237bSStefan Wahren gpio-hog; 77d1b2237bSStefan Wahren gpios = <7 GPIO_ACTIVE_HIGH>; 78d1b2237bSStefan Wahren /* external antenna disabled */ 79d1b2237bSStefan Wahren output-low; 80d1b2237bSStefan Wahren line-name = "ant2"; 81d1b2237bSStefan Wahren }; 82d1b2237bSStefan Wahren}; 83d1b2237bSStefan Wahren 84d1b2237bSStefan Wahren&genet { 85d1b2237bSStefan Wahren phy-handle = <&phy1>; 86d1b2237bSStefan Wahren phy-mode = "rgmii-rxid"; 87d1b2237bSStefan Wahren status = "okay"; 88d1b2237bSStefan Wahren}; 89d1b2237bSStefan Wahren 90d1b2237bSStefan Wahren&genet_mdio { 91d1b2237bSStefan Wahren phy1: ethernet-phy@0 { 92d1b2237bSStefan Wahren /* No PHY interrupt */ 93d1b2237bSStefan Wahren reg = <0x0>; 94d1b2237bSStefan Wahren }; 95d1b2237bSStefan Wahren}; 96d1b2237bSStefan Wahren 97d1b2237bSStefan Wahren/* uart0 communicates with the BT module */ 98d1b2237bSStefan Wahren&uart0 { 99d1b2237bSStefan Wahren pinctrl-names = "default"; 100d1b2237bSStefan Wahren pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32>; 101d1b2237bSStefan Wahren uart-has-rtscts; 102d1b2237bSStefan Wahren}; 103d1b2237bSStefan Wahren 104d1b2237bSStefan Wahren/* uart1 is mapped to the pin header */ 105d1b2237bSStefan Wahren&uart1 { 106d1b2237bSStefan Wahren pinctrl-names = "default"; 107d1b2237bSStefan Wahren pinctrl-0 = <&uart1_gpio14>; 108d1b2237bSStefan Wahren status = "okay"; 109d1b2237bSStefan Wahren}; 110d1b2237bSStefan Wahren 111d1b2237bSStefan Wahren&wifi_pwrseq { 112d1b2237bSStefan Wahren reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>; 113d1b2237bSStefan Wahren}; 114