Merge tag 'v5.4-rockchip-dts32-2' of git://git.kernel.org/pub/scm/linux/kernel/git...
[sfrench/cifs-2.6.git] / arch / arm64 / boot / dts / amlogic / meson-gxbb-p20x.dtsi
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Copyright (c) 2016 Andreas Färber
4  * Copyright (c) 2016 BayLibre, Inc.
5  * Author: Kevin Hilman <khilman@kernel.org>
6  */
7
8 #include "meson-gxbb.dtsi"
9
10 / {
11         aliases {
12                 serial0 = &uart_AO;
13                 ethernet0 = &ethmac;
14         };
15
16         chosen {
17                 stdout-path = "serial0:115200n8";
18         };
19
20         memory@0 {
21                 device_type = "memory";
22                 reg = <0x0 0x0 0x0 0x40000000>;
23         };
24
25         usb_pwr: regulator-usb-pwrs {
26                 compatible = "regulator-fixed";
27
28                 regulator-name = "USB_PWR";
29
30                 regulator-min-microvolt = <5000000>;
31                 regulator-max-microvolt = <5000000>;
32
33                 /* signal name in schematic: USB_PWR_EN */
34                 gpio = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>;
35                 enable-active-high;
36         };
37
38         vddio_card: gpio-regulator {
39                 compatible = "regulator-gpio";
40
41                 regulator-name = "VDDIO_CARD";
42                 regulator-min-microvolt = <1800000>;
43                 regulator-max-microvolt = <3300000>;
44
45                 gpios = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>;
46                 gpios-states = <1>;
47
48                 /* Based on P200 schematics, signal CARD_1.8V/3.3V_CTR */
49                 states = <1800000 0>,
50                          <3300000 1>;
51
52                 regulator-settling-time-up-us = <10000>;
53                 regulator-settling-time-down-us = <150000>;
54         };
55
56         vddio_boot: regulator-vddio_boot {
57                 compatible = "regulator-fixed";
58                 regulator-name = "VDDIO_BOOT";
59                 regulator-min-microvolt = <1800000>;
60                 regulator-max-microvolt = <1800000>;
61         };
62
63         vddao_3v3: regulator-vddao_3v3 {
64                 compatible = "regulator-fixed";
65                 regulator-name = "VDDAO_3V3";
66                 regulator-min-microvolt = <3300000>;
67                 regulator-max-microvolt = <3300000>;
68         };
69
70         vcc_3v3: regulator-vcc_3v3 {
71                 compatible = "regulator-fixed";
72                 regulator-name = "VCC_3V3";
73                 regulator-min-microvolt = <3300000>;
74                 regulator-max-microvolt = <3300000>;
75         };
76
77         emmc_pwrseq: emmc-pwrseq {
78                 compatible = "mmc-pwrseq-emmc";
79                 reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
80         };
81
82         wifi32k: wifi32k {
83                 compatible = "pwm-clock";
84                 #clock-cells = <0>;
85                 clock-frequency = <32768>;
86                 pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
87         };
88
89         sdio_pwrseq: sdio-pwrseq {
90                 compatible = "mmc-pwrseq-simple";
91                 reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
92                 clocks = <&wifi32k>;
93                 clock-names = "ext_clock";
94         };
95
96         cvbs_connector: cvbs-connector {
97                 compatible = "composite-video-connector";
98
99                 port {
100                         cvbs_connector_in: endpoint {
101                                 remote-endpoint = <&cvbs_vdac_out>;
102                         };
103                 };
104         };
105
106         hdmi-connector {
107                 compatible = "hdmi-connector";
108                 type = "a";
109
110                 port {
111                         hdmi_connector_in: endpoint {
112                                 remote-endpoint = <&hdmi_tx_tmds_out>;
113                         };
114                 };
115         };
116 };
117
118 &cec_AO {
119         status = "okay";
120         pinctrl-0 = <&ao_cec_pins>;
121         pinctrl-names = "default";
122         hdmi-phandle = <&hdmi_tx>;
123 };
124
125 &cvbs_vdac_port {
126         cvbs_vdac_out: endpoint {
127                 remote-endpoint = <&cvbs_connector_in>;
128         };
129 };
130
131 &hdmi_tx {
132         status = "okay";
133         pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
134         pinctrl-names = "default";
135 };
136
137 &hdmi_tx_tmds_port {
138         hdmi_tx_tmds_out: endpoint {
139                 remote-endpoint = <&hdmi_connector_in>;
140         };
141 };
142
143 &ir {
144         status = "okay";
145         pinctrl-0 = <&remote_input_ao_pins>;
146         pinctrl-names = "default";
147 };
148
149 &pwm_ef {
150         status = "okay";
151         pinctrl-0 = <&pwm_e_pins>;
152         pinctrl-names = "default";
153         clocks = <&clkc CLKID_FCLK_DIV4>;
154         clock-names = "clkin0";
155 };
156
157 /* Wireless SDIO Module */
158 &sd_emmc_a {
159         status = "okay";
160         pinctrl-0 = <&sdio_pins>;
161         pinctrl-1 = <&sdio_clk_gate_pins>;
162         pinctrl-names = "default", "clk-gate";
163         #address-cells = <1>;
164         #size-cells = <0>;
165
166         bus-width = <4>;
167         cap-sd-highspeed;
168         max-frequency = <50000000>;
169
170         non-removable;
171         disable-wp;
172
173         mmc-pwrseq = <&sdio_pwrseq>;
174
175         vmmc-supply = <&vddao_3v3>;
176         vqmmc-supply = <&vddio_boot>;
177
178         brcmf: wifi@1 {
179                 reg = <1>;
180                 compatible = "brcm,bcm4329-fmac";
181         };
182 };
183
184 /* SD card */
185 &sd_emmc_b {
186         status = "okay";
187         pinctrl-0 = <&sdcard_pins>;
188         pinctrl-1 = <&sdcard_clk_gate_pins>;
189         pinctrl-names = "default", "clk-gate";
190
191         bus-width = <4>;
192         cap-sd-highspeed;
193         sd-uhs-sdr12;
194         sd-uhs-sdr25;
195         sd-uhs-sdr50;
196         max-frequency = <100000000>;
197         disable-wp;
198
199         cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
200
201         vmmc-supply = <&vddao_3v3>;
202         vqmmc-supply = <&vddio_card>;
203 };
204
205 /* eMMC */
206 &sd_emmc_c {
207         status = "okay";
208         pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
209         pinctrl-1 = <&emmc_clk_gate_pins>;
210         pinctrl-names = "default", "clk-gate";
211
212         bus-width = <8>;
213         cap-mmc-highspeed;
214         max-frequency = <200000000>;
215         non-removable;
216         disable-wp;
217         mmc-ddr-1_8v;
218         mmc-hs200-1_8v;
219
220         mmc-pwrseq = <&emmc_pwrseq>;
221         vmmc-supply = <&vcc_3v3>;
222         vqmmc-supply = <&vddio_boot>;
223 };
224
225 /* This UART is brought out to the DB9 connector */
226 &uart_AO {
227         status = "okay";
228         pinctrl-0 = <&uart_ao_a_pins>;
229         pinctrl-names = "default";
230 };
231
232 &usb0_phy {
233         status = "okay";
234         phy-supply = <&usb_pwr>;
235 };
236
237 &usb1_phy {
238         status = "okay";
239 };
240
241 &usb0 {
242         status = "okay";
243 };
244
245 &usb1 {
246         status = "okay";
247 };