1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright (C) 2019 Karl Palsson <karlp@tweak.net.au> 4 */ 5 6/dts-v1/; 7#include "sun8i-h3.dtsi" 8#include "sunxi-common-regulators.dtsi" 9 10#include <dt-bindings/gpio/gpio.h> 11#include <dt-bindings/input/input.h> 12 13/ { 14 model = "FriendlyARM NanoPi Duo2"; 15 compatible = "friendlyarm,nanopi-duo2", "allwinner,sun8i-h3"; 16 17 aliases { 18 serial0 = &uart0; 19 }; 20 21 chosen { 22 stdout-path = "serial0:115200n8"; 23 }; 24 25 leds { 26 compatible = "gpio-leds"; 27 28 led-0 { 29 label = "nanopi:red:pwr"; 30 gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; /* PL10 */ 31 default-state = "on"; 32 }; 33 34 led-1 { 35 label = "nanopi:green:status"; 36 gpios = <&pio 0 10 GPIO_ACTIVE_HIGH>; /* PA10 */ 37 }; 38 }; 39 40 gpio-keys { 41 compatible = "gpio-keys"; 42 43 key-0 { 44 label = "k1"; 45 linux,code = <BTN_0>; 46 gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>; /* PL3 */ 47 }; 48 }; 49 50 reg_vdd_cpux: vdd-cpux-regulator { 51 compatible = "regulator-gpio"; 52 regulator-name = "vdd-cpux"; 53 regulator-min-microvolt = <1100000>; 54 regulator-max-microvolt = <1300000>; 55 regulator-always-on; 56 regulator-boot-on; 57 regulator-ramp-delay = <50>; /* 4ms */ 58 59 enable-active-high; 60 enable-gpios = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */ 61 gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */ 62 gpios-states = <0x1>; 63 states = <1100000 0>, <1300000 1>; 64 }; 65 66 reg_vcc_dram: vcc-dram { 67 compatible = "regulator-fixed"; 68 regulator-name = "vcc-dram"; 69 regulator-min-microvolt = <1500000>; 70 regulator-max-microvolt = <1500000>; 71 regulator-always-on; 72 regulator-boot-on; 73 enable-active-high; 74 gpio = <&r_pio 0 9 GPIO_ACTIVE_HIGH>; /* PL9 */ 75 vin-supply = <®_vcc5v0>; 76 }; 77 78 reg_vdd_sys: vdd-sys { 79 compatible = "regulator-fixed"; 80 regulator-name = "vdd-sys"; 81 regulator-min-microvolt = <1200000>; 82 regulator-max-microvolt = <1200000>; 83 regulator-always-on; 84 regulator-boot-on; 85 enable-active-high; 86 gpio = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */ 87 vin-supply = <®_vcc5v0>; 88 }; 89 90 wifi_pwrseq: wifi_pwrseq { 91 compatible = "mmc-pwrseq-simple"; 92 reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */ 93 clocks = <&rtc CLK_OSC32K_FANOUT>; 94 clock-names = "ext_clock"; 95 }; 96 97}; 98 99&cpu0 { 100 cpu-supply = <®_vdd_cpux>; 101}; 102 103&ehci0 { 104 status = "okay"; 105}; 106 107&mmc0 { 108 bus-width = <4>; 109 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ 110 status = "okay"; 111 vmmc-supply = <®_vcc3v3>; 112}; 113 114&mmc1 { 115 vmmc-supply = <®_vcc3v3>; 116 vqmmc-supply = <®_vcc3v3>; 117 mmc-pwrseq = <&wifi_pwrseq>; 118 bus-width = <4>; 119 non-removable; 120 status = "okay"; 121 122 sdio_wifi: sdio_wifi@1 { 123 reg = <1>; 124 compatible = "brcm,bcm4329-fmac"; 125 interrupt-parent = <&pio>; 126 interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 / EINT10 */ 127 interrupt-names = "host-wake"; 128 }; 129}; 130 131&ohci0 { 132 status = "okay"; 133}; 134 135®_usb0_vbus { 136 gpio = <&r_pio 0 2 GPIO_ACTIVE_HIGH>; /* PL2 */ 137 status = "okay"; 138}; 139 140&uart0 { 141 pinctrl-names = "default"; 142 pinctrl-0 = <&uart0_pa_pins>; 143 status = "okay"; 144}; 145 146&uart2 { 147 pinctrl-names = "default"; 148 pinctrl-0 = <&uart2_pins>, <&uart2_rts_cts_pins>; 149 uart-has-rtscts; 150 status = "okay"; 151 152 bluetooth { 153 compatible = "brcm,bcm43438-bt"; 154 clocks = <&rtc CLK_OSC32K_FANOUT>; 155 clock-names = "lpo"; 156 vbat-supply = <®_vcc3v3>; 157 vddio-supply = <®_vcc3v3>; 158 device-wakeup-gpios = <&pio 0 8 GPIO_ACTIVE_HIGH>; /* PA8 */ 159 host-wakeup-gpios = <&pio 0 7 GPIO_ACTIVE_HIGH>; /* PA7 */ 160 shutdown-gpios = <&pio 6 13 GPIO_ACTIVE_HIGH>; /* PG13 */ 161 }; 162}; 163 164&usb_otg { 165 status = "okay"; 166 dr_mode = "otg"; 167}; 168 169&usbphy { 170 usb0_id_det-gpios = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */ 171 usb0_vbus-supply = <®_usb0_vbus>; 172 status = "okay"; 173}; 174