summaryrefslogtreecommitdiffstats
path: root/arch/arm/boot/dts/bcm2711-rpi-cm4.dtsi
blob: a2954d466a73bf2f8d7569ea7e9fb1f806d5d818 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include "bcm2711.dtsi"
#include "bcm2711-rpi.dtsi"
#include "bcm283x-rpi-wifi-bt.dtsi"

/ {
	compatible = "raspberrypi,4-compute-module", "brcm,bcm2711";

	chosen {
		/* 8250 auxiliary UART instead of pl011 */
		stdout-path = "serial1:115200n8";
	};

	sd_io_1v8_reg: sd_io_1v8_reg {
		compatible = "regulator-gpio";
		regulator-name = "vdd-sd-io";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <3300000>;
		regulator-boot-on;
		regulator-always-on;
		regulator-settling-time-us = <5000>;
		gpios = <&expgpio 4 GPIO_ACTIVE_HIGH>;
		states = <1800000 0x1>,
			 <3300000 0x0>;
		status = "okay";
	};

	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>;
	};
};

&bt {
	shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
};

/* EMMC2 is used to drive the eMMC */
&emmc2 {
	bus-width = <8>;
	vqmmc-supply = <&sd_io_1v8_reg>;
	vmmc-supply = <&sd_vcc_reg>;
	broken-cd;
	/* Even the IP block is limited to 100 MHz
	 * this provides a throughput gain
	 */
	mmc-hs200-1_8v;
	status = "okay";
};

&expgpio {
	gpio-line-names = "BT_ON",
			  "WL_ON",
			  "PWR_LED_OFF",
			  "ANT1",
			  "VDD_SD_IO_SEL",
			  "CAM_GPIO",
			  "SD_PWR_ON",
			  "ANT2";

	ant1: ant1-hog {
		gpio-hog;
		gpios = <3 GPIO_ACTIVE_HIGH>;
		/* internal antenna enabled */
		output-high;
		line-name = "ant1";
	};

	ant2: ant2-hog {
		gpio-hog;
		gpios = <7 GPIO_ACTIVE_HIGH>;
		/* external antenna disabled */
		output-low;
		line-name = "ant2";
	};
};

&genet {
	phy-handle = <&phy1>;
	phy-mode = "rgmii-rxid";
	status = "okay";
};

&genet_mdio {
	phy1: ethernet-phy@0 {
		/* No PHY interrupt */
		reg = <0x0>;
	};
};

/* uart0 communicates with the BT module */
&uart0 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32>;
	uart-has-rtscts;
};

/* uart1 is mapped to the pin header */
&uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart1_gpio14>;
	status = "okay";
};

&wifi_pwrseq {
	reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>;
};