hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts
....@@ -102,7 +102,15 @@
102102 wifi_pwrseq: wifi_pwrseq {
103103 compatible = "mmc-pwrseq-simple";
104104 reset-gpios = <&pio 6 10 GPIO_ACTIVE_LOW>; /* PG10 WIFI_EN */
105
+ clocks = <&ccu CLK_OUTA>;
106
+ clock-names = "ext_clock";
105107 };
108
+};
109
+
110
+&ahci {
111
+ ahci-supply = <&reg_dldo4>;
112
+ phy-supply = <&reg_eldo3>;
113
+ status = "okay";
106114 };
107115
108116 &de {
....@@ -156,11 +164,14 @@
156164
157165 #include "axp22x.dtsi"
158166
167
+&ir0 {
168
+ status = "okay";
169
+};
170
+
159171 &mmc0 {
160172 vmmc-supply = <&reg_dcdc1>;
161173 bus-width = <4>;
162
- cd-gpios = <&pio 7 13 GPIO_ACTIVE_HIGH>; /* PH13 */
163
- cd-inverted;
174
+ cd-gpios = <&pio 7 13 GPIO_ACTIVE_LOW>; /* PH13 */
164175 status = "okay";
165176 };
166177
....@@ -191,8 +202,18 @@
191202 status = "okay";
192203 };
193204
205
+&pio {
206
+ pinctrl-names = "default";
207
+ pinctrl-0 = <&clk_out_a_pin>;
208
+ vcc-pa-supply = <&reg_aldo2>;
209
+ vcc-pc-supply = <&reg_dcdc1>;
210
+ vcc-pd-supply = <&reg_dcdc1>;
211
+ vcc-pe-supply = <&reg_eldo1>;
212
+ vcc-pf-supply = <&reg_dcdc1>;
213
+ vcc-pg-supply = <&reg_dldo1>;
214
+};
215
+
194216 &reg_aldo2 {
195
- regulator-always-on;
196217 regulator-min-microvolt = <2500000>;
197218 regulator-max-microvolt = <2500000>;
198219 regulator-name = "vcc-pa";
....@@ -245,10 +266,37 @@
245266 regulator-name = "vcc-wifi-io";
246267 };
247268
269
+/*
270
+ * Our WiFi chip needs both DLDO2 and DLDO3 to be powered at the same
271
+ * time, with the two being in sync, to be able to meet maximum power
272
+ * consumption during transmits. Since this is not really supported
273
+ * right now, just use the two as always on, and we will fix it later.
274
+ */
275
+
248276 &reg_dldo2 {
277
+ regulator-always-on;
249278 regulator-min-microvolt = <3300000>;
250279 regulator-max-microvolt = <3300000>;
251280 regulator-name = "vcc-wifi";
281
+};
282
+
283
+&reg_dldo3 {
284
+ regulator-always-on;
285
+ regulator-min-microvolt = <3300000>;
286
+ regulator-max-microvolt = <3300000>;
287
+ regulator-name = "vcc-wifi-2";
288
+};
289
+
290
+&reg_dldo4 {
291
+ regulator-min-microvolt = <2500000>;
292
+ regulator-max-microvolt = <2500000>;
293
+ regulator-name = "vdd2v5-sata";
294
+};
295
+
296
+&reg_eldo3 {
297
+ regulator-min-microvolt = <1200000>;
298
+ regulator-max-microvolt = <1200000>;
299
+ regulator-name = "vdd1v2-sata";
252300 };
253301
254302 &tcon_tv0 {
....@@ -261,6 +309,25 @@
261309 status = "okay";
262310 };
263311
312
+&uart3 {
313
+ pinctrl-names = "default";
314
+ pinctrl-0 = <&uart3_pg_pins>, <&uart3_rts_cts_pg_pins>;
315
+ uart-has-rtscts;
316
+ status = "okay";
317
+
318
+ bluetooth {
319
+ compatible = "brcm,bcm43438-bt";
320
+ clocks = <&ccu CLK_OUTA>;
321
+ clock-names = "lpo";
322
+ vbat-supply = <&reg_dldo2>;
323
+ vddio-supply = <&reg_dldo1>;
324
+ device-wakeup-gpios = <&pio 6 11 GPIO_ACTIVE_HIGH>; /* PG11 */
325
+ /* TODO host wake line connected to PMIC GPIO pins */
326
+ shutdown-gpios = <&pio 7 12 GPIO_ACTIVE_HIGH>; /* PH12 */
327
+ max-speed = <1500000>;
328
+ };
329
+};
330
+
264331 &usbphy {
265332 usb1_vbus-supply = <&reg_vcc5v0>;
266333 usb2_vbus-supply = <&reg_vcc5v0>;