1 // SPDX-License-Identifier: GPL-2.0 OR MIT
3 * Copyright 2015 Endless Mobile, Inc.
4 * Author: Carlo Caione <carlo@endlessm.com>
8 #include "meson8b.dtsi"
9 #include <dt-bindings/gpio/gpio.h>
12 model = "Hardkernel ODROID-C1";
13 compatible = "hardkernel,odroid-c1", "amlogic,meson8b";
22 stdout-path = "serial0:115200n8";
26 device_type = "memory";
27 reg = <0x40000000 0x40000000>;
30 emmc_pwrseq: emmc-pwrseq {
31 compatible = "mmc-pwrseq-emmc";
32 reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
36 compatible = "gpio-leds";
38 label = "c1:blue:alive";
39 gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_LOW>;
40 linux,default-trigger = "heartbeat";
41 default-state = "off";
45 p5v0: regulator-p5v0 {
46 compatible = "regulator-fixed";
48 regulator-name = "P5V0";
49 regulator-min-microvolt = <5000000>;
50 regulator-max-microvolt = <5000000>;
53 tflash_vdd: regulator-tflash_vdd {
55 * signal name from schematics: TFLASH_VDD_EN
57 compatible = "regulator-fixed";
59 regulator-name = "TFLASH_VDD";
60 regulator-min-microvolt = <3300000>;
61 regulator-max-microvolt = <3300000>;
63 vin-supply = <&vcc_3v3>;
65 gpio = <&gpio GPIOY_12 GPIO_ACTIVE_HIGH>;
69 tf_io: gpio-regulator-tf_io {
70 compatible = "regulator-gpio";
72 regulator-name = "TF_IO";
73 regulator-min-microvolt = <1800000>;
74 regulator-max-microvolt = <3300000>;
76 vin-supply = <&vcc_3v3>;
79 * signal name from schematics: TF_3V3N_1V8_EN
81 gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>;
89 compatible = "iio-hwmon";
90 io-channels = <&saradc 8>;
93 rtc32k_xtal: rtc32k-xtal-clk {
94 /* X3 in the schematics */
95 compatible = "fixed-clock";
96 clock-frequency = <32768>;
97 clock-output-names = "RTC32K";
101 vcc_1v8: regulator-vcc-1v8 {
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.
107 compatible = "regulator-fixed";
109 regulator-name = "VCC1V8";
110 regulator-min-microvolt = <1800000>;
111 regulator-max-microvolt = <1800000>;
113 vin-supply = <&p5v0>;
116 vcc_3v3: regulator-vcc-3v3 {
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.
122 compatible = "regulator-fixed";
124 regulator-name = "VCC3V3";
125 regulator-min-microvolt = <3300000>;
126 regulator-max-microvolt = <3300000>;
128 vin-supply = <&p5v0>;
131 vcck: regulator-vcck {
132 /* Monolithic Power Systems MP2161 */
133 compatible = "pwm-regulator";
135 regulator-name = "VCCK";
136 regulator-min-microvolt = <860000>;
137 regulator-max-microvolt = <1140000>;
139 vin-supply = <&p5v0>;
141 pwms = <&pwm_cd 0 12218 0>;
142 pwm-dutycycle-range = <91 0>;
148 vddc_ddr: regulator-vddc-ddr {
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.
154 compatible = "regulator-fixed";
156 regulator-name = "DDR_VDDC";
157 regulator-min-microvolt = <1500000>;
158 regulator-max-microvolt = <1500000>;
160 vin-supply = <&p5v0>;
163 vddee: regulator-vddee {
164 /* Monolithic Power Systems MP2161 */
165 compatible = "pwm-regulator";
167 regulator-name = "VDDEE";
168 regulator-min-microvolt = <860000>;
169 regulator-max-microvolt = <1140000>;
171 vin-supply = <&p5v0>;
173 pwms = <&pwm_cd 1 12218 0>;
174 pwm-dutycycle-range = <91 0>;
180 vdd_rtc: regulator-vdd-rtc {
182 * Torex Semiconductor XC6215 configured for a fixed output of
185 compatible = "regulator-fixed";
187 regulator-name = "VDD_RTC";
188 regulator-min-microvolt = <900000>;
189 regulator-max-microvolt = <900000>;
191 vin-supply = <&vcc_3v3>;
196 cpu-supply = <&vcck>;
200 ethernet_mac_address: mac@1b4 {
208 pinctrl-0 = <ð_rgmii_pins>;
209 pinctrl-names = "default";
211 phy-handle = <ð_phy>;
212 phy-mode = "rgmii-id";
214 nvmem-cells = <ðernet_mac_address>;
215 nvmem-cell-names = "mac-address";
218 compatible = "snps,dwmac-mdio";
219 #address-cells = <1>;
222 /* Realtek RTL8211F (0x001cc916) */
223 eth_phy: ethernet-phy@0 {
226 reset-assert-us = <10000>;
227 reset-deassert-us = <80000>;
228 reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>;
230 interrupt-parent = <&gpio_intc>;
232 interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
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",
249 "Revision (upper)", "Revision (lower)",
250 "J2 Header Pin 7", "", "J2 Header Pin 12",
251 "J2 Header Pin 11", "", "", "",
252 "TFLASH_VDD_EN", "", "",
254 "VCCK_PWM (PWM_C)", "I2CA_SDA", "I2CA_SCL",
255 "I2CB_SDA", "I2CB_SCL", "VDDEE_PWM (PWM_D)",
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",
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)",
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", "", "", "",
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";
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",
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.
298 gpios = <GPIOAO_4 GPIO_ACTIVE_HIGH>;
300 line-name = "usb-hub-reset";
306 pinctrl-0 = <&ir_recv_pins>;
307 pinctrl-names = "default";
311 mali-supply = <&vddee>;
316 vref-supply = <&vcc_1v8>;
322 pinctrl-0 = <&sdxc_c_pins>;
323 pinctrl-names = "default";
326 max-frequency = <100000000>;
333 mmc-pwrseq = <&emmc_pwrseq>;
335 vmmc-supply = <&vcc_3v3>;
336 vqmmc-supply = <&vcc_1v8>;
342 pinctrl-0 = <&sd_b_pins>;
343 pinctrl-names = "default";
346 sd_card_slot: slot@1 {
347 compatible = "mmc-slot";
357 cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
359 vmmc-supply = <&tflash_vdd>;
360 vqmmc-supply = <&tf_io>;
366 pinctrl-0 = <&pwm_c1_pins>, <&pwm_d_pins>;
367 pinctrl-names = "default";
368 clocks = <&xtal>, <&xtal>;
369 clock-names = "clkin0", "clkin1";
373 /* needs to be enabled manually when a battery is connected */
374 clocks = <&rtc32k_xtal>;
375 vdd-supply = <&vdd_rtc>;
380 pinctrl-0 = <&uart_ao_a_pins>;
381 pinctrl-names = "default";