Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'sunxi-dt-h5-for-4.13' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into next/dt64

Allwinner H5 DT changes for 4.13

Just like the H3, this is mostly about enabling the EMAC on the H5, and
also has a new board, the Orange Pi Zero Plus 2

* tag 'sunxi-dt-h5-for-4.13' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
arm64: allwinner: h5: Add initial Orangepi Zero Plus 2 support
arm64: allwinner: h5: enable dwmac-sun8i for Nano Pi NEO2
arm64: allwinner: h5: enable dwmac-sun8i for Orange Pi Prime
arm64: allwinner: h5: sort the device nodes in / part for some boards
arm64: allwinner: h5: add support for NanoPi NEO2 board
arm64: allwinner: h5: add support for Orange Pi Prime board
arm64: allwinner: orangepi-pc2: Enable dwmac-sun8i
arm: sun8i: sunxi-h3-h5: add dwmac-sun8i ethernet driver
arm: sun8i: sunxi-h3-h5: Add dt node for the syscon control module
ARM: sunxi: h3-h5: Convert R_CCU raw numbers to macros

Signed-off-by: Olof Johansson <olof@lixom.net>

+560 -3
+45 -3
arch/arm/boot/dts/sunxi-h3-h5.dtsi
··· 41 41 */ 42 42 43 43 #include <dt-bindings/clock/sun8i-h3-ccu.h> 44 + #include <dt-bindings/clock/sun8i-r-ccu.h> 44 45 #include <dt-bindings/interrupt-controller/arm-gic.h> 45 46 #include <dt-bindings/reset/sun8i-h3-ccu.h> 47 + #include <dt-bindings/reset/sun8i-r-ccu.h> 46 48 47 49 / { 48 50 interrupt-parent = <&gic>; ··· 84 82 #address-cells = <1>; 85 83 #size-cells = <1>; 86 84 ranges; 85 + 86 + syscon: syscon@1c00000 { 87 + compatible = "allwinner,sun8i-h3-system-controller", 88 + "syscon"; 89 + reg = <0x01c00000 0x1000>; 90 + }; 87 91 88 92 dma: dma-controller@01c02000 { 89 93 compatible = "allwinner,sun8i-h3-dma"; ··· 287 279 interrupt-controller; 288 280 #interrupt-cells = <3>; 289 281 282 + emac_rgmii_pins: emac0 { 283 + pins = "PD0", "PD1", "PD2", "PD3", "PD4", 284 + "PD5", "PD7", "PD8", "PD9", "PD10", 285 + "PD12", "PD13", "PD15", "PD16", "PD17"; 286 + function = "emac"; 287 + drive-strength = <40>; 288 + }; 289 + 290 290 i2c0_pins: i2c0 { 291 291 pins = "PA11", "PA12"; 292 292 function = "i2c0"; ··· 389 373 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>, 390 374 <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 391 375 clocks = <&osc24M>; 376 + }; 377 + 378 + emac: ethernet@1c30000 { 379 + compatible = "allwinner,sun8i-h3-emac"; 380 + syscon = <&syscon>; 381 + reg = <0x01c30000 0x104>; 382 + interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 383 + interrupt-names = "macirq"; 384 + resets = <&ccu RST_BUS_EMAC>; 385 + reset-names = "stmmaceth"; 386 + clocks = <&ccu CLK_BUS_EMAC>; 387 + clock-names = "stmmaceth"; 388 + #address-cells = <1>; 389 + #size-cells = <0>; 390 + status = "disabled"; 391 + 392 + mdio: mdio { 393 + #address-cells = <1>; 394 + #size-cells = <0>; 395 + int_mii_phy: ethernet-phy@1 { 396 + compatible = "ethernet-phy-ieee802.3-c22"; 397 + reg = <1>; 398 + clocks = <&ccu CLK_BUS_EPHY>; 399 + resets = <&ccu RST_BUS_EPHY>; 400 + }; 401 + }; 392 402 }; 393 403 394 404 spi0: spi@01c68000 { ··· 615 573 616 574 ir: ir@01f02000 { 617 575 compatible = "allwinner,sun5i-a13-ir"; 618 - clocks = <&r_ccu 4>, <&r_ccu 11>; 576 + clocks = <&r_ccu CLK_APB0_IR>, <&r_ccu CLK_IR>; 619 577 clock-names = "apb", "ir"; 620 - resets = <&r_ccu 0>; 578 + resets = <&r_ccu RST_APB0_IR>; 621 579 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 622 580 reg = <0x01f02000 0x40>; 623 581 status = "disabled"; ··· 627 585 compatible = "allwinner,sun8i-h3-r-pinctrl"; 628 586 reg = <0x01f02c00 0x400>; 629 587 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; 630 - clocks = <&r_ccu 3>, <&osc24M>, <&osc32k>; 588 + clocks = <&r_ccu CLK_APB0_PIO>, <&osc24M>, <&osc32k>; 631 589 clock-names = "apb", "hosc", "losc"; 632 590 gpio-controller; 633 591 #gpio-cells = <3>;
+3
arch/arm64/boot/dts/allwinner/Makefile
··· 3 3 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-plus.dtb sun50i-a64-pine64.dtb 4 4 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb 5 5 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-pc2.dtb 6 + dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-prime.dtb 7 + dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus2.dtb 8 + dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-neo2.dtb 6 9 7 10 always := $(dtb-y) 8 11 subdir-y := $(dts-dirs)
+161
arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts
··· 1 + /* 2 + * Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.io> 3 + * 4 + * This file is dual-licensed: you can use it either under the terms 5 + * of the GPL or the X11 license, at your option. Note that this dual 6 + * licensing only applies to this file, and not this project as a 7 + * whole. 8 + * 9 + * a) This file is free software; you can redistribute it and/or 10 + * modify it under the terms of the GNU General Public License as 11 + * published by the Free Software Foundation; either version 2 of the 12 + * License, or (at your option) any later version. 13 + * 14 + * This file is distributed in the hope that it will be useful, 15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 + * GNU General Public License for more details. 18 + * 19 + * Or, alternatively, 20 + * 21 + * b) Permission is hereby granted, free of charge, to any person 22 + * obtaining a copy of this software and associated documentation 23 + * files (the "Software"), to deal in the Software without 24 + * restriction, including without limitation the rights to use, 25 + * copy, modify, merge, publish, distribute, sublicense, and/or 26 + * sell copies of the Software, and to permit persons to whom the 27 + * Software is furnished to do so, subject to the following 28 + * conditions: 29 + * 30 + * The above copyright notice and this permission notice shall be 31 + * included in all copies or substantial portions of the Software. 32 + * 33 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 + * OTHER DEALINGS IN THE SOFTWARE. 41 + */ 42 + 43 + /dts-v1/; 44 + #include "sun50i-h5.dtsi" 45 + 46 + #include <dt-bindings/gpio/gpio.h> 47 + 48 + / { 49 + model = "FriendlyARM NanoPi NEO 2"; 50 + compatible = "friendlyarm,nanopi-neo2", "allwinner,sun50i-h5"; 51 + 52 + aliases { 53 + ethernet0 = &emac; 54 + serial0 = &uart0; 55 + }; 56 + 57 + chosen { 58 + stdout-path = "serial0:115200n8"; 59 + }; 60 + 61 + leds { 62 + compatible = "gpio-leds"; 63 + 64 + pwr { 65 + label = "nanopi:green:pwr"; 66 + gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; 67 + default-state = "on"; 68 + }; 69 + 70 + status { 71 + label = "nanopi:blue:status"; 72 + gpios = <&pio 0 10 GPIO_ACTIVE_HIGH>; 73 + }; 74 + }; 75 + 76 + reg_gmac_3v3: gmac-3v3 { 77 + compatible = "regulator-fixed"; 78 + regulator-name = "gmac-3v3"; 79 + regulator-min-microvolt = <3300000>; 80 + regulator-max-microvolt = <3300000>; 81 + startup-delay-us = <100000>; 82 + enable-active-high; 83 + gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>; 84 + }; 85 + 86 + reg_vcc3v3: vcc3v3 { 87 + compatible = "regulator-fixed"; 88 + regulator-name = "vcc3v3"; 89 + regulator-min-microvolt = <3300000>; 90 + regulator-max-microvolt = <3300000>; 91 + }; 92 + 93 + reg_usb0_vbus: usb0-vbus { 94 + compatible = "regulator-fixed"; 95 + regulator-name = "usb0-vbus"; 96 + regulator-min-microvolt = <5000000>; 97 + regulator-max-microvolt = <5000000>; 98 + enable-active-high; 99 + gpio = <&r_pio 0 2 GPIO_ACTIVE_HIGH>; /* PL2 */ 100 + status = "okay"; 101 + }; 102 + }; 103 + 104 + &ehci0 { 105 + status = "okay"; 106 + }; 107 + 108 + &ehci3 { 109 + status = "okay"; 110 + }; 111 + 112 + &emac { 113 + pinctrl-names = "default"; 114 + pinctrl-0 = <&emac_rgmii_pins>; 115 + phy-supply = <&reg_gmac_3v3>; 116 + phy-handle = <&ext_rgmii_phy>; 117 + phy-mode = "rgmii"; 118 + status = "okay"; 119 + }; 120 + 121 + &mdio { 122 + ext_rgmii_phy: ethernet-phy@7 { 123 + compatible = "ethernet-phy-ieee802.3-c22"; 124 + reg = <7>; 125 + }; 126 + }; 127 + 128 + &mmc0 { 129 + pinctrl-names = "default"; 130 + pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>; 131 + vmmc-supply = <&reg_vcc3v3>; 132 + bus-width = <4>; 133 + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ 134 + status = "okay"; 135 + }; 136 + 137 + &ohci0 { 138 + status = "okay"; 139 + }; 140 + 141 + &ohci3 { 142 + status = "okay"; 143 + }; 144 + 145 + &uart0 { 146 + pinctrl-names = "default"; 147 + pinctrl-0 = <&uart0_pins_a>; 148 + status = "okay"; 149 + }; 150 + 151 + &usb_otg { 152 + dr_mode = "otg"; 153 + status = "okay"; 154 + }; 155 + 156 + &usbphy { 157 + /* USB Type-A port's VBUS is always on */ 158 + usb0_id_det-gpios = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */ 159 + usb0_vbus-supply = <&reg_usb0_vbus>; 160 + status = "okay"; 161 + };
+27
arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
··· 59 59 }; 60 60 61 61 aliases { 62 + ethernet0 = &emac; 62 63 serial0 = &uart0; 63 64 }; 64 65 ··· 90 89 linux,code = <BTN_0>; 91 90 gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>; 92 91 }; 92 + }; 93 + 94 + reg_gmac_3v3: gmac-3v3 { 95 + compatible = "regulator-fixed"; 96 + regulator-name = "gmac-3v3"; 97 + regulator-min-microvolt = <3300000>; 98 + regulator-max-microvolt = <3300000>; 99 + startup-delay-us = <100000>; 100 + enable-active-high; 101 + gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>; 93 102 }; 94 103 95 104 reg_usb0_vbus: usb0-vbus { ··· 137 126 status = "okay"; 138 127 }; 139 128 129 + &emac { 130 + pinctrl-names = "default"; 131 + pinctrl-0 = <&emac_rgmii_pins>; 132 + phy-supply = <&reg_gmac_3v3>; 133 + phy-handle = <&ext_rgmii_phy>; 134 + phy-mode = "rgmii"; 135 + status = "okay"; 136 + }; 137 + 140 138 &ir { 141 139 pinctrl-names = "default"; 142 140 pinctrl-0 = <&ir_pins_a>; 143 141 status = "okay"; 142 + }; 143 + 144 + &mdio { 145 + ext_rgmii_phy: ethernet-phy@1 { 146 + compatible = "ethernet-phy-ieee802.3-c22"; 147 + reg = <1>; 148 + }; 144 149 }; 145 150 146 151 &mmc0 {
+232
arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts
··· 1 + /* 2 + * Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.xyz> 3 + * 4 + * Based on sun50i-h5-orangepi-pc2.dts, which is: 5 + * Copyright (C) 2016 ARM Ltd. 6 + * 7 + * This file is dual-licensed: you can use it either under the terms 8 + * of the GPL or the X11 license, at your option. Note that this dual 9 + * licensing only applies to this file, and not this project as a 10 + * whole. 11 + * 12 + * a) This file is free software; you can redistribute it and/or 13 + * modify it under the terms of the GNU General Public License as 14 + * published by the Free Software Foundation; either version 2 of the 15 + * License, or (at your option) any later version. 16 + * 17 + * This file is distributed in the hope that it will be useful, 18 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 + * GNU General Public License for more details. 21 + * 22 + * Or, alternatively, 23 + * 24 + * b) Permission is hereby granted, free of charge, to any person 25 + * obtaining a copy of this software and associated documentation 26 + * files (the "Software"), to deal in the Software without 27 + * restriction, including without limitation the rights to use, 28 + * copy, modify, merge, publish, distribute, sublicense, and/or 29 + * sell copies of the Software, and to permit persons to whom the 30 + * Software is furnished to do so, subject to the following 31 + * conditions: 32 + * 33 + * The above copyright notice and this permission notice shall be 34 + * included in all copies or substantial portions of the Software. 35 + * 36 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 37 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 38 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 40 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 41 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 42 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 43 + * OTHER DEALINGS IN THE SOFTWARE. 44 + */ 45 + 46 + /dts-v1/; 47 + #include "sun50i-h5.dtsi" 48 + 49 + #include <dt-bindings/gpio/gpio.h> 50 + #include <dt-bindings/input/input.h> 51 + 52 + / { 53 + model = "Xunlong Orange Pi Prime"; 54 + compatible = "xunlong,orangepi-prime", "allwinner,sun50i-h5"; 55 + 56 + aliases { 57 + ethernet0 = &emac; 58 + serial0 = &uart0; 59 + }; 60 + 61 + chosen { 62 + stdout-path = "serial0:115200n8"; 63 + }; 64 + 65 + leds { 66 + compatible = "gpio-leds"; 67 + 68 + pwr { 69 + label = "orangepi:green:pwr"; 70 + gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; 71 + default-state = "on"; 72 + }; 73 + 74 + status { 75 + label = "orangepi:red:status"; 76 + gpios = <&pio 0 20 GPIO_ACTIVE_HIGH>; 77 + }; 78 + }; 79 + 80 + r-gpio-keys { 81 + compatible = "gpio-keys"; 82 + 83 + sw4 { 84 + label = "sw4"; 85 + linux,code = <BTN_0>; 86 + gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>; 87 + }; 88 + }; 89 + 90 + reg_gmac_3v3: gmac-3v3 { 91 + compatible = "regulator-fixed"; 92 + regulator-name = "gmac-3v3"; 93 + regulator-min-microvolt = <3300000>; 94 + regulator-max-microvolt = <3300000>; 95 + startup-delay-us = <100000>; 96 + enable-active-high; 97 + gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>; 98 + }; 99 + 100 + reg_vcc3v3: vcc3v3 { 101 + compatible = "regulator-fixed"; 102 + regulator-name = "vcc3v3"; 103 + regulator-min-microvolt = <3300000>; 104 + regulator-max-microvolt = <3300000>; 105 + }; 106 + 107 + reg_usb0_vbus: usb0-vbus { 108 + compatible = "regulator-fixed"; 109 + regulator-name = "usb0-vbus"; 110 + regulator-min-microvolt = <5000000>; 111 + regulator-max-microvolt = <5000000>; 112 + enable-active-high; 113 + gpio = <&r_pio 0 2 GPIO_ACTIVE_HIGH>; /* PL2 */ 114 + status = "okay"; 115 + }; 116 + 117 + wifi_pwrseq: wifi_pwrseq { 118 + compatible = "mmc-pwrseq-simple"; 119 + reset-gpios = <&pio 2 14 GPIO_ACTIVE_LOW>; /* PC14 */ 120 + }; 121 + }; 122 + 123 + &codec { 124 + allwinner,audio-routing = 125 + "Line Out", "LINEOUT", 126 + "MIC1", "Mic", 127 + "Mic", "MBIAS"; 128 + status = "okay"; 129 + }; 130 + 131 + &ehci0 { 132 + status = "okay"; 133 + }; 134 + 135 + &ehci1 { 136 + status = "okay"; 137 + }; 138 + 139 + &ehci2 { 140 + status = "okay"; 141 + }; 142 + 143 + &ehci3 { 144 + status = "okay"; 145 + }; 146 + 147 + &emac { 148 + pinctrl-names = "default"; 149 + pinctrl-0 = <&emac_rgmii_pins>; 150 + phy-supply = <&reg_gmac_3v3>; 151 + phy-handle = <&ext_rgmii_phy>; 152 + phy-mode = "rgmii"; 153 + status = "okay"; 154 + }; 155 + 156 + &ir { 157 + pinctrl-names = "default"; 158 + pinctrl-0 = <&ir_pins_a>; 159 + status = "okay"; 160 + }; 161 + 162 + &mdio { 163 + ext_rgmii_phy: ethernet-phy@1 { 164 + compatible = "ethernet-phy-ieee802.3-c22"; 165 + reg = <1>; 166 + }; 167 + }; 168 + 169 + &mmc0 { 170 + pinctrl-names = "default"; 171 + pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>; 172 + vmmc-supply = <&reg_vcc3v3>; 173 + bus-width = <4>; 174 + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ 175 + status = "okay"; 176 + }; 177 + 178 + &mmc1 { 179 + pinctrl-names = "default"; 180 + pinctrl-0 = <&mmc1_pins_a>; 181 + vmmc-supply = <&reg_vcc3v3>; 182 + mmc-pwrseq = <&wifi_pwrseq>; 183 + bus-width = <4>; 184 + non-removable; 185 + status = "okay"; 186 + }; 187 + 188 + &ohci0 { 189 + status = "okay"; 190 + }; 191 + 192 + &ohci1 { 193 + status = "okay"; 194 + }; 195 + 196 + &ohci2 { 197 + status = "okay"; 198 + }; 199 + 200 + &ohci3 { 201 + status = "okay"; 202 + }; 203 + 204 + &uart0 { 205 + pinctrl-names = "default"; 206 + pinctrl-0 = <&uart0_pins_a>; 207 + status = "okay"; 208 + }; 209 + 210 + &uart1 { 211 + pinctrl-names = "default"; 212 + pinctrl-0 = <&uart1_pins>; 213 + status = "disabled"; 214 + }; 215 + 216 + &uart2 { 217 + pinctrl-names = "default"; 218 + pinctrl-0 = <&uart2_pins>; 219 + status = "disabled"; 220 + }; 221 + 222 + &usb_otg { 223 + dr_mode = "otg"; 224 + status = "okay"; 225 + }; 226 + 227 + &usbphy { 228 + /* USB Type-A ports' VBUS is always on */ 229 + usb0_id_det-gpios = <&pio 0 21 GPIO_ACTIVE_HIGH>; /* PA21 */ 230 + usb0_vbus-supply = <&reg_usb0_vbus>; 231 + status = "okay"; 232 + };
+92
arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-zero-plus2.dts
··· 1 + /* 2 + * Copyright (C) 2017 Jagan Teki <jteki@openedev.com> 3 + * 4 + * This file is dual-licensed: you can use it either under the terms 5 + * of the GPL or the X11 license, at your option. Note that this dual 6 + * licensing only applies to this file, and not this project as a 7 + * whole. 8 + * 9 + * a) This library is free software; you can redistribute it and/or 10 + * modify it under the terms of the GNU General Public License as 11 + * published by the Free Software Foundation; either version 2 of the 12 + * License, or (at your option) any later version. 13 + * 14 + * This library is distributed in the hope that it will be useful, 15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 + * GNU General Public License for more details. 18 + * 19 + * Or, alternatively, 20 + * 21 + * b) Permission is hereby granted, free of charge, to any person 22 + * obtaining a copy of this software and associated documentation 23 + * files (the "Software"), to deal in the Software without 24 + * restriction, including without limitation the rights to use, 25 + * copy, modify, merge, publish, distribute, sublicense, and/or 26 + * sell copies of the Software, and to permit persons to whom the 27 + * Software is furnished to do so, subject to the following 28 + * conditions: 29 + * 30 + * The above copyright notice and this permission notice shall be 31 + * included in all copies or substantial portions of the Software. 32 + * 33 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 + * OTHER DEALINGS IN THE SOFTWARE. 41 + */ 42 + 43 + /dts-v1/; 44 + 45 + #include "sun50i-h5.dtsi" 46 + 47 + #include <dt-bindings/gpio/gpio.h> 48 + 49 + / { 50 + model = "OrangePi Zero Plus2"; 51 + compatible = "xunlong,orangepi-zero-plus2", "allwinner,sun50i-h5"; 52 + 53 + aliases { 54 + serial0 = &uart0; 55 + }; 56 + 57 + chosen { 58 + stdout-path = "serial0:115200n8"; 59 + }; 60 + 61 + reg_vcc3v3: vcc3v3 { 62 + compatible = "regulator-fixed"; 63 + regulator-name = "vcc3v3"; 64 + regulator-min-microvolt = <3300000>; 65 + regulator-max-microvolt = <3300000>; 66 + }; 67 + }; 68 + 69 + &mmc0 { 70 + pinctrl-names = "default"; 71 + pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>; 72 + vmmc-supply = <&reg_vcc3v3>; 73 + bus-width = <4>; 74 + cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; 75 + status = "okay"; 76 + }; 77 + 78 + &mmc2 { 79 + pinctrl-names = "default"; 80 + pinctrl-0 = <&mmc2_8bit_pins>; 81 + vmmc-supply = <&reg_vcc3v3>; 82 + bus-width = <8>; 83 + non-removable; 84 + cap-mmc-hw-reset; 85 + status = "okay"; 86 + }; 87 + 88 + &uart0 { 89 + pinctrl-names = "default"; 90 + pinctrl-0 = <&uart0_pins_a>; 91 + status = "okay"; 92 + };