blob: 3c6c0b7f4187dac8b4794e2e9117d45ca3fe0199 [file] [log] [blame]
Kevin Hilmanac400042016-03-24 11:05:15 -07001/*
2 * Copyright (c) 2016 Andreas Färber
3 * Copyright (c) 2016 BayLibre, Inc.
4 * Author: Kevin Hilman <khilman@kernel.org>
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This library is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This library is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44
45#include "meson-gxbb.dtsi"
46
47/ {
48 aliases {
49 serial0 = &uart_AO;
50 };
51
52 chosen {
53 stdout-path = "serial0:115200n8";
54 };
55
56 memory@0 {
57 device_type = "memory";
58 reg = <0x0 0x0 0x0 0x40000000>;
59 };
Jerome Brunet87350532016-09-11 15:41:10 +020060
61 usb_pwr: regulator-usb-pwrs {
62 compatible = "regulator-fixed";
63
64 regulator-name = "USB_PWR";
65
66 regulator-min-microvolt = <5000000>;
67 regulator-max-microvolt = <5000000>;
68
69 /* signal name in schematic: USB_PWR_EN */
70 gpio = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>;
71 enable-active-high;
72 };
Kevin Hilmanef8d2ff2016-10-20 13:42:54 +020073
74 vddio_card: gpio-regulator {
75 compatible = "regulator-gpio";
76
77 regulator-name = "VDDIO_CARD";
78 regulator-min-microvolt = <1800000>;
79 regulator-max-microvolt = <3300000>;
80
81 gpios = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>;
82 gpios-states = <1>;
83
84 /* Based on P200 schematics, signal CARD_1.8V/3.3V_CTR */
85 states = <1800000 0
86 3300000 1>;
87 };
88
89 vddio_boot: regulator-vddio_boot {
90 compatible = "regulator-fixed";
91 regulator-name = "VDDIO_BOOT";
92 regulator-min-microvolt = <1800000>;
93 regulator-max-microvolt = <1800000>;
94 };
95
96 vddao_3v3: regulator-vddao_3v3 {
97 compatible = "regulator-fixed";
98 regulator-name = "VDDAO_3V3";
99 regulator-min-microvolt = <3300000>;
100 regulator-max-microvolt = <3300000>;
101 };
102
103 vcc_3v3: regulator-vcc_3v3 {
104 compatible = "regulator-fixed";
105 regulator-name = "VCC_3V3";
106 regulator-min-microvolt = <3300000>;
107 regulator-max-microvolt = <3300000>;
108 };
109
110 emmc_pwrseq: emmc-pwrseq {
111 compatible = "mmc-pwrseq-emmc";
112 reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
113 };
Neil Armstrongcaafa692016-10-20 13:42:55 +0200114
115 wifi32k: wifi32k {
116 compatible = "pwm-clock";
117 #clock-cells = <0>;
118 clock-frequency = <32768>;
119 pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
120 };
Neil Armstrongab3943f2016-10-20 13:42:56 +0200121
122 sdio_pwrseq: sdio-pwrseq {
123 compatible = "mmc-pwrseq-simple";
124 reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
125 clocks = <&wifi32k>;
126 clock-names = "ext_clock";
127 };
Neil Armstrongfafdbdf2016-12-01 10:05:58 +0100128
129 cvbs-connector {
130 compatible = "composite-video-connector";
131
132 port {
133 cvbs_connector_in: endpoint {
134 remote-endpoint = <&cvbs_vdac_out>;
135 };
136 };
137 };
Neil Armstrong6939db72017-03-21 16:25:46 +0100138
139 hdmi-connector {
140 compatible = "hdmi-connector";
141 type = "a";
142
143 port {
144 hdmi_connector_in: endpoint {
145 remote-endpoint = <&hdmi_tx_tmds_out>;
146 };
147 };
148 };
Kevin Hilmanac400042016-03-24 11:05:15 -0700149};
150
151/* This UART is brought out to the DB9 connector */
152&uart_AO {
153 status = "okay";
Carlo Caionef40d4372016-05-02 10:02:18 +0200154 pinctrl-0 = <&uart_ao_a_pins>;
155 pinctrl-names = "default";
Kevin Hilmanac400042016-03-24 11:05:15 -0700156};
Kevin Hilman8c5509f2016-04-27 16:58:25 -0700157
Martin Blumenstinglae89ed72016-08-20 11:54:24 +0200158&ir {
159 status = "okay";
160 pinctrl-0 = <&remote_input_ao_pins>;
161 pinctrl-names = "default";
162};
Jerome Brunet87350532016-09-11 15:41:10 +0200163
164&usb0_phy {
165 status = "okay";
166 phy-supply = <&usb_pwr>;
167};
168
169&usb1_phy {
170 status = "okay";
171};
172
173&usb0 {
174 status = "okay";
175};
176
177&usb1 {
178 status = "okay";
179};
Kevin Hilmanef8d2ff2016-10-20 13:42:54 +0200180
181/* Wireless SDIO Module */
182&sd_emmc_a {
183 status = "okay";
184 pinctrl-0 = <&sdio_pins>;
185 pinctrl-names = "default";
186 #address-cells = <1>;
187 #size-cells = <0>;
188
189 bus-width = <4>;
190 cap-sd-highspeed;
191 max-frequency = <100000000>;
192
193 non-removable;
194 disable-wp;
195
Neil Armstrongab3943f2016-10-20 13:42:56 +0200196 mmc-pwrseq = <&sdio_pwrseq>;
197
Kevin Hilmanef8d2ff2016-10-20 13:42:54 +0200198 vmmc-supply = <&vddao_3v3>;
199 vqmmc-supply = <&vddio_boot>;
Neil Armstrongab3943f2016-10-20 13:42:56 +0200200
201 brcmf: bcrmf@1 {
202 reg = <1>;
203 compatible = "brcm,bcm4329-fmac";
204 };
Kevin Hilmanef8d2ff2016-10-20 13:42:54 +0200205};
206
207/* SD card */
208&sd_emmc_b {
209 status = "okay";
210 pinctrl-0 = <&sdcard_pins>;
211 pinctrl-names = "default";
212
213 bus-width = <4>;
214 cap-sd-highspeed;
215 max-frequency = <100000000>;
216 disable-wp;
217
218 cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
219 cd-inverted;
220
221 vmmc-supply = <&vddao_3v3>;
222 vqmmc-supply = <&vddio_card>;
223};
224
225/* eMMC */
226&sd_emmc_c {
227 status = "okay";
228 pinctrl-0 = <&emmc_pins>;
229 pinctrl-names = "default";
230
231 bus-width = <8>;
232 cap-sd-highspeed;
233 cap-mmc-highspeed;
234 max-frequency = <200000000>;
235 non-removable;
236 disable-wp;
237 mmc-ddr-1_8v;
238 mmc-hs200-1_8v;
239
240 mmc-pwrseq = <&emmc_pwrseq>;
241 vmmc-supply = <&vcc_3v3>;
242 vqmmc-supply = <&vddio_boot>;
243};
Neil Armstrongcaafa692016-10-20 13:42:55 +0200244
245&pwm_ef {
246 status = "okay";
247 pinctrl-0 = <&pwm_e_pins>;
248 pinctrl-names = "default";
249 clocks = <&clkc CLKID_FCLK_DIV4>;
250 clock-names = "clkin0";
251};
Neil Armstrongfafdbdf2016-12-01 10:05:58 +0100252
253&cvbs_vdac_port {
254 cvbs_vdac_out: endpoint {
255 remote-endpoint = <&cvbs_connector_in>;
256 };
257};
Neil Armstrong6939db72017-03-21 16:25:46 +0100258
259&hdmi_tx {
260 status = "okay";
261 pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
262 pinctrl-names = "default";
263};
264
265&hdmi_tx_tmds_port {
266 hdmi_tx_tmds_out: endpoint {
267 remote-endpoint = <&hdmi_connector_in>;
268 };
269};