~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2 // Copyright (c) 2016 ARM Ltd.
  3 
  4 /dts-v1/;
  5 
  6 #include "sun50i-a64.dtsi"
  7 #include "sun50i-a64-cpu-opp.dtsi"
  8 
  9 #include <dt-bindings/gpio/gpio.h>
 10 
 11 / {
 12         model = "BananaPi-M64";
 13         compatible = "sinovoip,bananapi-m64", "allwinner,sun50i-a64";
 14 
 15         aliases {
 16                 ethernet0 = &emac;
 17                 serial0 = &uart0;
 18                 serial1 = &uart1;
 19         };
 20 
 21         chosen {
 22                 stdout-path = "serial0:115200n8";
 23         };
 24 
 25         hdmi-connector {
 26                 compatible = "hdmi-connector";
 27                 type = "a";
 28 
 29                 port {
 30                         hdmi_con_in: endpoint {
 31                                 remote-endpoint = <&hdmi_out_con>;
 32                         };
 33                 };
 34         };
 35 
 36         leds {
 37                 compatible = "gpio-leds";
 38 
 39                 led-0 {
 40                         label = "bananapi-m64:red:pwr";
 41                         gpios = <&pio 3 24 GPIO_ACTIVE_HIGH>; /* PD24 */
 42                         default-state = "on";
 43                 };
 44 
 45                 led-1 {
 46                         label = "bananapi-m64:green:user";
 47                         gpios = <&pio 4 14 GPIO_ACTIVE_HIGH>; /* PE14 */
 48                 };
 49 
 50                 led-2 {
 51                         label = "bananapi-m64:blue:user";
 52                         gpios = <&pio 4 15 GPIO_ACTIVE_HIGH>; /* PE15 */
 53                 };
 54         };
 55 
 56         wifi_pwrseq: pwrseq {
 57                 compatible = "mmc-pwrseq-simple";
 58                 reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
 59                 clocks = <&rtc CLK_OSC32K_FANOUT>;
 60                 clock-names = "ext_clock";
 61         };
 62 };
 63 
 64 &codec {
 65         status = "okay";
 66 };
 67 
 68 &codec_analog {
 69         cpvdd-supply = <&reg_eldo1>;
 70         status = "okay";
 71 };
 72 
 73 &cpu0 {
 74         cpu-supply = <&reg_dcdc2>;
 75 };
 76 
 77 &cpu1 {
 78         cpu-supply = <&reg_dcdc2>;
 79 };
 80 
 81 &cpu2 {
 82         cpu-supply = <&reg_dcdc2>;
 83 };
 84 
 85 &cpu3 {
 86         cpu-supply = <&reg_dcdc2>;
 87 };
 88 
 89 &dai {
 90         status = "okay";
 91 };
 92 
 93 &de {
 94         status = "okay";
 95 };
 96 
 97 &ehci0 {
 98         status = "okay";
 99 };
