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

ARM: dts: sun8i: h3: Split out non-SoC-specific parts of Bananapi M2 Plus

Three more variants of the Bananapi M2 Plus have been introduced. One
with the H5 instead of the H3, another with the H2+ instead, and the
last with the H3 but with WiFi and eMMC removed.

All these variants use the same board. This patch splits out the
non-SoC-specific parts of the device tree, so that they can be shared
among all the variants. The original Bananapi M2 Plus has been renamed
to Bananapi M2 Plus H3.

Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
Signed-off-by: Chen-Yu Tsai <wens@csie.org>

authored by

Chen-Yu Tsai and committed by
Maxime Ripard
aa8fee41 db9fd9d1

+233 -188
+2 -188
arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts
··· 42 42 43 43 /dts-v1/; 44 44 #include "sun8i-h3.dtsi" 45 - #include "sunxi-common-regulators.dtsi" 46 - 47 - #include <dt-bindings/gpio/gpio.h> 48 - #include <dt-bindings/input/input.h> 45 + #include "sunxi-bananapi-m2-plus.dtsi" 49 46 50 47 / { 51 - model = "Banana Pi BPI-M2-Plus"; 48 + model = "Banana Pi BPI-M2-Plus H3"; 52 49 compatible = "sinovoip,bpi-m2-plus", "allwinner,sun8i-h3"; 53 - 54 - aliases { 55 - ethernet0 = &emac; 56 - serial0 = &uart0; 57 - serial1 = &uart1; 58 - }; 59 - 60 - chosen { 61 - stdout-path = "serial0:115200n8"; 62 - }; 63 - 64 - connector { 65 - compatible = "hdmi-connector"; 66 - type = "a"; 67 - 68 - port { 69 - hdmi_con_in: endpoint { 70 - remote-endpoint = <&hdmi_out_con>; 71 - }; 72 - }; 73 - }; 74 - 75 - leds { 76 - compatible = "gpio-leds"; 77 - pinctrl-names = "default"; 78 - 79 - pwr_led { 80 - label = "bananapi-m2-plus:red:pwr"; 81 - gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; /* PL10 */ 82 - default-state = "on"; 83 - }; 84 - }; 85 - 86 - gpio_keys { 87 - compatible = "gpio-keys"; 88 - pinctrl-names = "default"; 89 - 90 - sw4 { 91 - label = "power"; 92 - linux,code = <BTN_0>; 93 - gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>; 94 - }; 95 - }; 96 - 97 - reg_gmac_3v3: gmac-3v3 { 98 - compatible = "regulator-fixed"; 99 - regulator-name = "gmac-3v3"; 100 - regulator-min-microvolt = <3300000>; 101 - regulator-max-microvolt = <3300000>; 102 - startup-delay-us = <100000>; 103 - enable-active-high; 104 - gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>; 105 - }; 106 - 107 - wifi_pwrseq: wifi_pwrseq { 108 - compatible = "mmc-pwrseq-simple"; 109 - pinctrl-names = "default"; 110 - reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */ 111 - }; 112 - }; 113 - 114 - &de { 115 - status = "okay"; 116 - }; 117 - 118 - &ehci0 { 119 - status = "okay"; 120 - }; 121 - 122 - &ehci1 { 123 - status = "okay"; 124 - }; 125 - 126 - &ehci2 { 127 - status = "okay"; 128 - }; 129 - 130 - &emac { 131 - pinctrl-names = "default"; 132 - pinctrl-0 = <&emac_rgmii_pins>; 133 - phy-supply = <&reg_gmac_3v3>; 134 - phy-handle = <&ext_rgmii_phy>; 135 - phy-mode = "rgmii"; 136 - 137 - status = "okay"; 138 - }; 139 - 140 - &external_mdio { 141 - ext_rgmii_phy: ethernet-phy@1 { 142 - compatible = "ethernet-phy-ieee802.3-c22"; 143 - reg = <1>; 144 - }; 145 - }; 146 - 147 - &hdmi { 148 - status = "okay"; 149 - }; 150 - 151 - &hdmi_out { 152 - hdmi_out_con: endpoint { 153 - remote-endpoint = <&hdmi_con_in>; 154 - }; 155 - }; 156 - 157 - &ir { 158 - pinctrl-names = "default"; 159 - pinctrl-0 = <&ir_pins_a>; 160 - status = "okay"; 161 - }; 162 - 163 - &mmc0 { 164 - vmmc-supply = <&reg_vcc3v3>; 165 - bus-width = <4>; 166 - cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ 167 - status = "okay"; 168 - }; 169 - 170 - &mmc1 { 171 - vmmc-supply = <&reg_vcc3v3>; 172 - vqmmc-supply = <&reg_vcc3v3>; 173 - mmc-pwrseq = <&wifi_pwrseq>; 174 - bus-width = <4>; 175 - non-removable; 176 - status = "okay"; 177 - 178 - brcmf: wifi@1 { 179 - reg = <1>; 180 - compatible = "brcm,bcm4329-fmac"; 181 - interrupt-parent = <&pio>; 182 - interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 / EINT10 */ 183 - interrupt-names = "host-wake"; 184 - }; 185 - }; 186 - 187 - &mmc2 { 188 - pinctrl-names = "default"; 189 - pinctrl-0 = <&mmc2_8bit_pins>; 190 - vmmc-supply = <&reg_vcc3v3>; 191 - vqmmc-supply = <&reg_vcc3v3>; 192 - bus-width = <8>; 193 - non-removable; 194 - status = "okay"; 195 - }; 196 - 197 - &ohci0 { 198 - status = "okay"; 199 - }; 200 - 201 - &ohci1 { 202 - status = "okay"; 203 - }; 204 - 205 - &ohci2 { 206 - status = "okay"; 207 - }; 208 - 209 - &reg_usb0_vbus { 210 - gpio = <&pio 3 11 GPIO_ACTIVE_HIGH>; /* PD11 */ 211 - status = "okay"; 212 - }; 213 - 214 - &uart0 { 215 - pinctrl-names = "default"; 216 - pinctrl-0 = <&uart0_pins_a>; 217 - status = "okay"; 218 - }; 219 - 220 - &uart1 { 221 - pinctrl-names = "default"; 222 - pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>; 223 - status = "okay"; 224 - }; 225 - 226 - &usb_otg { 227 - dr_mode = "otg"; 228 - status = "okay"; 229 - }; 230 - 231 - &usbphy { 232 - usb0_id_det-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */ 233 - usb0_vbus-supply = <&reg_usb0_vbus>; 234 - /* USB host VBUS is on as long as VCC-IO is on */ 235 - status = "okay"; 236 50 };
+231
arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi
··· 1 + /* 2 + * Copyright (C) 2016 Chen-Yu Tsai <wens@csie.org> 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 + #include "sunxi-common-regulators.dtsi" 44 + 45 + #include <dt-bindings/gpio/gpio.h> 46 + #include <dt-bindings/input/input.h> 47 + 48 + / { 49 + aliases { 50 + ethernet0 = &emac; 51 + serial0 = &uart0; 52 + serial1 = &uart1; 53 + }; 54 + 55 + chosen { 56 + stdout-path = "serial0:115200n8"; 57 + }; 58 + 59 + connector { 60 + compatible = "hdmi-connector"; 61 + type = "a"; 62 + 63 + port { 64 + hdmi_con_in: endpoint { 65 + remote-endpoint = <&hdmi_out_con>; 66 + }; 67 + }; 68 + }; 69 + 70 + leds { 71 + compatible = "gpio-leds"; 72 + pinctrl-names = "default"; 73 + 74 + pwr_led { 75 + label = "bananapi-m2-plus:red:pwr"; 76 + gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; /* PL10 */ 77 + default-state = "on"; 78 + }; 79 + }; 80 + 81 + gpio_keys { 82 + compatible = "gpio-keys"; 83 + pinctrl-names = "default"; 84 + 85 + sw4 { 86 + label = "power"; 87 + linux,code = <BTN_0>; 88 + gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>; 89 + }; 90 + }; 91 + 92 + reg_gmac_3v3: gmac-3v3 { 93 + compatible = "regulator-fixed"; 94 + regulator-name = "gmac-3v3"; 95 + regulator-min-microvolt = <3300000>; 96 + regulator-max-microvolt = <3300000>; 97 + startup-delay-us = <100000>; 98 + enable-active-high; 99 + gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>; 100 + }; 101 + 102 + wifi_pwrseq: wifi_pwrseq { 103 + compatible = "mmc-pwrseq-simple"; 104 + pinctrl-names = "default"; 105 + reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */ 106 + }; 107 + }; 108 + 109 + &de { 110 + status = "okay"; 111 + }; 112 + 113 + &ehci0 { 114 + status = "okay"; 115 + }; 116 + 117 + &ehci1 { 118 + status = "okay"; 119 + }; 120 + 121 + &ehci2 { 122 + status = "okay"; 123 + }; 124 + 125 + &emac { 126 + pinctrl-names = "default"; 127 + pinctrl-0 = <&emac_rgmii_pins>; 128 + phy-supply = <&reg_gmac_3v3>; 129 + phy-handle = <&ext_rgmii_phy>; 130 + phy-mode = "rgmii"; 131 + 132 + status = "okay"; 133 + }; 134 + 135 + &external_mdio { 136 + ext_rgmii_phy: ethernet-phy@1 { 137 + compatible = "ethernet-phy-ieee802.3-c22"; 138 + reg = <1>; 139 + }; 140 + }; 141 + 142 + &hdmi { 143 + status = "okay"; 144 + }; 145 + 146 + &hdmi_out { 147 + hdmi_out_con: endpoint { 148 + remote-endpoint = <&hdmi_con_in>; 149 + }; 150 + }; 151 + 152 + &ir { 153 + pinctrl-names = "default"; 154 + pinctrl-0 = <&ir_pins_a>; 155 + status = "okay"; 156 + }; 157 + 158 + &mmc0 { 159 + vmmc-supply = <&reg_vcc3v3>; 160 + bus-width = <4>; 161 + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ 162 + status = "okay"; 163 + }; 164 + 165 + &mmc1 { 166 + vmmc-supply = <&reg_vcc3v3>; 167 + vqmmc-supply = <&reg_vcc3v3>; 168 + mmc-pwrseq = <&wifi_pwrseq>; 169 + bus-width = <4>; 170 + non-removable; 171 + status = "okay"; 172 + 173 + brcmf: wifi@1 { 174 + reg = <1>; 175 + compatible = "brcm,bcm4329-fmac"; 176 + interrupt-parent = <&pio>; 177 + interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 / EINT10 */ 178 + interrupt-names = "host-wake"; 179 + }; 180 + }; 181 + 182 + &mmc2 { 183 + pinctrl-names = "default"; 184 + pinctrl-0 = <&mmc2_8bit_pins>; 185 + vmmc-supply = <&reg_vcc3v3>; 186 + vqmmc-supply = <&reg_vcc3v3>; 187 + bus-width = <8>; 188 + non-removable; 189 + status = "okay"; 190 + }; 191 + 192 + &ohci0 { 193 + status = "okay"; 194 + }; 195 + 196 + &ohci1 { 197 + status = "okay"; 198 + }; 199 + 200 + &ohci2 { 201 + status = "okay"; 202 + }; 203 + 204 + &reg_usb0_vbus { 205 + gpio = <&pio 3 11 GPIO_ACTIVE_HIGH>; /* PD11 */ 206 + status = "okay"; 207 + }; 208 + 209 + &uart0 { 210 + pinctrl-names = "default"; 211 + pinctrl-0 = <&uart0_pins_a>; 212 + status = "okay"; 213 + }; 214 + 215 + &uart1 { 216 + pinctrl-names = "default"; 217 + pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>; 218 + status = "okay"; 219 + }; 220 + 221 + &usb_otg { 222 + dr_mode = "otg"; 223 + status = "okay"; 224 + }; 225 + 226 + &usbphy { 227 + usb0_id_det-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */ 228 + usb0_vbus-supply = <&reg_usb0_vbus>; 229 + /* USB host VBUS is on as long as VCC-IO is on */ 230 + status = "okay"; 231 + };