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

arm: dts: mt7623: add MT7623N reference board with eMMC

Add MT7623N reference board with eMMC. On the board, there is additional
external PHY ICPlus IP1001 transceiver available by port 5 on the MDIO
bus connectted with GMAC2.

Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Suggested-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>

authored by

Sean Wang and committed by
Matthias Brugger
dd0dcf00 25fad0ef

+344
+1
arch/arm/boot/dts/Makefile
··· 1152 1152 mt6592-evb.dtb \ 1153 1153 mt7623a-rfb-emmc.dtb \ 1154 1154 mt7623a-rfb-nand.dtb \ 1155 + mt7623n-rfb-emmc.dtb \ 1155 1156 mt7623n-rfb-nand.dtb \ 1156 1157 mt7623n-bananapi-bpi-r2.dtb \ 1157 1158 mt8127-moose.dtb \
+17
arch/arm/boot/dts/mt7623.dtsi
··· 968 968 }; 969 969 }; 970 970 971 + i2c2_pins_a: i2c2-default { 972 + pin-i2c2 { 973 + pinmux = <MT7623_PIN_77_SDA2_FUNC_SDA2>, 974 + <MT7623_PIN_78_SCL2_FUNC_SCL2>; 975 + bias-disable; 976 + }; 977 + }; 978 + 971 979 i2c2_pins_b: i2c2-alt { 972 980 pin-i2c2 { 973 981 pinmux = <MT7623_PIN_122_GPIO122_FUNC_SDA2>, ··· 1190 1182 <MT7623_PIN_199_SPI1_CK_FUNC_SPI1_CK>, 1191 1183 <MT7623_PIN_8_SPI1_MI_FUNC_SPI1_MI>, 1192 1184 <MT7623_PIN_9_SPI1_MO_FUNC_SPI1_MO>; 1185 + }; 1186 + }; 1187 + 1188 + spi2_pins_a: spi2-default { 1189 + pins-spi { 1190 + pinmux = <MT7623_PIN_101_SPI2_CSN_FUNC_SPI2_CS>, 1191 + <MT7623_PIN_104_SPI2_CK_FUNC_SPI2_CK>, 1192 + <MT7623_PIN_102_SPI2_MI_FUNC_SPI2_MI>, 1193 + <MT7623_PIN_103_SPI2_MO_FUNC_SPI2_MO>; 1193 1194 }; 1194 1195 }; 1195 1196
+326
arch/arm/boot/dts/mt7623n-rfb-emmc.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0 2 + /* 3 + * Copyright (c) 2017-2018 MediaTek Inc. 4 + * Author: Sean Wang <sean.wang@mediatek.com> 5 + * 6 + */ 7 + 8 + /dts-v1/; 9 + #include <dt-bindings/input/input.h> 10 + #include "mt7623.dtsi" 11 + #include "mt6323.dtsi" 12 + 13 + / { 14 + model = "MediaTek MT7623N with eMMC reference board"; 15 + compatible = "mediatek,mt7623n-rfb-emmc", "mediatek,mt7623"; 16 + 17 + aliases { 18 + serial0 = &uart0; 19 + serial1 = &uart1; 20 + serial2 = &uart2; 21 + }; 22 + 23 + chosen { 24 + stdout-path = "serial2:115200n8"; 25 + }; 26 + 27 + cpus { 28 + cpu@0 { 29 + proc-supply = <&mt6323_vproc_reg>; 30 + }; 31 + 32 + cpu@1 { 33 + proc-supply = <&mt6323_vproc_reg>; 34 + }; 35 + 36 + cpu@2 { 37 + proc-supply = <&mt6323_vproc_reg>; 38 + }; 39 + 40 + cpu@3 { 41 + proc-supply = <&mt6323_vproc_reg>; 42 + }; 43 + }; 44 + 45 + gpio-keys { 46 + compatible = "gpio-keys"; 47 + pinctrl-names = "default"; 48 + pinctrl-0 = <&key_pins_a>; 49 + 50 + factory { 51 + label = "factory"; 52 + linux,code = <BTN_0>; 53 + gpios = <&pio 256 GPIO_ACTIVE_LOW>; 54 + }; 55 + 56 + wps { 57 + label = "wps"; 58 + linux,code = <KEY_WPS_BUTTON>; 59 + gpios = <&pio 257 GPIO_ACTIVE_HIGH>; 60 + }; 61 + }; 62 + 63 + memory@80000000 { 64 + device_type = "memory"; 65 + reg = <0 0x80000000 0 0x40000000>; 66 + }; 67 + 68 + reg_1p8v: regulator-1p8v { 69 + compatible = "regulator-fixed"; 70 + regulator-name = "fixed-1.8V"; 71 + regulator-min-microvolt = <1800000>; 72 + regulator-max-microvolt = <1800000>; 73 + regulator-boot-on; 74 + regulator-always-on; 75 + }; 76 + 77 + reg_3p3v: regulator-3p3v { 78 + compatible = "regulator-fixed"; 79 + regulator-name = "fixed-3.3V"; 80 + regulator-min-microvolt = <3300000>; 81 + regulator-max-microvolt = <3300000>; 82 + regulator-boot-on; 83 + regulator-always-on; 84 + }; 85 + 86 + reg_5v: regulator-5v { 87 + compatible = "regulator-fixed"; 88 + regulator-name = "fixed-5V"; 89 + regulator-min-microvolt = <5000000>; 90 + regulator-max-microvolt = <5000000>; 91 + regulator-boot-on; 92 + regulator-always-on; 93 + }; 94 + 95 + sound { 96 + compatible = "mediatek,mt2701-wm8960-machine"; 97 + mediatek,platform = <&afe>; 98 + audio-routing = 99 + "Headphone", "HP_L", 100 + "Headphone", "HP_R", 101 + "LINPUT1", "AMIC", 102 + "RINPUT1", "AMIC"; 103 + mediatek,audio-codec = <&wm8960>; 104 + pinctrl-names = "default"; 105 + pinctrl-0 = <&i2s0_pins_a>; 106 + }; 107 + }; 108 + 109 + &btif { 110 + status = "okay"; 111 + }; 112 + 113 + &cir { 114 + pinctrl-names = "default"; 115 + pinctrl-0 = <&cir_pins_a>; 116 + status = "okay"; 117 + }; 118 + 119 + &crypto { 120 + status = "okay"; 121 + }; 122 + 123 + &eth { 124 + status = "okay"; 125 + 126 + gmac0: mac@0 { 127 + compatible = "mediatek,eth-mac"; 128 + reg = <0>; 129 + phy-mode = "trgmii"; 130 + 131 + fixed-link { 132 + speed = <1000>; 133 + full-duplex; 134 + pause; 135 + }; 136 + }; 137 + 138 + mac@1 { 139 + compatible = "mediatek,eth-mac"; 140 + reg = <1>; 141 + phy-handle = <&phy5>; 142 + }; 143 + 144 + mdio-bus { 145 + #address-cells = <1>; 146 + #size-cells = <0>; 147 + 148 + phy5: ethernet-phy@5 { 149 + reg = <5>; 150 + phy-mode = "rgmii-rxid"; 151 + }; 152 + 153 + switch@0 { 154 + compatible = "mediatek,mt7530"; 155 + reg = <0>; 156 + reset-gpios = <&pio 33 0>; 157 + core-supply = <&mt6323_vpa_reg>; 158 + io-supply = <&mt6323_vemc3v3_reg>; 159 + 160 + ports { 161 + #address-cells = <1>; 162 + #size-cells = <0>; 163 + 164 + port@0 { 165 + reg = <0>; 166 + label = "lan0"; 167 + }; 168 + 169 + port@1 { 170 + reg = <1>; 171 + label = "lan1"; 172 + }; 173 + 174 + port@2 { 175 + reg = <2>; 176 + label = "lan2"; 177 + }; 178 + 179 + port@3 { 180 + reg = <3>; 181 + label = "lan3"; 182 + }; 183 + 184 + port@4 { 185 + reg = <4>; 186 + label = "wan"; 187 + }; 188 + 189 + port@6 { 190 + reg = <6>; 191 + label = "cpu"; 192 + ethernet = <&gmac0>; 193 + phy-mode = "trgmii"; 194 + 195 + fixed-link { 196 + speed = <1000>; 197 + full-duplex; 198 + }; 199 + }; 200 + }; 201 + }; 202 + }; 203 + }; 204 + 205 + &i2c0 { 206 + pinctrl-names = "default"; 207 + pinctrl-0 = <&i2c0_pins_a>; 208 + status = "okay"; 209 + }; 210 + 211 + &i2c1 { 212 + pinctrl-names = "default"; 213 + pinctrl-0 = <&i2c1_pins_b>; 214 + status = "okay"; 215 + 216 + wm8960: wm8960@1a { 217 + compatible = "wlf,wm8960"; 218 + reg = <0x1a>; 219 + }; 220 + }; 221 + 222 + &i2c2 { 223 + pinctrl-names = "default"; 224 + pinctrl-0 = <&i2c2_pins_a>; 225 + status = "okay"; 226 + }; 227 + 228 + &mmc0 { 229 + pinctrl-names = "default", "state_uhs"; 230 + pinctrl-0 = <&mmc0_pins_default>; 231 + pinctrl-1 = <&mmc0_pins_uhs>; 232 + status = "okay"; 233 + bus-width = <8>; 234 + max-frequency = <50000000>; 235 + cap-mmc-highspeed; 236 + vmmc-supply = <&reg_3p3v>; 237 + vqmmc-supply = <&reg_1p8v>; 238 + non-removable; 239 + }; 240 + 241 + &mmc1 { 242 + pinctrl-names = "default", "state_uhs"; 243 + pinctrl-0 = <&mmc1_pins_default>; 244 + pinctrl-1 = <&mmc1_pins_uhs>; 245 + status = "okay"; 246 + bus-width = <4>; 247 + max-frequency = <50000000>; 248 + cap-sd-highspeed; 249 + cd-gpios = <&pio 261 GPIO_ACTIVE_LOW>; 250 + vmmc-supply = <&reg_3p3v>; 251 + vqmmc-supply = <&reg_3p3v>; 252 + }; 253 + 254 + &pcie { 255 + pinctrl-names = "default"; 256 + pinctrl-0 = <&pcie_default>; 257 + status = "okay"; 258 + 259 + pcie@0,0 { 260 + status = "okay"; 261 + }; 262 + 263 + pcie@1,0 { 264 + status = "okay"; 265 + }; 266 + }; 267 + 268 + &pcie0_phy { 269 + status = "okay"; 270 + }; 271 + 272 + &pcie1_phy { 273 + status = "okay"; 274 + }; 275 + 276 + &pwm { 277 + pinctrl-names = "default"; 278 + pinctrl-0 = <&pwm_pins_a>; 279 + status = "okay"; 280 + }; 281 + 282 + &spi0 { 283 + pinctrl-names = "default"; 284 + pinctrl-0 = <&spi0_pins_a>; 285 + status = "okay"; 286 + }; 287 + 288 + &spi1 { 289 + pinctrl-names = "default"; 290 + pinctrl-0 = <&spi1_pins_a>; 291 + status = "okay"; 292 + }; 293 + 294 + &spi2 { 295 + pinctrl-names = "default"; 296 + pinctrl-0 = <&spi2_pins_a>; 297 + status = "okay"; 298 + }; 299 + 300 + &uart0 { 301 + pinctrl-names = "default"; 302 + pinctrl-0 = <&uart0_pins_a>; 303 + status = "okay"; 304 + }; 305 + 306 + &uart1 { 307 + pinctrl-names = "default"; 308 + pinctrl-0 = <&uart1_pins_a>; 309 + status = "okay"; 310 + }; 311 + 312 + &uart2 { 313 + pinctrl-names = "default"; 314 + pinctrl-0 = <&uart2_pins_a>; 315 + status = "okay"; 316 + }; 317 + 318 + &usb1 { 319 + vusb33-supply = <&reg_3p3v>; 320 + vbus-supply = <&reg_5v>; 321 + status = "okay"; 322 + }; 323 + 324 + &u3phy1 { 325 + status = "okay"; 326 + };