]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/gnu/dts/arm/meson8b-odroidc1.dts
Import DTS files from Linux 5.3
[FreeBSD/FreeBSD.git] / sys / gnu / dts / 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         vdd_rtc: regulator-vdd-rtc {
158                 /*
159                  * Torex Semiconductor XC6215 configured for a fixed output of
160                  * 0.9V.
161                  */
162                 compatible = "regulator-fixed";
163
164                 regulator-name = "VDD_RTC";
165                 regulator-min-microvolt = <900000>;
166                 regulator-max-microvolt = <900000>;
167
168                 vin-supply = <&vcc_3v3>;
169         };
170 };
171
172 &cpu0 {
173         cpu-supply = <&vcck>;
174 };
175
176 &ethmac {
177         status = "okay";
178
179         pinctrl-0 = <&eth_rgmii_pins>;
180         pinctrl-names = "default";
181
182         phy-mode = "rgmii";
183         phy-handle = <&eth_phy>;
184         amlogic,tx-delay-ns = <4>;
185
186         mdio {
187                 compatible = "snps,dwmac-mdio";
188                 #address-cells = <1>;
189                 #size-cells = <0>;
190
191                 /* Realtek RTL8211F (0x001cc916) */
192                 eth_phy: ethernet-phy@0 {
193                         reg = <0>;
194
195                         reset-assert-us = <10000>;
196                         reset-deassert-us = <30000>;
197                         reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>;
198
199                         interrupt-parent = <&gpio_intc>;
200                         /* GPIOH_3 */
201                         interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
202                 };
203         };
204 };
205
206 &gpio {
207         gpio-line-names = /* Bank GPIOX */
208                           "J2 Header Pin 35", "J2 Header Pin 36",
209                           "J2 Header Pin 32", "J2 Header Pin 31",
210                           "J2 Header Pin 29", "J2 Header Pin 18",
211                           "J2 Header Pin 22", "J2 Header Pin 16",
212                           "J2 Header Pin 23", "J2 Header Pin 21",
213                           "J2 Header Pin 19", "J2 Header Pin 33",
214                           "J2 Header Pin 8", "J2 Header Pin 10",
215                           "J2 Header Pin 15", "J2 Header Pin 13",
216                           "J2 Header Pin 24", "J2 Header Pin 26",
217                           /* Bank GPIOY */
218                           "Revision (upper)", "Revision (lower)",
219                           "J2 Header Pin 7", "", "J2 Header Pin 12",
220                           "J2 Header Pin 11", "", "", "",
221                           "TFLASH_VDD_EN", "", "",
222                           /* Bank GPIODV */
223                           "VCCK_PWM (PWM_C)", "I2CA_SDA", "I2CA_SCL",
224                           "I2CB_SDA", "I2CB_SCL", "VDDEE_PWM (PWM_D)",
225                           "",
226                           /* Bank GPIOH */
227                           "HDMI_HPD", "HDMI_I2C_SDA", "HDMI_I2C_SCL",
228                           "ETH_PHY_INTR", "ETH_PHY_NRST", "ETH_TXD1",
229                           "ETH_TXD0", "ETH_TXD3", "ETH_TXD2",
230                           "ETH_RGMII_TX_CLK",
231                           /* Bank CARD */
232                           "SD_DATA1 (SDB_D1)", "SD_DATA0 (SDB_D0)",
233                           "SD_CLK",  "SD_CMD", "SD_DATA3 (SDB_D3)",
234                           "SD_DATA2 (SDB_D2)", "SD_CDN (SD_DET_N)",
235                           /* Bank BOOT */
236                           "SDC_D0 (EMMC)", "SDC_D1 (EMMC)",
237                           "SDC_D2 (EMMC)", "SDC_D3 (EMMC)",
238                           "SDC_D4 (EMMC)", "SDC_D5 (EMMC)",
239                           "SDC_D6 (EMMC)", "SDC_D7 (EMMC)",
240                           "SDC_CLK (EMMC)", "SDC_RSTn (EMMC)",
241                           "SDC_CMD (EMMC)", "BOOT_SEL", "", "", "",
242                           "", "", "", "",
243                           /* Bank DIF */
244                           "ETH_RXD1", "ETH_RXD0", "ETH_RX_DV",
245                           "RGMII_RX_CLK", "ETH_RXD3", "ETH_RXD2",
246                           "ETH_TXEN", "ETH_PHY_REF_CLK_25MOUT",
247                           "ETH_MDC", "ETH_MDIO";
248 };
249
250 &gpio_ao {
251         gpio-line-names = "UART TX", "UART RX", "",
252                           "TF_3V3N_1V8_EN", "USB_HUB_RST_N",
253                           "USB_OTG_PWREN", "J7 Header Pin 2",
254                           "IR_IN", "J7 Header Pin 4",
255                           "J7 Header Pin 6", "J7 Header Pin 5",
256                           "J7 Header Pin 7", "HDMI_CEC",
257                           "SYS_LED", "", "";
258
259         /*
260          * WARNING: The USB Hub on the Odroid-C1/C1+ needs a reset signal
261          * to be turned high in order to be detected by the USB Controller.
262          * This signal should be handled by a USB specific power sequence
263          * in order to reset the Hub when USB bus is powered down.
264          */
265         usb-hub {
266                 gpio-hog;
267                 gpios = <GPIOAO_4 GPIO_ACTIVE_HIGH>;
268                 output-high;
269                 line-name = "usb-hub-reset";
270         };
271 };
272
273 &ir_receiver {
274         status = "okay";
275         pinctrl-0 = <&ir_recv_pins>;
276         pinctrl-names = "default";
277 };
278
279 &saradc {
280         status = "okay";
281         vref-supply = <&vcc_1v8>;
282 };
283
284 &sdio {
285         status = "okay";
286
287         pinctrl-0 = <&sd_b_pins>;
288         pinctrl-names = "default";
289
290         /* SD card */
291         sd_card_slot: slot@1 {
292                 compatible = "mmc-slot";
293                 reg = <1>;
294                 status = "okay";
295
296                 bus-width = <4>;
297                 no-sdio;
298                 cap-mmc-highspeed;
299                 cap-sd-highspeed;
300                 disable-wp;
301
302                 cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
303
304                 vmmc-supply = <&tflash_vdd>;
305                 vqmmc-supply = <&tf_io>;
306         };
307 };
308
309 &pwm_cd {
310         status = "okay";
311         pinctrl-0 = <&pwm_c1_pins>;
312         pinctrl-names = "default";
313         clocks = <&clkc CLKID_XTAL>;
314         clock-names = "clkin0";
315 };
316
317 &rtc {
318         /* needs to be enabled manually when a battery is connected */
319         clocks = <&rtc32k_xtal>;
320         vdd-supply = <&vdd_rtc>;
321 };
322
323 &uart_AO {
324         status = "okay";
325         pinctrl-0 = <&uart_ao_a_pins>;
326         pinctrl-names = "default";
327 };
328
329 &usb1_phy {
330         status = "okay";
331 };
332
333 &usb1 {
334         status = "okay";
335 };