Commit | Line | Data |
---|---|---|
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> |
85596034 KH |
12 | |
13 | / { | |
14 | compatible = "hardkernel,odroid-c2", "amlogic,meson-gxbb"; | |
15 | model = "Hardkernel ODROID-C2"; | |
67e7607f | 16 | |
85596034 KH |
17 | aliases { |
18 | serial0 = &uart_AO; | |
059a58fc | 19 | ethernet0 = ðmac; |
85596034 KH |
20 | }; |
21 | ||
22 | chosen { | |
23 | stdout-path = "serial0:115200n8"; | |
24 | }; | |
25 | ||
26 | memory@0 { | |
27 | device_type = "memory"; | |
28 | reg = <0x0 0x0 0x0 0x80000000>; | |
29 | }; | |
f40d437f | 30 | |
5a0803bd BK |
31 | usb_otg_pwr: regulator-usb-pwrs { |
32 | compatible = "regulator-fixed"; | |
33 | ||
34 | regulator-name = "USB_OTG_PWR"; | |
35 | ||
36 | regulator-min-microvolt = <5000000>; | |
37 | regulator-max-microvolt = <5000000>; | |
38 | ||
39 | gpio = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>; | |
40 | enable-active-high; | |
41 | }; | |
42 | ||
f40d437f CC |
43 | leds { |
44 | compatible = "gpio-leds"; | |
45 | blue { | |
46 | label = "c2:blue:alive"; | |
47 | gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_LOW>; | |
48 | linux,default-trigger = "heartbeat"; | |
49 | default-state = "off"; | |
50 | }; | |
51 | }; | |
ef8d2ffe KH |
52 | |
53 | tflash_vdd: regulator-tflash_vdd { | |
54 | /* | |
55 | * signal name from schematics: TFLASH_VDD_EN | |
56 | */ | |
57 | compatible = "regulator-fixed"; | |
58 | ||
59 | regulator-name = "TFLASH_VDD"; | |
60 | regulator-min-microvolt = <3300000>; | |
61 | regulator-max-microvolt = <3300000>; | |
62 | ||
c34cd35e | 63 | gpio = <&gpio GPIOY_12 GPIO_ACTIVE_HIGH>; |
ef8d2ffe KH |
64 | enable-active-high; |
65 | }; | |
66 | ||
67 | tf_io: gpio-regulator-tf_io { | |
68 | compatible = "regulator-gpio"; | |
69 | ||
70 | regulator-name = "TF_IO"; | |
71 | regulator-min-microvolt = <1800000>; | |
72 | regulator-max-microvolt = <3300000>; | |
73 | ||
74 | /* | |
75 | * signal name from schematics: TF_3V3N_1V8_EN | |
76 | */ | |
77 | gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>; | |
78 | gpios-states = <0>; | |
79 | ||
80 | states = <3300000 0 | |
81 | 1800000 1>; | |
82 | }; | |
83 | ||
84 | vcc1v8: regulator-vcc1v8 { | |
85 | compatible = "regulator-fixed"; | |
86 | regulator-name = "VCC1V8"; | |
87 | regulator-min-microvolt = <1800000>; | |
88 | regulator-max-microvolt = <1800000>; | |
89 | }; | |
90 | ||
91 | vcc3v3: regulator-vcc3v3 { | |
92 | compatible = "regulator-fixed"; | |
93 | regulator-name = "VCC3V3"; | |
94 | regulator-min-microvolt = <3300000>; | |
95 | regulator-max-microvolt = <3300000>; | |
96 | }; | |
97 | ||
98 | emmc_pwrseq: emmc-pwrseq { | |
99 | compatible = "mmc-pwrseq-emmc"; | |
100 | reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; | |
101 | }; | |
fc19afa1 NA |
102 | |
103 | hdmi-connector { | |
104 | compatible = "hdmi-connector"; | |
105 | type = "a"; | |
106 | ||
107 | port { | |
108 | hdmi_connector_in: endpoint { | |
109 | remote-endpoint = <&hdmi_tx_tmds_out>; | |
110 | }; | |
111 | }; | |
112 | }; | |
113 | }; | |
114 | ||
115 | &cec_AO { | |
116 | status = "okay"; | |
117 | pinctrl-0 = <&ao_cec_pins>; | |
118 | pinctrl-names = "default"; | |
119 | hdmi-phandle = <&hdmi_tx>; | |
85596034 KH |
120 | }; |
121 | ||
8c5509f0 KH |
122 | ðmac { |
123 | status = "okay"; | |
3be2d9cf | 124 | pinctrl-0 = <ð_rgmii_pins>; |
8c5509f0 | 125 | pinctrl-names = "default"; |
feb3cbea | 126 | phy-handle = <ð_phy0>; |
b6ff2721 MB |
127 | phy-mode = "rgmii"; |
128 | ||
129 | snps,reset-gpio = <&gpio GPIOZ_14 0>; | |
130 | snps,reset-delays-us = <0 10000 1000000>; | |
131 | snps,reset-active-low; | |
feb3cbea | 132 | |
093d23db MB |
133 | amlogic,tx-delay-ns = <2>; |
134 | ||
feb3cbea JB |
135 | mdio { |
136 | compatible = "snps,dwmac-mdio"; | |
137 | #address-cells = <1>; | |
138 | #size-cells = <0>; | |
139 | ||
140 | eth_phy0: ethernet-phy@0 { | |
50290cfe | 141 | /* Realtek RTL8211F (0x001cc916) */ |
feb3cbea | 142 | reg = <0>; |
b94d22d9 | 143 | interrupt-parent = <&gpio_intc>; |
50290cfe | 144 | /* MAC_INTR on GPIOZ_15 */ |
b94d22d9 | 145 | interrupts = <29 IRQ_TYPE_LEVEL_LOW>; |
feb3cbea JB |
146 | eee-broken-1000t; |
147 | }; | |
148 | }; | |
8c5509f0 KH |
149 | }; |
150 | ||
3b69bdbf AF |
151 | &gpio_ao { |
152 | /* | |
153 | * WARNING: The USB Hub on the Odroid-C2 needs a reset signal | |
154 | * to be turned high in order to be detected by the USB Controller | |
155 | * This signal should be handled by a USB specific power sequence | |
156 | * in order to reset the Hub when USB bus is powered down. | |
157 | */ | |
158 | usb-hub { | |
159 | gpio-hog; | |
160 | gpios = <GPIOAO_4 GPIO_ACTIVE_HIGH>; | |
161 | output-high; | |
162 | line-name = "usb-hub-reset"; | |
163 | }; | |
164 | }; | |
165 | ||
fc19afa1 NA |
166 | &hdmi_tx { |
167 | status = "okay"; | |
168 | pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; | |
169 | pinctrl-names = "default"; | |
170 | }; | |
171 | ||
172 | &hdmi_tx_tmds_port { | |
173 | hdmi_tx_tmds_out: endpoint { | |
174 | remote-endpoint = <&hdmi_connector_in>; | |
175 | }; | |
176 | }; | |
177 | ||
3b69bdbf AF |
178 | &i2c_A { |
179 | status = "okay"; | |
180 | pinctrl-0 = <&i2c_a_pins>; | |
181 | pinctrl-names = "default"; | |
182 | }; | |
183 | ||
184 | &ir { | |
185 | status = "okay"; | |
186 | pinctrl-0 = <&remote_input_ao_pins>; | |
187 | pinctrl-names = "default"; | |
188 | }; | |
189 | ||
2165b006 | 190 | &gpio_ao { |
b03c7d64 NA |
191 | gpio-line-names = "UART TX", "UART RX", "VCCK En", "TF 3V3/1V8 En", |
192 | "USB HUB nRESET", "USB OTG Power En", | |
193 | "J7 Header Pin2", "IR In", "J7 Header Pin4", | |
194 | "J7 Header Pin6", "J7 Header Pin5", "J7 Header Pin7", | |
e43f20e8 JB |
195 | "HDMI CEC", "SYS LED", |
196 | /* GPIO_TEST_N */ | |
197 | ""; | |
b03c7d64 NA |
198 | }; |
199 | ||
2165b006 | 200 | &gpio { |
b03c7d64 NA |
201 | gpio-line-names = /* Bank GPIOZ */ |
202 | "Eth MDIO", "Eth MDC", "Eth RGMII RX Clk", | |
203 | "Eth RX DV", "Eth RX D0", "Eth RX D1", "Eth RX D2", | |
204 | "Eth RX D3", "Eth RGMII TX Clk", "Eth TX En", | |
205 | "Eth TX D0", "Eth TX D1", "Eth TX D2", "Eth TX D3", | |
206 | "Eth PHY nRESET", "Eth PHY Intc", | |
207 | /* Bank GPIOH */ | |
208 | "HDMI HPD", "HDMI DDC SDA", "HDMI DDC SCL", "", | |
209 | /* Bank BOOT */ | |
210 | "eMMC D0", "eMMC D1", "eMMC D2", "eMMC D3", "eMMC D4", | |
211 | "eMMC D5", "eMMC D6", "eMMC D7", "eMMC Clk", | |
212 | "eMMC Reset", "eMMC CMD", | |
213 | "", "", "", "", "", "", "", | |
214 | /* Bank CARD */ | |
215 | "SDCard D1", "SDCard D0", "SDCard CLK", "SDCard CMD", | |
216 | "SDCard D3", "SDCard D2", "SDCard Det", | |
217 | /* Bank GPIODV */ | |
218 | "", "", "", "", "", "", "", "", "", "", "", "", "", | |
219 | "", "", "", "", "", "", "", "", "", "", "", | |
220 | "I2C A SDA", "I2C A SCK", "I2C B SDA", "I2C B SCK", | |
221 | "PWM D", "PWM B", | |
222 | /* Bank GPIOY */ | |
223 | "Revision Bit0", "Revision Bit1", "", | |
224 | "J2 Header Pin35", "", "", "", "J2 Header Pin36", | |
225 | "J2 Header Pin31", "", "", "", "TF VDD En", | |
226 | "J2 Header Pin32", "J2 Header Pin26", "", "", | |
227 | /* Bank GPIOX */ | |
228 | "J2 Header Pin29", "J2 Header Pin24", | |
229 | "J2 Header Pin23", "J2 Header Pin22", | |
230 | "J2 Header Pin21", "J2 Header Pin18", | |
231 | "J2 Header Pin33", "J2 Header Pin19", | |
232 | "J2 Header Pin16", "J2 Header Pin15", | |
233 | "J2 Header Pin12", "J2 Header Pin13", | |
234 | "J2 Header Pin8", "J2 Header Pin10", | |
235 | "", "", "", "", "", | |
e43f20e8 | 236 | "J2 Header Pin11", "", "J2 Header Pin7", "", |
b03c7d64 | 237 | /* Bank GPIOCLK */ |
e43f20e8 | 238 | "", "", "", ""; |
b03c7d64 NA |
239 | }; |
240 | ||
62158c6a HK |
241 | &saradc { |
242 | status = "okay"; | |
243 | vref-supply = <&vcc1v8>; | |
244 | }; | |
245 | ||
3b69bdbf AF |
246 | &scpi_clocks { |
247 | status = "disabled"; | |
248 | }; | |
249 | ||
ef8d2ffe KH |
250 | /* SD */ |
251 | &sd_emmc_b { | |
252 | status = "okay"; | |
253 | pinctrl-0 = <&sdcard_pins>; | |
67e7607f JB |
254 | pinctrl-1 = <&sdcard_clk_gate_pins>; |
255 | pinctrl-names = "default", "clk-gate"; | |
ef8d2ffe KH |
256 | |
257 | bus-width = <4>; | |
258 | cap-sd-highspeed; | |
259 | max-frequency = <100000000>; | |
260 | disable-wp; | |
261 | ||
262 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>; | |
263 | cd-inverted; | |
264 | ||
265 | vmmc-supply = <&tflash_vdd>; | |
266 | vqmmc-supply = <&tf_io>; | |
267 | }; | |
268 | ||
269 | /* eMMC */ | |
270 | &sd_emmc_c { | |
271 | status = "okay"; | |
ab36be66 | 272 | pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; |
67e7607f JB |
273 | pinctrl-1 = <&emmc_clk_gate_pins>; |
274 | pinctrl-names = "default", "clk-gate"; | |
ef8d2ffe KH |
275 | |
276 | bus-width = <8>; | |
c04ffa71 | 277 | max-frequency = <100000000>; |
ef8d2ffe KH |
278 | non-removable; |
279 | disable-wp; | |
280 | cap-mmc-highspeed; | |
281 | mmc-ddr-1_8v; | |
282 | mmc-hs200-1_8v; | |
283 | ||
284 | mmc-pwrseq = <&emmc_pwrseq>; | |
285 | vmmc-supply = <&vcc3v3>; | |
286 | vqmmc-supply = <&vcc1v8>; | |
287 | }; | |
3b69bdbf AF |
288 | |
289 | &uart_AO { | |
290 | status = "okay"; | |
291 | pinctrl-0 = <&uart_ao_a_pins>; | |
292 | pinctrl-names = "default"; | |
293 | }; | |
294 | ||
295 | &usb0_phy { | |
296 | status = "okay"; | |
297 | phy-supply = <&usb_otg_pwr>; | |
298 | }; | |
299 | ||
300 | &usb1_phy { | |
301 | status = "okay"; | |
e841ec95 | 302 | phy-supply = <&usb_otg_pwr>; |
3b69bdbf AF |
303 | }; |
304 | ||
305 | &usb0 { | |
306 | status = "okay"; | |
307 | }; | |
308 | ||
309 | &usb1 { | |
310 | status = "okay"; | |
311 | }; |