1bfcef28aSBeniamino Galvani/* 2bfcef28aSBeniamino Galvani * Copyright (c) 2016 Andreas Färber 3bfcef28aSBeniamino Galvani * Copyright (c) 2016 BayLibre, Inc. 4bfcef28aSBeniamino Galvani * Author: Kevin Hilman <khilman@kernel.org> 5bfcef28aSBeniamino Galvani * 6bfcef28aSBeniamino Galvani * This file is dual-licensed: you can use it either under the terms 7bfcef28aSBeniamino Galvani * of the GPL or the X11 license, at your option. Note that this dual 8bfcef28aSBeniamino Galvani * licensing only applies to this file, and not this project as a 9bfcef28aSBeniamino Galvani * whole. 10bfcef28aSBeniamino Galvani * 11bfcef28aSBeniamino Galvani * a) This library is free software; you can redistribute it and/or 12bfcef28aSBeniamino Galvani * modify it under the terms of the GNU General Public License as 13bfcef28aSBeniamino Galvani * published by the Free Software Foundation; either version 2 of the 14bfcef28aSBeniamino Galvani * License, or (at your option) any later version. 15bfcef28aSBeniamino Galvani * 16bfcef28aSBeniamino Galvani * This library is distributed in the hope that it will be useful, 17bfcef28aSBeniamino Galvani * but WITHOUT ANY WARRANTY; without even the implied warranty of 18bfcef28aSBeniamino Galvani * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19bfcef28aSBeniamino Galvani * GNU General Public License for more details. 20bfcef28aSBeniamino Galvani * 21bfcef28aSBeniamino Galvani * Or, alternatively, 22bfcef28aSBeniamino Galvani * 23bfcef28aSBeniamino Galvani * b) Permission is hereby granted, free of charge, to any person 24bfcef28aSBeniamino Galvani * obtaining a copy of this software and associated documentation 25bfcef28aSBeniamino Galvani * files (the "Software"), to deal in the Software without 26bfcef28aSBeniamino Galvani * restriction, including without limitation the rights to use, 27bfcef28aSBeniamino Galvani * copy, modify, merge, publish, distribute, sublicense, and/or 28bfcef28aSBeniamino Galvani * sell copies of the Software, and to permit persons to whom the 29bfcef28aSBeniamino Galvani * Software is furnished to do so, subject to the following 30bfcef28aSBeniamino Galvani * conditions: 31bfcef28aSBeniamino Galvani * 32bfcef28aSBeniamino Galvani * The above copyright notice and this permission notice shall be 33bfcef28aSBeniamino Galvani * included in all copies or substantial portions of the Software. 34bfcef28aSBeniamino Galvani * 35bfcef28aSBeniamino Galvani * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 36bfcef28aSBeniamino Galvani * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 37bfcef28aSBeniamino Galvani * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 38bfcef28aSBeniamino Galvani * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 39bfcef28aSBeniamino Galvani * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 40bfcef28aSBeniamino Galvani * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 41bfcef28aSBeniamino Galvani * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 42bfcef28aSBeniamino Galvani * OTHER DEALINGS IN THE SOFTWARE. 43bfcef28aSBeniamino Galvani */ 44bfcef28aSBeniamino Galvani 45bfcef28aSBeniamino Galvani/dts-v1/; 46bfcef28aSBeniamino Galvani 47bfcef28aSBeniamino Galvani#include "meson-gxbb.dtsi" 48dd83840eSBeniamino Galvani#include <dt-bindings/gpio/gpio.h> 49bfcef28aSBeniamino Galvani 50bfcef28aSBeniamino Galvani/ { 51bfcef28aSBeniamino Galvani compatible = "hardkernel,odroid-c2", "amlogic,meson-gxbb"; 52bfcef28aSBeniamino Galvani model = "Hardkernel ODROID-C2"; 53bfcef28aSBeniamino Galvani 54bfcef28aSBeniamino Galvani aliases { 55bfcef28aSBeniamino Galvani serial0 = &uart_AO; 56bfcef28aSBeniamino Galvani }; 57bfcef28aSBeniamino Galvani 58bfcef28aSBeniamino Galvani chosen { 59bfcef28aSBeniamino Galvani stdout-path = "serial0:115200n8"; 60bfcef28aSBeniamino Galvani }; 61bfcef28aSBeniamino Galvani 62bfcef28aSBeniamino Galvani memory@0 { 63bfcef28aSBeniamino Galvani device_type = "memory"; 64bfcef28aSBeniamino Galvani reg = <0x0 0x0 0x0 0x80000000>; 65bfcef28aSBeniamino Galvani }; 66dd83840eSBeniamino Galvani 67*a3b02a1dSHeiner Kallweit usb_otg_pwr: regulator-usb-pwrs { 68*a3b02a1dSHeiner Kallweit compatible = "regulator-fixed"; 69*a3b02a1dSHeiner Kallweit 70*a3b02a1dSHeiner Kallweit regulator-name = "USB_OTG_PWR"; 71*a3b02a1dSHeiner Kallweit 72*a3b02a1dSHeiner Kallweit regulator-min-microvolt = <5000000>; 73*a3b02a1dSHeiner Kallweit regulator-max-microvolt = <5000000>; 74*a3b02a1dSHeiner Kallweit 75*a3b02a1dSHeiner Kallweit gpio = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>; 76*a3b02a1dSHeiner Kallweit enable-active-high; 77*a3b02a1dSHeiner Kallweit }; 78*a3b02a1dSHeiner Kallweit 79dd83840eSBeniamino Galvani leds { 80dd83840eSBeniamino Galvani compatible = "gpio-leds"; 81dd83840eSBeniamino Galvani blue { 82dd83840eSBeniamino Galvani label = "c2:blue:alive"; 83dd83840eSBeniamino Galvani gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_LOW>; 84dd83840eSBeniamino Galvani linux,default-trigger = "heartbeat"; 85dd83840eSBeniamino Galvani default-state = "off"; 86dd83840eSBeniamino Galvani }; 87dd83840eSBeniamino Galvani }; 88*a3b02a1dSHeiner Kallweit 89*a3b02a1dSHeiner Kallweit tflash_vdd: regulator-tflash_vdd { 90*a3b02a1dSHeiner Kallweit /* 91*a3b02a1dSHeiner Kallweit * signal name from schematics: TFLASH_VDD_EN 92*a3b02a1dSHeiner Kallweit */ 93*a3b02a1dSHeiner Kallweit compatible = "regulator-fixed"; 94*a3b02a1dSHeiner Kallweit 95*a3b02a1dSHeiner Kallweit regulator-name = "TFLASH_VDD"; 96*a3b02a1dSHeiner Kallweit regulator-min-microvolt = <3300000>; 97*a3b02a1dSHeiner Kallweit regulator-max-microvolt = <3300000>; 98*a3b02a1dSHeiner Kallweit 99*a3b02a1dSHeiner Kallweit gpio = <&gpio_ao GPIOAO_12 GPIO_ACTIVE_HIGH>; 100*a3b02a1dSHeiner Kallweit enable-active-high; 101*a3b02a1dSHeiner Kallweit }; 102*a3b02a1dSHeiner Kallweit 103*a3b02a1dSHeiner Kallweit tf_io: gpio-regulator-tf_io { 104*a3b02a1dSHeiner Kallweit compatible = "regulator-gpio"; 105*a3b02a1dSHeiner Kallweit 106*a3b02a1dSHeiner Kallweit regulator-name = "TF_IO"; 107*a3b02a1dSHeiner Kallweit regulator-min-microvolt = <1800000>; 108*a3b02a1dSHeiner Kallweit regulator-max-microvolt = <3300000>; 109*a3b02a1dSHeiner Kallweit 110*a3b02a1dSHeiner Kallweit /* 111*a3b02a1dSHeiner Kallweit * signal name from schematics: TF_3V3N_1V8_EN 112*a3b02a1dSHeiner Kallweit */ 113*a3b02a1dSHeiner Kallweit gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>; 114*a3b02a1dSHeiner Kallweit gpios-states = <0>; 115*a3b02a1dSHeiner Kallweit 116*a3b02a1dSHeiner Kallweit states = <3300000 0 117*a3b02a1dSHeiner Kallweit 1800000 1>; 118*a3b02a1dSHeiner Kallweit }; 119*a3b02a1dSHeiner Kallweit 120*a3b02a1dSHeiner Kallweit vcc1v8: regulator-vcc1v8 { 121*a3b02a1dSHeiner Kallweit compatible = "regulator-fixed"; 122*a3b02a1dSHeiner Kallweit regulator-name = "VCC1V8"; 123*a3b02a1dSHeiner Kallweit regulator-min-microvolt = <1800000>; 124*a3b02a1dSHeiner Kallweit regulator-max-microvolt = <1800000>; 125*a3b02a1dSHeiner Kallweit }; 126*a3b02a1dSHeiner Kallweit 127*a3b02a1dSHeiner Kallweit vcc3v3: regulator-vcc3v3 { 128*a3b02a1dSHeiner Kallweit compatible = "regulator-fixed"; 129*a3b02a1dSHeiner Kallweit regulator-name = "VCC3V3"; 130*a3b02a1dSHeiner Kallweit regulator-min-microvolt = <3300000>; 131*a3b02a1dSHeiner Kallweit regulator-max-microvolt = <3300000>; 132*a3b02a1dSHeiner Kallweit }; 133*a3b02a1dSHeiner Kallweit 134*a3b02a1dSHeiner Kallweit emmc_pwrseq: emmc-pwrseq { 135*a3b02a1dSHeiner Kallweit compatible = "mmc-pwrseq-emmc"; 136*a3b02a1dSHeiner Kallweit reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 137*a3b02a1dSHeiner Kallweit }; 138*a3b02a1dSHeiner Kallweit}; 139*a3b02a1dSHeiner Kallweit 140*a3b02a1dSHeiner Kallweit&scpi_clocks { 141*a3b02a1dSHeiner Kallweit status = "disabled"; 142bfcef28aSBeniamino Galvani}; 143bfcef28aSBeniamino Galvani 144bfcef28aSBeniamino Galvani&uart_AO { 145bfcef28aSBeniamino Galvani status = "okay"; 146dd83840eSBeniamino Galvani pinctrl-0 = <&uart_ao_a_pins>; 147dd83840eSBeniamino Galvani pinctrl-names = "default"; 148dd83840eSBeniamino Galvani}; 149dd83840eSBeniamino Galvani 150dd83840eSBeniamino Galvaniðmac { 151dd83840eSBeniamino Galvani status = "okay"; 152*a3b02a1dSHeiner Kallweit pinctrl-0 = <ð_rgmii_pins>; 153dd83840eSBeniamino Galvani pinctrl-names = "default"; 154*a3b02a1dSHeiner Kallweit phy-handle = <ð_phy0>; 155*a3b02a1dSHeiner Kallweit 156*a3b02a1dSHeiner Kallweit mdio { 157*a3b02a1dSHeiner Kallweit compatible = "snps,dwmac-mdio"; 158*a3b02a1dSHeiner Kallweit #address-cells = <1>; 159*a3b02a1dSHeiner Kallweit #size-cells = <0>; 160*a3b02a1dSHeiner Kallweit 161*a3b02a1dSHeiner Kallweit eth_phy0: ethernet-phy@0 { 162*a3b02a1dSHeiner Kallweit reg = <0>; 163*a3b02a1dSHeiner Kallweit eee-broken-1000t; 164*a3b02a1dSHeiner Kallweit }; 165*a3b02a1dSHeiner Kallweit }; 166*a3b02a1dSHeiner Kallweit}; 167*a3b02a1dSHeiner Kallweit 168*a3b02a1dSHeiner Kallweit&ir { 169*a3b02a1dSHeiner Kallweit status = "okay"; 170*a3b02a1dSHeiner Kallweit pinctrl-0 = <&remote_input_ao_pins>; 171*a3b02a1dSHeiner Kallweit pinctrl-names = "default"; 172*a3b02a1dSHeiner Kallweit}; 173*a3b02a1dSHeiner Kallweit 174*a3b02a1dSHeiner Kallweit&i2c_A { 175*a3b02a1dSHeiner Kallweit status = "okay"; 176*a3b02a1dSHeiner Kallweit pinctrl-0 = <&i2c_a_pins>; 177*a3b02a1dSHeiner Kallweit pinctrl-names = "default"; 178*a3b02a1dSHeiner Kallweit}; 179*a3b02a1dSHeiner Kallweit 180*a3b02a1dSHeiner Kallweit&usb0_phy { 181*a3b02a1dSHeiner Kallweit status = "okay"; 182*a3b02a1dSHeiner Kallweit phy-supply = <&usb_otg_pwr>; 183*a3b02a1dSHeiner Kallweit}; 184*a3b02a1dSHeiner Kallweit 185*a3b02a1dSHeiner Kallweit&usb1_phy { 186*a3b02a1dSHeiner Kallweit status = "okay"; 187*a3b02a1dSHeiner Kallweit}; 188*a3b02a1dSHeiner Kallweit 189*a3b02a1dSHeiner Kallweit&usb0 { 190*a3b02a1dSHeiner Kallweit status = "okay"; 191*a3b02a1dSHeiner Kallweit}; 192*a3b02a1dSHeiner Kallweit 193*a3b02a1dSHeiner Kallweit&usb1 { 194*a3b02a1dSHeiner Kallweit status = "okay"; 195*a3b02a1dSHeiner Kallweit}; 196*a3b02a1dSHeiner Kallweit 197*a3b02a1dSHeiner Kallweit/* SD */ 198*a3b02a1dSHeiner Kallweit&sd_emmc_b { 199*a3b02a1dSHeiner Kallweit status = "okay"; 200*a3b02a1dSHeiner Kallweit pinctrl-0 = <&sdcard_pins>; 201*a3b02a1dSHeiner Kallweit pinctrl-names = "default"; 202*a3b02a1dSHeiner Kallweit 203*a3b02a1dSHeiner Kallweit bus-width = <4>; 204*a3b02a1dSHeiner Kallweit cap-sd-highspeed; 205*a3b02a1dSHeiner Kallweit max-frequency = <100000000>; 206*a3b02a1dSHeiner Kallweit disable-wp; 207*a3b02a1dSHeiner Kallweit 208*a3b02a1dSHeiner Kallweit cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>; 209*a3b02a1dSHeiner Kallweit cd-inverted; 210*a3b02a1dSHeiner Kallweit 211*a3b02a1dSHeiner Kallweit vmmc-supply = <&tflash_vdd>; 212*a3b02a1dSHeiner Kallweit vqmmc-supply = <&tf_io>; 213*a3b02a1dSHeiner Kallweit}; 214*a3b02a1dSHeiner Kallweit 215*a3b02a1dSHeiner Kallweit/* eMMC */ 216*a3b02a1dSHeiner Kallweit&sd_emmc_c { 217*a3b02a1dSHeiner Kallweit status = "okay"; 218*a3b02a1dSHeiner Kallweit pinctrl-0 = <&emmc_pins>; 219*a3b02a1dSHeiner Kallweit pinctrl-names = "default"; 220*a3b02a1dSHeiner Kallweit 221*a3b02a1dSHeiner Kallweit bus-width = <8>; 222*a3b02a1dSHeiner Kallweit cap-sd-highspeed; 223*a3b02a1dSHeiner Kallweit max-frequency = <200000000>; 224*a3b02a1dSHeiner Kallweit non-removable; 225*a3b02a1dSHeiner Kallweit disable-wp; 226*a3b02a1dSHeiner Kallweit cap-mmc-highspeed; 227*a3b02a1dSHeiner Kallweit mmc-ddr-1_8v; 228*a3b02a1dSHeiner Kallweit mmc-hs200-1_8v; 229*a3b02a1dSHeiner Kallweit 230*a3b02a1dSHeiner Kallweit mmc-pwrseq = <&emmc_pwrseq>; 231*a3b02a1dSHeiner Kallweit vmmc-supply = <&vcc3v3>; 232*a3b02a1dSHeiner Kallweit vqmmc-supply = <&vcc1v8>; 233bfcef28aSBeniamino Galvani}; 234