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