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