]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - src/arm/meson8b-odroidc1.dts
Import devicetree files from Linux 5.4
[FreeBSD/FreeBSD.git] / src / arm / meson8b-odroidc1.dts
1 // SPDX-License-Identifier: GPL-2.0 OR MIT
2 /*
3  * Copyright 2015 Endless Mobile, Inc.
4  * Author: Carlo Caione <carlo@endlessm.com>
5  */
6
7 /dts-v1/;
8 #include "meson8b.dtsi"
9 #include <dt-bindings/gpio/gpio.h>
10
11 / {
12         model = "Hardkernel ODROID-C1";
13         compatible = "hardkernel,odroid-c1", "amlogic,meson8b";
14
15         aliases {
16                 serial0 = &uart_AO;
17                 mmc0 = &sd_card_slot;
18         };
19
20         chosen {
21                 stdout-path = "serial0:115200n8";
22         };
23
24         memory {
25                 device_type = "memory";
26                 reg = <0x40000000 0x40000000>;
27         };
28
29         leds {
30                 compatible = "gpio-leds";
31                 blue {
32                         label = "c1:blue:alive";
33                         gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_LOW>;
34                         linux,default-trigger = "heartbeat";
35                         default-state = "off";
36                 };
37         };
38
39         p5v0: regulator-p5v0 {
40                 compatible = "regulator-fixed";
41
42                 regulator-name = "P5V0";
43                 regulator-min-microvolt = <5000000>;
44                 regulator-max-microvolt = <5000000>;
45         };
46
47         tflash_vdd: regulator-tflash_vdd {
48                 /*
49                  * signal name from schematics: TFLASH_VDD_EN
50                  */
51                 compatible = "regulator-fixed";
52
53                 regulator-name = "TFLASH_VDD";
54                 regulator-min-microvolt = <3300000>;
55                 regulator-max-microvolt = <3300000>;
56
57                 vin-supply = <&vcc_3v3>;
58
59                 gpio = <&gpio GPIOY_12 GPIO_ACTIVE_HIGH>;
60                 enable-active-high;
61         };
62
63         tf_io: gpio-regulator-tf_io {
64                 compatible = "regulator-gpio";
65
66                 regulator-name = "TF_IO";
67                 regulator-min-microvolt = <1800000>;
68                 regulator-max-microvolt = <3300000>;
69
70                 vin-supply = <&vcc_3v3>;
71
72                 /*
73                  * signal name from schematics: TF_3V3N_1V8_EN
74                  */
75                 gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>;
76                 gpios-states = <0>;
77
78                 states = <3300000 0
79                           1800000 1>;
80         };
81
82         iio-hwmon {
83                 compatible = "iio-hwmon";
84                 io-channels = <&saradc 8>;
85         };
86
87         rtc32k_xtal: rtc32k-xtal-clk {
88                 /* X3 in the schematics */
89                 compatible = "fixed-clock";
90                 clock-frequency = <32768>;
91                 clock-output-names = "RTC32K";
92                 #clock-cells = <0>;
93         };
94
95         vcc_1v8: regulator-vcc-1v8 {
96                 /*
97                  * RICHTEK RT9179 configured for a fixed output voltage of
98                  * 1.8V. This supplies not only VCC1V8 but also IOREF_1V8 and
99                  * VDD1V8 according to the schematics.
100                  */
101                 compatible = "regulator-fixed";
102
103                 regulator-name = "VCC1V8";
104                 regulator-min-microvolt = <1800000>;
105                 regulator-max-microvolt = <1800000>;
106
107                 vin-supply = <&p5v0>;
108         };
109
110         vcc_3v3: regulator-vcc-3v3 {
111                 /*
112                  * Monolithic Power Systems MP2161 configured for a fixed
113                  * output voltage of 3.3V. This supplies not only VCC3V3 but
114                  * also VDD3V3 and VDDIO_AO3V3 according to the schematics.
115                  */
116                 compatible = "regulator-fixed";
117
118                 regulator-name = "VCC3V3";
119                 regulator-min-microvolt = <3300000>;
120                 regulator-max-microvolt = <3300000>;
121
122                 vin-supply = <&p5v0>;
123         };
124
125         vcck: regulator-vcck {
126                 /* Monolithic Power Systems MP2161 */
127                 compatible = "pwm-regulator";
128
129                 regulator-name = "VCCK";
130                 regulator-min-microvolt = <860000>;
131                 regulator-max-microvolt = <1140000>;
132
133                 vin-supply = <&p5v0>;
134
135                 pwms = <&pwm_cd 0 12218 0>;
136                 pwm-dutycycle-range = <91 0>;
137
138                 regulator-boot-on;
139                 regulator-always-on;
140         };
141
142         vddc_ddr: regulator-vddc-ddr {
143                 /*
144                  * Monolithic Power Systems MP2161 configured for a fixed
145                  * output voltage of 1.5V. This supplies not only DDR_VDDC but
146                  * also DDR3_1V5 according to the schematics.
147                  */
148                 compatible = "regulator-fixed";
149
150                 regulator-name = "DDR_VDDC";
151                 regulator-min-microvolt = <1500000>;
152                 regulator-max-microvolt = <1500000>;
153
154                 vin-supply = <&p5v0>;
155         };
156
157         vddee: regulator-vddee {
158                 /* Monolithic Power Systems MP2161 */
159                 compatible = "pwm-regulator";
160
161                 regulator-name = "VDDEE";
162                 regulator-min-microvolt = <860000>;
163                 regulator-max-microvolt = <1140000>;
164
165                 vin-supply = <&p5v0>;
166
167                 pwms = <&pwm_cd 1 12218 0>;
168                 pwm-dutycycle-range = <91 0>;
169
170                 regulator-boot-on;
171                 regulator-always-on;
172         };
173
174         vdd_rtc: regulator-vdd-rtc {
175                 /*
176                  * Torex Semiconductor XC6215 configured for a fixed output of
177                  * 0.9V.
178                  */
179                 compatible = "regulator-fixed";
180
181                 regulator-name = "VDD_RTC";
182                 regulator-min-microvolt = <900000>;
183                 regulator-max-microvolt = <900000>;
184
185                 vin-supply = <&vcc_3v3>;
186         };
187 };
188
189 &cpu0 {
190         cpu-supply = <&vcck>;
191 };
192
193 &efuse {
194         ethernet_mac_address: mac@1b4 {
195                 reg = <0x1b4 0x6>;
196         };
197 };
198
199 &ethmac {
200         status = "okay";
201
202         pinctrl-0 = <&eth_rgmii_pins>;
203         pinctrl-names = "default";
204
205         phy-mode = "rgmii";
206         phy-handle = <&eth_phy>;
207         amlogic,tx-delay-ns = <4>;
208
209         nvmem-cells = <&ethernet_mac_address>;
210         nvmem-cell-names = "mac-address";
211
212         mdio {
213                 compatible = "snps,dwmac-mdio";
214                 #address-cells = <1>;
215                 #size-cells = <0>;
216
217                 /* Realtek RTL8211F (0x001cc916) */
218                 eth_phy: ethernet-phy@0 {
219                         reg = <0>;
220
221                         reset-assert-us = <10000>;
222                         reset-deassert-us = <30000>;
223                         reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>;
224
225                         interrupt-parent = <&gpio_intc>;
226                         /* GPIOH_3 */
227                         interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
228                 };
229         };
230 };
231
232 &gpio {
233         gpio-line-names = /* Bank GPIOX */
234                           "J2 Header Pin 35", "J2 Header Pin 36",
235                           "J2 Header Pin 32", "J2 Header Pin 31",
236                           "J2 Header Pin 29", "J2 Header Pin 18",
237                           "J2 Header Pin 22", "J2 Header Pin 16",
238                           "J2 Header Pin 23", "J2 Header Pin 21",
239                           "J2 Header Pin 19", "J2 Header Pin 33",
240                           "J2 Header Pin 8", "J2 Header Pin 10",
241                           "J2 Header Pin 15", "J2 Header Pin 13",
242                           "J2 Header Pin 24", "J2 Header Pin 26",
243                           /* Bank GPIOY */
244                           "Revision (upper)", "Revision (lower)",
245                           "J2 Header Pin 7", "", "J2 Header Pin 12",
246                           "J2 Header Pin 11", "", "", "",
247                           "TFLASH_VDD_EN", "", "",
248                           /* Bank GPIODV */
249                           "VCCK_PWM (PWM_C)", "I2CA_SDA", "I2CA_SCL",
250                           "I2CB_SDA", "I2CB_SCL", "VDDEE_PWM (PWM_D)",
251                           "",
252                           /* Bank GPIOH */
253                           "HDMI_HPD", "HDMI_I2C_SDA", "HDMI_I2C_SCL",
254                           "ETH_PHY_INTR", "ETH_PHY_NRST", "ETH_TXD1",
255                           "ETH_TXD0", "ETH_TXD3", "ETH_TXD2",
256                           "ETH_RGMII_TX_CLK",
257                           /* Bank CARD */
258                           "SD_DATA1 (SDB_D1)", "SD_DATA0 (SDB_D0)",
259                           "SD_CLK",  "SD_CMD", "SD_DATA3 (SDB_D3)",
260                           "SD_DATA2 (SDB_D2)", "SD_CDN (SD_DET_N)",
261                           /* Bank BOOT */
262                           "SDC_D0 (EMMC)", "SDC_D1 (EMMC)",
263                           "SDC_D2 (EMMC)", "SDC_D3 (EMMC)",
264                           "SDC_D4 (EMMC)", "SDC_D5 (EMMC)",
265                           "SDC_D6 (EMMC)", "SDC_D7 (EMMC)",
266                           "SDC_CLK (EMMC)", "SDC_RSTn (EMMC)",
267                           "SDC_CMD (EMMC)", "BOOT_SEL", "", "", "",
268                           "", "", "", "",
269                           /* Bank DIF */
270                           "ETH_RXD1", "ETH_RXD0", "ETH_RX_DV",
271                           "RGMII_RX_CLK", "ETH_RXD3", "ETH_RXD2",
272                           "ETH_TXEN", "ETH_PHY_REF_CLK_25MOUT",
273                           "ETH_MDC", "ETH_MDIO";
274 };
275
276 &gpio_ao {
277         gpio-line-names = "UART TX", "UART RX", "",
278                           "TF_3V3N_1V8_EN", "USB_HUB_RST_N",
279                           "USB_OTG_PWREN", "J7 Header Pin 2",
280                           "IR_IN", "J7 Header Pin 4",
281                           "J7 Header Pin 6", "J7 Header Pin 5",
282                           "J7 Header Pin 7", "HDMI_CEC",
283                           "SYS_LED", "", "";
284
285         /*
286          * WARNING: The USB Hub on the Odroid-C1/C1+ needs a reset signal
287          * to be turned high in order to be detected by the USB Controller.
288          * This signal should be handled by a USB specific power sequence
289          * in order to reset the Hub when USB bus is powered down.
290          */
291         usb-hub {
292                 gpio-hog;
293                 gpios = <GPIOAO_4 GPIO_ACTIVE_HIGH>;
294                 output-high;
295                 line-name = "usb-hub-reset";
296         };
297 };
298
299 &ir_receiver {
300         status = "okay";
301         pinctrl-0 = <&ir_recv_pins>;
302         pinctrl-names = "default";
303 };
304
305 &mali {
306         mali-supply = <&vddee>;
307 };
308
309 &saradc {
310         status = "okay";
311         vref-supply = <&vcc_1v8>;
312 };
313
314 &sdio {
315         status = "okay";
316
317         pinctrl-0 = <&sd_b_pins>;
318         pinctrl-names = "default";
319
320         /* SD card */
321         sd_card_slot: slot@1 {
322                 compatible = "mmc-slot";
323                 reg = <1>;
324                 status = "okay";
325
326                 bus-width = <4>;
327                 no-sdio;
328                 cap-mmc-highspeed;
329                 cap-sd-highspeed;
330                 disable-wp;
331
332                 cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
333
334                 vmmc-supply = <&tflash_vdd>;
335                 vqmmc-supply = <&tf_io>;
336         };
337 };
338
339 &pwm_cd {
340         status = "okay";
341         pinctrl-0 = <&pwm_c1_pins>, <&pwm_d_pins>;
342         pinctrl-names = "default";
343         clocks = <&clkc CLKID_XTAL>, <&clkc CLKID_XTAL>;
344         clock-names = "clkin0", "clkin1";
345 };
346
347 &rtc {
348         /* needs to be enabled manually when a battery is connected */
349         clocks = <&rtc32k_xtal>;
350         vdd-supply = <&vdd_rtc>;
351 };
352
353 &uart_AO {
354         status = "okay";
355         pinctrl-0 = <&uart_ao_a_pins>;
356         pinctrl-names = "default";
357 };
358
359 &usb1_phy {
360         status = "okay";
361 };
362
363 &usb1 {
364         status = "okay";
365 };