treewide: remove redundant IS_ERR() before error code check
[linux/fpc-iii.git] / arch / arm / boot / dts / meson8b-odroidc1.dts
bloba24eccc354b95851f1b48663776a26e5e74a9712
1 // SPDX-License-Identifier: GPL-2.0 OR MIT
2 /*
3  * Copyright 2015 Endless Mobile, Inc.
4  * Author: Carlo Caione <carlo@endlessm.com>
5  */
7 /dts-v1/;
8 #include "meson8b.dtsi"
9 #include <dt-bindings/gpio/gpio.h>
11 / {
12         model = "Hardkernel ODROID-C1";
13         compatible = "hardkernel,odroid-c1", "amlogic,meson8b";
15         aliases {
16                 serial0 = &uart_AO;
17                 mmc0 = &sd_card_slot;
18         };
20         chosen {
21                 stdout-path = "serial0:115200n8";
22         };
24         memory {
25                 device_type = "memory";
26                 reg = <0x40000000 0x40000000>;
27         };
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         };
39         p5v0: regulator-p5v0 {
40                 compatible = "regulator-fixed";
42                 regulator-name = "P5V0";
43                 regulator-min-microvolt = <5000000>;
44                 regulator-max-microvolt = <5000000>;
45         };
47         tflash_vdd: regulator-tflash_vdd {
48                 /*
49                  * signal name from schematics: TFLASH_VDD_EN
50                  */
51                 compatible = "regulator-fixed";
53                 regulator-name = "TFLASH_VDD";
54                 regulator-min-microvolt = <3300000>;
55                 regulator-max-microvolt = <3300000>;
57                 vin-supply = <&vcc_3v3>;
59                 gpio = <&gpio GPIOY_12 GPIO_ACTIVE_HIGH>;
60                 enable-active-high;
61         };
63         tf_io: gpio-regulator-tf_io {
64                 compatible = "regulator-gpio";
66                 regulator-name = "TF_IO";
67                 regulator-min-microvolt = <1800000>;
68                 regulator-max-microvolt = <3300000>;
70                 vin-supply = <&vcc_3v3>;
72                 /*
73                  * signal name from schematics: TF_3V3N_1V8_EN
74                  */
75                 gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>;
76                 gpios-states = <0>;
78                 states = <3300000 0
79                           1800000 1>;
80         };
82         iio-hwmon {
83                 compatible = "iio-hwmon";
84                 io-channels = <&saradc 8>;
85         };
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         };
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";
103                 regulator-name = "VCC1V8";
104                 regulator-min-microvolt = <1800000>;
105                 regulator-max-microvolt = <1800000>;
107                 vin-supply = <&p5v0>;
108         };
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";
118                 regulator-name = "VCC3V3";
119                 regulator-min-microvolt = <3300000>;
120                 regulator-max-microvolt = <3300000>;
122                 vin-supply = <&p5v0>;
123         };
125         vcck: regulator-vcck {
126                 /* Monolithic Power Systems MP2161 */
127                 compatible = "pwm-regulator";
129                 regulator-name = "VCCK";
130                 regulator-min-microvolt = <860000>;
131                 regulator-max-microvolt = <1140000>;
133                 vin-supply = <&p5v0>;
135                 pwms = <&pwm_cd 0 12218 0>;
136                 pwm-dutycycle-range = <91 0>;
138                 regulator-boot-on;
139                 regulator-always-on;
140         };
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";
150                 regulator-name = "DDR_VDDC";
151                 regulator-min-microvolt = <1500000>;
152                 regulator-max-microvolt = <1500000>;
154                 vin-supply = <&p5v0>;
155         };
157         vddee: regulator-vddee {
158                 /* Monolithic Power Systems MP2161 */
159                 compatible = "pwm-regulator";
161                 regulator-name = "VDDEE";
162                 regulator-min-microvolt = <860000>;
163                 regulator-max-microvolt = <1140000>;
165                 vin-supply = <&p5v0>;
167                 pwms = <&pwm_cd 1 12218 0>;
168                 pwm-dutycycle-range = <91 0>;
170                 regulator-boot-on;
171                 regulator-always-on;
172         };
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";
181                 regulator-name = "VDD_RTC";
182                 regulator-min-microvolt = <900000>;
183                 regulator-max-microvolt = <900000>;
185                 vin-supply = <&vcc_3v3>;
186         };
189 &cpu0 {
190         cpu-supply = <&vcck>;
193 &efuse {
194         ethernet_mac_address: mac@1b4 {
195                 reg = <0x1b4 0x6>;
196         };
199 &ethmac {
200         status = "okay";
202         pinctrl-0 = <&eth_rgmii_pins>;
203         pinctrl-names = "default";
205         phy-mode = "rgmii";
206         phy-handle = <&eth_phy>;
207         amlogic,tx-delay-ns = <4>;
209         nvmem-cells = <&ethernet_mac_address>;
210         nvmem-cell-names = "mac-address";
212         mdio {
213                 compatible = "snps,dwmac-mdio";
214                 #address-cells = <1>;
215                 #size-cells = <0>;
217                 /* Realtek RTL8211F (0x001cc916) */
218                 eth_phy: ethernet-phy@0 {
219                         reg = <0>;
221                         reset-assert-us = <10000>;
222                         reset-deassert-us = <30000>;
223                         reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>;
225                         interrupt-parent = <&gpio_intc>;
226                         /* GPIOH_3 */
227                         interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
228                 };
229         };
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";
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", "", "";
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         };
299 &ir_receiver {
300         status = "okay";
301         pinctrl-0 = <&ir_recv_pins>;
302         pinctrl-names = "default";
305 &mali {
306         mali-supply = <&vddee>;
309 &saradc {
310         status = "okay";
311         vref-supply = <&vcc_1v8>;
314 &sdio {
315         status = "okay";
317         pinctrl-0 = <&sd_b_pins>;
318         pinctrl-names = "default";
320         /* SD card */
321         sd_card_slot: slot@1 {
322                 compatible = "mmc-slot";
323                 reg = <1>;
324                 status = "okay";
326                 bus-width = <4>;
327                 no-sdio;
328                 cap-mmc-highspeed;
329                 cap-sd-highspeed;
330                 disable-wp;
332                 cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
334                 vmmc-supply = <&tflash_vdd>;
335                 vqmmc-supply = <&tf_io>;
336         };
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";
347 &rtc {
348         /* needs to be enabled manually when a battery is connected */
349         clocks = <&rtc32k_xtal>;
350         vdd-supply = <&vdd_rtc>;
353 &uart_AO {
354         status = "okay";
355         pinctrl-0 = <&uart_ao_a_pins>;
356         pinctrl-names = "default";
359 &usb1_phy {
360         status = "okay";
363 &usb1 {
364         status = "okay";