blob: c79f9f2099bf8213102ccb0fb378cbd54dc52101 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2016 Andreas Färber
4 * Copyright (c) 2016 BayLibre, Inc.
5 * Author: Neil Armstrong <narmstrong@kernel.org>
6 */
7
8/dts-v1/;
9
10#include "meson-gxl-s905x.dtsi"
11
12/ {
13 compatible = "nexbox,a95x", "amlogic,s905x", "amlogic,meson-gxl";
14 model = "NEXBOX A95X (S905X)";
15
16 aliases {
17 serial0 = &uart_AO;
18 ethernet0 = &ethmac;
19 };
20
21 chosen {
22 stdout-path = "serial0:115200n8";
23 };
24
25 memory@0 {
26 device_type = "memory";
27 reg = <0x0 0x0 0x0 0x80000000>;
28 };
29
30 vddio_card: gpio-regulator {
31 compatible = "regulator-gpio";
32
33 regulator-name = "VDDIO_CARD";
34 regulator-min-microvolt = <1800000>;
35 regulator-max-microvolt = <3300000>;
36
37 gpios = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>;
38 gpios-states = <1>;
39
40 /* Based on P200 schematics, signal CARD_1.8V/3.3V_CTR */
41 states = <1800000 0>,
42 <3300000 1>;
43 };
44
Tom Rini6bb92fc2024-05-20 09:54:58 -060045 vddio_boot: regulator-vddio-boot {
Tom Rini53633a82024-02-29 12:33:36 -050046 compatible = "regulator-fixed";
47 regulator-name = "VDDIO_BOOT";
48 regulator-min-microvolt = <1800000>;
49 regulator-max-microvolt = <1800000>;
50 };
51
Tom Rini6bb92fc2024-05-20 09:54:58 -060052 vddao_3v3: regulator-vddao-3v3 {
Tom Rini53633a82024-02-29 12:33:36 -050053 compatible = "regulator-fixed";
54 regulator-name = "VDDAO_3V3";
55 regulator-min-microvolt = <3300000>;
56 regulator-max-microvolt = <3300000>;
57 };
58
Tom Rini6bb92fc2024-05-20 09:54:58 -060059 vcc_3v3: regulator-vcc-3v3 {
Tom Rini53633a82024-02-29 12:33:36 -050060 compatible = "regulator-fixed";
61 regulator-name = "VCC_3V3";
62 regulator-min-microvolt = <3300000>;
63 regulator-max-microvolt = <3300000>;
64 };
65
66 emmc_pwrseq: emmc-pwrseq {
67 compatible = "mmc-pwrseq-emmc";
68 reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
69 };
70
71 wifi32k: wifi32k {
72 compatible = "pwm-clock";
73 #clock-cells = <0>;
74 clock-frequency = <32768>;
75 pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
76 };
77
78 sdio_pwrseq: sdio-pwrseq {
79 compatible = "mmc-pwrseq-simple";
80 reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
81 clocks = <&wifi32k>;
82 clock-names = "ext_clock";
83 };
84
85 cvbs-connector {
86 compatible = "composite-video-connector";
87
88 port {
89 cvbs_connector_in: endpoint {
90 remote-endpoint = <&cvbs_vdac_out>;
91 };
92 };
93 };
94
95 hdmi-connector {
96 compatible = "hdmi-connector";
97 type = "a";
98
99 port {
100 hdmi_connector_in: endpoint {
101 remote-endpoint = <&hdmi_tx_tmds_out>;
102 };
103 };
104 };
105};
106
107&cec_AO {
108 status = "okay";
109 pinctrl-0 = <&ao_cec_pins>;
110 pinctrl-names = "default";
111 hdmi-phandle = <&hdmi_tx>;
112};
113
114&cvbs_vdac_port {
115 cvbs_vdac_out: endpoint {
116 remote-endpoint = <&cvbs_connector_in>;
117 };
118};
119
120&ethmac {
121 status = "okay";
122 phy-mode = "rmii";
123 phy-handle = <&internal_phy>;
124};
125
126&hdmi_tx {
127 status = "okay";
128 pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
129 pinctrl-names = "default";
130};
131
132&hdmi_tx_tmds_port {
133 hdmi_tx_tmds_out: endpoint {
134 remote-endpoint = <&hdmi_connector_in>;
135 };
136};
137
138&ir {
139 status = "okay";
140 pinctrl-0 = <&remote_input_ao_pins>;
141 pinctrl-names = "default";
142};
143
144&pwm_ef {
145 status = "okay";
146 pinctrl-0 = <&pwm_e_pins>;
147 pinctrl-names = "default";
148 clocks = <&clkc CLKID_FCLK_DIV4>;
149 clock-names = "clkin0";
150};
151
152/* Wireless SDIO Module */
153&sd_emmc_a {
154 status = "okay";
155 pinctrl-0 = <&sdio_pins>;
156 pinctrl-1 = <&sdio_clk_gate_pins>;
157 pinctrl-names = "default", "clk-gate";
158 #address-cells = <1>;
159 #size-cells = <0>;
160
161 bus-width = <4>;
162 cap-sd-highspeed;
163 max-frequency = <100000000>;
164
165 non-removable;
166 disable-wp;
167
168 /* WiFi firmware requires power to be kept while in suspend */
169 keep-power-in-suspend;
170
171 mmc-pwrseq = <&sdio_pwrseq>;
172
173 vmmc-supply = <&vddao_3v3>;
174 vqmmc-supply = <&vddio_boot>;
175};
176
177/* SD card */
178&sd_emmc_b {
179 status = "okay";
180 pinctrl-0 = <&sdcard_pins>;
181 pinctrl-1 = <&sdcard_clk_gate_pins>;
182 pinctrl-names = "default", "clk-gate";
183
184 bus-width = <4>;
185 cap-sd-highspeed;
186 max-frequency = <50000000>;
187 disable-wp;
188
189 cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
190
191 vmmc-supply = <&vddao_3v3>;
192 vqmmc-supply = <&vddio_card>;
193};
194
195/* eMMC */
196&sd_emmc_c {
197 status = "okay";
198 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
199 pinctrl-1 = <&emmc_clk_gate_pins>;
200 pinctrl-names = "default", "clk-gate";
201
202 bus-width = <8>;
203 cap-mmc-highspeed;
204 max-frequency = <200000000>;
205 non-removable;
206 disable-wp;
207 mmc-ddr-1_8v;
208 mmc-hs200-1_8v;
209
210 mmc-pwrseq = <&emmc_pwrseq>;
211 vmmc-supply = <&vcc_3v3>;
212 vqmmc-supply = <&vddio_boot>;
213};
214
215&uart_AO {
216 status = "okay";
217 pinctrl-0 = <&uart_ao_a_pins>;
218 pinctrl-names = "default";
219};
220
221&usb {
222 status = "okay";
223 dr_mode = "host";
224};