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