blob: 8dccf91d68da759fd4aa6aecdc0ebea82aee0fbc [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001// 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 = <80000>;
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};