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