xref: /linux/scripts/dtc/include-prefixes/arm64/amlogic/meson-gx-p23x-q20x.dtsi (revision 115e74a29b530d121891238e9551c4bcdf7b04b5)
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
113ffeb953SJerome Brunet#include <dt-bindings/sound/meson-aiu.h>
123ffeb953SJerome Brunet
13bb51b535SNeil Armstrong/ {
14bb51b535SNeil Armstrong	aliases {
15bb51b535SNeil Armstrong		serial0 = &uart_AO;
16059a58fcSJorge Ramirez-Ortiz		ethernet0 = &ethmac;
17bb51b535SNeil Armstrong	};
18bb51b535SNeil Armstrong
19f3c35382SJerome Brunet	dio2133: analog-amplifier {
20f3c35382SJerome Brunet		compatible = "simple-audio-amplifier";
21f3c35382SJerome Brunet		sound-name-prefix = "AU2";
22f3c35382SJerome Brunet		VCC-supply = <&hdmi_5v>;
23f3c35382SJerome Brunet		enable-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>;
24f3c35382SJerome Brunet	};
25f3c35382SJerome Brunet
263ffeb953SJerome Brunet	spdif_dit: audio-codec-0 {
273ffeb953SJerome Brunet		#sound-dai-cells = <0>;
283ffeb953SJerome Brunet		compatible = "linux,spdif-dit";
293ffeb953SJerome Brunet		sound-name-prefix = "DIT";
303ffeb953SJerome Brunet	};
313ffeb953SJerome Brunet
32bb51b535SNeil Armstrong	chosen {
33bb51b535SNeil Armstrong		stdout-path = "serial0:115200n8";
34bb51b535SNeil Armstrong	};
35bb51b535SNeil Armstrong
36bb51b535SNeil Armstrong	memory@0 {
37bb51b535SNeil Armstrong		device_type = "memory";
38bb51b535SNeil Armstrong		reg = <0x0 0x0 0x0 0x80000000>;
39bb51b535SNeil Armstrong	};
40bb51b535SNeil Armstrong
41b409f625SNeil Armstrong	hdmi_5v: regulator-hdmi-5v {
42b409f625SNeil Armstrong		compatible = "regulator-fixed";
43b409f625SNeil Armstrong
44b409f625SNeil Armstrong		regulator-name = "HDMI_5V";
45b409f625SNeil Armstrong		regulator-min-microvolt = <5000000>;
46b409f625SNeil Armstrong		regulator-max-microvolt = <5000000>;
47b409f625SNeil Armstrong
48b409f625SNeil Armstrong		gpio = <&gpio GPIOH_3 GPIO_ACTIVE_HIGH>;
49b409f625SNeil Armstrong		enable-active-high;
50b409f625SNeil Armstrong		regulator-always-on;
51b409f625SNeil Armstrong	};
52b409f625SNeil Armstrong
53f0ed445eSKrzysztof Kozlowski	vddio_ao18: regulator-vddio-ao18 {
5441ed2e0dSMartin Blumenstingl		compatible = "regulator-fixed";
5541ed2e0dSMartin Blumenstingl		regulator-name = "VDDIO_AO18";
5641ed2e0dSMartin Blumenstingl		regulator-min-microvolt = <1800000>;
5741ed2e0dSMartin Blumenstingl		regulator-max-microvolt = <1800000>;
5841ed2e0dSMartin Blumenstingl	};
5941ed2e0dSMartin Blumenstingl
60f0ed445eSKrzysztof Kozlowski	vddio_boot: regulator-vddio-boot {
61bb51b535SNeil Armstrong		compatible = "regulator-fixed";
62bb51b535SNeil Armstrong		regulator-name = "VDDIO_BOOT";
63bb51b535SNeil Armstrong		regulator-min-microvolt = <1800000>;
64bb51b535SNeil Armstrong		regulator-max-microvolt = <1800000>;
65bb51b535SNeil Armstrong	};
66bb51b535SNeil Armstrong
67f0ed445eSKrzysztof Kozlowski	vddao_3v3: regulator-vddao-3v3 {
68bb51b535SNeil Armstrong		compatible = "regulator-fixed";
69bb51b535SNeil Armstrong		regulator-name = "VDDAO_3V3";
70bb51b535SNeil Armstrong		regulator-min-microvolt = <3300000>;
71bb51b535SNeil Armstrong		regulator-max-microvolt = <3300000>;
72bb51b535SNeil Armstrong	};
73bb51b535SNeil Armstrong
74f0ed445eSKrzysztof Kozlowski	vcc_3v3: regulator-vcc-3v3 {
75bb51b535SNeil Armstrong		compatible = "regulator-fixed";
76bb51b535SNeil Armstrong		regulator-name = "VCC_3V3";
77bb51b535SNeil Armstrong		regulator-min-microvolt = <3300000>;
78bb51b535SNeil Armstrong		regulator-max-microvolt = <3300000>;
79bb51b535SNeil Armstrong	};
80bb51b535SNeil Armstrong
81bb51b535SNeil Armstrong	emmc_pwrseq: emmc-pwrseq {
82bb51b535SNeil Armstrong		compatible = "mmc-pwrseq-emmc";
83bb51b535SNeil Armstrong		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
84bb51b535SNeil Armstrong	};
85bb51b535SNeil Armstrong
86bb51b535SNeil Armstrong	wifi32k: wifi32k {
87bb51b535SNeil Armstrong		compatible = "pwm-clock";
88bb51b535SNeil Armstrong		#clock-cells = <0>;
89bb51b535SNeil Armstrong		clock-frequency = <32768>;
90bb51b535SNeil Armstrong		pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
91bb51b535SNeil Armstrong	};
92bb51b535SNeil Armstrong
93bb51b535SNeil Armstrong	sdio_pwrseq: sdio-pwrseq {
94bb51b535SNeil Armstrong		compatible = "mmc-pwrseq-simple";
95bb51b535SNeil Armstrong		reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
96bb51b535SNeil Armstrong		clocks = <&wifi32k>;
97bb51b535SNeil Armstrong		clock-names = "ext_clock";
98bb51b535SNeil Armstrong	};
996939db7eSNeil Armstrong
100*b33f8cfbSJ. Neuschäfer	cvbs_connector: cvbs-connector {
1016939db7eSNeil Armstrong		compatible = "composite-video-connector";
1026939db7eSNeil Armstrong
1036939db7eSNeil Armstrong		port {
1046939db7eSNeil Armstrong			cvbs_connector_in: endpoint {
1056939db7eSNeil Armstrong				remote-endpoint = <&cvbs_vdac_out>;
1066939db7eSNeil Armstrong			};
1076939db7eSNeil Armstrong		};
1086939db7eSNeil Armstrong	};
1096939db7eSNeil Armstrong
1106939db7eSNeil Armstrong	hdmi-connector {
1116939db7eSNeil Armstrong		compatible = "hdmi-connector";
1126939db7eSNeil Armstrong		type = "a";
1136939db7eSNeil Armstrong
1146939db7eSNeil Armstrong		port {
1156939db7eSNeil Armstrong			hdmi_connector_in: endpoint {
1166939db7eSNeil Armstrong				remote-endpoint = <&hdmi_tx_tmds_out>;
1176939db7eSNeil Armstrong			};
1186939db7eSNeil Armstrong		};
1196939db7eSNeil Armstrong	};
1203ffeb953SJerome Brunet
1213ffeb953SJerome Brunet	sound {
1223ffeb953SJerome Brunet		compatible = "amlogic,gx-sound-card";
123933b80edSChristian Hewitt		model = "P230-Q200";
124f3c35382SJerome Brunet		audio-aux-devs = <&dio2133>;
125f3c35382SJerome Brunet		audio-widgets = "Line", "Lineout";
126f3c35382SJerome Brunet		audio-routing = "AU2 INL", "ACODEC LOLP",
127f3c35382SJerome Brunet				"AU2 INR", "ACODEC LORP",
128f3c35382SJerome Brunet				"AU2 INL", "ACODEC LOLN",
129f3c35382SJerome Brunet				"AU2 INR", "ACODEC LORN",
130f3c35382SJerome Brunet				"Lineout", "AU2 OUTL",
131f3c35382SJerome Brunet				"Lineout", "AU2 OUTR";
1329b5d2511SNeil Armstrong		clocks = <&clkc CLKID_MPLL0>,
1339b5d2511SNeil Armstrong			 <&clkc CLKID_MPLL1>,
1349b5d2511SNeil Armstrong			 <&clkc CLKID_MPLL2>;
1359b5d2511SNeil Armstrong
1363ffeb953SJerome Brunet		assigned-clocks = <&clkc CLKID_MPLL0>,
1373ffeb953SJerome Brunet				  <&clkc CLKID_MPLL1>,
1383ffeb953SJerome Brunet				  <&clkc CLKID_MPLL2>;
1393ffeb953SJerome Brunet		assigned-clock-parents = <0>, <0>, <0>;
1403ffeb953SJerome Brunet		assigned-clock-rates = <294912000>,
1413ffeb953SJerome Brunet				       <270950400>,
1423ffeb953SJerome Brunet				       <393216000>;
1433ffeb953SJerome Brunet		dai-link-0 {
1443ffeb953SJerome Brunet			sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>;
1453ffeb953SJerome Brunet		};
1463ffeb953SJerome Brunet
1473ffeb953SJerome Brunet		dai-link-1 {
1483ffeb953SJerome Brunet			sound-dai = <&aiu AIU_CPU CPU_SPDIF_FIFO>;
1493ffeb953SJerome Brunet		};
1503ffeb953SJerome Brunet
1513ffeb953SJerome Brunet		dai-link-2 {
1523ffeb953SJerome Brunet			sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>;
1533ffeb953SJerome Brunet			dai-format = "i2s";
1543ffeb953SJerome Brunet			mclk-fs = <256>;
1553ffeb953SJerome Brunet
1563ffeb953SJerome Brunet			codec-0 {
1573ffeb953SJerome Brunet				sound-dai = <&aiu AIU_HDMI CTRL_I2S>;
1583ffeb953SJerome Brunet			};
159f3c35382SJerome Brunet
160f3c35382SJerome Brunet			codec-1 {
161f3c35382SJerome Brunet				sound-dai = <&aiu AIU_ACODEC CTRL_I2S>;
162f3c35382SJerome Brunet			};
1633ffeb953SJerome Brunet		};
1643ffeb953SJerome Brunet
1653ffeb953SJerome Brunet		dai-link-3 {
1663ffeb953SJerome Brunet			sound-dai = <&aiu AIU_CPU CPU_SPDIF_ENCODER>;
1673ffeb953SJerome Brunet
1683ffeb953SJerome Brunet			codec-0 {
1693ffeb953SJerome Brunet				sound-dai = <&spdif_dit>;
1703ffeb953SJerome Brunet			};
1713ffeb953SJerome Brunet		};
1723ffeb953SJerome Brunet
1733ffeb953SJerome Brunet		dai-link-4 {
1743ffeb953SJerome Brunet			sound-dai = <&aiu AIU_HDMI CTRL_OUT>;
1753ffeb953SJerome Brunet
1763ffeb953SJerome Brunet			codec-0 {
1773ffeb953SJerome Brunet				sound-dai = <&hdmi_tx>;
1783ffeb953SJerome Brunet			};
1793ffeb953SJerome Brunet		};
180f3c35382SJerome Brunet
181f3c35382SJerome Brunet		dai-link-5 {
182f3c35382SJerome Brunet			sound-dai = <&aiu AIU_ACODEC CTRL_OUT>;
183f3c35382SJerome Brunet
184f3c35382SJerome Brunet			codec-0 {
185f3c35382SJerome Brunet				sound-dai = <&acodec>;
1863ffeb953SJerome Brunet			};
1873ffeb953SJerome Brunet		};
188f3c35382SJerome Brunet	};
189f3c35382SJerome Brunet};
190f3c35382SJerome Brunet
191f3c35382SJerome Brunet&acodec {
192f3c35382SJerome Brunet	AVDD-supply = <&vddio_ao18>;
193f3c35382SJerome Brunet	status = "okay";
194f3c35382SJerome Brunet};
1953ffeb953SJerome Brunet
1963ffeb953SJerome Brunet&aiu {
1973ffeb953SJerome Brunet	status = "okay";
1983ffeb953SJerome Brunet	pinctrl-0 = <&spdif_out_h_pins>;
1993ffeb953SJerome Brunet	pinctrl-names = "default";
2003ffeb953SJerome Brunet
201bb51b535SNeil Armstrong};
202bb51b535SNeil Armstrong
203b16c71c9SNeil Armstrong&cec_AO {
204b16c71c9SNeil Armstrong	status = "okay";
205b16c71c9SNeil Armstrong	pinctrl-0 = <&ao_cec_pins>;
206b16c71c9SNeil Armstrong	pinctrl-names = "default";
207b16c71c9SNeil Armstrong	hdmi-phandle = <&hdmi_tx>;
208b16c71c9SNeil Armstrong};
209b16c71c9SNeil Armstrong
210d5463d25SAndreas Färber&cvbs_vdac_port {
211d5463d25SAndreas Färber	cvbs_vdac_out: endpoint {
212d5463d25SAndreas Färber		remote-endpoint = <&cvbs_connector_in>;
213d5463d25SAndreas Färber	};
214d5463d25SAndreas Färber};
215d5463d25SAndreas Färber
216d5463d25SAndreas Färber&ethmac {
217bb51b535SNeil Armstrong	status = "okay";
218d5463d25SAndreas Färber};
219d5463d25SAndreas Färber
220d5463d25SAndreas Färber&hdmi_tx {
221d5463d25SAndreas Färber	status = "okay";
222d5463d25SAndreas Färber	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
223bb51b535SNeil Armstrong	pinctrl-names = "default";
224e1f2163dSNeil Armstrong	hdmi-supply = <&hdmi_5v>;
225bb51b535SNeil Armstrong};
226bb51b535SNeil Armstrong
227d5463d25SAndreas Färber&hdmi_tx_tmds_port {
228d5463d25SAndreas Färber	hdmi_tx_tmds_out: endpoint {
229d5463d25SAndreas Färber		remote-endpoint = <&hdmi_connector_in>;
230d5463d25SAndreas Färber	};
231d5463d25SAndreas Färber};
232d5463d25SAndreas Färber
233bb51b535SNeil Armstrong&ir {
234bb51b535SNeil Armstrong	status = "okay";
235bb51b535SNeil Armstrong	pinctrl-0 = <&remote_input_ao_pins>;
236bb51b535SNeil Armstrong	pinctrl-names = "default";
237bb51b535SNeil Armstrong};
238bb51b535SNeil Armstrong
239d5463d25SAndreas Färber&pwm_ef {
240d5463d25SAndreas Färber	status = "okay";
241d5463d25SAndreas Färber	pinctrl-0 = <&pwm_e_pins>;
242d5463d25SAndreas Färber	pinctrl-names = "default";
243d5463d25SAndreas Färber};
244d5463d25SAndreas Färber
24541ed2e0dSMartin Blumenstingl&saradc {
24641ed2e0dSMartin Blumenstingl	status = "okay";
24741ed2e0dSMartin Blumenstingl	vref-supply = <&vddio_ao18>;
24841ed2e0dSMartin Blumenstingl};
24941ed2e0dSMartin Blumenstingl
250bb51b535SNeil Armstrong/* Wireless SDIO Module */
251bb51b535SNeil Armstrong&sd_emmc_a {
252bb51b535SNeil Armstrong	status = "okay";
253bb51b535SNeil Armstrong	pinctrl-0 = <&sdio_pins>;
25467e7607fSJerome Brunet	pinctrl-1 = <&sdio_clk_gate_pins>;
25567e7607fSJerome Brunet	pinctrl-names = "default", "clk-gate";
256bb51b535SNeil Armstrong	#address-cells = <1>;
257bb51b535SNeil Armstrong	#size-cells = <0>;
258bb51b535SNeil Armstrong
259bb51b535SNeil Armstrong	bus-width = <4>;
260bb51b535SNeil Armstrong	cap-sd-highspeed;
261adc52bf7SJerome Brunet	max-frequency = <50000000>;
262bb51b535SNeil Armstrong
263bb51b535SNeil Armstrong	non-removable;
264bb51b535SNeil Armstrong	disable-wp;
265bb51b535SNeil Armstrong
26686b8eaa2SNeil Armstrong	/* WiFi firmware requires power to be kept while in suspend */
26786b8eaa2SNeil Armstrong	keep-power-in-suspend;
26886b8eaa2SNeil Armstrong
269bb51b535SNeil Armstrong	mmc-pwrseq = <&sdio_pwrseq>;
270bb51b535SNeil Armstrong
271bb51b535SNeil Armstrong	vmmc-supply = <&vddao_3v3>;
272bb51b535SNeil Armstrong	vqmmc-supply = <&vddio_boot>;
273bb51b535SNeil Armstrong};
274bb51b535SNeil Armstrong
275bb51b535SNeil Armstrong/* SD card */
276bb51b535SNeil Armstrong&sd_emmc_b {
277bb51b535SNeil Armstrong	status = "okay";
278bb51b535SNeil Armstrong	pinctrl-0 = <&sdcard_pins>;
27967e7607fSJerome Brunet	pinctrl-1 = <&sdcard_clk_gate_pins>;
28067e7607fSJerome Brunet	pinctrl-names = "default", "clk-gate";
281bb51b535SNeil Armstrong
282bb51b535SNeil Armstrong	bus-width = <4>;
283bb51b535SNeil Armstrong	cap-sd-highspeed;
284adc52bf7SJerome Brunet	max-frequency = <50000000>;
285bb51b535SNeil Armstrong	disable-wp;
286bb51b535SNeil Armstrong
287f29200c8SLoys Ollivier	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
288bb51b535SNeil Armstrong
289bb51b535SNeil Armstrong	vmmc-supply = <&vddao_3v3>;
290bb51b535SNeil Armstrong	vqmmc-supply = <&vddio_boot>;
291bb51b535SNeil Armstrong};
292bb51b535SNeil Armstrong
293bb51b535SNeil Armstrong/* eMMC */
294bb51b535SNeil Armstrong&sd_emmc_c {
295bb51b535SNeil Armstrong	status = "okay";
296ab36be66SNeil Armstrong	pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
29767e7607fSJerome Brunet	pinctrl-1 = <&emmc_clk_gate_pins>;
29867e7607fSJerome Brunet	pinctrl-names = "default", "clk-gate";
299bb51b535SNeil Armstrong
300bb51b535SNeil Armstrong	bus-width = <8>;
301bb51b535SNeil Armstrong	cap-mmc-highspeed;
302bb51b535SNeil Armstrong	max-frequency = <200000000>;
303bb51b535SNeil Armstrong	non-removable;
304bb51b535SNeil Armstrong	disable-wp;
305bb51b535SNeil Armstrong	mmc-ddr-1_8v;
306bb51b535SNeil Armstrong	mmc-hs200-1_8v;
307bb51b535SNeil Armstrong
308bb51b535SNeil Armstrong	mmc-pwrseq = <&emmc_pwrseq>;
309bb51b535SNeil Armstrong	vmmc-supply = <&vcc_3v3>;
310bb51b535SNeil Armstrong	vqmmc-supply = <&vddio_boot>;
311bb51b535SNeil Armstrong};
312bb51b535SNeil Armstrong
313d5463d25SAndreas Färber/* This UART is brought out to the DB9 connector */
314d5463d25SAndreas Färber&uart_AO {
315bb51b535SNeil Armstrong	status = "okay";
316d5463d25SAndreas Färber	pinctrl-0 = <&uart_ao_a_pins>;
317bb51b535SNeil Armstrong	pinctrl-names = "default";
3186939db7eSNeil Armstrong};
319972cd12aSMartin Blumenstingl
3202f9139c2SMartin Blumenstingl&usb {
321972cd12aSMartin Blumenstingl	status = "okay";
3222f9139c2SMartin Blumenstingl	dr_mode = "otg";
323972cd12aSMartin Blumenstingl};
324