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