Merge tag 'qcom-drivers-for-6.9-2' of https://git.kernel.org/pub/scm/linux/kernel...
[linux-block.git] / arch / arm64 / boot / dts / amlogic / meson-gxl-s905x-p212.dtsi
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Copyright (c) 2016 Martin Blumenstingl <martin.blumenstingl@googlemail.com>.
4  * Based on meson-gx-p23x-q20x.dtsi:
5  * - Copyright (c) 2016 Endless Computers, Inc.
6  *   Author: Carlo Caione <carlo@endlessm.com>
7  * - Copyright (c) 2016 BayLibre, SAS.
8  *   Author: Neil Armstrong <narmstrong@baylibre.com>
9  */
10
11 /* Common DTSI for devices which are based on the P212 reference board. */
12
13 #include "meson-gxl-s905x.dtsi"
14
15 / {
16         aliases {
17                 serial0 = &uart_AO;
18                 ethernet0 = &ethmac;
19         };
20
21         chosen {
22                 stdout-path = "serial0:115200n8";
23         };
24
25         memory@0 {
26                 device_type = "memory";
27                 reg = <0x0 0x0 0x0 0x80000000>;
28         };
29
30         hdmi_5v: regulator-hdmi-5v {
31                 compatible = "regulator-fixed";
32
33                 regulator-name = "HDMI_5V";
34                 regulator-min-microvolt = <5000000>;
35                 regulator-max-microvolt = <5000000>;
36
37                 gpio = <&gpio GPIOH_3 GPIO_ACTIVE_HIGH>;
38                 enable-active-high;
39                 regulator-always-on;
40         };
41
42         vddio_boot: regulator-vddio_boot {
43                 compatible = "regulator-fixed";
44                 regulator-name = "VDDIO_BOOT";
45                 regulator-min-microvolt = <1800000>;
46                 regulator-max-microvolt = <1800000>;
47         };
48
49         vddao_3v3: regulator-vddao_3v3 {
50                 compatible = "regulator-fixed";
51                 regulator-name = "VDDAO_3V3";
52                 regulator-min-microvolt = <3300000>;
53                 regulator-max-microvolt = <3300000>;
54         };
55
56         vddio_ao18: regulator-vddio_ao18 {
57                 compatible = "regulator-fixed";
58                 regulator-name = "VDDIO_AO18";
59                 regulator-min-microvolt = <1800000>;
60                 regulator-max-microvolt = <1800000>;
61         };
62
63         vcc_3v3: regulator-vcc_3v3 {
64                 compatible = "regulator-fixed";
65                 regulator-name = "VCC_3V3";
66                 regulator-min-microvolt = <3300000>;
67                 regulator-max-microvolt = <3300000>;
68         };
69
70         emmc_pwrseq: emmc-pwrseq {
71                 compatible = "mmc-pwrseq-emmc";
72                 reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
73         };
74
75         wifi32k: wifi32k {
76                 compatible = "pwm-clock";
77                 #clock-cells = <0>;
78                 clock-frequency = <32768>;
79                 pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
80         };
81
82         sdio_pwrseq: sdio-pwrseq {
83                 compatible = "mmc-pwrseq-simple";
84                 reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
85                 clocks = <&wifi32k>;
86                 clock-names = "ext_clock";
87         };
88 };
89
90 &ethmac {
91         status = "okay";
92 };
93
94 &ir {
95         status = "okay";
96         pinctrl-0 = <&remote_input_ao_pins>;
97         pinctrl-names = "default";
98 };
99
100 &pwm_ef {
101         status = "okay";
102         pinctrl-0 = <&pwm_e_pins>;
103         pinctrl-names = "default";
104         clocks = <&clkc CLKID_FCLK_DIV4>;
105         clock-names = "clkin0";
106 };
107
108 &saradc {
109         status = "okay";
110         vref-supply = <&vddio_ao18>;
111 };
112
113 /* Wireless SDIO Module */
114 &sd_emmc_a {
115         status = "okay";
116         pinctrl-0 = <&sdio_pins>;
117         pinctrl-1 = <&sdio_clk_gate_pins>;
118         pinctrl-names = "default", "clk-gate";
119         #address-cells = <1>;
120         #size-cells = <0>;
121
122         bus-width = <4>;
123         cap-sd-highspeed;
124         max-frequency = <50000000>;
125
126         non-removable;
127         disable-wp;
128
129         /* WiFi firmware requires power to be kept while in suspend */
130         keep-power-in-suspend;
131
132         mmc-pwrseq = <&sdio_pwrseq>;
133
134         vmmc-supply = <&vddao_3v3>;
135         vqmmc-supply = <&vddio_boot>;
136
137         brcmf: wifi@1 {
138                 reg = <1>;
139                 compatible = "brcm,bcm4329-fmac";
140         };
141 };
142
143 /* SD card */
144 &sd_emmc_b {
145         status = "okay";
146         pinctrl-0 = <&sdcard_pins>;
147         pinctrl-1 = <&sdcard_clk_gate_pins>;
148         pinctrl-names = "default", "clk-gate";
149
150         bus-width = <4>;
151         cap-sd-highspeed;
152         max-frequency = <50000000>;
153         disable-wp;
154
155         cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
156
157         vmmc-supply = <&vddao_3v3>;
158         vqmmc-supply = <&vddio_boot>;
159 };
160
161 /* eMMC */
162 &sd_emmc_c {
163         status = "okay";
164         pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
165         pinctrl-1 = <&emmc_clk_gate_pins>;
166         pinctrl-names = "default", "clk-gate";
167
168         bus-width = <8>;
169         cap-mmc-highspeed;
170         max-frequency = <200000000>;
171         non-removable;
172         disable-wp;
173         mmc-ddr-1_8v;
174         mmc-hs200-1_8v;
175
176         mmc-pwrseq = <&emmc_pwrseq>;
177         vmmc-supply = <&vcc_3v3>;
178         vqmmc-supply = <&vddio_boot>;
179 };
180
181 /* This is connected to the Bluetooth module: */
182 &uart_A {
183         status = "okay";
184         pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
185         pinctrl-names = "default";
186         uart-has-rtscts;
187
188         bluetooth {
189                 compatible = "brcm,bcm43438-bt";
190                 shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
191                 max-speed = <2000000>;
192                 clocks = <&wifi32k>;
193                 clock-names = "lpo";
194         };
195 };
196
197 &uart_AO {
198         status = "okay";
199         pinctrl-0 = <&uart_ao_a_pins>;
200         pinctrl-names = "default";
201 };
202
203 &usb {
204         status = "okay";
205         dr_mode = "host";
206 };
207
208 &usb2_phy0 {
209         /*
210          * HDMI_5V is also used as supply for the USB VBUS.
211          */
212         phy-supply = <&hdmi_5v>;
213 };