100 
101 &ehci1 {
102         status = "okay";
103 };
104 
105 &emac {
106         pinctrl-names = "default";
107         pinctrl-0 = <&rgmii_pins>;
108         phy-mode = "rgmii-id";
109         phy-handle = <&ext_rgmii_phy>;
110         phy-supply = <&reg_dc1sw>;
111         status = "okay";
112 };
113 
114 &hdmi {
115         hvcc-supply = <&reg_dldo1>;
116         status = "okay";
117 };
118 
119 &hdmi_out {
120         hdmi_out_con: endpoint {
121                 remote-endpoint = <&hdmi_con_in>;
122         };
123 };
124 
125 &i2c1 {
126         status = "okay";
127 };
128 
129 &i2c1_pins {
130         bias-pull-up;
131 };
132 
133 &mdio {
134         ext_rgmii_phy: ethernet-phy@1 {
135                 compatible = "ethernet-phy-ieee802.3-c22";
136                 reg = <1>;
137         };
138 };
139 
140 &mmc0 {
141         pinctrl-names = "default";
142         pinctrl-0 = <&mmc0_pins>;
143         vmmc-supply = <&reg_dcdc1>;
144         cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
145         disable-wp;
146         bus-width = <4>;
147         status = "okay";
148 };
149 
150 &mmc1 {
151         pinctrl-names = "default";
152         pinctrl-0 = <&mmc1_pins>;
153         vmmc-supply = <&reg_dldo2>;
154         vqmmc-supply = <&reg_dldo4>;
155         mmc-pwrseq = <&wifi_pwrseq>;
156         bus-width = <4>;
157         non-removable;
158         status = "okay";
159 
160         brcmf: wifi@1 {
161                 reg = <1>;
162                 compatible = "brcm,bcm4329-fmac";
163                 interrupt-parent = <&r_pio>;
164                 interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 */
165                 interrupt-names = "host-wake";
166         };
167 };
168 
169 &mmc2 {
170         pinctrl-names = "default";
171         pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pin>;
172         vmmc-supply = <&reg_dcdc1>;
173         bus-width = <8>;
174         non-removable;
175         cap-mmc-hw-reset;
176         status = "okay";
177 };
178 
179 &ohci0 {
180         status = "okay";
181 };
182 
183 &ohci1 {
184         status = "okay";
185 };
186 
187 &r_rsb {
188         status = "okay";
189 
190         axp803: pmic@3a3 {
191                 compatible = "x-powers,axp803";
192                 reg = <0x3a3>;
193                 interrupt-parent = <&r_intc>;
194                 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>;
195                 x-powers,drive-vbus-en; /* set N_VBUSEN as output pin */
196         };
197 };
198 
199 #include "axp803.dtsi"
200 
201 &ac_power_supply {
202         status = "okay";
203 };
204 
205 &battery_power_supply {
206         status = "okay";
207 };
208 
209 &reg_aldo1 {
210         /*
211          * This regulator also drives the PE pingroup GPIOs,
212          * which also controls two LEDs.
213          */
214         regulator-always-on;
215         regulator-min-microvolt = <2800000>;
216         regulator-max-microvolt = <2800000>;
217         regulator-name = "afvcc-csi";
218 };
219 
220 &reg_aldo2 {
221         regulator-always-on;
222         regulator-min-microvolt = <1800000>;
223         regulator-max-microvolt = <3300000>;
224         regulator-name = "vcc-pl";
225 };
226 
227 &reg_aldo3 {
228         regulator-always-on;
229         regulator-min-microvolt = <3000000>;
230         regulator-max-microvolt = <3000000>;
231         regulator-name = "vcc-pll-avcc";
232 };
233 
234 &reg_dc1sw {
235         /*
236          * This regulator also indirectly drives the PD pingroup GPIOs,
237          * which also controls the power LED.
238          */
239         regulator-always-on;
240         regulator-name = "vcc-phy";
241 };
242 
243 &reg_dcdc1 {
244         regulator-always-on;
245         regulator-min-microvolt = <3300000>;
246         regulator-max-microvolt = <3300000>;
247         regulator-name = "vcc-3v3";
248 };
249 
250 &reg_dcdc2 {
251         regulator-always-on;
252         regulator-min-microvolt = <1040000>;
253         regulator-max-microvolt = <1300000>;
254         regulator-name = "vdd-cpux";
255 };
256 
257 /* DCDC3 is polyphased with DCDC2 */
258 
259 &reg_dcdc5 {
260         regulator-always-on;
261         regulator-min-microvolt = <1500000>;
262         regulator-max-microvolt = <1500000>;
263         regulator-name = "vcc-dram";
264 };
265 
266 &reg_dcdc6 {
267         regulator-always-on;
268         regulator-min-microvolt = <1100000>;
269         regulator-max-microvolt = <1100000>;
270         regulator-name = "vdd-sys";
271 };
272 
273 &reg_dldo1 {
274         regulator-min-microvolt = <3300000>;
275         regulator-max-microvolt = <3300000>;
276         regulator-name = "vcc-hdmi-dsi";
277 };
278 
279 &reg_dldo2 {
280         regulator-min-microvolt = <3300000>;
281         regulator-max-microvolt = <3300000>;
282         regulator-name = "vcc-wifi";
283 };
284 
285 &reg_dldo4 {
286         regulator-min-microvolt = <1800000>;
287         regulator-max-microvolt = <3300000>;
288         regulator-name = "vcc-wifi-io";
289 };
290 
291 &reg_drivevbus {
292         regulator-name = "usb0-vbus";
293         status = "okay";
294 };
295 
296 &reg_eldo1 {
297         regulator-min-microvolt = <1800000>;
298         regulator-max-microvolt = <1800000>;
299         regulator-name = "cpvdd";
300 };
301 
302 &reg_fldo1 {
303         regulator-min-microvolt = <1200000>;
304         regulator-max-microvolt = <1200000>;
305         regulator-name = "vcc-1v2-hsic";
306 };
307 
308 /*
309  * The A64 chip cannot work without this regulator off, although
310  * it seems to be only driving the AR100 core.
311  * Maybe we don't still know well about CPUs domain.
312  */
313 &reg_fldo2 {
314         regulator-always-on;
315         regulator-min-microvolt = <1100000>;
316         regulator-max-microvolt = <1100000>;
317         regulator-name = "vdd-cpus";
318 };
319 
320 &reg_rtc_ldo {
321         regulator-name = "vcc-rtc";
322 };
323 
324 &simplefb_hdmi {
325         vcc-hdmi-supply = <&reg_dldo1>;
326 };
327 
328 &sound {
329         status = "okay";
330         simple-audio-card,widgets = "Headphone", "Headphone Jack",
331                                     "Microphone", "Microphone Jack",
332                                     "Microphone", "Onboard Microphone";
333         simple-audio-card,routing =
334                         "Left DAC", "DACL",
335                         "Right DAC", "DACR",
336                         "ADCL", "Left ADC",
337                         "ADCR", "Right ADC",
338                         "Headphone Jack", "HP",
339                         "MIC2", "Microphone Jack",
340                         "Onboard Microphone", "MBIAS",
341                         "MIC1", "Onboard Microphone";
342 };
343 
344 &uart0 {
345         pinctrl-names = "default";
346         pinctrl-0 = <&uart0_pb_pins>;
347         status = "okay";
348 };
349 
350 &uart1 {
351         pinctrl-names = "default";
352         pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
353         uart-has-rtscts;
354         status = "okay";
355 
356         bluetooth {
357                 compatible = "brcm,bcm43438-bt";
358                 clocks = <&rtc CLK_OSC32K_FANOUT>;
359                 clock-names = "lpo";
360                 vbat-supply = <&reg_dldo2>;
361                 vddio-supply = <&reg_dldo4>;
362                 device-wakeup-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
363                 host-wakeup-gpios = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; /* PL5 */
364                 shutdown-gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */
365         };
366 };
367 
368 &usb_otg {
369         dr_mode = "otg";
370         status = "okay";
371 };
372 
373 &usb_power_supply {
374         status = "okay";
375 };
376 
377 &usbphy {
378         usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */
379         usb0_vbus_power-supply = <&usb_power_supply>;
380         usb0_vbus-supply = <&reg_drivevbus>;
381         status = "okay";
382 };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php