]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/gnu/dts/arm/meson8b-odroidc1.dts
Import DTS files for arm, arm64, riscv from Linux 5.8
[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         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-handle = <&eth_phy>;
206         phy-mode = "rgmii-id";
207
208         nvmem-cells = <&ethernet_mac_address>;
209         nvmem-cell-names = "mac-address";
210
211         mdio {
212                 compatible = "snps,dwmac-mdio";
213                 #address-cells = <1>;
214                 #size-cells = <0>;
215
216                 /* Realtek RTL8211F (0x001cc916) */
217                 eth_phy: ethernet-phy@0 {
218                         reg = <0>;
219
220                         reset-assert-us = <10000>;
221                         reset-deassert-us = <30000>;
222                         reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>;
223
224                         interrupt-parent = <&gpio_intc>;
225                         /* GPIOH_3 */
226                         interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
227                 };
228         };
229 };
230
231 &gpio {
232         gpio-line-names = /* Bank GPIOX */
233                           "J2 Header Pin 35", "J2 Header Pin 36",
234                           "J2 Header Pin 32", "J2 Header Pin 31",
235                           "J2 Header Pin 29", "J2 Header Pin 18",
236                           "J2 Header Pin 22", "J2 Header Pin 16",
237                           "J2 Header Pin 23", "J2 Header Pin 21",
238                           "J2 Header Pin 19", "J2 Header Pin 33",
239                           "J2 Header Pin 8", "J2 Header Pin 10",
240                           "J2 Header Pin 15", "J2 Header Pin 13",
241                           "J2 Header Pin 24", "J2 Header Pin 26",
242                           /* Bank GPIOY */
243                           "Revision (upper)", "Revision (lower)",
244                           "J2 Header Pin 7", "", "J2 Header Pin 12",
245                           "J2 Header Pin 11", "", "", "",
246                           "TFLASH_VDD_EN", "", "",
247                           /* Bank GPIODV */
248                           "VCCK_PWM (PWM_C)", "I2CA_SDA", "I2CA_SCL",
249                           "I2CB_SDA", "I2CB_SCL", "VDDEE_PWM (PWM_D)",
250                           "",
251                           /* Bank GPIOH */
252                           "HDMI_HPD", "HDMI_I2C_SDA", "HDMI_I2C_SCL",
253                           "ETH_PHY_INTR", "ETH_PHY_NRST", "ETH_TXD1",
254                           "ETH_TXD0", "ETH_TXD3", "ETH_TXD2",
255                           "ETH_RGMII_TX_CLK",
256                           /* Bank CARD */
257                           "SD_DATA1 (SDB_D1)", "SD_DATA0 (SDB_D0)",
258                           "SD_CLK",  "SD_CMD", "SD_DATA3 (SDB_D3)",
259                           "SD_DATA2 (SDB_D2)", "SD_CDN (SD_DET_N)",
260                           /* Bank BOOT */
261                           "SDC_D0 (EMMC)", "SDC_D1 (EMMC)",
262                           "SDC_D2 (EMMC)", "SDC_D3 (EMMC)",
263                           "SDC_D4 (EMMC)", "SDC_D5 (EMMC)",
264                           "SDC_D6 (EMMC)", "SDC_D7 (EMMC)",
265                           "SDC_CLK (EMMC)", "SDC_RSTn (EMMC)",
266                           "SDC_CMD (EMMC)", "BOOT_SEL", "", "", "",
267                           "", "", "", "",
268                           /* Bank DIF */
269                           "ETH_RXD1", "ETH_RXD0", "ETH_RX_DV",
270                           "RGMII_RX_CLK", "ETH_RXD3", "ETH_RXD2",
271                           "ETH_TXEN", "ETH_PHY_REF_CLK_25MOUT",
272                           "ETH_MDC", "ETH_MDIO";
273 };
274
275 &gpio_ao {
276         gpio-line-names = "UART TX", "UART RX", "",
277                           "TF_3V3N_1V8_EN", "USB_HUB_RST_N",
278                           "USB_OTG_PWREN", "J7 Header Pin 2",
279                           "IR_IN", "J7 Header Pin 4",
280                           "J7 Header Pin 6", "J7 Header Pin 5",
281                           "J7 Header Pin 7", "HDMI_CEC",
282                           "SYS_LED", "", "";
283
284         /*
285          * WARNING: The USB Hub on the Odroid-C1/C1+ needs a reset signal
286          * to be turned high in order to be detected by the USB Controller.
287          * This signal should be handled by a USB specific power sequence
288          * in order to reset the Hub when USB bus is powered down.
289          */
290         usb-hub {
291                 gpio-hog;
292                 gpios = <GPIOAO_4 GPIO_ACTIVE_HIGH>;
293                 output-high;
294                 line-name = "usb-hub-reset";
295         };
296 };
297
298 &ir_receiver {
299         status = "okay";
300         pinctrl-0 = <&ir_recv_pins>;
301         pinctrl-names = "default";
302 };
303
304 &mali {
305         mali-supply = <&vddee>;
306 };
307
308 &saradc {
309         status = "okay";
310         vref-supply = <&vcc_1v8>;
311 };
312
313 &sdio {
314         status = "okay";
315
316         pinctrl-0 = <&sd_b_pins>;
317         pinctrl-names = "default";
318
319         /* SD card */
320         sd_card_slot: slot@1 {
321                 compatible = "mmc-slot";
322                 reg = <1>;
323                 status = "okay";
324
325                 bus-width = <4>;
326                 no-sdio;
327                 cap-mmc-highspeed;
328                 cap-sd-highspeed;
329                 disable-wp;
330
331                 cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
332
333                 vmmc-supply = <&tflash_vdd>;
334                 vqmmc-supply = <&tf_io>;
335         };
336 };
337
338 &pwm_cd {
339         status = "okay";
340         pinctrl-0 = <&pwm_c1_pins>, <&pwm_d_pins>;
341         pinctrl-names = "default";
342         clocks = <&xtal>, <&xtal>;
343         clock-names = "clkin0", "clkin1";
344 };
345
346 &rtc {
347         /* needs to be enabled manually when a battery is connected */
348         clocks = <&rtc32k_xtal>;
349         vdd-supply = <&vdd_rtc>;
350 };
351
352 &uart_AO {
353         status = "okay";
354         pinctrl-0 = <&uart_ao_a_pins>;
355         pinctrl-names = "default";
356 };
357
358 &usb1_phy {
359         status = "okay";
360 };
361
362 &usb1 {
363         status = "okay";
364 };