xref: /openbmc/linux/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi (revision 059a58fcd53a78b898f26c26a1c37816ba306933)
1bb51b535SNeil Armstrong/*
2bb51b535SNeil Armstrong * Copyright (c) 2016 Endless Computers, Inc.
3bb51b535SNeil Armstrong * Author: Carlo Caione <carlo@endlessm.com>
4bb51b535SNeil Armstrong *
5bb51b535SNeil Armstrong * This file is dual-licensed: you can use it either under the terms
6bb51b535SNeil Armstrong * of the GPL or the X11 license, at your option. Note that this dual
7bb51b535SNeil Armstrong * licensing only applies to this file, and not this project as a
8bb51b535SNeil Armstrong * whole.
9bb51b535SNeil Armstrong *
10bb51b535SNeil Armstrong *  a) This library is free software; you can redistribute it and/or
11bb51b535SNeil Armstrong *     modify it under the terms of the GNU General Public License as
12bb51b535SNeil Armstrong *     published by the Free Software Foundation; either version 2 of the
13bb51b535SNeil Armstrong *     License, or (at your option) any later version.
14bb51b535SNeil Armstrong *
15bb51b535SNeil Armstrong *     This library is distributed in the hope that it will be useful,
16bb51b535SNeil Armstrong *     but WITHOUT ANY WARRANTY; without even the implied warranty of
17bb51b535SNeil Armstrong *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18bb51b535SNeil Armstrong *     GNU General Public License for more details.
19bb51b535SNeil Armstrong *
20bb51b535SNeil Armstrong * Or, alternatively,
21bb51b535SNeil Armstrong *
22bb51b535SNeil Armstrong *  b) Permission is hereby granted, free of charge, to any person
23bb51b535SNeil Armstrong *     obtaining a copy of this software and associated documentation
24bb51b535SNeil Armstrong *     files (the "Software"), to deal in the Software without
25bb51b535SNeil Armstrong *     restriction, including without limitation the rights to use,
26bb51b535SNeil Armstrong *     copy, modify, merge, publish, distribute, sublicense, and/or
27bb51b535SNeil Armstrong *     sell copies of the Software, and to permit persons to whom the
28bb51b535SNeil Armstrong *     Software is furnished to do so, subject to the following
29bb51b535SNeil Armstrong *     conditions:
30bb51b535SNeil Armstrong *
31bb51b535SNeil Armstrong *     The above copyright notice and this permission notice shall be
32bb51b535SNeil Armstrong *     included in all copies or substantial portions of the Software.
33bb51b535SNeil Armstrong *
34bb51b535SNeil Armstrong *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35bb51b535SNeil Armstrong *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36bb51b535SNeil Armstrong *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37bb51b535SNeil Armstrong *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38bb51b535SNeil Armstrong *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39bb51b535SNeil Armstrong *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40bb51b535SNeil Armstrong *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41bb51b535SNeil Armstrong *     OTHER DEALINGS IN THE SOFTWARE.
42bb51b535SNeil Armstrong */
43bb51b535SNeil Armstrong
44bb51b535SNeil Armstrong/* Common DTSI for same Amlogic Q200/Q201 and P230/P231 boards using either
45bb51b535SNeil Armstrong * the pin-compatible S912 (GXM) or S905D (GXL) SoCs.
46bb51b535SNeil Armstrong */
47bb51b535SNeil Armstrong
48bb51b535SNeil Armstrong/ {
49bb51b535SNeil Armstrong	aliases {
50bb51b535SNeil Armstrong		serial0 = &uart_AO;
51*059a58fcSJorge Ramirez-Ortiz		ethernet0 = &ethmac;
52bb51b535SNeil Armstrong	};
53bb51b535SNeil Armstrong
54bb51b535SNeil Armstrong	chosen {
55bb51b535SNeil Armstrong		stdout-path = "serial0:115200n8";
56bb51b535SNeil Armstrong	};
57bb51b535SNeil Armstrong
58bb51b535SNeil Armstrong	memory@0 {
59bb51b535SNeil Armstrong		device_type = "memory";
60bb51b535SNeil Armstrong		reg = <0x0 0x0 0x0 0x80000000>;
61bb51b535SNeil Armstrong	};
62bb51b535SNeil Armstrong
63b409f625SNeil Armstrong	hdmi_5v: regulator-hdmi-5v {
64b409f625SNeil Armstrong		compatible = "regulator-fixed";
65b409f625SNeil Armstrong
66b409f625SNeil Armstrong		regulator-name = "HDMI_5V";
67b409f625SNeil Armstrong		regulator-min-microvolt = <5000000>;
68b409f625SNeil Armstrong		regulator-max-microvolt = <5000000>;
69b409f625SNeil Armstrong
70b409f625SNeil Armstrong		gpio = <&gpio GPIOH_3 GPIO_ACTIVE_HIGH>;
71b409f625SNeil Armstrong		enable-active-high;
72b409f625SNeil Armstrong		regulator-always-on;
73b409f625SNeil Armstrong	};
74b409f625SNeil Armstrong
75bb51b535SNeil Armstrong	vddio_boot: regulator-vddio_boot {
76bb51b535SNeil Armstrong		compatible = "regulator-fixed";
77bb51b535SNeil Armstrong		regulator-name = "VDDIO_BOOT";
78bb51b535SNeil Armstrong		regulator-min-microvolt = <1800000>;
79bb51b535SNeil Armstrong		regulator-max-microvolt = <1800000>;
80bb51b535SNeil Armstrong	};
81bb51b535SNeil Armstrong
82bb51b535SNeil Armstrong	vddao_3v3: regulator-vddao_3v3 {
83bb51b535SNeil Armstrong		compatible = "regulator-fixed";
84bb51b535SNeil Armstrong		regulator-name = "VDDAO_3V3";
85bb51b535SNeil Armstrong		regulator-min-microvolt = <3300000>;
86bb51b535SNeil Armstrong		regulator-max-microvolt = <3300000>;
87bb51b535SNeil Armstrong	};
88bb51b535SNeil Armstrong
89bb51b535SNeil Armstrong	vcc_3v3: regulator-vcc_3v3 {
90bb51b535SNeil Armstrong		compatible = "regulator-fixed";
91bb51b535SNeil Armstrong		regulator-name = "VCC_3V3";
92bb51b535SNeil Armstrong		regulator-min-microvolt = <3300000>;
93bb51b535SNeil Armstrong		regulator-max-microvolt = <3300000>;
94bb51b535SNeil Armstrong	};
95bb51b535SNeil Armstrong
96bb51b535SNeil Armstrong	emmc_pwrseq: emmc-pwrseq {
97bb51b535SNeil Armstrong		compatible = "mmc-pwrseq-emmc";
98bb51b535SNeil Armstrong		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
99bb51b535SNeil Armstrong	};
100bb51b535SNeil Armstrong
101bb51b535SNeil Armstrong	wifi32k: wifi32k {
102bb51b535SNeil Armstrong		compatible = "pwm-clock";
103bb51b535SNeil Armstrong		#clock-cells = <0>;
104bb51b535SNeil Armstrong		clock-frequency = <32768>;
105bb51b535SNeil Armstrong		pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
106bb51b535SNeil Armstrong	};
107bb51b535SNeil Armstrong
108bb51b535SNeil Armstrong	sdio_pwrseq: sdio-pwrseq {
109bb51b535SNeil Armstrong		compatible = "mmc-pwrseq-simple";
110bb51b535SNeil Armstrong		reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
111bb51b535SNeil Armstrong		clocks = <&wifi32k>;
112bb51b535SNeil Armstrong		clock-names = "ext_clock";
113bb51b535SNeil Armstrong	};
1146939db7eSNeil Armstrong
1156939db7eSNeil Armstrong	cvbs-connector {
1166939db7eSNeil Armstrong		compatible = "composite-video-connector";
1176939db7eSNeil Armstrong
1186939db7eSNeil Armstrong		port {
1196939db7eSNeil Armstrong			cvbs_connector_in: endpoint {
1206939db7eSNeil Armstrong				remote-endpoint = <&cvbs_vdac_out>;
1216939db7eSNeil Armstrong			};
1226939db7eSNeil Armstrong		};
1236939db7eSNeil Armstrong	};
1246939db7eSNeil Armstrong
1256939db7eSNeil Armstrong	hdmi-connector {
1266939db7eSNeil Armstrong		compatible = "hdmi-connector";
1276939db7eSNeil Armstrong		type = "a";
1286939db7eSNeil Armstrong
1296939db7eSNeil Armstrong		port {
1306939db7eSNeil Armstrong			hdmi_connector_in: endpoint {
1316939db7eSNeil Armstrong				remote-endpoint = <&hdmi_tx_tmds_out>;
1326939db7eSNeil Armstrong			};
1336939db7eSNeil Armstrong		};
1346939db7eSNeil Armstrong	};
135bb51b535SNeil Armstrong};
136bb51b535SNeil Armstrong
137b16c71c9SNeil Armstrong&cec_AO {
138b16c71c9SNeil Armstrong	status = "okay";
139b16c71c9SNeil Armstrong	pinctrl-0 = <&ao_cec_pins>;
140b16c71c9SNeil Armstrong	pinctrl-names = "default";
141b16c71c9SNeil Armstrong	hdmi-phandle = <&hdmi_tx>;
142b16c71c9SNeil Armstrong};
143b16c71c9SNeil Armstrong
144d5463d25SAndreas Färber&cvbs_vdac_port {
145d5463d25SAndreas Färber	cvbs_vdac_out: endpoint {
146d5463d25SAndreas Färber		remote-endpoint = <&cvbs_connector_in>;
147d5463d25SAndreas Färber	};
148d5463d25SAndreas Färber};
149d5463d25SAndreas Färber
150d5463d25SAndreas Färber&ethmac {
151bb51b535SNeil Armstrong	status = "okay";
152d5463d25SAndreas Färber};
153d5463d25SAndreas Färber
154d5463d25SAndreas Färber&hdmi_tx {
155d5463d25SAndreas Färber	status = "okay";
156d5463d25SAndreas Färber	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
157bb51b535SNeil Armstrong	pinctrl-names = "default";
158bb51b535SNeil Armstrong};
159bb51b535SNeil Armstrong
160d5463d25SAndreas Färber&hdmi_tx_tmds_port {
161d5463d25SAndreas Färber	hdmi_tx_tmds_out: endpoint {
162d5463d25SAndreas Färber		remote-endpoint = <&hdmi_connector_in>;
163d5463d25SAndreas Färber	};
164d5463d25SAndreas Färber};
165d5463d25SAndreas Färber
166bb51b535SNeil Armstrong&ir {
167bb51b535SNeil Armstrong	status = "okay";
168bb51b535SNeil Armstrong	pinctrl-0 = <&remote_input_ao_pins>;
169bb51b535SNeil Armstrong	pinctrl-names = "default";
170bb51b535SNeil Armstrong};
171bb51b535SNeil Armstrong
172d5463d25SAndreas Färber&pwm_ef {
173d5463d25SAndreas Färber	status = "okay";
174d5463d25SAndreas Färber	pinctrl-0 = <&pwm_e_pins>;
175d5463d25SAndreas Färber	pinctrl-names = "default";
176d5463d25SAndreas Färber	clocks = <&clkc CLKID_FCLK_DIV4>;
177d5463d25SAndreas Färber	clock-names = "clkin0";
178d5463d25SAndreas Färber};
179d5463d25SAndreas Färber
180bb51b535SNeil Armstrong/* Wireless SDIO Module */
181bb51b535SNeil Armstrong&sd_emmc_a {
182bb51b535SNeil Armstrong	status = "okay";
183bb51b535SNeil Armstrong	pinctrl-0 = <&sdio_pins>;
18467e7607fSJerome Brunet	pinctrl-1 = <&sdio_clk_gate_pins>;
18567e7607fSJerome Brunet	pinctrl-names = "default", "clk-gate";
186bb51b535SNeil Armstrong	#address-cells = <1>;
187bb51b535SNeil Armstrong	#size-cells = <0>;
188bb51b535SNeil Armstrong
189bb51b535SNeil Armstrong	bus-width = <4>;
190bb51b535SNeil Armstrong	cap-sd-highspeed;
191bb51b535SNeil Armstrong	max-frequency = <100000000>;
192bb51b535SNeil Armstrong
193bb51b535SNeil Armstrong	non-removable;
194bb51b535SNeil Armstrong	disable-wp;
195bb51b535SNeil Armstrong
196bb51b535SNeil Armstrong	mmc-pwrseq = <&sdio_pwrseq>;
197bb51b535SNeil Armstrong
198bb51b535SNeil Armstrong	vmmc-supply = <&vddao_3v3>;
199bb51b535SNeil Armstrong	vqmmc-supply = <&vddio_boot>;
200bb51b535SNeil Armstrong
201b77b40baSAndreas Färber	brcmf: wifi@1 {
202bb51b535SNeil Armstrong		reg = <1>;
203bb51b535SNeil Armstrong		compatible = "brcm,bcm4329-fmac";
204bb51b535SNeil Armstrong	};
205bb51b535SNeil Armstrong};
206bb51b535SNeil Armstrong
207bb51b535SNeil Armstrong/* SD card */
208bb51b535SNeil Armstrong&sd_emmc_b {
209bb51b535SNeil Armstrong	status = "okay";
210bb51b535SNeil Armstrong	pinctrl-0 = <&sdcard_pins>;
21167e7607fSJerome Brunet	pinctrl-1 = <&sdcard_clk_gate_pins>;
21267e7607fSJerome Brunet	pinctrl-names = "default", "clk-gate";
213bb51b535SNeil Armstrong
214bb51b535SNeil Armstrong	bus-width = <4>;
215bb51b535SNeil Armstrong	cap-sd-highspeed;
216bb51b535SNeil Armstrong	max-frequency = <100000000>;
217bb51b535SNeil Armstrong	disable-wp;
218bb51b535SNeil Armstrong
219bb51b535SNeil Armstrong	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
220bb51b535SNeil Armstrong	cd-inverted;
221bb51b535SNeil Armstrong
222bb51b535SNeil Armstrong	vmmc-supply = <&vddao_3v3>;
223bb51b535SNeil Armstrong	vqmmc-supply = <&vddio_boot>;
224bb51b535SNeil Armstrong};
225bb51b535SNeil Armstrong
226bb51b535SNeil Armstrong/* eMMC */
227bb51b535SNeil Armstrong&sd_emmc_c {
228bb51b535SNeil Armstrong	status = "okay";
229ab36be66SNeil Armstrong	pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
23067e7607fSJerome Brunet	pinctrl-1 = <&emmc_clk_gate_pins>;
23167e7607fSJerome Brunet	pinctrl-names = "default", "clk-gate";
232bb51b535SNeil Armstrong
233bb51b535SNeil Armstrong	bus-width = <8>;
234bb51b535SNeil Armstrong	cap-mmc-highspeed;
235bb51b535SNeil Armstrong	max-frequency = <200000000>;
236bb51b535SNeil Armstrong	non-removable;
237bb51b535SNeil Armstrong	disable-wp;
238bb51b535SNeil Armstrong	mmc-ddr-1_8v;
239bb51b535SNeil Armstrong	mmc-hs200-1_8v;
240bb51b535SNeil Armstrong
241bb51b535SNeil Armstrong	mmc-pwrseq = <&emmc_pwrseq>;
242bb51b535SNeil Armstrong	vmmc-supply = <&vcc_3v3>;
243bb51b535SNeil Armstrong	vqmmc-supply = <&vddio_boot>;
244bb51b535SNeil Armstrong};
245bb51b535SNeil Armstrong
246d5463d25SAndreas Färber/* This UART is brought out to the DB9 connector */
247d5463d25SAndreas Färber&uart_AO {
248bb51b535SNeil Armstrong	status = "okay";
249d5463d25SAndreas Färber	pinctrl-0 = <&uart_ao_a_pins>;
250bb51b535SNeil Armstrong	pinctrl-names = "default";
2516939db7eSNeil Armstrong};
252