xref: /openbmc/linux/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi (revision d5463d256ad95a7f05895d2224f4a5c47f22a23a)
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;
51bb51b535SNeil Armstrong	};
52bb51b535SNeil Armstrong
53bb51b535SNeil Armstrong	chosen {
54bb51b535SNeil Armstrong		stdout-path = "serial0:115200n8";
55bb51b535SNeil Armstrong	};
56bb51b535SNeil Armstrong
57bb51b535SNeil Armstrong	memory@0 {
58bb51b535SNeil Armstrong		device_type = "memory";
59bb51b535SNeil Armstrong		reg = <0x0 0x0 0x0 0x80000000>;
60bb51b535SNeil Armstrong	};
61bb51b535SNeil Armstrong
62bb51b535SNeil Armstrong	vddio_boot: regulator-vddio_boot {
63bb51b535SNeil Armstrong		compatible = "regulator-fixed";
64bb51b535SNeil Armstrong		regulator-name = "VDDIO_BOOT";
65bb51b535SNeil Armstrong		regulator-min-microvolt = <1800000>;
66bb51b535SNeil Armstrong		regulator-max-microvolt = <1800000>;
67bb51b535SNeil Armstrong	};
68bb51b535SNeil Armstrong
69bb51b535SNeil Armstrong	vddao_3v3: regulator-vddao_3v3 {
70bb51b535SNeil Armstrong		compatible = "regulator-fixed";
71bb51b535SNeil Armstrong		regulator-name = "VDDAO_3V3";
72bb51b535SNeil Armstrong		regulator-min-microvolt = <3300000>;
73bb51b535SNeil Armstrong		regulator-max-microvolt = <3300000>;
74bb51b535SNeil Armstrong	};
75bb51b535SNeil Armstrong
76bb51b535SNeil Armstrong	vcc_3v3: regulator-vcc_3v3 {
77bb51b535SNeil Armstrong		compatible = "regulator-fixed";
78bb51b535SNeil Armstrong		regulator-name = "VCC_3V3";
79bb51b535SNeil Armstrong		regulator-min-microvolt = <3300000>;
80bb51b535SNeil Armstrong		regulator-max-microvolt = <3300000>;
81bb51b535SNeil Armstrong	};
82bb51b535SNeil Armstrong
83bb51b535SNeil Armstrong	emmc_pwrseq: emmc-pwrseq {
84bb51b535SNeil Armstrong		compatible = "mmc-pwrseq-emmc";
85bb51b535SNeil Armstrong		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
86bb51b535SNeil Armstrong	};
87bb51b535SNeil Armstrong
88bb51b535SNeil Armstrong	wifi32k: wifi32k {
89bb51b535SNeil Armstrong		compatible = "pwm-clock";
90bb51b535SNeil Armstrong		#clock-cells = <0>;
91bb51b535SNeil Armstrong		clock-frequency = <32768>;
92bb51b535SNeil Armstrong		pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
93bb51b535SNeil Armstrong	};
94bb51b535SNeil Armstrong
95bb51b535SNeil Armstrong	sdio_pwrseq: sdio-pwrseq {
96bb51b535SNeil Armstrong		compatible = "mmc-pwrseq-simple";
97bb51b535SNeil Armstrong		reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
98bb51b535SNeil Armstrong		clocks = <&wifi32k>;
99bb51b535SNeil Armstrong		clock-names = "ext_clock";
100bb51b535SNeil Armstrong	};
1016939db7eSNeil Armstrong
1026939db7eSNeil Armstrong	cvbs-connector {
1036939db7eSNeil Armstrong		compatible = "composite-video-connector";
1046939db7eSNeil Armstrong
1056939db7eSNeil Armstrong		port {
1066939db7eSNeil Armstrong			cvbs_connector_in: endpoint {
1076939db7eSNeil Armstrong				remote-endpoint = <&cvbs_vdac_out>;
1086939db7eSNeil Armstrong			};
1096939db7eSNeil Armstrong		};
1106939db7eSNeil Armstrong	};
1116939db7eSNeil Armstrong
1126939db7eSNeil Armstrong	hdmi-connector {
1136939db7eSNeil Armstrong		compatible = "hdmi-connector";
1146939db7eSNeil Armstrong		type = "a";
1156939db7eSNeil Armstrong
1166939db7eSNeil Armstrong		port {
1176939db7eSNeil Armstrong			hdmi_connector_in: endpoint {
1186939db7eSNeil Armstrong				remote-endpoint = <&hdmi_tx_tmds_out>;
1196939db7eSNeil Armstrong			};
1206939db7eSNeil Armstrong		};
1216939db7eSNeil Armstrong	};
122bb51b535SNeil Armstrong};
123bb51b535SNeil Armstrong
124*d5463d25SAndreas Färber&cvbs_vdac_port {
125*d5463d25SAndreas Färber	cvbs_vdac_out: endpoint {
126*d5463d25SAndreas Färber		remote-endpoint = <&cvbs_connector_in>;
127*d5463d25SAndreas Färber	};
128*d5463d25SAndreas Färber};
129*d5463d25SAndreas Färber
130*d5463d25SAndreas Färber&ethmac {
131bb51b535SNeil Armstrong	status = "okay";
132*d5463d25SAndreas Färber};
133*d5463d25SAndreas Färber
134*d5463d25SAndreas Färber&hdmi_tx {
135*d5463d25SAndreas Färber	status = "okay";
136*d5463d25SAndreas Färber	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
137bb51b535SNeil Armstrong	pinctrl-names = "default";
138bb51b535SNeil Armstrong};
139bb51b535SNeil Armstrong
140*d5463d25SAndreas Färber&hdmi_tx_tmds_port {
141*d5463d25SAndreas Färber	hdmi_tx_tmds_out: endpoint {
142*d5463d25SAndreas Färber		remote-endpoint = <&hdmi_connector_in>;
143*d5463d25SAndreas Färber	};
144*d5463d25SAndreas Färber};
145*d5463d25SAndreas Färber
146bb51b535SNeil Armstrong&ir {
147bb51b535SNeil Armstrong	status = "okay";
148bb51b535SNeil Armstrong	pinctrl-0 = <&remote_input_ao_pins>;
149bb51b535SNeil Armstrong	pinctrl-names = "default";
150bb51b535SNeil Armstrong};
151bb51b535SNeil Armstrong
152*d5463d25SAndreas Färber&pwm_ef {
153*d5463d25SAndreas Färber	status = "okay";
154*d5463d25SAndreas Färber	pinctrl-0 = <&pwm_e_pins>;
155*d5463d25SAndreas Färber	pinctrl-names = "default";
156*d5463d25SAndreas Färber	clocks = <&clkc CLKID_FCLK_DIV4>;
157*d5463d25SAndreas Färber	clock-names = "clkin0";
158*d5463d25SAndreas Färber};
159*d5463d25SAndreas Färber
160bb51b535SNeil Armstrong/* Wireless SDIO Module */
161bb51b535SNeil Armstrong&sd_emmc_a {
162bb51b535SNeil Armstrong	status = "okay";
163bb51b535SNeil Armstrong	pinctrl-0 = <&sdio_pins>;
164bb51b535SNeil Armstrong	pinctrl-names = "default";
165bb51b535SNeil Armstrong	#address-cells = <1>;
166bb51b535SNeil Armstrong	#size-cells = <0>;
167bb51b535SNeil Armstrong
168bb51b535SNeil Armstrong	bus-width = <4>;
169bb51b535SNeil Armstrong	cap-sd-highspeed;
170bb51b535SNeil Armstrong	max-frequency = <100000000>;
171bb51b535SNeil Armstrong
172bb51b535SNeil Armstrong	non-removable;
173bb51b535SNeil Armstrong	disable-wp;
174bb51b535SNeil Armstrong
175bb51b535SNeil Armstrong	mmc-pwrseq = <&sdio_pwrseq>;
176bb51b535SNeil Armstrong
177bb51b535SNeil Armstrong	vmmc-supply = <&vddao_3v3>;
178bb51b535SNeil Armstrong	vqmmc-supply = <&vddio_boot>;
179bb51b535SNeil Armstrong
180b77b40baSAndreas Färber	brcmf: wifi@1 {
181bb51b535SNeil Armstrong		reg = <1>;
182bb51b535SNeil Armstrong		compatible = "brcm,bcm4329-fmac";
183bb51b535SNeil Armstrong	};
184bb51b535SNeil Armstrong};
185bb51b535SNeil Armstrong
186bb51b535SNeil Armstrong/* SD card */
187bb51b535SNeil Armstrong&sd_emmc_b {
188bb51b535SNeil Armstrong	status = "okay";
189bb51b535SNeil Armstrong	pinctrl-0 = <&sdcard_pins>;
190bb51b535SNeil Armstrong	pinctrl-names = "default";
191bb51b535SNeil Armstrong
192bb51b535SNeil Armstrong	bus-width = <4>;
193bb51b535SNeil Armstrong	cap-sd-highspeed;
194bb51b535SNeil Armstrong	max-frequency = <100000000>;
195bb51b535SNeil Armstrong	disable-wp;
196bb51b535SNeil Armstrong
197bb51b535SNeil Armstrong	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
198bb51b535SNeil Armstrong	cd-inverted;
199bb51b535SNeil Armstrong
200bb51b535SNeil Armstrong	vmmc-supply = <&vddao_3v3>;
201bb51b535SNeil Armstrong	vqmmc-supply = <&vddio_boot>;
202bb51b535SNeil Armstrong};
203bb51b535SNeil Armstrong
204bb51b535SNeil Armstrong/* eMMC */
205bb51b535SNeil Armstrong&sd_emmc_c {
206bb51b535SNeil Armstrong	status = "okay";
207bb51b535SNeil Armstrong	pinctrl-0 = <&emmc_pins>;
208bb51b535SNeil Armstrong	pinctrl-names = "default";
209bb51b535SNeil Armstrong
210bb51b535SNeil Armstrong	bus-width = <8>;
211bb51b535SNeil Armstrong	cap-sd-highspeed;
212bb51b535SNeil Armstrong	cap-mmc-highspeed;
213bb51b535SNeil Armstrong	max-frequency = <200000000>;
214bb51b535SNeil Armstrong	non-removable;
215bb51b535SNeil Armstrong	disable-wp;
216bb51b535SNeil Armstrong	mmc-ddr-1_8v;
217bb51b535SNeil Armstrong	mmc-hs200-1_8v;
218bb51b535SNeil Armstrong
219bb51b535SNeil Armstrong	mmc-pwrseq = <&emmc_pwrseq>;
220bb51b535SNeil Armstrong	vmmc-supply = <&vcc_3v3>;
221bb51b535SNeil Armstrong	vqmmc-supply = <&vddio_boot>;
222bb51b535SNeil Armstrong};
223bb51b535SNeil Armstrong
224*d5463d25SAndreas Färber/* This UART is brought out to the DB9 connector */
225*d5463d25SAndreas Färber&uart_AO {
226bb51b535SNeil Armstrong	status = "okay";
227*d5463d25SAndreas Färber	pinctrl-0 = <&uart_ao_a_pins>;
228bb51b535SNeil Armstrong	pinctrl-names = "default";
2296939db7eSNeil Armstrong};
230