1ac40004dSKevin Hilman/*
2ac40004dSKevin Hilman * Copyright (c) 2016 Andreas Färber
3ac40004dSKevin Hilman * Copyright (c) 2016 BayLibre, Inc.
4ac40004dSKevin Hilman * Author: Kevin Hilman <khilman@kernel.org>
5ac40004dSKevin Hilman *
6ac40004dSKevin Hilman * This file is dual-licensed: you can use it either under the terms
7ac40004dSKevin Hilman * of the GPL or the X11 license, at your option. Note that this dual
8ac40004dSKevin Hilman * licensing only applies to this file, and not this project as a
9ac40004dSKevin Hilman * whole.
10ac40004dSKevin Hilman *
11ac40004dSKevin Hilman *  a) This library is free software; you can redistribute it and/or
12ac40004dSKevin Hilman *     modify it under the terms of the GNU General Public License as
13ac40004dSKevin Hilman *     published by the Free Software Foundation; either version 2 of the
14ac40004dSKevin Hilman *     License, or (at your option) any later version.
15ac40004dSKevin Hilman *
16ac40004dSKevin Hilman *     This library is distributed in the hope that it will be useful,
17ac40004dSKevin Hilman *     but WITHOUT ANY WARRANTY; without even the implied warranty of
18ac40004dSKevin Hilman *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19ac40004dSKevin Hilman *     GNU General Public License for more details.
20ac40004dSKevin Hilman *
21ac40004dSKevin Hilman * Or, alternatively,
22ac40004dSKevin Hilman *
23ac40004dSKevin Hilman *  b) Permission is hereby granted, free of charge, to any person
24ac40004dSKevin Hilman *     obtaining a copy of this software and associated documentation
25ac40004dSKevin Hilman *     files (the "Software"), to deal in the Software without
26ac40004dSKevin Hilman *     restriction, including without limitation the rights to use,
27ac40004dSKevin Hilman *     copy, modify, merge, publish, distribute, sublicense, and/or
28ac40004dSKevin Hilman *     sell copies of the Software, and to permit persons to whom the
29ac40004dSKevin Hilman *     Software is furnished to do so, subject to the following
30ac40004dSKevin Hilman *     conditions:
31ac40004dSKevin Hilman *
32ac40004dSKevin Hilman *     The above copyright notice and this permission notice shall be
33ac40004dSKevin Hilman *     included in all copies or substantial portions of the Software.
34ac40004dSKevin Hilman *
35ac40004dSKevin Hilman *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36ac40004dSKevin Hilman *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37ac40004dSKevin Hilman *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38ac40004dSKevin Hilman *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39ac40004dSKevin Hilman *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40ac40004dSKevin Hilman *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41ac40004dSKevin Hilman *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42ac40004dSKevin Hilman *     OTHER DEALINGS IN THE SOFTWARE.
43ac40004dSKevin Hilman */
44ac40004dSKevin Hilman
45ac40004dSKevin Hilman#include "meson-gxbb.dtsi"
46ac40004dSKevin Hilman
47ac40004dSKevin Hilman/ {
48ac40004dSKevin Hilman	aliases {
49ac40004dSKevin Hilman		serial0 = &uart_AO;
50ac40004dSKevin Hilman	};
51ac40004dSKevin Hilman
52ac40004dSKevin Hilman	chosen {
53ac40004dSKevin Hilman		stdout-path = "serial0:115200n8";
54ac40004dSKevin Hilman	};
55ac40004dSKevin Hilman
56ac40004dSKevin Hilman	memory@0 {
57ac40004dSKevin Hilman		device_type = "memory";
58ac40004dSKevin Hilman		reg = <0x0 0x0 0x0 0x40000000>;
59ac40004dSKevin Hilman	};
608735053dSJerome Brunet
618735053dSJerome Brunet	usb_pwr: regulator-usb-pwrs {
628735053dSJerome Brunet		compatible = "regulator-fixed";
638735053dSJerome Brunet
648735053dSJerome Brunet		regulator-name = "USB_PWR";
658735053dSJerome Brunet
668735053dSJerome Brunet		regulator-min-microvolt = <5000000>;
678735053dSJerome Brunet		regulator-max-microvolt = <5000000>;
688735053dSJerome Brunet
698735053dSJerome Brunet		/* signal name in schematic: USB_PWR_EN */
708735053dSJerome Brunet		gpio = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>;
718735053dSJerome Brunet		enable-active-high;
728735053dSJerome Brunet	};
73ef8d2ffeSKevin Hilman
74ef8d2ffeSKevin Hilman	vddio_card: gpio-regulator {
75ef8d2ffeSKevin Hilman		compatible = "regulator-gpio";
76ef8d2ffeSKevin Hilman
77ef8d2ffeSKevin Hilman		regulator-name = "VDDIO_CARD";
78ef8d2ffeSKevin Hilman		regulator-min-microvolt = <1800000>;
79ef8d2ffeSKevin Hilman		regulator-max-microvolt = <3300000>;
80ef8d2ffeSKevin Hilman
81ef8d2ffeSKevin Hilman		gpios = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>;
82ef8d2ffeSKevin Hilman		gpios-states = <1>;
83ef8d2ffeSKevin Hilman
84ef8d2ffeSKevin Hilman		/* Based on P200 schematics, signal CARD_1.8V/3.3V_CTR */
85ef8d2ffeSKevin Hilman		states = <1800000 0
86ef8d2ffeSKevin Hilman			  3300000 1>;
87ef8d2ffeSKevin Hilman	};
88ef8d2ffeSKevin Hilman
89ef8d2ffeSKevin Hilman	vddio_boot: regulator-vddio_boot {
90ef8d2ffeSKevin Hilman		compatible = "regulator-fixed";
91ef8d2ffeSKevin Hilman		regulator-name = "VDDIO_BOOT";
92ef8d2ffeSKevin Hilman		regulator-min-microvolt = <1800000>;
93ef8d2ffeSKevin Hilman		regulator-max-microvolt = <1800000>;
94ef8d2ffeSKevin Hilman	};
95ef8d2ffeSKevin Hilman
96ef8d2ffeSKevin Hilman	vddao_3v3: regulator-vddao_3v3 {
97ef8d2ffeSKevin Hilman		compatible = "regulator-fixed";
98ef8d2ffeSKevin Hilman		regulator-name = "VDDAO_3V3";
99ef8d2ffeSKevin Hilman		regulator-min-microvolt = <3300000>;
100ef8d2ffeSKevin Hilman		regulator-max-microvolt = <3300000>;
101ef8d2ffeSKevin Hilman	};
102ef8d2ffeSKevin Hilman
103ef8d2ffeSKevin Hilman	vcc_3v3: regulator-vcc_3v3 {
104ef8d2ffeSKevin Hilman		compatible = "regulator-fixed";
105ef8d2ffeSKevin Hilman		regulator-name = "VCC_3V3";
106ef8d2ffeSKevin Hilman		regulator-min-microvolt = <3300000>;
107ef8d2ffeSKevin Hilman		regulator-max-microvolt = <3300000>;
108ef8d2ffeSKevin Hilman	};
109ef8d2ffeSKevin Hilman
110ef8d2ffeSKevin Hilman	emmc_pwrseq: emmc-pwrseq {
111ef8d2ffeSKevin Hilman		compatible = "mmc-pwrseq-emmc";
112ef8d2ffeSKevin Hilman		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
113ef8d2ffeSKevin Hilman	};
114ac40004dSKevin Hilman};
115ac40004dSKevin Hilman
116ac40004dSKevin Hilman/* This UART is brought out to the DB9 connector */
117ac40004dSKevin Hilman&uart_AO {
118ac40004dSKevin Hilman	status = "okay";
119f40d437fSCarlo Caione	pinctrl-0 = <&uart_ao_a_pins>;
120f40d437fSCarlo Caione	pinctrl-names = "default";
121ac40004dSKevin Hilman};
1228c5509f0SKevin Hilman
1238c5509f0SKevin Hilman&ethmac {
1248c5509f0SKevin Hilman	status = "okay";
1253be2d9cfSNeil Armstrong	pinctrl-0 = <&eth_rgmii_pins>;
1268c5509f0SKevin Hilman	pinctrl-names = "default";
1278c5509f0SKevin Hilman};
1288c5509f0SKevin Hilman
129ae89ed79SMartin Blumenstingl&ir {
130ae89ed79SMartin Blumenstingl	status = "okay";
131ae89ed79SMartin Blumenstingl	pinctrl-0 = <&remote_input_ao_pins>;
132ae89ed79SMartin Blumenstingl	pinctrl-names = "default";
133ae89ed79SMartin Blumenstingl};
1348735053dSJerome Brunet
1358735053dSJerome Brunet&usb0_phy {
1368735053dSJerome Brunet	status = "okay";
1378735053dSJerome Brunet	phy-supply = <&usb_pwr>;
1388735053dSJerome Brunet};
1398735053dSJerome Brunet
1408735053dSJerome Brunet&usb1_phy {
1418735053dSJerome Brunet	status = "okay";
1428735053dSJerome Brunet};
1438735053dSJerome Brunet
1448735053dSJerome Brunet&usb0 {
1458735053dSJerome Brunet	status = "okay";
1468735053dSJerome Brunet};
1478735053dSJerome Brunet
1488735053dSJerome Brunet&usb1 {
1498735053dSJerome Brunet	status = "okay";
1508735053dSJerome Brunet};
151ef8d2ffeSKevin Hilman
152ef8d2ffeSKevin Hilman/* Wireless SDIO Module */
153ef8d2ffeSKevin Hilman&sd_emmc_a {
154ef8d2ffeSKevin Hilman	status = "okay";
155ef8d2ffeSKevin Hilman	pinctrl-0 = <&sdio_pins>;
156ef8d2ffeSKevin Hilman	pinctrl-names = "default";
157ef8d2ffeSKevin Hilman	#address-cells = <1>;
158ef8d2ffeSKevin Hilman	#size-cells = <0>;
159ef8d2ffeSKevin Hilman
160ef8d2ffeSKevin Hilman	bus-width = <4>;
161ef8d2ffeSKevin Hilman	cap-sd-highspeed;
162ef8d2ffeSKevin Hilman	max-frequency = <100000000>;
163ef8d2ffeSKevin Hilman
164ef8d2ffeSKevin Hilman	non-removable;
165ef8d2ffeSKevin Hilman	disable-wp;
166ef8d2ffeSKevin Hilman
167ef8d2ffeSKevin Hilman	vmmc-supply = <&vddao_3v3>;
168ef8d2ffeSKevin Hilman	vqmmc-supply = <&vddio_boot>;
169ef8d2ffeSKevin Hilman};
170ef8d2ffeSKevin Hilman
171ef8d2ffeSKevin Hilman/* SD card */
172ef8d2ffeSKevin Hilman&sd_emmc_b {
173ef8d2ffeSKevin Hilman	status = "okay";
174ef8d2ffeSKevin Hilman	pinctrl-0 = <&sdcard_pins>;
175ef8d2ffeSKevin Hilman	pinctrl-names = "default";
176ef8d2ffeSKevin Hilman
177ef8d2ffeSKevin Hilman	bus-width = <4>;
178ef8d2ffeSKevin Hilman	cap-sd-highspeed;
179ef8d2ffeSKevin Hilman	max-frequency = <100000000>;
180ef8d2ffeSKevin Hilman	disable-wp;
181ef8d2ffeSKevin Hilman
182ef8d2ffeSKevin Hilman	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
183ef8d2ffeSKevin Hilman	cd-inverted;
184ef8d2ffeSKevin Hilman
185ef8d2ffeSKevin Hilman	vmmc-supply = <&vddao_3v3>;
186ef8d2ffeSKevin Hilman	vqmmc-supply = <&vddio_card>;
187ef8d2ffeSKevin Hilman};
188ef8d2ffeSKevin Hilman
189ef8d2ffeSKevin Hilman/* eMMC */
190ef8d2ffeSKevin Hilman&sd_emmc_c {
191ef8d2ffeSKevin Hilman	status = "okay";
192ef8d2ffeSKevin Hilman	pinctrl-0 = <&emmc_pins>;
193ef8d2ffeSKevin Hilman	pinctrl-names = "default";
194ef8d2ffeSKevin Hilman
195ef8d2ffeSKevin Hilman	bus-width = <8>;
196ef8d2ffeSKevin Hilman	cap-sd-highspeed;
197ef8d2ffeSKevin Hilman	cap-mmc-highspeed;
198ef8d2ffeSKevin Hilman	max-frequency = <200000000>;
199ef8d2ffeSKevin Hilman	non-removable;
200ef8d2ffeSKevin Hilman	disable-wp;
201ef8d2ffeSKevin Hilman	mmc-ddr-1_8v;
202ef8d2ffeSKevin Hilman	mmc-hs200-1_8v;
203ef8d2ffeSKevin Hilman
204ef8d2ffeSKevin Hilman	mmc-pwrseq = <&emmc_pwrseq>;
205ef8d2ffeSKevin Hilman	vmmc-supply = <&vcc_3v3>;
206ef8d2ffeSKevin Hilman	vqmmc-supply = <&vddio_boot>;
207ef8d2ffeSKevin Hilman};
208