Merge tag 'net-6.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
[linux-2.6-block.git] / arch / arm64 / boot / dts / amlogic / meson-gxbb-odroidc2.dts
CommitLineData
114abfe1 1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
85596034
KH
2/*
3 * Copyright (c) 2016 Andreas Färber
4 * Copyright (c) 2016 BayLibre, Inc.
5 * Author: Kevin Hilman <khilman@kernel.org>
85596034
KH
6 */
7
8/dts-v1/;
9
10#include "meson-gxbb.dtsi"
f40d437f 11#include <dt-bindings/gpio/gpio.h>
ba414bc5 12#include <dt-bindings/sound/meson-aiu.h>
85596034
KH
13
14/ {
15 compatible = "hardkernel,odroid-c2", "amlogic,meson-gxbb";
16 model = "Hardkernel ODROID-C2";
67e7607f 17
85596034
KH
18 aliases {
19 serial0 = &uart_AO;
059a58fc 20 ethernet0 = &ethmac;
85596034
KH
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 };
f40d437f 31
5a0803bd
BK
32 usb_otg_pwr: regulator-usb-pwrs {
33 compatible = "regulator-fixed";
34
35 regulator-name = "USB_OTG_PWR";
36
37 regulator-min-microvolt = <5000000>;
38 regulator-max-microvolt = <5000000>;
39
47a8bddb
AM
40 /*
41 * signal name from schematics: PWREN
42 */
5a0803bd
BK
43 gpio = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>;
44 enable-active-high;
47a8bddb
AM
45 /*
46 * signal name from schematics: USB_POWER
47 */
48 vin-supply = <&p5v0>;
5a0803bd
BK
49 };
50
f40d437f
CC
51 leds {
52 compatible = "gpio-leds";
08dc0e5d 53 led-blue {
f40d437f
CC
54 label = "c2:blue:alive";
55 gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_LOW>;
56 linux,default-trigger = "heartbeat";
57 default-state = "off";
58 };
59 };
ef8d2ffe 60
fcf19f29
AM
61 p5v0: regulator-p5v0 {
62 compatible = "regulator-fixed";
63
64 regulator-name = "P5V0";
65 regulator-min-microvolt = <5000000>;
66 regulator-max-microvolt = <5000000>;
67 regulator-always-on;
68 };
69
f0ed445e 70 hdmi_p5v0: regulator-hdmi-p5v0 {
0ac0be65
AM
71 compatible = "regulator-fixed";
72 regulator-name = "HDMI_P5V0";
73 regulator-min-microvolt = <5000000>;
74 regulator-max-microvolt = <5000000>;
75 /* AP2331SA-7 */
76 vin-supply = <&p5v0>;
77 };
78
f0ed445e 79 tflash_vdd: regulator-tflash-vdd {
ef8d2ffe
KH
80 compatible = "regulator-fixed";
81
82 regulator-name = "TFLASH_VDD";
83 regulator-min-microvolt = <3300000>;
84 regulator-max-microvolt = <3300000>;
85
df39b523
AM
86 /*
87 * signal name from schematics: TFLASH_VDD_EN
88 */
c34cd35e 89 gpio = <&gpio GPIOY_12 GPIO_ACTIVE_HIGH>;
ef8d2ffe 90 enable-active-high;
df39b523
AM
91 /* U16 RT9179GB */
92 vin-supply = <&vddio_ao3v3>;
ef8d2ffe
KH
93 };
94
f0ed445e 95 tf_io: gpio-regulator-tf-io {
ef8d2ffe
KH
96 compatible = "regulator-gpio";
97
98 regulator-name = "TF_IO";
99 regulator-min-microvolt = <1800000>;
100 regulator-max-microvolt = <3300000>;
101
102 /*
103 * signal name from schematics: TF_3V3N_1V8_EN
104 */
105 gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>;
106 gpios-states = <0>;
107
f9717178
NA
108 states = <3300000 0>,
109 <1800000 1>;
df39b523
AM
110 /* U12/U13 RT9179GB */
111 vin-supply = <&vddio_ao3v3>;
ef8d2ffe
KH
112 };
113
114 vcc1v8: regulator-vcc1v8 {
115 compatible = "regulator-fixed";
116 regulator-name = "VCC1V8";
117 regulator-min-microvolt = <1800000>;
118 regulator-max-microvolt = <1800000>;
df39b523
AM
119 regulator-always-on;
120 /* U18 RT9179GB */
121 vin-supply = <&vddio_ao3v3>;
ef8d2ffe
KH
122 };
123
124 vcc3v3: regulator-vcc3v3 {
125 compatible = "regulator-fixed";
126 regulator-name = "VCC3V3";
127 regulator-min-microvolt = <3300000>;
128 regulator-max-microvolt = <3300000>;
129 };
130
60c5abf6
AM
131 vddio_ao1v8: regulator-vddio-ao1v8 {
132 compatible = "regulator-fixed";
133 regulator-name = "VDDIO_AO1V8";
134 regulator-min-microvolt = <1800000>;
135 regulator-max-microvolt = <1800000>;
136 regulator-always-on;
137 /* U17 RT9179GB */
138 vin-supply = <&p5v0>;
139 };
140
141 vddio_ao3v3: regulator-vddio-ao3v3 {
142 compatible = "regulator-fixed";
143 regulator-name = "VDDIO_AO3V3";
144 regulator-min-microvolt = <3300000>;
145 regulator-max-microvolt = <3300000>;
146 regulator-always-on;
147 /* U11 MP2161GJ-C499 */
148 vin-supply = <&p5v0>;
149 };
150
f0ed445e 151 ddr3_1v5: regulator-ddr3-1v5 {
60c5abf6
AM
152 compatible = "regulator-fixed";
153 regulator-name = "DDR3_1V5";
154 regulator-min-microvolt = <1500000>;
155 regulator-max-microvolt = <1500000>;
156 regulator-always-on;
157 /* U15 MP2161GJ-C499 */
158 vin-supply = <&p5v0>;
159 };
160
ef8d2ffe
KH
161 emmc_pwrseq: emmc-pwrseq {
162 compatible = "mmc-pwrseq-emmc";
163 reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
164 };
fc19afa1
NA
165
166 hdmi-connector {
167 compatible = "hdmi-connector";
168 type = "a";
169
170 port {
171 hdmi_connector_in: endpoint {
172 remote-endpoint = <&hdmi_tx_tmds_out>;
173 };
174 };
175 };
ba414bc5
CH
176
177 sound {
178 compatible = "amlogic,gx-sound-card";
933b80ed 179 model = "ODROID-C2";
9b5d2511
NA
180 clocks = <&clkc CLKID_MPLL0>,
181 <&clkc CLKID_MPLL1>,
182 <&clkc CLKID_MPLL2>;
183
ba414bc5
CH
184 assigned-clocks = <&clkc CLKID_MPLL0>,
185 <&clkc CLKID_MPLL1>,
186 <&clkc CLKID_MPLL2>;
187 assigned-clock-parents = <0>, <0>, <0>;
188 assigned-clock-rates = <294912000>,
189 <270950400>,
190 <393216000>;
ba414bc5
CH
191
192 dai-link-0 {
193 sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>;
194 };
195
196 dai-link-1 {
197 sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>;
198 dai-format = "i2s";
199 mclk-fs = <256>;
200
201 codec-0 {
202 sound-dai = <&aiu AIU_HDMI CTRL_I2S>;
203 };
204 };
205
206 dai-link-2 {
207 sound-dai = <&aiu AIU_HDMI CTRL_OUT>;
208
209 codec-0 {
210 sound-dai = <&hdmi_tx>;
211 };
212 };
213 };
214};
215
216&aiu {
217 status = "okay";
fc19afa1
NA
218};
219
220&cec_AO {
221 status = "okay";
222 pinctrl-0 = <&ao_cec_pins>;
223 pinctrl-names = "default";
224 hdmi-phandle = <&hdmi_tx>;
85596034
KH
225};
226
8c5509f0
KH
227&ethmac {
228 status = "okay";
3be2d9cf 229 pinctrl-0 = <&eth_rgmii_pins>;
8c5509f0 230 pinctrl-names = "default";
feb3cbea 231 phy-handle = <&eth_phy0>;
b6ff2721
MB
232 phy-mode = "rgmii";
233
093d23db
MB
234 amlogic,tx-delay-ns = <2>;
235
feb3cbea
JB
236 mdio {
237 compatible = "snps,dwmac-mdio";
238 #address-cells = <1>;
239 #size-cells = <0>;
240
241 eth_phy0: ethernet-phy@0 {
50290cfe 242 /* Realtek RTL8211F (0x001cc916) */
feb3cbea 243 reg = <0>;
f29cabf2
MB
244
245 reset-assert-us = <10000>;
c183c406 246 reset-deassert-us = <80000>;
f29cabf2
MB
247 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
248
b94d22d9 249 interrupt-parent = <&gpio_intc>;
50290cfe 250 /* MAC_INTR on GPIOZ_15 */
b94d22d9 251 interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
feb3cbea
JB
252 };
253 };
8c5509f0
KH
254};
255
fc19afa1
NA
256&hdmi_tx {
257 status = "okay";
258 pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
259 pinctrl-names = "default";
0ac0be65 260 hdmi-supply = <&hdmi_p5v0>;
fc19afa1
NA
261};
262
263&hdmi_tx_tmds_port {
264 hdmi_tx_tmds_out: endpoint {
265 remote-endpoint = <&hdmi_connector_in>;
266 };
267};
268
3b69bdbf
AF
269&i2c_A {
270 status = "okay";
271 pinctrl-0 = <&i2c_a_pins>;
272 pinctrl-names = "default";
273};
274
275&ir {
276 status = "okay";
277 pinctrl-0 = <&remote_input_ao_pins>;
278 pinctrl-names = "default";
67c4dd59 279 linux,rc-map-name = "rc-odroid";
3b69bdbf
AF
280};
281
2165b006 282&gpio_ao {
b03c7d64
NA
283 gpio-line-names = "UART TX", "UART RX", "VCCK En", "TF 3V3/1V8 En",
284 "USB HUB nRESET", "USB OTG Power En",
285 "J7 Header Pin2", "IR In", "J7 Header Pin4",
286 "J7 Header Pin6", "J7 Header Pin5", "J7 Header Pin7",
e43f20e8
JB
287 "HDMI CEC", "SYS LED",
288 /* GPIO_TEST_N */
289 "";
b03c7d64
NA
290};
291
2165b006 292&gpio {
b03c7d64
NA
293 gpio-line-names = /* Bank GPIOZ */
294 "Eth MDIO", "Eth MDC", "Eth RGMII RX Clk",
295 "Eth RX DV", "Eth RX D0", "Eth RX D1", "Eth RX D2",
296 "Eth RX D3", "Eth RGMII TX Clk", "Eth TX En",
297 "Eth TX D0", "Eth TX D1", "Eth TX D2", "Eth TX D3",
298 "Eth PHY nRESET", "Eth PHY Intc",
299 /* Bank GPIOH */
300 "HDMI HPD", "HDMI DDC SDA", "HDMI DDC SCL", "",
301 /* Bank BOOT */
302 "eMMC D0", "eMMC D1", "eMMC D2", "eMMC D3", "eMMC D4",
303 "eMMC D5", "eMMC D6", "eMMC D7", "eMMC Clk",
304 "eMMC Reset", "eMMC CMD",
305 "", "", "", "", "", "", "",
306 /* Bank CARD */
307 "SDCard D1", "SDCard D0", "SDCard CLK", "SDCard CMD",
308 "SDCard D3", "SDCard D2", "SDCard Det",
309 /* Bank GPIODV */
310 "", "", "", "", "", "", "", "", "", "", "", "", "",
311 "", "", "", "", "", "", "", "", "", "", "",
312 "I2C A SDA", "I2C A SCK", "I2C B SDA", "I2C B SCK",
313 "PWM D", "PWM B",
314 /* Bank GPIOY */
315 "Revision Bit0", "Revision Bit1", "",
316 "J2 Header Pin35", "", "", "", "J2 Header Pin36",
317 "J2 Header Pin31", "", "", "", "TF VDD En",
318 "J2 Header Pin32", "J2 Header Pin26", "", "",
319 /* Bank GPIOX */
320 "J2 Header Pin29", "J2 Header Pin24",
321 "J2 Header Pin23", "J2 Header Pin22",
322 "J2 Header Pin21", "J2 Header Pin18",
323 "J2 Header Pin33", "J2 Header Pin19",
324 "J2 Header Pin16", "J2 Header Pin15",
325 "J2 Header Pin12", "J2 Header Pin13",
326 "J2 Header Pin8", "J2 Header Pin10",
327 "", "", "", "", "",
e43f20e8 328 "J2 Header Pin11", "", "J2 Header Pin7", "",
b03c7d64 329 /* Bank GPIOCLK */
e43f20e8 330 "", "", "", "";
b03c7d64
NA
331};
332
62158c6a
HK
333&saradc {
334 status = "okay";
335 vref-supply = <&vcc1v8>;
336};
337
3b69bdbf
AF
338&scpi_clocks {
339 status = "disabled";
340};
341
ef8d2ffe
KH
342/* SD */
343&sd_emmc_b {
344 status = "okay";
345 pinctrl-0 = <&sdcard_pins>;
67e7607f
JB
346 pinctrl-1 = <&sdcard_clk_gate_pins>;
347 pinctrl-names = "default", "clk-gate";
ef8d2ffe
KH
348
349 bus-width = <4>;
350 cap-sd-highspeed;
7e2b33ff
JB
351 sd-uhs-sdr12;
352 sd-uhs-sdr25;
353 sd-uhs-sdr50;
354 sd-uhs-ddr50;
ef8d2ffe
KH
355 max-frequency = <100000000>;
356 disable-wp;
357
f29200c8 358 cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
ef8d2ffe
KH
359
360 vmmc-supply = <&tflash_vdd>;
361 vqmmc-supply = <&tf_io>;
362};
363
364/* eMMC */
365&sd_emmc_c {
366 status = "okay";
ab36be66 367 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
67e7607f
JB
368 pinctrl-1 = <&emmc_clk_gate_pins>;
369 pinctrl-names = "default", "clk-gate";
ef8d2ffe
KH
370
371 bus-width = <8>;
7e2b33ff 372 max-frequency = <200000000>;
ef8d2ffe
KH
373 non-removable;
374 disable-wp;
375 cap-mmc-highspeed;
376 mmc-ddr-1_8v;
377 mmc-hs200-1_8v;
378
379 mmc-pwrseq = <&emmc_pwrseq>;
380 vmmc-supply = <&vcc3v3>;
381 vqmmc-supply = <&vcc1v8>;
382};
3b69bdbf
AF
383
384&uart_AO {
385 status = "okay";
386 pinctrl-0 = <&uart_ao_a_pins>;
387 pinctrl-names = "default";
388};
389
390&usb0_phy {
72c9b5f6 391 status = "disabled";
3b69bdbf
AF
392 phy-supply = <&usb_otg_pwr>;
393};
394
395&usb1_phy {
396 status = "okay";
e841ec95 397 phy-supply = <&usb_otg_pwr>;
3b69bdbf
AF
398};
399
400&usb0 {
72c9b5f6 401 status = "disabled";
3b69bdbf
AF
402};
403
404&usb1 {
f24859bb
AM
405 dr_mode = "host";
406 #address-cells = <1>;
407 #size-cells = <0>;
3b69bdbf 408 status = "okay";
f24859bb
AM
409
410 hub@1 {
411 /* Genesys Logic GL852G USB 2.0 hub */
412 compatible = "usb5e3,610";
413 reg = <1>;
414 vdd-supply = <&p5v0>;
e822ce43 415 reset-gpios = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_LOW>;
f24859bb 416 };
3b69bdbf 417};