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

arm: dts: mt7623: add MT7623A reference boards

Add MT7623A reference board with eMMC and NAND, respectively.

The both boards compared against MT7623N BPI-R2, we could see there are
UART[0-1] and USB2 being removed, I2C2 and SPI1 being added, I2C1, UART2
owning distinct pin usage and an extra WM8960 codec chip plugged into the
I2C1 offering the functionality of audio player and recorder through
SoC audio front-end engine (AFE).

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
25fad0ef 4e1c1f07

+662
+2
arch/arm/boot/dts/Makefile
··· 1150 1150 mt6580-evbp1.dtb \ 1151 1151 mt6589-aquaris5.dtb \ 1152 1152 mt6592-evb.dtb \ 1153 + mt7623a-rfb-emmc.dtb \ 1154 + mt7623a-rfb-nand.dtb \ 1153 1155 mt7623n-rfb-nand.dtb \ 1154 1156 mt7623n-bananapi-bpi-r2.dtb \ 1155 1157 mt8127-moose.dtb \
+32
arch/arm/boot/dts/mt7623.dtsi
··· 960 960 }; 961 961 }; 962 962 963 + i2c1_pins_b: i2c1-alt { 964 + pin-i2c1 { 965 + pinmux = <MT7623_PIN_242_URTS2_FUNC_SCL1>, 966 + <MT7623_PIN_243_UCTS2_FUNC_SDA1>; 967 + bias-disable; 968 + }; 969 + }; 970 + 971 + i2c2_pins_b: i2c2-alt { 972 + pin-i2c2 { 973 + pinmux = <MT7623_PIN_122_GPIO122_FUNC_SDA2>, 974 + <MT7623_PIN_123_HTPLG_FUNC_SCL2>; 975 + bias-disable; 976 + }; 977 + }; 978 + 963 979 i2s0_pins_a: i2s0-default { 964 980 pin-i2s0 { 965 981 pinmux = <MT7623_PIN_49_I2S0_DATA_FUNC_I2S0_DATA>, ··· 1176 1160 }; 1177 1161 }; 1178 1162 1163 + spi1_pins_a: spi1-default { 1164 + pins-spi { 1165 + pinmux = <MT7623_PIN_7_SPI1_CSN_FUNC_SPI1_CS>, 1166 + <MT7623_PIN_199_SPI1_CK_FUNC_SPI1_CK>, 1167 + <MT7623_PIN_8_SPI1_MI_FUNC_SPI1_MI>, 1168 + <MT7623_PIN_9_SPI1_MO_FUNC_SPI1_MO>; 1169 + }; 1170 + }; 1171 + 1179 1172 uart0_pins_a: uart0-default { 1180 1173 pins-dat { 1181 1174 pinmux = <MT7623_PIN_79_URXD0_FUNC_URXD0>, ··· 1203 1178 pins-dat { 1204 1179 pinmux = <MT7623_PIN_14_GPIO14_FUNC_URXD2>, 1205 1180 <MT7623_PIN_15_GPIO15_FUNC_UTXD2>; 1181 + }; 1182 + }; 1183 + 1184 + uart2_pins_b: uart2-alt { 1185 + pins-dat { 1186 + pinmux = <MT7623_PIN_200_URXD2_FUNC_URXD2>, 1187 + <MT7623_PIN_201_UTXD2_FUNC_UTXD2>; 1206 1188 }; 1207 1189 }; 1208 1190 };
+291
arch/arm/boot/dts/mt7623a-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 "mt7623a.dtsi" 11 + #include "mt6323.dtsi" 12 + 13 + / { 14 + model = "MediaTek MT7623A with eMMC reference board"; 15 + compatible = "mediatek,mt7623a-rfb-emmc", "mediatek,mt7623"; 16 + 17 + aliases { 18 + serial2 = &uart2; 19 + }; 20 + 21 + chosen { 22 + stdout-path = "serial2:115200n8"; 23 + }; 24 + 25 + cpus { 26 + cpu@0 { 27 + proc-supply = <&mt6323_vproc_reg>; 28 + }; 29 + 30 + cpu@1 { 31 + proc-supply = <&mt6323_vproc_reg>; 32 + }; 33 + 34 + cpu@2 { 35 + proc-supply = <&mt6323_vproc_reg>; 36 + }; 37 + 38 + cpu@3 { 39 + proc-supply = <&mt6323_vproc_reg>; 40 + }; 41 + }; 42 + 43 + gpio-keys { 44 + compatible = "gpio-keys"; 45 + pinctrl-names = "default"; 46 + pinctrl-0 = <&key_pins_a>; 47 + 48 + factory { 49 + label = "factory"; 50 + linux,code = <BTN_0>; 51 + gpios = <&pio 256 GPIO_ACTIVE_LOW>; 52 + }; 53 + 54 + wps { 55 + label = "wps"; 56 + linux,code = <KEY_WPS_BUTTON>; 57 + gpios = <&pio 257 GPIO_ACTIVE_HIGH>; 58 + }; 59 + }; 60 + 61 + memory@80000000 { 62 + device_type = "memory"; 63 + reg = <0 0x80000000 0 0x20000000>; 64 + }; 65 + 66 + reg_1p8v: regulator-1p8v { 67 + compatible = "regulator-fixed"; 68 + regulator-name = "fixed-1.8V"; 69 + regulator-min-microvolt = <1800000>; 70 + regulator-max-microvolt = <1800000>; 71 + regulator-boot-on; 72 + regulator-always-on; 73 + }; 74 + 75 + reg_3p3v: regulator-3p3v { 76 + compatible = "regulator-fixed"; 77 + regulator-name = "fixed-3.3V"; 78 + regulator-min-microvolt = <3300000>; 79 + regulator-max-microvolt = <3300000>; 80 + regulator-boot-on; 81 + regulator-always-on; 82 + }; 83 + 84 + reg_5v: regulator-5v { 85 + compatible = "regulator-fixed"; 86 + regulator-name = "fixed-5V"; 87 + regulator-min-microvolt = <5000000>; 88 + regulator-max-microvolt = <5000000>; 89 + regulator-boot-on; 90 + regulator-always-on; 91 + }; 92 + 93 + sound { 94 + compatible = "mediatek,mt2701-wm8960-machine"; 95 + mediatek,platform = <&afe>; 96 + audio-routing = 97 + "Headphone", "HP_L", 98 + "Headphone", "HP_R", 99 + "LINPUT1", "AMIC", 100 + "RINPUT1", "AMIC"; 101 + mediatek,audio-codec = <&wm8960>; 102 + pinctrl-names = "default"; 103 + pinctrl-0 = <&i2s0_pins_a>; 104 + }; 105 + }; 106 + 107 + &btif { 108 + status = "okay"; 109 + }; 110 + 111 + &crypto { 112 + status = "okay"; 113 + }; 114 + 115 + &eth { 116 + status = "okay"; 117 + 118 + gmac0: mac@0 { 119 + compatible = "mediatek,eth-mac"; 120 + reg = <0>; 121 + phy-mode = "trgmii"; 122 + 123 + fixed-link { 124 + speed = <1000>; 125 + full-duplex; 126 + pause; 127 + }; 128 + }; 129 + 130 + mdio-bus { 131 + #address-cells = <1>; 132 + #size-cells = <0>; 133 + 134 + switch@0 { 135 + compatible = "mediatek,mt7530"; 136 + reg = <0>; 137 + mediatek,mcm; 138 + resets = <&ethsys MT2701_ETHSYS_MCM_RST>; 139 + reset-names = "mcm"; 140 + core-supply = <&mt6323_vpa_reg>; 141 + io-supply = <&mt6323_vemc3v3_reg>; 142 + 143 + ports { 144 + #address-cells = <1>; 145 + #size-cells = <0>; 146 + 147 + port@0 { 148 + reg = <0>; 149 + label = "lan0"; 150 + }; 151 + 152 + port@1 { 153 + reg = <1>; 154 + label = "lan1"; 155 + }; 156 + 157 + port@2 { 158 + reg = <2>; 159 + label = "lan2"; 160 + }; 161 + 162 + port@3 { 163 + reg = <3>; 164 + label = "lan3"; 165 + }; 166 + 167 + port@4 { 168 + reg = <4>; 169 + label = "wan"; 170 + }; 171 + 172 + port@6 { 173 + reg = <6>; 174 + label = "cpu"; 175 + ethernet = <&gmac0>; 176 + phy-mode = "trgmii"; 177 + 178 + fixed-link { 179 + speed = <1000>; 180 + full-duplex; 181 + }; 182 + }; 183 + }; 184 + }; 185 + }; 186 + }; 187 + 188 + &i2c0 { 189 + pinctrl-names = "default"; 190 + pinctrl-0 = <&i2c0_pins_a>; 191 + status = "okay"; 192 + }; 193 + 194 + &i2c1 { 195 + pinctrl-names = "default"; 196 + pinctrl-0 = <&i2c1_pins_b>; 197 + status = "okay"; 198 + 199 + wm8960: wm8960@1a { 200 + compatible = "wlf,wm8960"; 201 + reg = <0x1a>; 202 + }; 203 + }; 204 + 205 + &i2c2 { 206 + pinctrl-names = "default"; 207 + pinctrl-0 = <&i2c2_pins_b>; 208 + status = "okay"; 209 + }; 210 + 211 + &mmc0 { 212 + pinctrl-names = "default", "state_uhs"; 213 + pinctrl-0 = <&mmc0_pins_default>; 214 + pinctrl-1 = <&mmc0_pins_uhs>; 215 + status = "okay"; 216 + bus-width = <8>; 217 + max-frequency = <50000000>; 218 + cap-mmc-highspeed; 219 + vmmc-supply = <&reg_3p3v>; 220 + vqmmc-supply = <&reg_1p8v>; 221 + non-removable; 222 + }; 223 + 224 + &mmc1 { 225 + pinctrl-names = "default", "state_uhs"; 226 + pinctrl-0 = <&mmc1_pins_default>; 227 + pinctrl-1 = <&mmc1_pins_uhs>; 228 + status = "okay"; 229 + bus-width = <4>; 230 + max-frequency = <50000000>; 231 + cap-sd-highspeed; 232 + cd-gpios = <&pio 261 GPIO_ACTIVE_LOW>; 233 + vmmc-supply = <&reg_3p3v>; 234 + vqmmc-supply = <&reg_3p3v>; 235 + }; 236 + 237 + &pcie { 238 + pinctrl-names = "default"; 239 + pinctrl-0 = <&pcie_default>; 240 + status = "okay"; 241 + 242 + pcie@0,0 { 243 + status = "okay"; 244 + }; 245 + 246 + pcie@1,0 { 247 + status = "okay"; 248 + }; 249 + }; 250 + 251 + &pcie0_phy { 252 + status = "okay"; 253 + }; 254 + 255 + &pcie1_phy { 256 + status = "okay"; 257 + }; 258 + 259 + &pwm { 260 + pinctrl-names = "default"; 261 + pinctrl-0 = <&pwm_pins_a>; 262 + status = "okay"; 263 + }; 264 + 265 + &spi0 { 266 + pinctrl-names = "default"; 267 + pinctrl-0 = <&spi0_pins_a>; 268 + status = "okay"; 269 + }; 270 + 271 + &spi1 { 272 + pinctrl-names = "default"; 273 + pinctrl-0 = <&spi1_pins_a>; 274 + status = "okay"; 275 + }; 276 + 277 + &uart2 { 278 + pinctrl-names = "default"; 279 + pinctrl-0 = <&uart2_pins_b>; 280 + status = "okay"; 281 + }; 282 + 283 + &usb1 { 284 + vusb33-supply = <&reg_3p3v>; 285 + vbus-supply = <&reg_5v>; 286 + status = "okay"; 287 + }; 288 + 289 + &u3phy1 { 290 + status = "okay"; 291 + };
+337
arch/arm/boot/dts/mt7623a-rfb-nand.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 "mt7623a.dtsi" 11 + #include "mt6323.dtsi" 12 + 13 + / { 14 + model = "MediaTek MT7623A with NAND reference board"; 15 + compatible = "mediatek,mt7623a-rfb-nand", "mediatek,mt7623"; 16 + 17 + aliases { 18 + serial2 = &uart2; 19 + }; 20 + 21 + chosen { 22 + stdout-path = "serial2:115200n8"; 23 + }; 24 + 25 + cpus { 26 + cpu@0 { 27 + proc-supply = <&mt6323_vproc_reg>; 28 + }; 29 + 30 + cpu@1 { 31 + proc-supply = <&mt6323_vproc_reg>; 32 + }; 33 + 34 + cpu@2 { 35 + proc-supply = <&mt6323_vproc_reg>; 36 + }; 37 + 38 + cpu@3 { 39 + proc-supply = <&mt6323_vproc_reg>; 40 + }; 41 + }; 42 + 43 + gpio-keys { 44 + compatible = "gpio-keys"; 45 + pinctrl-names = "default"; 46 + pinctrl-0 = <&key_pins_a>; 47 + 48 + factory { 49 + label = "factory"; 50 + linux,code = <BTN_0>; 51 + gpios = <&pio 256 GPIO_ACTIVE_LOW>; 52 + }; 53 + 54 + wps { 55 + label = "wps"; 56 + linux,code = <KEY_WPS_BUTTON>; 57 + gpios = <&pio 257 GPIO_ACTIVE_HIGH>; 58 + }; 59 + }; 60 + 61 + memory@80000000 { 62 + device_type = "memory"; 63 + reg = <0 0x80000000 0 0x20000000>; 64 + }; 65 + 66 + reg_1p8v: regulator-1p8v { 67 + compatible = "regulator-fixed"; 68 + regulator-name = "fixed-1.8V"; 69 + regulator-min-microvolt = <1800000>; 70 + regulator-max-microvolt = <1800000>; 71 + regulator-boot-on; 72 + regulator-always-on; 73 + }; 74 + 75 + reg_3p3v: regulator-3p3v { 76 + compatible = "regulator-fixed"; 77 + regulator-name = "fixed-3.3V"; 78 + regulator-min-microvolt = <3300000>; 79 + regulator-max-microvolt = <3300000>; 80 + regulator-boot-on; 81 + regulator-always-on; 82 + }; 83 + 84 + reg_5v: regulator-5v { 85 + compatible = "regulator-fixed"; 86 + regulator-name = "fixed-5V"; 87 + regulator-min-microvolt = <5000000>; 88 + regulator-max-microvolt = <5000000>; 89 + regulator-boot-on; 90 + regulator-always-on; 91 + }; 92 + 93 + sound { 94 + compatible = "mediatek,mt2701-wm8960-machine"; 95 + mediatek,platform = <&afe>; 96 + audio-routing = 97 + "Headphone", "HP_L", 98 + "Headphone", "HP_R", 99 + "LINPUT1", "AMIC", 100 + "RINPUT1", "AMIC"; 101 + mediatek,audio-codec = <&wm8960>; 102 + pinctrl-names = "default"; 103 + pinctrl-0 = <&i2s0_pins_a>; 104 + }; 105 + }; 106 + 107 + &bch { 108 + status = "okay"; 109 + }; 110 + 111 + &btif { 112 + status = "okay"; 113 + }; 114 + 115 + &crypto { 116 + status = "okay"; 117 + }; 118 + 119 + &eth { 120 + status = "okay"; 121 + 122 + gmac0: mac@0 { 123 + compatible = "mediatek,eth-mac"; 124 + reg = <0>; 125 + phy-mode = "trgmii"; 126 + 127 + fixed-link { 128 + speed = <1000>; 129 + full-duplex; 130 + pause; 131 + }; 132 + }; 133 + 134 + mdio-bus { 135 + #address-cells = <1>; 136 + #size-cells = <0>; 137 + 138 + switch@0 { 139 + compatible = "mediatek,mt7530"; 140 + reg = <0>; 141 + mediatek,mcm; 142 + resets = <&ethsys MT2701_ETHSYS_MCM_RST>; 143 + reset-names = "mcm"; 144 + core-supply = <&mt6323_vpa_reg>; 145 + io-supply = <&mt6323_vemc3v3_reg>; 146 + 147 + ports { 148 + #address-cells = <1>; 149 + #size-cells = <0>; 150 + 151 + port@0 { 152 + reg = <0>; 153 + label = "lan0"; 154 + }; 155 + 156 + port@1 { 157 + reg = <1>; 158 + label = "lan1"; 159 + }; 160 + 161 + port@2 { 162 + reg = <2>; 163 + label = "lan2"; 164 + }; 165 + 166 + port@3 { 167 + reg = <3>; 168 + label = "lan3"; 169 + }; 170 + 171 + port@4 { 172 + reg = <4>; 173 + label = "wan"; 174 + }; 175 + 176 + port@6 { 177 + reg = <6>; 178 + label = "cpu"; 179 + ethernet = <&gmac0>; 180 + phy-mode = "trgmii"; 181 + 182 + fixed-link { 183 + speed = <1000>; 184 + full-duplex; 185 + }; 186 + }; 187 + }; 188 + }; 189 + }; 190 + }; 191 + 192 + &i2c0 { 193 + pinctrl-names = "default"; 194 + pinctrl-0 = <&i2c0_pins_a>; 195 + status = "okay"; 196 + }; 197 + 198 + &i2c1 { 199 + pinctrl-names = "default"; 200 + pinctrl-0 = <&i2c1_pins_b>; 201 + status = "okay"; 202 + 203 + wm8960: wm8960@1a { 204 + compatible = "wlf,wm8960"; 205 + reg = <0x1a>; 206 + }; 207 + }; 208 + 209 + &i2c2 { 210 + pinctrl-names = "default"; 211 + pinctrl-0 = <&i2c2_pins_b>; 212 + status = "okay"; 213 + }; 214 + 215 + &mmc1 { 216 + pinctrl-names = "default", "state_uhs"; 217 + pinctrl-0 = <&mmc1_pins_default>; 218 + pinctrl-1 = <&mmc1_pins_uhs>; 219 + status = "okay"; 220 + bus-width = <4>; 221 + max-frequency = <50000000>; 222 + cap-sd-highspeed; 223 + cd-gpios = <&pio 261 GPIO_ACTIVE_LOW>; 224 + vmmc-supply = <&reg_3p3v>; 225 + vqmmc-supply = <&reg_3p3v>; 226 + }; 227 + 228 + &nandc { 229 + pinctrl-names = "default"; 230 + pinctrl-0 = <&nand_pins_default>; 231 + status = "okay"; 232 + 233 + nand@0 { 234 + reg = <0>; 235 + spare_per_sector = <64>; 236 + nand-ecc-mode = "hw"; 237 + nand-ecc-strength = <12>; 238 + nand-ecc-step-size = <1024>; 239 + 240 + partitions { 241 + compatible = "fixed-partitions"; 242 + #address-cells = <1>; 243 + #size-cells = <1>; 244 + 245 + partition@0 { 246 + label = "preloader"; 247 + reg = <0x0 0x40000>; 248 + }; 249 + 250 + partition@40000 { 251 + label = "uboot"; 252 + reg = <0x40000 0x80000>; 253 + }; 254 + 255 + partition@c0000 { 256 + label = "uboot-env"; 257 + reg = <0xC0000 0x40000>; 258 + }; 259 + 260 + partition@140000 { 261 + label = "bootimg"; 262 + reg = <0x140000 0x2000000>; 263 + }; 264 + 265 + partition@2140000 { 266 + label = "recovery"; 267 + reg = <0x2140000 0x2000000>; 268 + }; 269 + 270 + partition@4140000 { 271 + label = "rootfs"; 272 + reg = <0x4140000 0x1000000>; 273 + }; 274 + 275 + partition@5140000 { 276 + label = "usrdata"; 277 + reg = <0x5140000 0x1000000>; 278 + }; 279 + }; 280 + }; 281 + }; 282 + 283 + &pcie { 284 + pinctrl-names = "default"; 285 + pinctrl-0 = <&pcie_default>; 286 + status = "okay"; 287 + 288 + pcie@0,0 { 289 + status = "okay"; 290 + }; 291 + 292 + pcie@1,0 { 293 + status = "okay"; 294 + }; 295 + }; 296 + 297 + &pcie0_phy { 298 + status = "okay"; 299 + }; 300 + 301 + &pcie1_phy { 302 + status = "okay"; 303 + }; 304 + 305 + &pwm { 306 + pinctrl-names = "default"; 307 + pinctrl-0 = <&pwm_pins_a>; 308 + status = "okay"; 309 + }; 310 + 311 + &spi0 { 312 + pinctrl-names = "default"; 313 + pinctrl-0 = <&spi0_pins_a>; 314 + status = "okay"; 315 + }; 316 + 317 + &spi1 { 318 + pinctrl-names = "default"; 319 + pinctrl-0 = <&spi1_pins_a>; 320 + status = "okay"; 321 + }; 322 + 323 + &uart2 { 324 + pinctrl-names = "default"; 325 + pinctrl-0 = <&uart2_pins_b>; 326 + status = "okay"; 327 + }; 328 + 329 + &usb1 { 330 + vusb33-supply = <&reg_3p3v>; 331 + vbus-supply = <&reg_5v>; 332 + status = "okay"; 333 + }; 334 + 335 + &u3phy1 { 336 + status = "okay"; 337 + };