xref: /linux/scripts/dtc/include-prefixes/arm64/amlogic/meson-gxm-nexbox-a1.dts (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
1114abfe1SNeil Armstrong// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2f51b4545SNeil Armstrong/*
3f51b4545SNeil Armstrong * Copyright (c) 2016 BayLibre, SAS.
4f51b4545SNeil Armstrong * Author: Neil Armstrong <narmstrong@baylibre.com>
5f51b4545SNeil Armstrong *
6f51b4545SNeil Armstrong * Copyright (c) 2016 Endless Computers, Inc.
7f51b4545SNeil Armstrong * Author: Carlo Caione <carlo@endlessm.com>
8f51b4545SNeil Armstrong */
9f51b4545SNeil Armstrong
10f51b4545SNeil Armstrong/dts-v1/;
11f51b4545SNeil Armstrong
12f51b4545SNeil Armstrong#include "meson-gxm.dtsi"
13c7f5675bSChristian Hewitt#include <dt-bindings/sound/meson-aiu.h>
14f51b4545SNeil Armstrong
15f51b4545SNeil Armstrong/ {
16f51b4545SNeil Armstrong	compatible = "nexbox,a1", "amlogic,s912", "amlogic,meson-gxm";
17f51b4545SNeil Armstrong	model = "NEXBOX A1";
18f51b4545SNeil Armstrong
19f51b4545SNeil Armstrong	aliases {
20f51b4545SNeil Armstrong		serial0 = &uart_AO;
21059a58fcSJorge Ramirez-Ortiz		ethernet0 = &ethmac;
22f51b4545SNeil Armstrong	};
23f51b4545SNeil Armstrong
24f51b4545SNeil Armstrong	chosen {
25f51b4545SNeil Armstrong		stdout-path = "serial0:115200n8";
26f51b4545SNeil Armstrong	};
27f51b4545SNeil Armstrong
28c7f5675bSChristian Hewitt	spdif_dit: audio-codec-0 {
29c7f5675bSChristian Hewitt		#sound-dai-cells = <0>;
30c7f5675bSChristian Hewitt		compatible = "linux,spdif-dit";
31c7f5675bSChristian Hewitt		sound-name-prefix = "DIT";
32c7f5675bSChristian Hewitt	};
33c7f5675bSChristian Hewitt
34f51b4545SNeil Armstrong	memory@0 {
35f51b4545SNeil Armstrong		device_type = "memory";
36f51b4545SNeil Armstrong		reg = <0x0 0x0 0x0 0x80000000>;
37f51b4545SNeil Armstrong	};
38f51b4545SNeil Armstrong
39f51b4545SNeil Armstrong	vddio_boot: regulator-vddio-boot {
40f51b4545SNeil Armstrong		compatible = "regulator-fixed";
41f51b4545SNeil Armstrong		regulator-name = "VDDIO_BOOT";
42f51b4545SNeil Armstrong		regulator-min-microvolt = <1800000>;
43f51b4545SNeil Armstrong		regulator-max-microvolt = <1800000>;
44f51b4545SNeil Armstrong	};
45f51b4545SNeil Armstrong
46f51b4545SNeil Armstrong	vddao_3v3: regulator-vddao-3v3 {
47f51b4545SNeil Armstrong		compatible = "regulator-fixed";
48f51b4545SNeil Armstrong		regulator-name = "VDDAO_3V3";
49f51b4545SNeil Armstrong		regulator-min-microvolt = <3300000>;
50f51b4545SNeil Armstrong		regulator-max-microvolt = <3300000>;
51f51b4545SNeil Armstrong	};
52f51b4545SNeil Armstrong
53f51b4545SNeil Armstrong	vcc_3v3: regulator-vcc-3v3 {
54f51b4545SNeil Armstrong		compatible = "regulator-fixed";
55f51b4545SNeil Armstrong		regulator-name = "VCC_3V3";
56f51b4545SNeil Armstrong		regulator-min-microvolt = <3300000>;
57f51b4545SNeil Armstrong		regulator-max-microvolt = <3300000>;
58f51b4545SNeil Armstrong	};
59f51b4545SNeil Armstrong
60f51b4545SNeil Armstrong	emmc_pwrseq: emmc-pwrseq {
61f51b4545SNeil Armstrong		compatible = "mmc-pwrseq-emmc";
62f51b4545SNeil Armstrong		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
63f51b4545SNeil Armstrong	};
64fafdbdf7SNeil Armstrong
65fafdbdf7SNeil Armstrong	cvbs-connector {
66fafdbdf7SNeil Armstrong		compatible = "composite-video-connector";
67fafdbdf7SNeil Armstrong
68fafdbdf7SNeil Armstrong		port {
69fafdbdf7SNeil Armstrong			cvbs_connector_in: endpoint {
70fafdbdf7SNeil Armstrong				remote-endpoint = <&cvbs_vdac_out>;
71fafdbdf7SNeil Armstrong			};
72fafdbdf7SNeil Armstrong		};
73fafdbdf7SNeil Armstrong	};
746939db7eSNeil Armstrong
756939db7eSNeil Armstrong	hdmi-connector {
766939db7eSNeil Armstrong		compatible = "hdmi-connector";
776939db7eSNeil Armstrong		type = "a";
786939db7eSNeil Armstrong
796939db7eSNeil Armstrong		port {
806939db7eSNeil Armstrong			hdmi_connector_in: endpoint {
816939db7eSNeil Armstrong				remote-endpoint = <&hdmi_tx_tmds_out>;
826939db7eSNeil Armstrong			};
836939db7eSNeil Armstrong		};
846939db7eSNeil Armstrong	};
85c7f5675bSChristian Hewitt
86c7f5675bSChristian Hewitt	sound {
87c7f5675bSChristian Hewitt		compatible = "amlogic,gx-sound-card";
88c7f5675bSChristian Hewitt		model = "NEXBOX-A1";
89*9b5d2511SNeil Armstrong		clocks = <&clkc CLKID_MPLL0>,
90*9b5d2511SNeil Armstrong			 <&clkc CLKID_MPLL1>,
91*9b5d2511SNeil Armstrong			 <&clkc CLKID_MPLL2>;
92*9b5d2511SNeil Armstrong
93c7f5675bSChristian Hewitt		assigned-clocks = <&clkc CLKID_MPLL0>,
94c7f5675bSChristian Hewitt				  <&clkc CLKID_MPLL1>,
95c7f5675bSChristian Hewitt				  <&clkc CLKID_MPLL2>;
96c7f5675bSChristian Hewitt		assigned-clock-parents = <0>, <0>, <0>;
97c7f5675bSChristian Hewitt		assigned-clock-rates = <294912000>,
98c7f5675bSChristian Hewitt				       <270950400>,
99c7f5675bSChristian Hewitt				       <393216000>;
100c7f5675bSChristian Hewitt
101c7f5675bSChristian Hewitt		dai-link-0 {
102c7f5675bSChristian Hewitt			sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>;
103c7f5675bSChristian Hewitt		};
104c7f5675bSChristian Hewitt
105c7f5675bSChristian Hewitt		dai-link-1 {
106c7f5675bSChristian Hewitt			sound-dai = <&aiu AIU_CPU CPU_SPDIF_FIFO>;
107c7f5675bSChristian Hewitt		};
108c7f5675bSChristian Hewitt
109c7f5675bSChristian Hewitt		dai-link-2 {
110c7f5675bSChristian Hewitt			sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>;
111c7f5675bSChristian Hewitt			dai-format = "i2s";
112c7f5675bSChristian Hewitt			mclk-fs = <256>;
113c7f5675bSChristian Hewitt
114c7f5675bSChristian Hewitt			codec-0 {
115c7f5675bSChristian Hewitt				sound-dai = <&aiu AIU_HDMI CTRL_I2S>;
116c7f5675bSChristian Hewitt			};
117c7f5675bSChristian Hewitt		};
118c7f5675bSChristian Hewitt
119c7f5675bSChristian Hewitt		dai-link-3 {
120c7f5675bSChristian Hewitt			sound-dai = <&aiu AIU_CPU CPU_SPDIF_ENCODER>;
121c7f5675bSChristian Hewitt
122c7f5675bSChristian Hewitt			codec-0 {
123c7f5675bSChristian Hewitt				sound-dai = <&spdif_dit>;
124c7f5675bSChristian Hewitt			};
125c7f5675bSChristian Hewitt		};
126c7f5675bSChristian Hewitt
127c7f5675bSChristian Hewitt		dai-link-4 {
128c7f5675bSChristian Hewitt			sound-dai = <&aiu AIU_HDMI CTRL_OUT>;
129c7f5675bSChristian Hewitt
130c7f5675bSChristian Hewitt			codec-0 {
131c7f5675bSChristian Hewitt				sound-dai = <&hdmi_tx>;
132c7f5675bSChristian Hewitt			};
133c7f5675bSChristian Hewitt		};
134c7f5675bSChristian Hewitt	};
135c7f5675bSChristian Hewitt};
136c7f5675bSChristian Hewitt
137c7f5675bSChristian Hewitt&aiu {
138c7f5675bSChristian Hewitt	status = "okay";
139c7f5675bSChristian Hewitt	pinctrl-0 = <&spdif_out_h_pins>;
140c7f5675bSChristian Hewitt	pinctrl-names = "default";
141f51b4545SNeil Armstrong};
142f51b4545SNeil Armstrong
143b16c71c9SNeil Armstrong&cec_AO {
144b16c71c9SNeil Armstrong	status = "okay";
145b16c71c9SNeil Armstrong	pinctrl-0 = <&ao_cec_pins>;
146b16c71c9SNeil Armstrong	pinctrl-names = "default";
147b16c71c9SNeil Armstrong	hdmi-phandle = <&hdmi_tx>;
148b16c71c9SNeil Armstrong};
149b16c71c9SNeil Armstrong
150a5e27015SAndreas Färber&cvbs_vdac_port {
151a5e27015SAndreas Färber	cvbs_vdac_out: endpoint {
152a5e27015SAndreas Färber		remote-endpoint = <&cvbs_connector_in>;
153a5e27015SAndreas Färber	};
154a5e27015SAndreas Färber};
155a5e27015SAndreas Färber
156a5e27015SAndreas Färber&ethmac {
157f51b4545SNeil Armstrong	status = "okay";
158a5e27015SAndreas Färber
159a5e27015SAndreas Färber	pinctrl-0 = <&eth_pins>;
160f51b4545SNeil Armstrong	pinctrl-names = "default";
161a5e27015SAndreas Färber
162a5e27015SAndreas Färber	/* Select external PHY by default */
163a5e27015SAndreas Färber	phy-handle = <&external_phy>;
164a5e27015SAndreas Färber
165a5e27015SAndreas Färber	amlogic,tx-delay-ns = <2>;
166a5e27015SAndreas Färber
167a5e27015SAndreas Färber	/* External PHY is in RGMII */
168a5e27015SAndreas Färber	phy-mode = "rgmii";
169a5e27015SAndreas Färber};
170a5e27015SAndreas Färber
171a5e27015SAndreas Färber&external_mdio {
172a5e27015SAndreas Färber	external_phy: ethernet-phy@0 {
173890265c9SMartin Blumenstingl		/* Realtek RTL8211F (0x001cc916) */
174a5e27015SAndreas Färber		reg = <0>;
175a5e27015SAndreas Färber		max-speed = <1000>;
176f29cabf2SMartin Blumenstingl
177f29cabf2SMartin Blumenstingl		reset-assert-us = <10000>;
178c183c406SStefan Agner		reset-deassert-us = <80000>;
179f29cabf2SMartin Blumenstingl		reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
180a5e27015SAndreas Färber	};
181a5e27015SAndreas Färber};
182a5e27015SAndreas Färber
183a5e27015SAndreas Färber&hdmi_tx {
184a5e27015SAndreas Färber	status = "okay";
185a5e27015SAndreas Färber	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
186a5e27015SAndreas Färber	pinctrl-names = "default";
187a5e27015SAndreas Färber};
188a5e27015SAndreas Färber
189a5e27015SAndreas Färber&hdmi_tx_tmds_port {
190a5e27015SAndreas Färber	hdmi_tx_tmds_out: endpoint {
191a5e27015SAndreas Färber		remote-endpoint = <&hdmi_connector_in>;
192a5e27015SAndreas Färber	};
193f51b4545SNeil Armstrong};
194f51b4545SNeil Armstrong
195f51b4545SNeil Armstrong&ir {
196f51b4545SNeil Armstrong	status = "okay";
197f51b4545SNeil Armstrong	pinctrl-0 = <&remote_input_ao_pins>;
198f51b4545SNeil Armstrong	pinctrl-names = "default";
199f51b4545SNeil Armstrong};
200f51b4545SNeil Armstrong
201f51b4545SNeil Armstrong/* SD card */
202f51b4545SNeil Armstrong&sd_emmc_b {
203f51b4545SNeil Armstrong	status = "okay";
204f51b4545SNeil Armstrong	pinctrl-0 = <&sdcard_pins>;
20567e7607fSJerome Brunet	pinctrl-1 = <&sdcard_clk_gate_pins>;
20667e7607fSJerome Brunet	pinctrl-names = "default", "clk-gate";
207f51b4545SNeil Armstrong
208f51b4545SNeil Armstrong	bus-width = <4>;
209f51b4545SNeil Armstrong	cap-sd-highspeed;
210adc52bf7SJerome Brunet	max-frequency = <50000000>;
211f51b4545SNeil Armstrong	disable-wp;
212f51b4545SNeil Armstrong
213f29200c8SLoys Ollivier	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
214f51b4545SNeil Armstrong
215f51b4545SNeil Armstrong	vmmc-supply = <&vddao_3v3>;
216f51b4545SNeil Armstrong	vqmmc-supply = <&vddio_boot>;
217f51b4545SNeil Armstrong};
218f51b4545SNeil Armstrong
219f51b4545SNeil Armstrong/* eMMC */
220f51b4545SNeil Armstrong&sd_emmc_c {
221f51b4545SNeil Armstrong	status = "okay";
222ab36be66SNeil Armstrong	pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
22367e7607fSJerome Brunet	pinctrl-1 = <&emmc_clk_gate_pins>;
22467e7607fSJerome Brunet	pinctrl-names = "default", "clk-gate";
225f51b4545SNeil Armstrong
226f51b4545SNeil Armstrong	bus-width = <8>;
227f51b4545SNeil Armstrong	cap-mmc-highspeed;
228f51b4545SNeil Armstrong	max-frequency = <200000000>;
229f51b4545SNeil Armstrong	non-removable;
230f51b4545SNeil Armstrong	disable-wp;
231f51b4545SNeil Armstrong	mmc-ddr-1_8v;
232f51b4545SNeil Armstrong	mmc-hs200-1_8v;
233f51b4545SNeil Armstrong
234f51b4545SNeil Armstrong	mmc-pwrseq = <&emmc_pwrseq>;
235f51b4545SNeil Armstrong	vmmc-supply = <&vcc_3v3>;
236f51b4545SNeil Armstrong	vqmmc-supply = <&vddio_boot>;
237f51b4545SNeil Armstrong};
238f51b4545SNeil Armstrong
239a5e27015SAndreas Färber&uart_AO {
240f51b4545SNeil Armstrong	status = "okay";
241a5e27015SAndreas Färber	pinctrl-0 = <&uart_ao_a_pins>;
242f51b4545SNeil Armstrong	pinctrl-names = "default";
2436939db7eSNeil Armstrong};
244e5e4df2dSNeil Armstrong
2452f9139c2SMartin Blumenstingl&usb {
246e5e4df2dSNeil Armstrong	status = "okay";
2472f9139c2SMartin Blumenstingl	dr_mode = "host";
248e5e4df2dSNeil Armstrong};
249