185596034SKevin Hilman/*
285596034SKevin Hilman * Copyright (c) 2016 Andreas Färber
385596034SKevin Hilman * Copyright (c) 2016 BayLibre, Inc.
485596034SKevin Hilman * Author: Kevin Hilman <khilman@kernel.org>
585596034SKevin Hilman *
685596034SKevin Hilman * This file is dual-licensed: you can use it either under the terms
785596034SKevin Hilman * of the GPL or the X11 license, at your option. Note that this dual
885596034SKevin Hilman * licensing only applies to this file, and not this project as a
985596034SKevin Hilman * whole.
1085596034SKevin Hilman *
1185596034SKevin Hilman *  a) This library is free software; you can redistribute it and/or
1285596034SKevin Hilman *     modify it under the terms of the GNU General Public License as
1385596034SKevin Hilman *     published by the Free Software Foundation; either version 2 of the
1485596034SKevin Hilman *     License, or (at your option) any later version.
1585596034SKevin Hilman *
1685596034SKevin Hilman *     This library is distributed in the hope that it will be useful,
1785596034SKevin Hilman *     but WITHOUT ANY WARRANTY; without even the implied warranty of
1885596034SKevin Hilman *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1985596034SKevin Hilman *     GNU General Public License for more details.
2085596034SKevin Hilman *
2185596034SKevin Hilman * Or, alternatively,
2285596034SKevin Hilman *
2385596034SKevin Hilman *  b) Permission is hereby granted, free of charge, to any person
2485596034SKevin Hilman *     obtaining a copy of this software and associated documentation
2585596034SKevin Hilman *     files (the "Software"), to deal in the Software without
2685596034SKevin Hilman *     restriction, including without limitation the rights to use,
2785596034SKevin Hilman *     copy, modify, merge, publish, distribute, sublicense, and/or
2885596034SKevin Hilman *     sell copies of the Software, and to permit persons to whom the
2985596034SKevin Hilman *     Software is furnished to do so, subject to the following
3085596034SKevin Hilman *     conditions:
3185596034SKevin Hilman *
3285596034SKevin Hilman *     The above copyright notice and this permission notice shall be
3385596034SKevin Hilman *     included in all copies or substantial portions of the Software.
3485596034SKevin Hilman *
3585596034SKevin Hilman *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
3685596034SKevin Hilman *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
3785596034SKevin Hilman *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
3885596034SKevin Hilman *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
3985596034SKevin Hilman *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
4085596034SKevin Hilman *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
4185596034SKevin Hilman *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
4285596034SKevin Hilman *     OTHER DEALINGS IN THE SOFTWARE.
4385596034SKevin Hilman */
4485596034SKevin Hilman
4585596034SKevin Hilman/dts-v1/;
4685596034SKevin Hilman
4785596034SKevin Hilman#include "meson-gxbb.dtsi"
48f40d437fSCarlo Caione#include <dt-bindings/gpio/gpio.h>
4985596034SKevin Hilman
5085596034SKevin Hilman/ {
5185596034SKevin Hilman	compatible = "hardkernel,odroid-c2", "amlogic,meson-gxbb";
5285596034SKevin Hilman	model = "Hardkernel ODROID-C2";
5385596034SKevin Hilman
5485596034SKevin Hilman	aliases {
5585596034SKevin Hilman		serial0 = &uart_AO;
5685596034SKevin Hilman	};
5785596034SKevin Hilman
5885596034SKevin Hilman	chosen {
5985596034SKevin Hilman		stdout-path = "serial0:115200n8";
6085596034SKevin Hilman	};
6185596034SKevin Hilman
6285596034SKevin Hilman	memory@0 {
6385596034SKevin Hilman		device_type = "memory";
6485596034SKevin Hilman		reg = <0x0 0x0 0x0 0x80000000>;
6585596034SKevin Hilman	};
66f40d437fSCarlo Caione
675a0803bdSBrian Kim	usb_otg_pwr: regulator-usb-pwrs {
685a0803bdSBrian Kim		compatible = "regulator-fixed";
695a0803bdSBrian Kim
705a0803bdSBrian Kim		regulator-name = "USB_OTG_PWR";
715a0803bdSBrian Kim
725a0803bdSBrian Kim		regulator-min-microvolt = <5000000>;
735a0803bdSBrian Kim		regulator-max-microvolt = <5000000>;
745a0803bdSBrian Kim
755a0803bdSBrian Kim		gpio = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>;
765a0803bdSBrian Kim		enable-active-high;
775a0803bdSBrian Kim	};
785a0803bdSBrian Kim
79f40d437fSCarlo Caione	leds {
80f40d437fSCarlo Caione		compatible = "gpio-leds";
81f40d437fSCarlo Caione		blue {
82f40d437fSCarlo Caione			label = "c2:blue:alive";
83f40d437fSCarlo Caione			gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_LOW>;
84f40d437fSCarlo Caione			linux,default-trigger = "heartbeat";
85f40d437fSCarlo Caione			default-state = "off";
86f40d437fSCarlo Caione		};
87f40d437fSCarlo Caione	};
88ef8d2ffeSKevin Hilman
89ef8d2ffeSKevin Hilman	tflash_vdd: regulator-tflash_vdd {
90ef8d2ffeSKevin Hilman		/*
91ef8d2ffeSKevin Hilman		 * signal name from schematics: TFLASH_VDD_EN
92ef8d2ffeSKevin Hilman		 */
93ef8d2ffeSKevin Hilman		compatible = "regulator-fixed";
94ef8d2ffeSKevin Hilman
95ef8d2ffeSKevin Hilman		regulator-name = "TFLASH_VDD";
96ef8d2ffeSKevin Hilman		regulator-min-microvolt = <3300000>;
97ef8d2ffeSKevin Hilman		regulator-max-microvolt = <3300000>;
98ef8d2ffeSKevin Hilman
99ef8d2ffeSKevin Hilman		gpio = <&gpio_ao GPIOAO_12 GPIO_ACTIVE_HIGH>;
100ef8d2ffeSKevin Hilman		enable-active-high;
101ef8d2ffeSKevin Hilman	};
102ef8d2ffeSKevin Hilman
103ef8d2ffeSKevin Hilman	tf_io: gpio-regulator-tf_io {
104ef8d2ffeSKevin Hilman		compatible = "regulator-gpio";
105ef8d2ffeSKevin Hilman
106ef8d2ffeSKevin Hilman		regulator-name = "TF_IO";
107ef8d2ffeSKevin Hilman		regulator-min-microvolt = <1800000>;
108ef8d2ffeSKevin Hilman		regulator-max-microvolt = <3300000>;
109ef8d2ffeSKevin Hilman
110ef8d2ffeSKevin Hilman		/*
111ef8d2ffeSKevin Hilman		 * signal name from schematics: TF_3V3N_1V8_EN
112ef8d2ffeSKevin Hilman		 */
113ef8d2ffeSKevin Hilman		gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>;
114ef8d2ffeSKevin Hilman		gpios-states = <0>;
115ef8d2ffeSKevin Hilman
116ef8d2ffeSKevin Hilman		states = <3300000 0
117ef8d2ffeSKevin Hilman			  1800000 1>;
118ef8d2ffeSKevin Hilman	};
119ef8d2ffeSKevin Hilman
120ef8d2ffeSKevin Hilman	vcc1v8: regulator-vcc1v8 {
121ef8d2ffeSKevin Hilman		compatible = "regulator-fixed";
122ef8d2ffeSKevin Hilman		regulator-name = "VCC1V8";
123ef8d2ffeSKevin Hilman		regulator-min-microvolt = <1800000>;
124ef8d2ffeSKevin Hilman		regulator-max-microvolt = <1800000>;
125ef8d2ffeSKevin Hilman	};
126ef8d2ffeSKevin Hilman
127ef8d2ffeSKevin Hilman	vcc3v3: regulator-vcc3v3 {
128ef8d2ffeSKevin Hilman		compatible = "regulator-fixed";
129ef8d2ffeSKevin Hilman		regulator-name = "VCC3V3";
130ef8d2ffeSKevin Hilman		regulator-min-microvolt = <3300000>;
131ef8d2ffeSKevin Hilman		regulator-max-microvolt = <3300000>;
132ef8d2ffeSKevin Hilman	};
133ef8d2ffeSKevin Hilman
134ef8d2ffeSKevin Hilman	emmc_pwrseq: emmc-pwrseq {
135ef8d2ffeSKevin Hilman		compatible = "mmc-pwrseq-emmc";
136ef8d2ffeSKevin Hilman		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
137ef8d2ffeSKevin Hilman	};
13885596034SKevin Hilman};
13985596034SKevin Hilman
14085596034SKevin Hilman&uart_AO {
14185596034SKevin Hilman	status = "okay";
142f40d437fSCarlo Caione	pinctrl-0 = <&uart_ao_a_pins>;
143f40d437fSCarlo Caione	pinctrl-names = "default";
14485596034SKevin Hilman};
1458e6320ddSKevin Hilman
1468c5509f0SKevin Hilman&ethmac {
1478c5509f0SKevin Hilman	status = "okay";
1483be2d9cfSNeil Armstrong	pinctrl-0 = <&eth_rgmii_pins>;
1498c5509f0SKevin Hilman	pinctrl-names = "default";
1508c5509f0SKevin Hilman};
1518c5509f0SKevin Hilman
152ae89ed79SMartin Blumenstingl&ir {
153ae89ed79SMartin Blumenstingl	status = "okay";
154ae89ed79SMartin Blumenstingl	pinctrl-0 = <&remote_input_ao_pins>;
155ae89ed79SMartin Blumenstingl	pinctrl-names = "default";
156ae89ed79SMartin Blumenstingl};
157cb700f49SJerome Brunet
158cb700f49SJerome Brunet&i2c_A {
159cb700f49SJerome Brunet	status = "okay";
160cb700f49SJerome Brunet	pinctrl-0 = <&i2c_a_pins>;
161cb700f49SJerome Brunet	pinctrl-names = "default";
162cb700f49SJerome Brunet};
1635a0803bdSBrian Kim
1645a0803bdSBrian Kim&usb0_phy {
1655a0803bdSBrian Kim	status = "okay";
1665a0803bdSBrian Kim	phy-supply = <&usb_otg_pwr>;
1675a0803bdSBrian Kim};
1685a0803bdSBrian Kim
1695a0803bdSBrian Kim&usb1_phy {
1705a0803bdSBrian Kim	status = "okay";
1715a0803bdSBrian Kim};
1725a0803bdSBrian Kim
1735a0803bdSBrian Kim&usb0 {
1745a0803bdSBrian Kim	status = "okay";
1755a0803bdSBrian Kim};
1765a0803bdSBrian Kim
1775a0803bdSBrian Kim&usb1 {
1785a0803bdSBrian Kim	status = "okay";
1795a0803bdSBrian Kim};
180ef8d2ffeSKevin Hilman
181ef8d2ffeSKevin Hilman/* SD */
182ef8d2ffeSKevin Hilman&sd_emmc_b {
183ef8d2ffeSKevin Hilman	status = "okay";
184ef8d2ffeSKevin Hilman	pinctrl-0 = <&sdcard_pins>;
185ef8d2ffeSKevin Hilman	pinctrl-names = "default";
186ef8d2ffeSKevin Hilman
187ef8d2ffeSKevin Hilman	bus-width = <4>;
188ef8d2ffeSKevin Hilman	cap-sd-highspeed;
189ef8d2ffeSKevin Hilman	max-frequency = <100000000>;
190ef8d2ffeSKevin Hilman	disable-wp;
191ef8d2ffeSKevin Hilman
192ef8d2ffeSKevin Hilman	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
193ef8d2ffeSKevin Hilman	cd-inverted;
194ef8d2ffeSKevin Hilman
195ef8d2ffeSKevin Hilman	vmmc-supply = <&tflash_vdd>;
196ef8d2ffeSKevin Hilman	vqmmc-supply = <&tf_io>;
197ef8d2ffeSKevin Hilman};
198ef8d2ffeSKevin Hilman
199ef8d2ffeSKevin Hilman/* eMMC */
200ef8d2ffeSKevin Hilman&sd_emmc_c {
201ef8d2ffeSKevin Hilman	status = "okay";
202ef8d2ffeSKevin Hilman	pinctrl-0 = <&emmc_pins>;
203ef8d2ffeSKevin Hilman	pinctrl-names = "default";
204ef8d2ffeSKevin Hilman
205ef8d2ffeSKevin Hilman	bus-width = <8>;
206ef8d2ffeSKevin Hilman	cap-sd-highspeed;
207ef8d2ffeSKevin Hilman	max-frequency = <200000000>;
208ef8d2ffeSKevin Hilman	non-removable;
209ef8d2ffeSKevin Hilman	disable-wp;
210ef8d2ffeSKevin Hilman	cap-mmc-highspeed;
211ef8d2ffeSKevin Hilman	mmc-ddr-1_8v;
212ef8d2ffeSKevin Hilman	mmc-hs200-1_8v;
213ef8d2ffeSKevin Hilman
214ef8d2ffeSKevin Hilman	mmc-pwrseq = <&emmc_pwrseq>;
215ef8d2ffeSKevin Hilman	vmmc-supply = <&vcc3v3>;
216ef8d2ffeSKevin Hilman	vqmmc-supply = <&vcc1v8>;
217ef8d2ffeSKevin Hilman};
218