xref: /openbmc/linux/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi (revision 6939db7e0dbfb94a4fea47a67f1fcf6234c407a0)
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	};
101*6939db7eSNeil Armstrong
102*6939db7eSNeil Armstrong	cvbs-connector {
103*6939db7eSNeil Armstrong		compatible = "composite-video-connector";
104*6939db7eSNeil Armstrong
105*6939db7eSNeil Armstrong		port {
106*6939db7eSNeil Armstrong			cvbs_connector_in: endpoint {
107*6939db7eSNeil Armstrong				remote-endpoint = <&cvbs_vdac_out>;
108*6939db7eSNeil Armstrong			};
109*6939db7eSNeil Armstrong		};
110*6939db7eSNeil Armstrong	};
111*6939db7eSNeil Armstrong
112*6939db7eSNeil Armstrong	hdmi-connector {
113*6939db7eSNeil Armstrong		compatible = "hdmi-connector";
114*6939db7eSNeil Armstrong		type = "a";
115*6939db7eSNeil Armstrong
116*6939db7eSNeil Armstrong		port {
117*6939db7eSNeil Armstrong			hdmi_connector_in: endpoint {
118*6939db7eSNeil Armstrong				remote-endpoint = <&hdmi_tx_tmds_out>;
119*6939db7eSNeil Armstrong			};
120*6939db7eSNeil Armstrong		};
121*6939db7eSNeil Armstrong	};
122bb51b535SNeil Armstrong};
123bb51b535SNeil Armstrong
124bb51b535SNeil Armstrong/* This UART is brought out to the DB9 connector */
125bb51b535SNeil Armstrong&uart_AO {
126bb51b535SNeil Armstrong	status = "okay";
127bb51b535SNeil Armstrong	pinctrl-0 = <&uart_ao_a_pins>;
128bb51b535SNeil Armstrong	pinctrl-names = "default";
129bb51b535SNeil Armstrong};
130bb51b535SNeil Armstrong
131bb51b535SNeil Armstrong&ir {
132bb51b535SNeil Armstrong	status = "okay";
133bb51b535SNeil Armstrong	pinctrl-0 = <&remote_input_ao_pins>;
134bb51b535SNeil Armstrong	pinctrl-names = "default";
135bb51b535SNeil Armstrong};
136bb51b535SNeil Armstrong
137bb51b535SNeil Armstrong/* Wireless SDIO Module */
138bb51b535SNeil Armstrong&sd_emmc_a {
139bb51b535SNeil Armstrong	status = "okay";
140bb51b535SNeil Armstrong	pinctrl-0 = <&sdio_pins>;
141bb51b535SNeil Armstrong	pinctrl-names = "default";
142bb51b535SNeil Armstrong	#address-cells = <1>;
143bb51b535SNeil Armstrong	#size-cells = <0>;
144bb51b535SNeil Armstrong
145bb51b535SNeil Armstrong	bus-width = <4>;
146bb51b535SNeil Armstrong	cap-sd-highspeed;
147bb51b535SNeil Armstrong	max-frequency = <100000000>;
148bb51b535SNeil Armstrong
149bb51b535SNeil Armstrong	non-removable;
150bb51b535SNeil Armstrong	disable-wp;
151bb51b535SNeil Armstrong
152bb51b535SNeil Armstrong	mmc-pwrseq = <&sdio_pwrseq>;
153bb51b535SNeil Armstrong
154bb51b535SNeil Armstrong	vmmc-supply = <&vddao_3v3>;
155bb51b535SNeil Armstrong	vqmmc-supply = <&vddio_boot>;
156bb51b535SNeil Armstrong
157bb51b535SNeil Armstrong	brcmf: bcrmf@1 {
158bb51b535SNeil Armstrong		reg = <1>;
159bb51b535SNeil Armstrong		compatible = "brcm,bcm4329-fmac";
160bb51b535SNeil Armstrong	};
161bb51b535SNeil Armstrong};
162bb51b535SNeil Armstrong
163bb51b535SNeil Armstrong/* SD card */
164bb51b535SNeil Armstrong&sd_emmc_b {
165bb51b535SNeil Armstrong	status = "okay";
166bb51b535SNeil Armstrong	pinctrl-0 = <&sdcard_pins>;
167bb51b535SNeil Armstrong	pinctrl-names = "default";
168bb51b535SNeil Armstrong
169bb51b535SNeil Armstrong	bus-width = <4>;
170bb51b535SNeil Armstrong	cap-sd-highspeed;
171bb51b535SNeil Armstrong	max-frequency = <100000000>;
172bb51b535SNeil Armstrong	disable-wp;
173bb51b535SNeil Armstrong
174bb51b535SNeil Armstrong	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
175bb51b535SNeil Armstrong	cd-inverted;
176bb51b535SNeil Armstrong
177bb51b535SNeil Armstrong	vmmc-supply = <&vddao_3v3>;
178bb51b535SNeil Armstrong	vqmmc-supply = <&vddio_boot>;
179bb51b535SNeil Armstrong};
180bb51b535SNeil Armstrong
181bb51b535SNeil Armstrong/* eMMC */
182bb51b535SNeil Armstrong&sd_emmc_c {
183bb51b535SNeil Armstrong	status = "okay";
184bb51b535SNeil Armstrong	pinctrl-0 = <&emmc_pins>;
185bb51b535SNeil Armstrong	pinctrl-names = "default";
186bb51b535SNeil Armstrong
187bb51b535SNeil Armstrong	bus-width = <8>;
188bb51b535SNeil Armstrong	cap-sd-highspeed;
189bb51b535SNeil Armstrong	cap-mmc-highspeed;
190bb51b535SNeil Armstrong	max-frequency = <200000000>;
191bb51b535SNeil Armstrong	non-removable;
192bb51b535SNeil Armstrong	disable-wp;
193bb51b535SNeil Armstrong	mmc-ddr-1_8v;
194bb51b535SNeil Armstrong	mmc-hs200-1_8v;
195bb51b535SNeil Armstrong
196bb51b535SNeil Armstrong	mmc-pwrseq = <&emmc_pwrseq>;
197bb51b535SNeil Armstrong	vmmc-supply = <&vcc_3v3>;
198bb51b535SNeil Armstrong	vqmmc-supply = <&vddio_boot>;
199bb51b535SNeil Armstrong};
200bb51b535SNeil Armstrong
201bb51b535SNeil Armstrong&pwm_ef {
202bb51b535SNeil Armstrong	status = "okay";
203bb51b535SNeil Armstrong	pinctrl-0 = <&pwm_e_pins>;
204bb51b535SNeil Armstrong	pinctrl-names = "default";
205bb51b535SNeil Armstrong	clocks = <&clkc CLKID_FCLK_DIV4>;
206bb51b535SNeil Armstrong	clock-names = "clkin0";
207bb51b535SNeil Armstrong};
208bb51b535SNeil Armstrong
209bb51b535SNeil Armstrong&ethmac {
210bb51b535SNeil Armstrong	status = "okay";
211bb51b535SNeil Armstrong};
212*6939db7eSNeil Armstrong
213*6939db7eSNeil Armstrong&cvbs_vdac_port {
214*6939db7eSNeil Armstrong	cvbs_vdac_out: endpoint {
215*6939db7eSNeil Armstrong		remote-endpoint = <&cvbs_connector_in>;
216*6939db7eSNeil Armstrong	};
217*6939db7eSNeil Armstrong};
218*6939db7eSNeil Armstrong
219*6939db7eSNeil Armstrong&hdmi_tx {
220*6939db7eSNeil Armstrong	status = "okay";
221*6939db7eSNeil Armstrong	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
222*6939db7eSNeil Armstrong	pinctrl-names = "default";
223*6939db7eSNeil Armstrong};
224*6939db7eSNeil Armstrong
225*6939db7eSNeil Armstrong&hdmi_tx_tmds_port {
226*6939db7eSNeil Armstrong	hdmi_tx_tmds_out: endpoint {
227*6939db7eSNeil Armstrong		remote-endpoint = <&hdmi_connector_in>;
228*6939db7eSNeil Armstrong	};
229*6939db7eSNeil Armstrong};
230