xref: /openbmc/linux/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi (revision 972cd12a027256061c19c164021f2a771e860438)
1114abfe1SNeil Armstrong// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2bb51b535SNeil Armstrong/*
3bb51b535SNeil Armstrong * Copyright (c) 2016 Endless Computers, Inc.
4bb51b535SNeil Armstrong * Author: Carlo Caione <carlo@endlessm.com>
5bb51b535SNeil Armstrong */
6bb51b535SNeil Armstrong
7bb51b535SNeil Armstrong/* Common DTSI for same Amlogic Q200/Q201 and P230/P231 boards using either
8bb51b535SNeil Armstrong * the pin-compatible S912 (GXM) or S905D (GXL) SoCs.
9bb51b535SNeil Armstrong */
10bb51b535SNeil Armstrong
11bb51b535SNeil Armstrong/ {
12bb51b535SNeil Armstrong	aliases {
13bb51b535SNeil Armstrong		serial0 = &uart_AO;
14059a58fcSJorge Ramirez-Ortiz		ethernet0 = &ethmac;
15bb51b535SNeil Armstrong	};
16bb51b535SNeil Armstrong
17bb51b535SNeil Armstrong	chosen {
18bb51b535SNeil Armstrong		stdout-path = "serial0:115200n8";
19bb51b535SNeil Armstrong	};
20bb51b535SNeil Armstrong
21bb51b535SNeil Armstrong	memory@0 {
22bb51b535SNeil Armstrong		device_type = "memory";
23bb51b535SNeil Armstrong		reg = <0x0 0x0 0x0 0x80000000>;
24bb51b535SNeil Armstrong	};
25bb51b535SNeil Armstrong
26b409f625SNeil Armstrong	hdmi_5v: regulator-hdmi-5v {
27b409f625SNeil Armstrong		compatible = "regulator-fixed";
28b409f625SNeil Armstrong
29b409f625SNeil Armstrong		regulator-name = "HDMI_5V";
30b409f625SNeil Armstrong		regulator-min-microvolt = <5000000>;
31b409f625SNeil Armstrong		regulator-max-microvolt = <5000000>;
32b409f625SNeil Armstrong
33b409f625SNeil Armstrong		gpio = <&gpio GPIOH_3 GPIO_ACTIVE_HIGH>;
34b409f625SNeil Armstrong		enable-active-high;
35b409f625SNeil Armstrong		regulator-always-on;
36b409f625SNeil Armstrong	};
37b409f625SNeil Armstrong
38bb51b535SNeil Armstrong	vddio_boot: regulator-vddio_boot {
39bb51b535SNeil Armstrong		compatible = "regulator-fixed";
40bb51b535SNeil Armstrong		regulator-name = "VDDIO_BOOT";
41bb51b535SNeil Armstrong		regulator-min-microvolt = <1800000>;
42bb51b535SNeil Armstrong		regulator-max-microvolt = <1800000>;
43bb51b535SNeil Armstrong	};
44bb51b535SNeil Armstrong
45bb51b535SNeil Armstrong	vddao_3v3: regulator-vddao_3v3 {
46bb51b535SNeil Armstrong		compatible = "regulator-fixed";
47bb51b535SNeil Armstrong		regulator-name = "VDDAO_3V3";
48bb51b535SNeil Armstrong		regulator-min-microvolt = <3300000>;
49bb51b535SNeil Armstrong		regulator-max-microvolt = <3300000>;
50bb51b535SNeil Armstrong	};
51bb51b535SNeil Armstrong
52bb51b535SNeil Armstrong	vcc_3v3: regulator-vcc_3v3 {
53bb51b535SNeil Armstrong		compatible = "regulator-fixed";
54bb51b535SNeil Armstrong		regulator-name = "VCC_3V3";
55bb51b535SNeil Armstrong		regulator-min-microvolt = <3300000>;
56bb51b535SNeil Armstrong		regulator-max-microvolt = <3300000>;
57bb51b535SNeil Armstrong	};
58bb51b535SNeil Armstrong
59bb51b535SNeil Armstrong	emmc_pwrseq: emmc-pwrseq {
60bb51b535SNeil Armstrong		compatible = "mmc-pwrseq-emmc";
61bb51b535SNeil Armstrong		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
62bb51b535SNeil Armstrong	};
63bb51b535SNeil Armstrong
64bb51b535SNeil Armstrong	wifi32k: wifi32k {
65bb51b535SNeil Armstrong		compatible = "pwm-clock";
66bb51b535SNeil Armstrong		#clock-cells = <0>;
67bb51b535SNeil Armstrong		clock-frequency = <32768>;
68bb51b535SNeil Armstrong		pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
69bb51b535SNeil Armstrong	};
70bb51b535SNeil Armstrong
71bb51b535SNeil Armstrong	sdio_pwrseq: sdio-pwrseq {
72bb51b535SNeil Armstrong		compatible = "mmc-pwrseq-simple";
73bb51b535SNeil Armstrong		reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
74bb51b535SNeil Armstrong		clocks = <&wifi32k>;
75bb51b535SNeil Armstrong		clock-names = "ext_clock";
76bb51b535SNeil Armstrong	};
776939db7eSNeil Armstrong
786939db7eSNeil Armstrong	cvbs-connector {
796939db7eSNeil Armstrong		compatible = "composite-video-connector";
806939db7eSNeil Armstrong
816939db7eSNeil Armstrong		port {
826939db7eSNeil Armstrong			cvbs_connector_in: endpoint {
836939db7eSNeil Armstrong				remote-endpoint = <&cvbs_vdac_out>;
846939db7eSNeil Armstrong			};
856939db7eSNeil Armstrong		};
866939db7eSNeil Armstrong	};
876939db7eSNeil Armstrong
886939db7eSNeil Armstrong	hdmi-connector {
896939db7eSNeil Armstrong		compatible = "hdmi-connector";
906939db7eSNeil Armstrong		type = "a";
916939db7eSNeil Armstrong
926939db7eSNeil Armstrong		port {
936939db7eSNeil Armstrong			hdmi_connector_in: endpoint {
946939db7eSNeil Armstrong				remote-endpoint = <&hdmi_tx_tmds_out>;
956939db7eSNeil Armstrong			};
966939db7eSNeil Armstrong		};
976939db7eSNeil Armstrong	};
98bb51b535SNeil Armstrong};
99bb51b535SNeil Armstrong
100b16c71c9SNeil Armstrong&cec_AO {
101b16c71c9SNeil Armstrong	status = "okay";
102b16c71c9SNeil Armstrong	pinctrl-0 = <&ao_cec_pins>;
103b16c71c9SNeil Armstrong	pinctrl-names = "default";
104b16c71c9SNeil Armstrong	hdmi-phandle = <&hdmi_tx>;
105b16c71c9SNeil Armstrong};
106b16c71c9SNeil Armstrong
107d5463d25SAndreas Färber&cvbs_vdac_port {
108d5463d25SAndreas Färber	cvbs_vdac_out: endpoint {
109d5463d25SAndreas Färber		remote-endpoint = <&cvbs_connector_in>;
110d5463d25SAndreas Färber	};
111d5463d25SAndreas Färber};
112d5463d25SAndreas Färber
113d5463d25SAndreas Färber&ethmac {
114bb51b535SNeil Armstrong	status = "okay";
115d5463d25SAndreas Färber};
116d5463d25SAndreas Färber
117d5463d25SAndreas Färber&hdmi_tx {
118d5463d25SAndreas Färber	status = "okay";
119d5463d25SAndreas Färber	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
120bb51b535SNeil Armstrong	pinctrl-names = "default";
121bb51b535SNeil Armstrong};
122bb51b535SNeil Armstrong
123d5463d25SAndreas Färber&hdmi_tx_tmds_port {
124d5463d25SAndreas Färber	hdmi_tx_tmds_out: endpoint {
125d5463d25SAndreas Färber		remote-endpoint = <&hdmi_connector_in>;
126d5463d25SAndreas Färber	};
127d5463d25SAndreas Färber};
128d5463d25SAndreas Färber
129bb51b535SNeil Armstrong&ir {
130bb51b535SNeil Armstrong	status = "okay";
131bb51b535SNeil Armstrong	pinctrl-0 = <&remote_input_ao_pins>;
132bb51b535SNeil Armstrong	pinctrl-names = "default";
133bb51b535SNeil Armstrong};
134bb51b535SNeil Armstrong
135d5463d25SAndreas Färber&pwm_ef {
136d5463d25SAndreas Färber	status = "okay";
137d5463d25SAndreas Färber	pinctrl-0 = <&pwm_e_pins>;
138d5463d25SAndreas Färber	pinctrl-names = "default";
139d5463d25SAndreas Färber	clocks = <&clkc CLKID_FCLK_DIV4>;
140d5463d25SAndreas Färber	clock-names = "clkin0";
141d5463d25SAndreas Färber};
142d5463d25SAndreas Färber
143bb51b535SNeil Armstrong/* Wireless SDIO Module */
144bb51b535SNeil Armstrong&sd_emmc_a {
145bb51b535SNeil Armstrong	status = "okay";
146bb51b535SNeil Armstrong	pinctrl-0 = <&sdio_pins>;
14767e7607fSJerome Brunet	pinctrl-1 = <&sdio_clk_gate_pins>;
14867e7607fSJerome Brunet	pinctrl-names = "default", "clk-gate";
149bb51b535SNeil Armstrong	#address-cells = <1>;
150bb51b535SNeil Armstrong	#size-cells = <0>;
151bb51b535SNeil Armstrong
152bb51b535SNeil Armstrong	bus-width = <4>;
153bb51b535SNeil Armstrong	cap-sd-highspeed;
154bb51b535SNeil Armstrong	max-frequency = <100000000>;
155bb51b535SNeil Armstrong
156bb51b535SNeil Armstrong	non-removable;
157bb51b535SNeil Armstrong	disable-wp;
158bb51b535SNeil Armstrong
159bb51b535SNeil Armstrong	mmc-pwrseq = <&sdio_pwrseq>;
160bb51b535SNeil Armstrong
161bb51b535SNeil Armstrong	vmmc-supply = <&vddao_3v3>;
162bb51b535SNeil Armstrong	vqmmc-supply = <&vddio_boot>;
163bb51b535SNeil Armstrong
164b77b40baSAndreas Färber	brcmf: wifi@1 {
165bb51b535SNeil Armstrong		reg = <1>;
166bb51b535SNeil Armstrong		compatible = "brcm,bcm4329-fmac";
167bb51b535SNeil Armstrong	};
168bb51b535SNeil Armstrong};
169bb51b535SNeil Armstrong
170bb51b535SNeil Armstrong/* SD card */
171bb51b535SNeil Armstrong&sd_emmc_b {
172bb51b535SNeil Armstrong	status = "okay";
173bb51b535SNeil Armstrong	pinctrl-0 = <&sdcard_pins>;
17467e7607fSJerome Brunet	pinctrl-1 = <&sdcard_clk_gate_pins>;
17567e7607fSJerome Brunet	pinctrl-names = "default", "clk-gate";
176bb51b535SNeil Armstrong
177bb51b535SNeil Armstrong	bus-width = <4>;
178bb51b535SNeil Armstrong	cap-sd-highspeed;
179bb51b535SNeil Armstrong	max-frequency = <100000000>;
180bb51b535SNeil Armstrong	disable-wp;
181bb51b535SNeil Armstrong
182bb51b535SNeil Armstrong	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
183bb51b535SNeil Armstrong	cd-inverted;
184bb51b535SNeil Armstrong
185bb51b535SNeil Armstrong	vmmc-supply = <&vddao_3v3>;
186bb51b535SNeil Armstrong	vqmmc-supply = <&vddio_boot>;
187bb51b535SNeil Armstrong};
188bb51b535SNeil Armstrong
189bb51b535SNeil Armstrong/* eMMC */
190bb51b535SNeil Armstrong&sd_emmc_c {
191bb51b535SNeil Armstrong	status = "okay";
192ab36be66SNeil Armstrong	pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
19367e7607fSJerome Brunet	pinctrl-1 = <&emmc_clk_gate_pins>;
19467e7607fSJerome Brunet	pinctrl-names = "default", "clk-gate";
195bb51b535SNeil Armstrong
196bb51b535SNeil Armstrong	bus-width = <8>;
197bb51b535SNeil Armstrong	cap-mmc-highspeed;
198bb51b535SNeil Armstrong	max-frequency = <200000000>;
199bb51b535SNeil Armstrong	non-removable;
200bb51b535SNeil Armstrong	disable-wp;
201bb51b535SNeil Armstrong	mmc-ddr-1_8v;
202bb51b535SNeil Armstrong	mmc-hs200-1_8v;
203bb51b535SNeil Armstrong
204bb51b535SNeil Armstrong	mmc-pwrseq = <&emmc_pwrseq>;
205bb51b535SNeil Armstrong	vmmc-supply = <&vcc_3v3>;
206bb51b535SNeil Armstrong	vqmmc-supply = <&vddio_boot>;
207bb51b535SNeil Armstrong};
208bb51b535SNeil Armstrong
209d5463d25SAndreas Färber/* This UART is brought out to the DB9 connector */
210d5463d25SAndreas Färber&uart_AO {
211bb51b535SNeil Armstrong	status = "okay";
212d5463d25SAndreas Färber	pinctrl-0 = <&uart_ao_a_pins>;
213bb51b535SNeil Armstrong	pinctrl-names = "default";
2146939db7eSNeil Armstrong};
215*972cd12aSMartin Blumenstingl
216*972cd12aSMartin Blumenstingl&usb0 {
217*972cd12aSMartin Blumenstingl	status = "okay";
218*972cd12aSMartin Blumenstingl};
219