1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2016 BayLibre, SAS.
4 * Author: Neil Armstrong <narmstrong@baylibre.com>
5 *
6 * Copyright (c) 2016 Endless Computers, Inc.
7 * Author: Carlo Caione <carlo@endlessm.com>
8 */
9
10/dts-v1/;
11
12#include "meson-gxm.dtsi"
13
14/ {
15	compatible = "nexbox,a1", "amlogic,s912", "amlogic,meson-gxm";
16	model = "NEXBOX A1";
17
18	aliases {
19		serial0 = &uart_AO;
20		ethernet0 = &ethmac;
21	};
22
23	chosen {
24		stdout-path = "serial0:115200n8";
25	};
26
27	memory@0 {
28		device_type = "memory";
29		reg = <0x0 0x0 0x0 0x80000000>;
30	};
31
32	vddio_boot: regulator-vddio-boot {
33		compatible = "regulator-fixed";
34		regulator-name = "VDDIO_BOOT";
35		regulator-min-microvolt = <1800000>;
36		regulator-max-microvolt = <1800000>;
37	};
38
39	vddao_3v3: regulator-vddao-3v3 {
40		compatible = "regulator-fixed";
41		regulator-name = "VDDAO_3V3";
42		regulator-min-microvolt = <3300000>;
43		regulator-max-microvolt = <3300000>;
44	};
45
46	vcc_3v3: regulator-vcc-3v3 {
47		compatible = "regulator-fixed";
48		regulator-name = "VCC_3V3";
49		regulator-min-microvolt = <3300000>;
50		regulator-max-microvolt = <3300000>;
51	};
52
53	emmc_pwrseq: emmc-pwrseq {
54		compatible = "mmc-pwrseq-emmc";
55		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
56	};
57
58	cvbs-connector {
59		compatible = "composite-video-connector";
60
61		port {
62			cvbs_connector_in: endpoint {
63				remote-endpoint = <&cvbs_vdac_out>;
64			};
65		};
66	};
67
68	hdmi-connector {
69		compatible = "hdmi-connector";
70		type = "a";
71
72		port {
73			hdmi_connector_in: endpoint {
74				remote-endpoint = <&hdmi_tx_tmds_out>;
75			};
76		};
77	};
78};
79
80&cec_AO {
81	status = "okay";
82	pinctrl-0 = <&ao_cec_pins>;
83	pinctrl-names = "default";
84	hdmi-phandle = <&hdmi_tx>;
85};
86
87&cvbs_vdac_port {
88	cvbs_vdac_out: endpoint {
89		remote-endpoint = <&cvbs_connector_in>;
90	};
91};
92
93&ethmac {
94	status = "okay";
95
96	pinctrl-0 = <&eth_pins>;
97	pinctrl-names = "default";
98
99	/* Select external PHY by default */
100	phy-handle = <&external_phy>;
101
102	amlogic,tx-delay-ns = <2>;
103
104	/* External PHY is in RGMII */
105	phy-mode = "rgmii";
106};
107
108&external_mdio {
109	external_phy: ethernet-phy@0 {
110		/* Realtek RTL8211F (0x001cc916) */
111		reg = <0>;
112		max-speed = <1000>;
113
114		reset-assert-us = <10000>;
115		reset-deassert-us = <30000>;
116		reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
117	};
118};
119
120&hdmi_tx {
121	status = "okay";
122	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
123	pinctrl-names = "default";
124};
125
126&hdmi_tx_tmds_port {
127	hdmi_tx_tmds_out: endpoint {
128		remote-endpoint = <&hdmi_connector_in>;
129	};
130};
131
132&ir {
133	status = "okay";
134	pinctrl-0 = <&remote_input_ao_pins>;
135	pinctrl-names = "default";
136};
137
138/* SD card */
139&sd_emmc_b {
140	status = "okay";
141	pinctrl-0 = <&sdcard_pins>;
142	pinctrl-1 = <&sdcard_clk_gate_pins>;
143	pinctrl-names = "default", "clk-gate";
144
145	bus-width = <4>;
146	cap-sd-highspeed;
147	max-frequency = <50000000>;
148	disable-wp;
149
150	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
151
152	vmmc-supply = <&vddao_3v3>;
153	vqmmc-supply = <&vddio_boot>;
154};
155
156/* eMMC */
157&sd_emmc_c {
158	status = "okay";
159	pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
160	pinctrl-1 = <&emmc_clk_gate_pins>;
161	pinctrl-names = "default", "clk-gate";
162
163	bus-width = <8>;
164	cap-mmc-highspeed;
165	max-frequency = <200000000>;
166	non-removable;
167	disable-wp;
168	mmc-ddr-1_8v;
169	mmc-hs200-1_8v;
170
171	mmc-pwrseq = <&emmc_pwrseq>;
172	vmmc-supply = <&vcc_3v3>;
173	vqmmc-supply = <&vddio_boot>;
174};
175
176&uart_AO {
177	status = "okay";
178	pinctrl-0 = <&uart_ao_a_pins>;
179	pinctrl-names = "default";
180};
181
182&usb0 {
183	status = "okay";
184};
185