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