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