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	snps,reset-gpio = <&gpio GPIOZ_14 0>;
105	snps,reset-delays-us = <0 10000 1000000>;
106	snps,reset-active-low;
107
108	/* External PHY is in RGMII */
109	phy-mode = "rgmii";
110};
111
112&external_mdio {
113	external_phy: ethernet-phy@0 {
114		compatible = "ethernet-phy-id001c.c916", "ethernet-phy-ieee802.3-c22";
115		reg = <0>;
116		max-speed = <1000>;
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 = <100000000>;
148	disable-wp;
149
150	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
151	cd-inverted;
152
153	vmmc-supply = <&vddao_3v3>;
154	vqmmc-supply = <&vddio_boot>;
155};
156
157/* eMMC */
158&sd_emmc_c {
159	status = "okay";
160	pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
161	pinctrl-1 = <&emmc_clk_gate_pins>;
162	pinctrl-names = "default", "clk-gate";
163
164	bus-width = <8>;
165	cap-mmc-highspeed;
166	max-frequency = <200000000>;
167	non-removable;
168	disable-wp;
169	mmc-ddr-1_8v;
170	mmc-hs200-1_8v;
171
172	mmc-pwrseq = <&emmc_pwrseq>;
173	vmmc-supply = <&vcc_3v3>;
174	vqmmc-supply = <&vddio_boot>;
175};
176
177&uart_AO {
178	status = "okay";
179	pinctrl-0 = <&uart_ao_a_pins>;
180	pinctrl-names = "default";
181};
182