1*a098310bSFrank Wunderlich// SPDX-License-Identifier: (GPL-2.0 OR MIT) 2*a098310bSFrank Wunderlich/* 3*a098310bSFrank Wunderlich * Copyright (C) 2021 MediaTek Inc. 4*a098310bSFrank Wunderlich * Authors: Frank Wunderlich <frank-w@public-files.de> 5*a098310bSFrank Wunderlich * Eric Woudstra <ericwouds@gmail.com> 6*a098310bSFrank Wunderlich * Tianling Shen <cnsztl@immortalwrt.org> 7*a098310bSFrank Wunderlich */ 8*a098310bSFrank Wunderlich 9*a098310bSFrank Wunderlich/dts-v1/; 10*a098310bSFrank Wunderlich 11*a098310bSFrank Wunderlich#include <dt-bindings/gpio/gpio.h> 12*a098310bSFrank Wunderlich#include <dt-bindings/input/input.h> 13*a098310bSFrank Wunderlich#include <dt-bindings/leds/common.h> 14*a098310bSFrank Wunderlich#include <dt-bindings/pinctrl/mt65xx.h> 15*a098310bSFrank Wunderlich 16*a098310bSFrank Wunderlich#include "mt7986a.dtsi" 17*a098310bSFrank Wunderlich 18*a098310bSFrank Wunderlich/ { 19*a098310bSFrank Wunderlich model = "Bananapi BPI-R3 Mini"; 20*a098310bSFrank Wunderlich chassis-type = "embedded"; 21*a098310bSFrank Wunderlich compatible = "bananapi,bpi-r3mini", "mediatek,mt7986a"; 22*a098310bSFrank Wunderlich 23*a098310bSFrank Wunderlich aliases { 24*a098310bSFrank Wunderlich serial0 = &uart0; 25*a098310bSFrank Wunderlich ethernet0 = &gmac0; 26*a098310bSFrank Wunderlich ethernet1 = &gmac1; 27*a098310bSFrank Wunderlich }; 28*a098310bSFrank Wunderlich 29*a098310bSFrank Wunderlich chosen { 30*a098310bSFrank Wunderlich stdout-path = "serial0:115200n8"; 31*a098310bSFrank Wunderlich }; 32*a098310bSFrank Wunderlich 33*a098310bSFrank Wunderlich dcin: regulator-12v { 34*a098310bSFrank Wunderlich compatible = "regulator-fixed"; 35*a098310bSFrank Wunderlich regulator-name = "12vd"; 36*a098310bSFrank Wunderlich regulator-min-microvolt = <12000000>; 37*a098310bSFrank Wunderlich regulator-max-microvolt = <12000000>; 38*a098310bSFrank Wunderlich regulator-boot-on; 39*a098310bSFrank Wunderlich regulator-always-on; 40*a098310bSFrank Wunderlich }; 41*a098310bSFrank Wunderlich 42*a098310bSFrank Wunderlich fan: pwm-fan { 43*a098310bSFrank Wunderlich compatible = "pwm-fan"; 44*a098310bSFrank Wunderlich #cooling-cells = <2>; 45*a098310bSFrank Wunderlich /* 46*a098310bSFrank Wunderlich * The signal is inverted on this board and the PWM driver 47*a098310bSFrank Wunderlich * does not support polarity inversion. 48*a098310bSFrank Wunderlich */ 49*a098310bSFrank Wunderlich /* cooling level (0, 1, 2) */ 50*a098310bSFrank Wunderlich cooling-levels = <255 96 0>; 51*a098310bSFrank Wunderlich pwms = <&pwm 0 10000>; 52*a098310bSFrank Wunderlich }; 53*a098310bSFrank Wunderlich 54*a098310bSFrank Wunderlich reg_1p8v: regulator-1v8 { 55*a098310bSFrank Wunderlich compatible = "regulator-fixed"; 56*a098310bSFrank Wunderlich regulator-name = "1.8vd"; 57*a098310bSFrank Wunderlich regulator-min-microvolt = <1800000>; 58*a098310bSFrank Wunderlich regulator-max-microvolt = <1800000>; 59*a098310bSFrank Wunderlich regulator-boot-on; 60*a098310bSFrank Wunderlich regulator-always-on; 61*a098310bSFrank Wunderlich vin-supply = <&dcin>; 62*a098310bSFrank Wunderlich }; 63*a098310bSFrank Wunderlich 64*a098310bSFrank Wunderlich reg_3p3v: regulator-3v3 { 65*a098310bSFrank Wunderlich compatible = "regulator-fixed"; 66*a098310bSFrank Wunderlich regulator-name = "3.3vd"; 67*a098310bSFrank Wunderlich regulator-min-microvolt = <3300000>; 68*a098310bSFrank Wunderlich regulator-max-microvolt = <3300000>; 69*a098310bSFrank Wunderlich regulator-boot-on; 70*a098310bSFrank Wunderlich regulator-always-on; 71*a098310bSFrank Wunderlich vin-supply = <&dcin>; 72*a098310bSFrank Wunderlich }; 73*a098310bSFrank Wunderlich 74*a098310bSFrank Wunderlich usb_vbus: regulator-5v { 75*a098310bSFrank Wunderlich compatible = "regulator-fixed"; 76*a098310bSFrank Wunderlich regulator-name = "usb_vbus"; 77*a098310bSFrank Wunderlich regulator-min-microvolt = <5000000>; 78*a098310bSFrank Wunderlich regulator-max-microvolt = <5000000>; 79*a098310bSFrank Wunderlich gpios = <&pio 20 GPIO_ACTIVE_LOW>; 80*a098310bSFrank Wunderlich regulator-boot-on; 81*a098310bSFrank Wunderlich }; 82*a098310bSFrank Wunderlich 83*a098310bSFrank Wunderlich en8811_a: regulator-phy1 { 84*a098310bSFrank Wunderlich compatible = "regulator-fixed"; 85*a098310bSFrank Wunderlich regulator-name = "phy1"; 86*a098310bSFrank Wunderlich regulator-min-microvolt = <3300000>; 87*a098310bSFrank Wunderlich regulator-max-microvolt = <3300000>; 88*a098310bSFrank Wunderlich gpio = <&pio 16 GPIO_ACTIVE_LOW>; 89*a098310bSFrank Wunderlich regulator-always-on; 90*a098310bSFrank Wunderlich }; 91*a098310bSFrank Wunderlich 92*a098310bSFrank Wunderlich en8811_b: regulator-phy2 { 93*a098310bSFrank Wunderlich compatible = "regulator-fixed"; 94*a098310bSFrank Wunderlich regulator-name = "phy2"; 95*a098310bSFrank Wunderlich regulator-min-microvolt = <3300000>; 96*a098310bSFrank Wunderlich regulator-max-microvolt = <3300000>; 97*a098310bSFrank Wunderlich gpio = <&pio 17 GPIO_ACTIVE_LOW>; 98*a098310bSFrank Wunderlich regulator-always-on; 99*a098310bSFrank Wunderlich }; 100*a098310bSFrank Wunderlich 101*a098310bSFrank Wunderlich leds { 102*a098310bSFrank Wunderlich compatible = "gpio-leds"; 103*a098310bSFrank Wunderlich 104*a098310bSFrank Wunderlich green_led: led-0 { 105*a098310bSFrank Wunderlich color = <LED_COLOR_ID_GREEN>; 106*a098310bSFrank Wunderlich function = LED_FUNCTION_POWER; 107*a098310bSFrank Wunderlich gpios = <&pio 19 GPIO_ACTIVE_HIGH>; 108*a098310bSFrank Wunderlich default-state = "on"; 109*a098310bSFrank Wunderlich }; 110*a098310bSFrank Wunderlich }; 111*a098310bSFrank Wunderlich 112*a098310bSFrank Wunderlich gpio-keys { 113*a098310bSFrank Wunderlich compatible = "gpio-keys"; 114*a098310bSFrank Wunderlich 115*a098310bSFrank Wunderlich reset-key { 116*a098310bSFrank Wunderlich label = "reset"; 117*a098310bSFrank Wunderlich linux,code = <KEY_RESTART>; 118*a098310bSFrank Wunderlich gpios = <&pio 7 GPIO_ACTIVE_LOW>; 119*a098310bSFrank Wunderlich }; 120*a098310bSFrank Wunderlich }; 121*a098310bSFrank Wunderlich 122*a098310bSFrank Wunderlich}; 123*a098310bSFrank Wunderlich 124*a098310bSFrank Wunderlich&cpu_thermal { 125*a098310bSFrank Wunderlich cooling-maps { 126*a098310bSFrank Wunderlich map0 { 127*a098310bSFrank Wunderlich /* active: set fan to cooling level 2 */ 128*a098310bSFrank Wunderlich cooling-device = <&fan 2 2>; 129*a098310bSFrank Wunderlich trip = <&cpu_trip_active_high>; 130*a098310bSFrank Wunderlich }; 131*a098310bSFrank Wunderlich 132*a098310bSFrank Wunderlich map1 { 133*a098310bSFrank Wunderlich /* active: set fan to cooling level 1 */ 134*a098310bSFrank Wunderlich cooling-device = <&fan 1 1>; 135*a098310bSFrank Wunderlich trip = <&cpu_trip_active_med>; 136*a098310bSFrank Wunderlich }; 137*a098310bSFrank Wunderlich 138*a098310bSFrank Wunderlich map2 { 139*a098310bSFrank Wunderlich /* active: set fan to cooling level 0 */ 140*a098310bSFrank Wunderlich cooling-device = <&fan 0 0>; 141*a098310bSFrank Wunderlich trip = <&cpu_trip_active_low>; 142*a098310bSFrank Wunderlich }; 143*a098310bSFrank Wunderlich }; 144*a098310bSFrank Wunderlich}; 145*a098310bSFrank Wunderlich 146*a098310bSFrank Wunderlich&crypto { 147*a098310bSFrank Wunderlich status = "okay"; 148*a098310bSFrank Wunderlich}; 149*a098310bSFrank Wunderlich 150*a098310bSFrank Wunderlichð { 151*a098310bSFrank Wunderlich status = "okay"; 152*a098310bSFrank Wunderlich 153*a098310bSFrank Wunderlich gmac0: mac@0 { 154*a098310bSFrank Wunderlich compatible = "mediatek,eth-mac"; 155*a098310bSFrank Wunderlich reg = <0>; 156*a098310bSFrank Wunderlich phy-mode = "2500base-x"; 157*a098310bSFrank Wunderlich phy-handle = <&phy0>; 158*a098310bSFrank Wunderlich }; 159*a098310bSFrank Wunderlich 160*a098310bSFrank Wunderlich gmac1: mac@1 { 161*a098310bSFrank Wunderlich compatible = "mediatek,eth-mac"; 162*a098310bSFrank Wunderlich reg = <1>; 163*a098310bSFrank Wunderlich phy-mode = "2500base-x"; 164*a098310bSFrank Wunderlich phy-handle = <&phy1>; 165*a098310bSFrank Wunderlich }; 166*a098310bSFrank Wunderlich 167*a098310bSFrank Wunderlich mdio: mdio-bus { 168*a098310bSFrank Wunderlich #address-cells = <1>; 169*a098310bSFrank Wunderlich #size-cells = <0>; 170*a098310bSFrank Wunderlich }; 171*a098310bSFrank Wunderlich}; 172*a098310bSFrank Wunderlich 173*a098310bSFrank Wunderlich&mmc0 { 174*a098310bSFrank Wunderlich pinctrl-names = "default", "state_uhs"; 175*a098310bSFrank Wunderlich pinctrl-0 = <&mmc0_pins_default>; 176*a098310bSFrank Wunderlich pinctrl-1 = <&mmc0_pins_uhs>; 177*a098310bSFrank Wunderlich vmmc-supply = <®_3p3v>; 178*a098310bSFrank Wunderlich vqmmc-supply = <®_1p8v>; 179*a098310bSFrank Wunderlich}; 180*a098310bSFrank Wunderlich 181*a098310bSFrank Wunderlich 182*a098310bSFrank Wunderlich&i2c0 { 183*a098310bSFrank Wunderlich pinctrl-names = "default"; 184*a098310bSFrank Wunderlich pinctrl-0 = <&i2c_pins>; 185*a098310bSFrank Wunderlich status = "okay"; 186*a098310bSFrank Wunderlich 187*a098310bSFrank Wunderlich /* MAC Address EEPROM */ 188*a098310bSFrank Wunderlich eeprom@50 { 189*a098310bSFrank Wunderlich compatible = "atmel,24c02"; 190*a098310bSFrank Wunderlich reg = <0x50>; 191*a098310bSFrank Wunderlich 192*a098310bSFrank Wunderlich address-width = <8>; 193*a098310bSFrank Wunderlich pagesize = <8>; 194*a098310bSFrank Wunderlich size = <256>; 195*a098310bSFrank Wunderlich }; 196*a098310bSFrank Wunderlich}; 197*a098310bSFrank Wunderlich 198*a098310bSFrank Wunderlich&mdio { 199*a098310bSFrank Wunderlich phy0: ethernet-phy@14 { 200*a098310bSFrank Wunderlich reg = <14>; 201*a098310bSFrank Wunderlich interrupts-extended = <&pio 48 IRQ_TYPE_EDGE_FALLING>; 202*a098310bSFrank Wunderlich reset-gpios = <&pio 49 GPIO_ACTIVE_LOW>; 203*a098310bSFrank Wunderlich reset-assert-us = <10000>; 204*a098310bSFrank Wunderlich reset-deassert-us = <20000>; 205*a098310bSFrank Wunderlich phy-mode = "2500base-x"; 206*a098310bSFrank Wunderlich full-duplex; 207*a098310bSFrank Wunderlich pause; 208*a098310bSFrank Wunderlich airoha,pnswap-rx; 209*a098310bSFrank Wunderlich 210*a098310bSFrank Wunderlich leds { 211*a098310bSFrank Wunderlich #address-cells = <1>; 212*a098310bSFrank Wunderlich #size-cells = <0>; 213*a098310bSFrank Wunderlich 214*a098310bSFrank Wunderlich led@0 { /* en8811_a_gpio5 */ 215*a098310bSFrank Wunderlich reg = <0>; 216*a098310bSFrank Wunderlich color = <LED_COLOR_ID_YELLOW>; 217*a098310bSFrank Wunderlich function = LED_FUNCTION_LAN; 218*a098310bSFrank Wunderlich function-enumerator = <1>; 219*a098310bSFrank Wunderlich default-state = "keep"; 220*a098310bSFrank Wunderlich }; 221*a098310bSFrank Wunderlich led@1 { /* en8811_a_gpio4 */ 222*a098310bSFrank Wunderlich reg = <1>; 223*a098310bSFrank Wunderlich color = <LED_COLOR_ID_GREEN>; 224*a098310bSFrank Wunderlich function = LED_FUNCTION_LAN; 225*a098310bSFrank Wunderlich function-enumerator = <2>; 226*a098310bSFrank Wunderlich default-state = "keep"; 227*a098310bSFrank Wunderlich }; 228*a098310bSFrank Wunderlich }; 229*a098310bSFrank Wunderlich }; 230*a098310bSFrank Wunderlich 231*a098310bSFrank Wunderlich phy1: ethernet-phy@15 { 232*a098310bSFrank Wunderlich reg = <15>; 233*a098310bSFrank Wunderlich interrupts-extended = <&pio 46 IRQ_TYPE_EDGE_FALLING>; 234*a098310bSFrank Wunderlich reset-gpios = <&pio 47 GPIO_ACTIVE_LOW>; 235*a098310bSFrank Wunderlich reset-assert-us = <10000>; 236*a098310bSFrank Wunderlich reset-deassert-us = <20000>; 237*a098310bSFrank Wunderlich phy-mode = "2500base-x"; 238*a098310bSFrank Wunderlich full-duplex; 239*a098310bSFrank Wunderlich pause; 240*a098310bSFrank Wunderlich airoha,pnswap-rx; 241*a098310bSFrank Wunderlich 242*a098310bSFrank Wunderlich leds { 243*a098310bSFrank Wunderlich #address-cells = <1>; 244*a098310bSFrank Wunderlich #size-cells = <0>; 245*a098310bSFrank Wunderlich 246*a098310bSFrank Wunderlich led@0 { /* en8811_b_gpio5 */ 247*a098310bSFrank Wunderlich reg = <0>; 248*a098310bSFrank Wunderlich color = <LED_COLOR_ID_YELLOW>; 249*a098310bSFrank Wunderlich function = LED_FUNCTION_WAN; 250*a098310bSFrank Wunderlich function-enumerator = <1>; 251*a098310bSFrank Wunderlich default-state = "keep"; 252*a098310bSFrank Wunderlich }; 253*a098310bSFrank Wunderlich led@1 { /* en8811_b_gpio4 */ 254*a098310bSFrank Wunderlich reg = <1>; 255*a098310bSFrank Wunderlich color = <LED_COLOR_ID_GREEN>; 256*a098310bSFrank Wunderlich function = LED_FUNCTION_WAN; 257*a098310bSFrank Wunderlich function-enumerator = <2>; 258*a098310bSFrank Wunderlich default-state = "keep"; 259*a098310bSFrank Wunderlich }; 260*a098310bSFrank Wunderlich }; 261*a098310bSFrank Wunderlich }; 262*a098310bSFrank Wunderlich}; 263*a098310bSFrank Wunderlich 264*a098310bSFrank Wunderlich&pcie { 265*a098310bSFrank Wunderlich pinctrl-names = "default"; 266*a098310bSFrank Wunderlich pinctrl-0 = <&pcie_pins>; 267*a098310bSFrank Wunderlich status = "okay"; 268*a098310bSFrank Wunderlich}; 269*a098310bSFrank Wunderlich 270*a098310bSFrank Wunderlich&pcie_phy { 271*a098310bSFrank Wunderlich status = "okay"; 272*a098310bSFrank Wunderlich}; 273*a098310bSFrank Wunderlich 274*a098310bSFrank Wunderlich&pio { 275*a098310bSFrank Wunderlich i2c_pins: i2c-pins { 276*a098310bSFrank Wunderlich mux { 277*a098310bSFrank Wunderlich function = "i2c"; 278*a098310bSFrank Wunderlich groups = "i2c"; 279*a098310bSFrank Wunderlich }; 280*a098310bSFrank Wunderlich }; 281*a098310bSFrank Wunderlich 282*a098310bSFrank Wunderlich mmc0_pins_default: mmc0-pins { 283*a098310bSFrank Wunderlich mux { 284*a098310bSFrank Wunderlich function = "emmc"; 285*a098310bSFrank Wunderlich groups = "emmc_51"; 286*a098310bSFrank Wunderlich }; 287*a098310bSFrank Wunderlich conf-cmd-dat { 288*a098310bSFrank Wunderlich pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2", 289*a098310bSFrank Wunderlich "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5", 290*a098310bSFrank Wunderlich "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD"; 291*a098310bSFrank Wunderlich input-enable; 292*a098310bSFrank Wunderlich drive-strength = <4>; 293*a098310bSFrank Wunderlich bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */ 294*a098310bSFrank Wunderlich }; 295*a098310bSFrank Wunderlich conf-clk { 296*a098310bSFrank Wunderlich pins = "EMMC_CK"; 297*a098310bSFrank Wunderlich drive-strength = <6>; 298*a098310bSFrank Wunderlich bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */ 299*a098310bSFrank Wunderlich }; 300*a098310bSFrank Wunderlich conf-ds { 301*a098310bSFrank Wunderlich pins = "EMMC_DSL"; 302*a098310bSFrank Wunderlich bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */ 303*a098310bSFrank Wunderlich }; 304*a098310bSFrank Wunderlich conf-rst { 305*a098310bSFrank Wunderlich pins = "EMMC_RSTB"; 306*a098310bSFrank Wunderlich drive-strength = <4>; 307*a098310bSFrank Wunderlich bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */ 308*a098310bSFrank Wunderlich }; 309*a098310bSFrank Wunderlich }; 310*a098310bSFrank Wunderlich 311*a098310bSFrank Wunderlich mmc0_pins_uhs: mmc0-uhs-pins { 312*a098310bSFrank Wunderlich mux { 313*a098310bSFrank Wunderlich function = "emmc"; 314*a098310bSFrank Wunderlich groups = "emmc_51"; 315*a098310bSFrank Wunderlich }; 316*a098310bSFrank Wunderlich conf-cmd-dat { 317*a098310bSFrank Wunderlich pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2", 318*a098310bSFrank Wunderlich "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5", 319*a098310bSFrank Wunderlich "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD"; 320*a098310bSFrank Wunderlich input-enable; 321*a098310bSFrank Wunderlich drive-strength = <4>; 322*a098310bSFrank Wunderlich bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */ 323*a098310bSFrank Wunderlich }; 324*a098310bSFrank Wunderlich conf-clk { 325*a098310bSFrank Wunderlich pins = "EMMC_CK"; 326*a098310bSFrank Wunderlich drive-strength = <6>; 327*a098310bSFrank Wunderlich bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */ 328*a098310bSFrank Wunderlich }; 329*a098310bSFrank Wunderlich conf-ds { 330*a098310bSFrank Wunderlich pins = "EMMC_DSL"; 331*a098310bSFrank Wunderlich bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */ 332*a098310bSFrank Wunderlich }; 333*a098310bSFrank Wunderlich conf-rst { 334*a098310bSFrank Wunderlich pins = "EMMC_RSTB"; 335*a098310bSFrank Wunderlich drive-strength = <4>; 336*a098310bSFrank Wunderlich bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */ 337*a098310bSFrank Wunderlich }; 338*a098310bSFrank Wunderlich }; 339*a098310bSFrank Wunderlich 340*a098310bSFrank Wunderlich pcie_pins: pcie-pins { 341*a098310bSFrank Wunderlich mux { 342*a098310bSFrank Wunderlich function = "pcie"; 343*a098310bSFrank Wunderlich groups = "pcie_clk", "pcie_wake", "pcie_pereset"; 344*a098310bSFrank Wunderlich }; 345*a098310bSFrank Wunderlich }; 346*a098310bSFrank Wunderlich 347*a098310bSFrank Wunderlich pwm_pins: pwm-pins { 348*a098310bSFrank Wunderlich mux { 349*a098310bSFrank Wunderlich function = "pwm"; 350*a098310bSFrank Wunderlich groups = "pwm0"; 351*a098310bSFrank Wunderlich }; 352*a098310bSFrank Wunderlich }; 353*a098310bSFrank Wunderlich 354*a098310bSFrank Wunderlich spi_flash_pins: spi-flash-pins { 355*a098310bSFrank Wunderlich mux { 356*a098310bSFrank Wunderlich function = "spi"; 357*a098310bSFrank Wunderlich groups = "spi0", "spi0_wp_hold"; 358*a098310bSFrank Wunderlich }; 359*a098310bSFrank Wunderlich }; 360*a098310bSFrank Wunderlich 361*a098310bSFrank Wunderlich usb_ngff_pins: usb-ngff-pins { 362*a098310bSFrank Wunderlich ngff-gnss-off-conf { 363*a098310bSFrank Wunderlich pins = "GPIO_6"; 364*a098310bSFrank Wunderlich drive-strength = <8>; 365*a098310bSFrank Wunderlich mediatek,pull-up-adv = <1>; 366*a098310bSFrank Wunderlich }; 367*a098310bSFrank Wunderlich ngff-pe-rst-conf { 368*a098310bSFrank Wunderlich pins = "GPIO_7"; 369*a098310bSFrank Wunderlich drive-strength = <8>; 370*a098310bSFrank Wunderlich mediatek,pull-up-adv = <1>; 371*a098310bSFrank Wunderlich }; 372*a098310bSFrank Wunderlich ngff-wwan-off-conf { 373*a098310bSFrank Wunderlich pins = "GPIO_8"; 374*a098310bSFrank Wunderlich drive-strength = <8>; 375*a098310bSFrank Wunderlich mediatek,pull-up-adv = <1>; 376*a098310bSFrank Wunderlich }; 377*a098310bSFrank Wunderlich ngff-pwr-off-conf { 378*a098310bSFrank Wunderlich pins = "GPIO_9"; 379*a098310bSFrank Wunderlich drive-strength = <8>; 380*a098310bSFrank Wunderlich mediatek,pull-up-adv = <1>; 381*a098310bSFrank Wunderlich }; 382*a098310bSFrank Wunderlich ngff-rst-conf { 383*a098310bSFrank Wunderlich pins = "GPIO_10"; 384*a098310bSFrank Wunderlich drive-strength = <8>; 385*a098310bSFrank Wunderlich mediatek,pull-up-adv = <1>; 386*a098310bSFrank Wunderlich }; 387*a098310bSFrank Wunderlich ngff-coex-conf { 388*a098310bSFrank Wunderlich pins = "SPI1_CS"; 389*a098310bSFrank Wunderlich drive-strength = <8>; 390*a098310bSFrank Wunderlich mediatek,pull-up-adv = <1>; 391*a098310bSFrank Wunderlich }; 392*a098310bSFrank Wunderlich }; 393*a098310bSFrank Wunderlich 394*a098310bSFrank Wunderlich wf_2g_5g_pins: wf-2g-5g-pins { 395*a098310bSFrank Wunderlich mux { 396*a098310bSFrank Wunderlich function = "wifi"; 397*a098310bSFrank Wunderlich groups = "wf_2g", "wf_5g"; 398*a098310bSFrank Wunderlich }; 399*a098310bSFrank Wunderlich conf { 400*a098310bSFrank Wunderlich pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4", 401*a098310bSFrank Wunderlich "WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6", 402*a098310bSFrank Wunderlich "WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10", 403*a098310bSFrank Wunderlich "WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1", 404*a098310bSFrank Wunderlich "WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0", 405*a098310bSFrank Wunderlich "WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8", 406*a098310bSFrank Wunderlich "WF1_TOP_CLK", "WF1_TOP_DATA"; 407*a098310bSFrank Wunderlich drive-strength = <4>; 408*a098310bSFrank Wunderlich }; 409*a098310bSFrank Wunderlich }; 410*a098310bSFrank Wunderlich 411*a098310bSFrank Wunderlich wf_dbdc_pins: wf-dbdc-pins { 412*a098310bSFrank Wunderlich mux { 413*a098310bSFrank Wunderlich function = "wifi"; 414*a098310bSFrank Wunderlich groups = "wf_dbdc"; 415*a098310bSFrank Wunderlich }; 416*a098310bSFrank Wunderlich conf { 417*a098310bSFrank Wunderlich pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4", 418*a098310bSFrank Wunderlich "WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6", 419*a098310bSFrank Wunderlich "WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10", 420*a098310bSFrank Wunderlich "WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1", 421*a098310bSFrank Wunderlich "WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0", 422*a098310bSFrank Wunderlich "WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8", 423*a098310bSFrank Wunderlich "WF1_TOP_CLK", "WF1_TOP_DATA"; 424*a098310bSFrank Wunderlich drive-strength = <4>; 425*a098310bSFrank Wunderlich }; 426*a098310bSFrank Wunderlich }; 427*a098310bSFrank Wunderlich 428*a098310bSFrank Wunderlich wf_led_pins: wf-led-pins { 429*a098310bSFrank Wunderlich mux { 430*a098310bSFrank Wunderlich function = "led"; 431*a098310bSFrank Wunderlich groups = "wifi_led"; 432*a098310bSFrank Wunderlich }; 433*a098310bSFrank Wunderlich }; 434*a098310bSFrank Wunderlich}; 435*a098310bSFrank Wunderlich 436*a098310bSFrank Wunderlich&pwm { 437*a098310bSFrank Wunderlich pinctrl-names = "default"; 438*a098310bSFrank Wunderlich pinctrl-0 = <&pwm_pins>; 439*a098310bSFrank Wunderlich status = "okay"; 440*a098310bSFrank Wunderlich}; 441*a098310bSFrank Wunderlich 442*a098310bSFrank Wunderlich&spi0 { 443*a098310bSFrank Wunderlich pinctrl-names = "default"; 444*a098310bSFrank Wunderlich pinctrl-0 = <&spi_flash_pins>; 445*a098310bSFrank Wunderlich status = "okay"; 446*a098310bSFrank Wunderlich 447*a098310bSFrank Wunderlich flash@0 { 448*a098310bSFrank Wunderlich compatible = "spi-nand"; 449*a098310bSFrank Wunderlich #address-cells = <1>; 450*a098310bSFrank Wunderlich #size-cells = <1>; 451*a098310bSFrank Wunderlich reg = <0>; 452*a098310bSFrank Wunderlich 453*a098310bSFrank Wunderlich spi-max-frequency = <20000000>; 454*a098310bSFrank Wunderlich spi-tx-bus-width = <4>; 455*a098310bSFrank Wunderlich spi-rx-bus-width = <4>; 456*a098310bSFrank Wunderlich }; 457*a098310bSFrank Wunderlich}; 458*a098310bSFrank Wunderlich 459*a098310bSFrank Wunderlich&ssusb { 460*a098310bSFrank Wunderlich pinctrl-names = "default"; 461*a098310bSFrank Wunderlich pinctrl-0 = <&usb_ngff_pins>; 462*a098310bSFrank Wunderlich vusb33-supply = <®_3p3v>; 463*a098310bSFrank Wunderlich vbus-supply = <&usb_vbus>; 464*a098310bSFrank Wunderlich status = "okay"; 465*a098310bSFrank Wunderlich}; 466*a098310bSFrank Wunderlich 467*a098310bSFrank Wunderlich&trng { 468*a098310bSFrank Wunderlich status = "okay"; 469*a098310bSFrank Wunderlich}; 470*a098310bSFrank Wunderlich 471*a098310bSFrank Wunderlich&uart0 { 472*a098310bSFrank Wunderlich status = "okay"; 473*a098310bSFrank Wunderlich}; 474*a098310bSFrank Wunderlich 475*a098310bSFrank Wunderlich&usb_phy { 476*a098310bSFrank Wunderlich status = "okay"; 477*a098310bSFrank Wunderlich}; 478*a098310bSFrank Wunderlich 479*a098310bSFrank Wunderlich&watchdog { 480*a098310bSFrank Wunderlich status = "okay"; 481*a098310bSFrank Wunderlich}; 482*a098310bSFrank Wunderlich 483*a098310bSFrank Wunderlich&wifi { 484*a098310bSFrank Wunderlich status = "okay"; 485*a098310bSFrank Wunderlich pinctrl-names = "default", "dbdc"; 486*a098310bSFrank Wunderlich pinctrl-0 = <&wf_2g_5g_pins>, <&wf_led_pins>; 487*a098310bSFrank Wunderlich pinctrl-1 = <&wf_dbdc_pins>, <&wf_led_pins>; 488*a098310bSFrank Wunderlich 489*a098310bSFrank Wunderlich led { 490*a098310bSFrank Wunderlich led-active-low; 491*a098310bSFrank Wunderlich }; 492*a098310bSFrank Wunderlich}; 493*a098310bSFrank Wunderlich 494