1*f397471aSFrank Wunderlich// SPDX-License-Identifier: (GPL-2.0 OR MIT) 2*f397471aSFrank Wunderlich/* 3*f397471aSFrank Wunderlich * Copyright (C) 2025 MediaTek Inc. 4*f397471aSFrank Wunderlich * Author: Sam.Shih <sam.shih@mediatek.com> 5*f397471aSFrank Wunderlich * Author: Frank Wunderlich <frank-w@public-files.de> 6*f397471aSFrank Wunderlich */ 7*f397471aSFrank Wunderlich 8*f397471aSFrank Wunderlich/dts-v1/; 9*f397471aSFrank Wunderlich 10*f397471aSFrank Wunderlich#include "mt7988a.dtsi" 11*f397471aSFrank Wunderlich#include <dt-bindings/gpio/gpio.h> 12*f397471aSFrank Wunderlich#include <dt-bindings/input/input.h> 13*f397471aSFrank Wunderlich#include <dt-bindings/leds/common.h> 14*f397471aSFrank Wunderlich#include <dt-bindings/regulator/richtek,rt5190a-regulator.h> 15*f397471aSFrank Wunderlich 16*f397471aSFrank Wunderlich/ { 17*f397471aSFrank Wunderlich aliases { 18*f397471aSFrank Wunderlich ethernet0 = &gmac0; 19*f397471aSFrank Wunderlich i2c0 = &i2c0; 20*f397471aSFrank Wunderlich i2c1 = &i2c1; 21*f397471aSFrank Wunderlich i2c2 = &i2c2; 22*f397471aSFrank Wunderlich /* PCA9548 (0-0070) provides 4 i2c channels */ 23*f397471aSFrank Wunderlich i2c3 = &imux0; 24*f397471aSFrank Wunderlich i2c4 = &imux1_sfp1; 25*f397471aSFrank Wunderlich i2c5 = &imux2_sfp2; 26*f397471aSFrank Wunderlich i2c6 = &imux3_wifi; 27*f397471aSFrank Wunderlich }; 28*f397471aSFrank Wunderlich 29*f397471aSFrank Wunderlich chosen { 30*f397471aSFrank Wunderlich stdout-path = &serial0; 31*f397471aSFrank Wunderlich }; 32*f397471aSFrank Wunderlich 33*f397471aSFrank Wunderlich fan: pwm-fan { 34*f397471aSFrank Wunderlich compatible = "pwm-fan"; 35*f397471aSFrank Wunderlich /* cooling level (0, 1, 2, 3) : (0% duty, 30% duty, 50% duty, 100% duty) */ 36*f397471aSFrank Wunderlich cooling-levels = <0 80 128 255>; 37*f397471aSFrank Wunderlich pinctrl-0 = <&pwm0_pins>; 38*f397471aSFrank Wunderlich pinctrl-names = "default"; 39*f397471aSFrank Wunderlich pwms = <&pwm 0 50000>; 40*f397471aSFrank Wunderlich #cooling-cells = <2>; 41*f397471aSFrank Wunderlich }; 42*f397471aSFrank Wunderlich 43*f397471aSFrank Wunderlich gpio-keys { 44*f397471aSFrank Wunderlich compatible = "gpio-keys"; 45*f397471aSFrank Wunderlich 46*f397471aSFrank Wunderlich button-reset { 47*f397471aSFrank Wunderlich label = "reset"; 48*f397471aSFrank Wunderlich gpios = <&pio 13 GPIO_ACTIVE_LOW>; 49*f397471aSFrank Wunderlich linux,code = <KEY_RESTART>; 50*f397471aSFrank Wunderlich }; 51*f397471aSFrank Wunderlich 52*f397471aSFrank Wunderlich button-wps { 53*f397471aSFrank Wunderlich label = "WPS"; 54*f397471aSFrank Wunderlich gpios = <&pio 14 GPIO_ACTIVE_LOW>; 55*f397471aSFrank Wunderlich linux,code = <KEY_WPS_BUTTON>; 56*f397471aSFrank Wunderlich }; 57*f397471aSFrank Wunderlich }; 58*f397471aSFrank Wunderlich 59*f397471aSFrank Wunderlich gpio-leds { 60*f397471aSFrank Wunderlich compatible = "gpio-leds"; 61*f397471aSFrank Wunderlich 62*f397471aSFrank Wunderlich led_red: sys-led-red { 63*f397471aSFrank Wunderlich color = <LED_COLOR_ID_RED>; 64*f397471aSFrank Wunderlich gpios = <&pca9555 15 GPIO_ACTIVE_HIGH>; 65*f397471aSFrank Wunderlich default-state = "on"; 66*f397471aSFrank Wunderlich }; 67*f397471aSFrank Wunderlich 68*f397471aSFrank Wunderlich led_blue: sys-led-blue { 69*f397471aSFrank Wunderlich color = <LED_COLOR_ID_BLUE>; 70*f397471aSFrank Wunderlich gpios = <&pca9555 14 GPIO_ACTIVE_HIGH>; 71*f397471aSFrank Wunderlich default-state = "on"; 72*f397471aSFrank Wunderlich }; 73*f397471aSFrank Wunderlich }; 74*f397471aSFrank Wunderlich 75*f397471aSFrank Wunderlich reg_1p8v: regulator-dvdd1v8 { 76*f397471aSFrank Wunderlich compatible = "regulator-fixed"; 77*f397471aSFrank Wunderlich regulator-name = "DVDD1V8_SOC"; 78*f397471aSFrank Wunderlich regulator-min-microvolt = <1800000>; 79*f397471aSFrank Wunderlich regulator-max-microvolt = <1800000>; 80*f397471aSFrank Wunderlich regulator-boot-on; 81*f397471aSFrank Wunderlich regulator-always-on; 82*f397471aSFrank Wunderlich }; 83*f397471aSFrank Wunderlich 84*f397471aSFrank Wunderlich reg_3p3v: regulator-3v3vd { 85*f397471aSFrank Wunderlich compatible = "regulator-fixed"; 86*f397471aSFrank Wunderlich regulator-name = "3V3VD"; 87*f397471aSFrank Wunderlich regulator-min-microvolt = <3300000>; 88*f397471aSFrank Wunderlich regulator-max-microvolt = <3300000>; 89*f397471aSFrank Wunderlich regulator-boot-on; 90*f397471aSFrank Wunderlich regulator-always-on; 91*f397471aSFrank Wunderlich }; 92*f397471aSFrank Wunderlich 93*f397471aSFrank Wunderlich /* SFP1 cage (LAN) */ 94*f397471aSFrank Wunderlich sfp1: sfp1 { 95*f397471aSFrank Wunderlich compatible = "sff,sfp"; 96*f397471aSFrank Wunderlich i2c-bus = <&imux1_sfp1>; 97*f397471aSFrank Wunderlich los-gpios = <&pio 70 GPIO_ACTIVE_HIGH>; 98*f397471aSFrank Wunderlich mod-def0-gpios = <&pio 69 GPIO_ACTIVE_LOW>; 99*f397471aSFrank Wunderlich tx-disable-gpios = <&pio 21 GPIO_ACTIVE_HIGH>; 100*f397471aSFrank Wunderlich maximum-power-milliwatt = <3000>; 101*f397471aSFrank Wunderlich }; 102*f397471aSFrank Wunderlich 103*f397471aSFrank Wunderlich /* SFP2 cage (WAN) */ 104*f397471aSFrank Wunderlich sfp2: sfp2 { 105*f397471aSFrank Wunderlich compatible = "sff,sfp"; 106*f397471aSFrank Wunderlich i2c-bus = <&imux2_sfp2>; 107*f397471aSFrank Wunderlich los-gpios = <&pio 2 GPIO_ACTIVE_HIGH>; 108*f397471aSFrank Wunderlich mod-def0-gpios = <&pio 1 GPIO_ACTIVE_LOW>; 109*f397471aSFrank Wunderlich tx-disable-gpios = <&pio 0 GPIO_ACTIVE_HIGH>; 110*f397471aSFrank Wunderlich maximum-power-milliwatt = <3000>; 111*f397471aSFrank Wunderlich }; 112*f397471aSFrank Wunderlich}; 113*f397471aSFrank Wunderlich 114*f397471aSFrank Wunderlich&cci { 115*f397471aSFrank Wunderlich proc-supply = <&rt5190_buck3>; 116*f397471aSFrank Wunderlich}; 117*f397471aSFrank Wunderlich 118*f397471aSFrank Wunderlich&cpu0 { 119*f397471aSFrank Wunderlich proc-supply = <&rt5190_buck3>; 120*f397471aSFrank Wunderlich}; 121*f397471aSFrank Wunderlich 122*f397471aSFrank Wunderlich&cpu1 { 123*f397471aSFrank Wunderlich proc-supply = <&rt5190_buck3>; 124*f397471aSFrank Wunderlich}; 125*f397471aSFrank Wunderlich 126*f397471aSFrank Wunderlich&cpu2 { 127*f397471aSFrank Wunderlich proc-supply = <&rt5190_buck3>; 128*f397471aSFrank Wunderlich}; 129*f397471aSFrank Wunderlich 130*f397471aSFrank Wunderlich&cpu3 { 131*f397471aSFrank Wunderlich proc-supply = <&rt5190_buck3>; 132*f397471aSFrank Wunderlich}; 133*f397471aSFrank Wunderlich 134*f397471aSFrank Wunderlich&cpu_thermal { 135*f397471aSFrank Wunderlich trips { 136*f397471aSFrank Wunderlich cpu_trip_hot: hot { 137*f397471aSFrank Wunderlich temperature = <120000>; 138*f397471aSFrank Wunderlich hysteresis = <2000>; 139*f397471aSFrank Wunderlich type = "hot"; 140*f397471aSFrank Wunderlich }; 141*f397471aSFrank Wunderlich 142*f397471aSFrank Wunderlich cpu_trip_active_high: active-high { 143*f397471aSFrank Wunderlich temperature = <115000>; 144*f397471aSFrank Wunderlich hysteresis = <2000>; 145*f397471aSFrank Wunderlich type = "active"; 146*f397471aSFrank Wunderlich }; 147*f397471aSFrank Wunderlich 148*f397471aSFrank Wunderlich cpu_trip_active_med: active-med { 149*f397471aSFrank Wunderlich temperature = <85000>; 150*f397471aSFrank Wunderlich hysteresis = <2000>; 151*f397471aSFrank Wunderlich type = "active"; 152*f397471aSFrank Wunderlich }; 153*f397471aSFrank Wunderlich 154*f397471aSFrank Wunderlich cpu_trip_active_low: active-low { 155*f397471aSFrank Wunderlich temperature = <40000>; 156*f397471aSFrank Wunderlich hysteresis = <2000>; 157*f397471aSFrank Wunderlich type = "active"; 158*f397471aSFrank Wunderlich }; 159*f397471aSFrank Wunderlich }; 160*f397471aSFrank Wunderlich 161*f397471aSFrank Wunderlich cooling-maps { 162*f397471aSFrank Wunderlich map-cpu-active-high { 163*f397471aSFrank Wunderlich /* active: set fan to cooling level 2 */ 164*f397471aSFrank Wunderlich cooling-device = <&fan 3 3>; 165*f397471aSFrank Wunderlich trip = <&cpu_trip_active_high>; 166*f397471aSFrank Wunderlich }; 167*f397471aSFrank Wunderlich 168*f397471aSFrank Wunderlich map-cpu-active-med { 169*f397471aSFrank Wunderlich /* active: set fan to cooling level 1 */ 170*f397471aSFrank Wunderlich cooling-device = <&fan 2 2>; 171*f397471aSFrank Wunderlich trip = <&cpu_trip_active_med>; 172*f397471aSFrank Wunderlich }; 173*f397471aSFrank Wunderlich 174*f397471aSFrank Wunderlich map-cpu-active-low { 175*f397471aSFrank Wunderlich /* active: set fan to cooling level 0 */ 176*f397471aSFrank Wunderlich cooling-device = <&fan 1 1>; 177*f397471aSFrank Wunderlich trip = <&cpu_trip_active_low>; 178*f397471aSFrank Wunderlich }; 179*f397471aSFrank Wunderlich }; 180*f397471aSFrank Wunderlich}; 181*f397471aSFrank Wunderlich 182*f397471aSFrank Wunderlichð { 183*f397471aSFrank Wunderlich pinctrl-0 = <&mdio0_pins>; 184*f397471aSFrank Wunderlich pinctrl-names = "default"; 185*f397471aSFrank Wunderlich status = "okay"; 186*f397471aSFrank Wunderlich}; 187*f397471aSFrank Wunderlich 188*f397471aSFrank Wunderlich&fan { 189*f397471aSFrank Wunderlich pinctrl-0 = <&pwm0_pins>; 190*f397471aSFrank Wunderlich pinctrl-names = "default"; 191*f397471aSFrank Wunderlich pwms = <&pwm 0 50000>; 192*f397471aSFrank Wunderlich status = "okay"; 193*f397471aSFrank Wunderlich}; 194*f397471aSFrank Wunderlich 195*f397471aSFrank Wunderlich&gmac0 { 196*f397471aSFrank Wunderlich status = "okay"; 197*f397471aSFrank Wunderlich}; 198*f397471aSFrank Wunderlich 199*f397471aSFrank Wunderlich&gsw_phy0 { 200*f397471aSFrank Wunderlich pinctrl-0 = <&gbe0_led0_pins>; 201*f397471aSFrank Wunderlich pinctrl-names = "gbe-led"; 202*f397471aSFrank Wunderlich}; 203*f397471aSFrank Wunderlich 204*f397471aSFrank Wunderlich&gsw_phy0_led0 { 205*f397471aSFrank Wunderlich color = <LED_COLOR_ID_YELLOW>; 206*f397471aSFrank Wunderlich status = "okay"; 207*f397471aSFrank Wunderlich}; 208*f397471aSFrank Wunderlich 209*f397471aSFrank Wunderlich&gsw_port0 { 210*f397471aSFrank Wunderlich label = "mgmt"; 211*f397471aSFrank Wunderlich}; 212*f397471aSFrank Wunderlich 213*f397471aSFrank Wunderlich/* R4Pro has only port 0 connected, so disable the others */ 214*f397471aSFrank Wunderlich&gsw_phy1 { 215*f397471aSFrank Wunderlich status = "disabled"; 216*f397471aSFrank Wunderlich}; 217*f397471aSFrank Wunderlich 218*f397471aSFrank Wunderlich&gsw_port1 { 219*f397471aSFrank Wunderlich status = "disabled"; 220*f397471aSFrank Wunderlich}; 221*f397471aSFrank Wunderlich 222*f397471aSFrank Wunderlich&gsw_phy2 { 223*f397471aSFrank Wunderlich status = "disabled"; 224*f397471aSFrank Wunderlich}; 225*f397471aSFrank Wunderlich 226*f397471aSFrank Wunderlich&gsw_port2 { 227*f397471aSFrank Wunderlich status = "disabled"; 228*f397471aSFrank Wunderlich}; 229*f397471aSFrank Wunderlich 230*f397471aSFrank Wunderlich&gsw_phy3 { 231*f397471aSFrank Wunderlich status = "disabled"; 232*f397471aSFrank Wunderlich}; 233*f397471aSFrank Wunderlich 234*f397471aSFrank Wunderlich&gsw_port3 { 235*f397471aSFrank Wunderlich status = "disabled"; 236*f397471aSFrank Wunderlich}; 237*f397471aSFrank Wunderlich 238*f397471aSFrank Wunderlich&i2c0 { 239*f397471aSFrank Wunderlich pinctrl-0 = <&i2c0_pins>; 240*f397471aSFrank Wunderlich pinctrl-names = "default"; 241*f397471aSFrank Wunderlich status = "okay"; 242*f397471aSFrank Wunderlich 243*f397471aSFrank Wunderlich rt5190a_64: rt5190a@64 { 244*f397471aSFrank Wunderlich compatible = "richtek,rt5190a"; 245*f397471aSFrank Wunderlich reg = <0x64>; 246*f397471aSFrank Wunderlich vin2-supply = <&rt5190_buck1>; 247*f397471aSFrank Wunderlich vin3-supply = <&rt5190_buck1>; 248*f397471aSFrank Wunderlich vin4-supply = <&rt5190_buck1>; 249*f397471aSFrank Wunderlich 250*f397471aSFrank Wunderlich regulators { 251*f397471aSFrank Wunderlich rt5190_buck1: buck1 { 252*f397471aSFrank Wunderlich regulator-name = "rt5190a-buck1"; 253*f397471aSFrank Wunderlich regulator-min-microvolt = <5090000>; 254*f397471aSFrank Wunderlich regulator-max-microvolt = <5090000>; 255*f397471aSFrank Wunderlich regulator-allowed-modes = 256*f397471aSFrank Wunderlich <RT5190A_OPMODE_AUTO RT5190A_OPMODE_FPWM>; 257*f397471aSFrank Wunderlich regulator-boot-on; 258*f397471aSFrank Wunderlich regulator-always-on; 259*f397471aSFrank Wunderlich }; 260*f397471aSFrank Wunderlich 261*f397471aSFrank Wunderlich buck2 { 262*f397471aSFrank Wunderlich regulator-name = "vcore"; 263*f397471aSFrank Wunderlich regulator-min-microvolt = <600000>; 264*f397471aSFrank Wunderlich regulator-max-microvolt = <1400000>; 265*f397471aSFrank Wunderlich regulator-boot-on; 266*f397471aSFrank Wunderlich regulator-always-on; 267*f397471aSFrank Wunderlich }; 268*f397471aSFrank Wunderlich 269*f397471aSFrank Wunderlich rt5190_buck3: buck3 { 270*f397471aSFrank Wunderlich regulator-name = "vproc"; 271*f397471aSFrank Wunderlich regulator-min-microvolt = <600000>; 272*f397471aSFrank Wunderlich regulator-max-microvolt = <1400000>; 273*f397471aSFrank Wunderlich regulator-boot-on; 274*f397471aSFrank Wunderlich regulator-always-on; 275*f397471aSFrank Wunderlich }; 276*f397471aSFrank Wunderlich 277*f397471aSFrank Wunderlich buck4 { 278*f397471aSFrank Wunderlich regulator-name = "rt5190a-buck4"; 279*f397471aSFrank Wunderlich regulator-min-microvolt = <1800000>; 280*f397471aSFrank Wunderlich regulator-max-microvolt = <1800000>; 281*f397471aSFrank Wunderlich regulator-allowed-modes = 282*f397471aSFrank Wunderlich <RT5190A_OPMODE_AUTO RT5190A_OPMODE_FPWM>; 283*f397471aSFrank Wunderlich regulator-boot-on; 284*f397471aSFrank Wunderlich regulator-always-on; 285*f397471aSFrank Wunderlich }; 286*f397471aSFrank Wunderlich 287*f397471aSFrank Wunderlich ldo { 288*f397471aSFrank Wunderlich regulator-name = "rt5190a-ldo"; 289*f397471aSFrank Wunderlich regulator-min-microvolt = <1800000>; 290*f397471aSFrank Wunderlich regulator-max-microvolt = <1800000>; 291*f397471aSFrank Wunderlich regulator-boot-on; 292*f397471aSFrank Wunderlich regulator-always-on; 293*f397471aSFrank Wunderlich }; 294*f397471aSFrank Wunderlich }; 295*f397471aSFrank Wunderlich }; 296*f397471aSFrank Wunderlich}; 297*f397471aSFrank Wunderlich 298*f397471aSFrank Wunderlich&i2c1 { 299*f397471aSFrank Wunderlich pinctrl-0 = <&i2c1_pins>; 300*f397471aSFrank Wunderlich pinctrl-names = "default"; 301*f397471aSFrank Wunderlich status = "okay"; 302*f397471aSFrank Wunderlich}; 303*f397471aSFrank Wunderlich 304*f397471aSFrank Wunderlich&i2c2 { 305*f397471aSFrank Wunderlich pinctrl-0 = <&i2c2_1_pins>; 306*f397471aSFrank Wunderlich pinctrl-names = "default"; 307*f397471aSFrank Wunderlich status = "okay"; 308*f397471aSFrank Wunderlich 309*f397471aSFrank Wunderlich pca9545: i2c-mux@70 { 310*f397471aSFrank Wunderlich compatible = "nxp,pca9545"; 311*f397471aSFrank Wunderlich reg = <0x70>; 312*f397471aSFrank Wunderlich #address-cells = <1>; 313*f397471aSFrank Wunderlich #size-cells = <0>; 314*f397471aSFrank Wunderlich 315*f397471aSFrank Wunderlich imux0: i2c@0 { 316*f397471aSFrank Wunderlich reg = <0>; 317*f397471aSFrank Wunderlich #address-cells = <1>; 318*f397471aSFrank Wunderlich #size-cells = <0>; 319*f397471aSFrank Wunderlich 320*f397471aSFrank Wunderlich pca9555: i2c-gpio-expander@20 { 321*f397471aSFrank Wunderlich compatible = "nxp,pca9555"; 322*f397471aSFrank Wunderlich reg = <0x20>; 323*f397471aSFrank Wunderlich gpio-controller; 324*f397471aSFrank Wunderlich #gpio-cells = <2>; 325*f397471aSFrank Wunderlich }; 326*f397471aSFrank Wunderlich 327*f397471aSFrank Wunderlich rtc@51 { 328*f397471aSFrank Wunderlich compatible = "nxp,pcf8563"; 329*f397471aSFrank Wunderlich reg = <0x51>; 330*f397471aSFrank Wunderlich }; 331*f397471aSFrank Wunderlich 332*f397471aSFrank Wunderlich eeprom@57 { 333*f397471aSFrank Wunderlich compatible = "atmel,24c02"; 334*f397471aSFrank Wunderlich reg = <0x57>; 335*f397471aSFrank Wunderlich address-width = <8>; 336*f397471aSFrank Wunderlich pagesize = <8>; 337*f397471aSFrank Wunderlich size = <256>; 338*f397471aSFrank Wunderlich }; 339*f397471aSFrank Wunderlich }; 340*f397471aSFrank Wunderlich 341*f397471aSFrank Wunderlich imux1_sfp1: i2c@1 { 342*f397471aSFrank Wunderlich reg = <1>; 343*f397471aSFrank Wunderlich #address-cells = <1>; 344*f397471aSFrank Wunderlich #size-cells = <0>; 345*f397471aSFrank Wunderlich }; 346*f397471aSFrank Wunderlich 347*f397471aSFrank Wunderlich imux2_sfp2: i2c@2 { 348*f397471aSFrank Wunderlich reg = <2>; 349*f397471aSFrank Wunderlich #address-cells = <1>; 350*f397471aSFrank Wunderlich #size-cells = <0>; 351*f397471aSFrank Wunderlich }; 352*f397471aSFrank Wunderlich 353*f397471aSFrank Wunderlich imux3_wifi: i2c@3 { 354*f397471aSFrank Wunderlich reg = <3>; 355*f397471aSFrank Wunderlich #address-cells = <1>; 356*f397471aSFrank Wunderlich #size-cells = <0>; 357*f397471aSFrank Wunderlich }; 358*f397471aSFrank Wunderlich }; 359*f397471aSFrank Wunderlich}; 360*f397471aSFrank Wunderlich 361*f397471aSFrank Wunderlich/* mPCIe SIM2 (11300000) */ 362*f397471aSFrank Wunderlich&pcie0 { 363*f397471aSFrank Wunderlich status = "okay"; 364*f397471aSFrank Wunderlich}; 365*f397471aSFrank Wunderlich 366*f397471aSFrank Wunderlich/* mPCIe (11310000 near leds) SIM3 */ 367*f397471aSFrank Wunderlich&pcie1 { 368*f397471aSFrank Wunderlich status = "okay"; 369*f397471aSFrank Wunderlich}; 370*f397471aSFrank Wunderlich 371*f397471aSFrank Wunderlich/* M.2 (11280000) 1L0 key-m SSD1 CN13 / key-b SIM1 CN15 */ 372*f397471aSFrank Wunderlich&pcie2 { 373*f397471aSFrank Wunderlich status = "okay"; 374*f397471aSFrank Wunderlich}; 375*f397471aSFrank Wunderlich 376*f397471aSFrank Wunderlich/* M.2 (11290000) 1L1 key-m SSD2 CN14 / key-b SIM2 CN18 */ 377*f397471aSFrank Wunderlich&pcie3 { 378*f397471aSFrank Wunderlich status = "okay"; 379*f397471aSFrank Wunderlich}; 380*f397471aSFrank Wunderlich 381*f397471aSFrank Wunderlich&pio { 382*f397471aSFrank Wunderlich gbe0_led0_pins: gbe0-led0-pins { 383*f397471aSFrank Wunderlich mux { 384*f397471aSFrank Wunderlich function = "led"; 385*f397471aSFrank Wunderlich groups = "gbe0_led0"; 386*f397471aSFrank Wunderlich }; 387*f397471aSFrank Wunderlich }; 388*f397471aSFrank Wunderlich 389*f397471aSFrank Wunderlich i2c0_pins: i2c0-g0-pins { 390*f397471aSFrank Wunderlich mux { 391*f397471aSFrank Wunderlich function = "i2c"; 392*f397471aSFrank Wunderlich groups = "i2c0_1"; 393*f397471aSFrank Wunderlich }; 394*f397471aSFrank Wunderlich }; 395*f397471aSFrank Wunderlich 396*f397471aSFrank Wunderlich i2c1_pins: i2c1-g0-pins { 397*f397471aSFrank Wunderlich mux { 398*f397471aSFrank Wunderlich function = "i2c"; 399*f397471aSFrank Wunderlich groups = "i2c1_0"; 400*f397471aSFrank Wunderlich }; 401*f397471aSFrank Wunderlich }; 402*f397471aSFrank Wunderlich 403*f397471aSFrank Wunderlich i2c2_1_pins: i2c2-g1-pins { 404*f397471aSFrank Wunderlich mux { 405*f397471aSFrank Wunderlich function = "i2c"; 406*f397471aSFrank Wunderlich groups = "i2c2_1"; 407*f397471aSFrank Wunderlich }; 408*f397471aSFrank Wunderlich }; 409*f397471aSFrank Wunderlich 410*f397471aSFrank Wunderlich mdio0_pins: mdio0-pins { 411*f397471aSFrank Wunderlich mux { 412*f397471aSFrank Wunderlich function = "eth"; 413*f397471aSFrank Wunderlich groups = "mdc_mdio0"; 414*f397471aSFrank Wunderlich }; 415*f397471aSFrank Wunderlich 416*f397471aSFrank Wunderlich conf { 417*f397471aSFrank Wunderlich pins = "SMI_0_MDC", "SMI_0_MDIO"; 418*f397471aSFrank Wunderlich drive-strength = <8>; 419*f397471aSFrank Wunderlich }; 420*f397471aSFrank Wunderlich }; 421*f397471aSFrank Wunderlich 422*f397471aSFrank Wunderlich mmc0_pins_emmc_51: mmc0-emmc-51-pins { 423*f397471aSFrank Wunderlich mux { 424*f397471aSFrank Wunderlich function = "flash"; 425*f397471aSFrank Wunderlich groups = "emmc_51"; 426*f397471aSFrank Wunderlich }; 427*f397471aSFrank Wunderlich }; 428*f397471aSFrank Wunderlich 429*f397471aSFrank Wunderlich mmc0_pins_sdcard: mmc0-sdcard-pins { 430*f397471aSFrank Wunderlich mux { 431*f397471aSFrank Wunderlich function = "flash"; 432*f397471aSFrank Wunderlich groups = "sdcard"; 433*f397471aSFrank Wunderlich }; 434*f397471aSFrank Wunderlich }; 435*f397471aSFrank Wunderlich 436*f397471aSFrank Wunderlich /* 1L0 0=key-b (CN15), 1=key-m (CN13) */ 437*f397471aSFrank Wunderlich pcie-2-hog { 438*f397471aSFrank Wunderlich gpio-hog; 439*f397471aSFrank Wunderlich gpios = <79 GPIO_ACTIVE_HIGH>; 440*f397471aSFrank Wunderlich output-high; 441*f397471aSFrank Wunderlich }; 442*f397471aSFrank Wunderlich 443*f397471aSFrank Wunderlich /* 1L1 0=key-b (CN18), 1=key-m (CN14) */ 444*f397471aSFrank Wunderlich pcie-3-hog { 445*f397471aSFrank Wunderlich gpio-hog; 446*f397471aSFrank Wunderlich gpios = <63 GPIO_ACTIVE_HIGH>; 447*f397471aSFrank Wunderlich output-high; 448*f397471aSFrank Wunderlich }; 449*f397471aSFrank Wunderlich 450*f397471aSFrank Wunderlich pwm0_pins: pwm0-pins { 451*f397471aSFrank Wunderlich mux { 452*f397471aSFrank Wunderlich groups = "pwm0"; 453*f397471aSFrank Wunderlich function = "pwm"; 454*f397471aSFrank Wunderlich }; 455*f397471aSFrank Wunderlich }; 456*f397471aSFrank Wunderlich 457*f397471aSFrank Wunderlich spi0_flash_pins: spi0-flash-pins { 458*f397471aSFrank Wunderlich mux { 459*f397471aSFrank Wunderlich function = "spi"; 460*f397471aSFrank Wunderlich groups = "spi0", "spi0_wp_hold"; 461*f397471aSFrank Wunderlich }; 462*f397471aSFrank Wunderlich }; 463*f397471aSFrank Wunderlich}; 464*f397471aSFrank Wunderlich 465*f397471aSFrank Wunderlich&pwm { 466*f397471aSFrank Wunderlich status = "okay"; 467*f397471aSFrank Wunderlich}; 468*f397471aSFrank Wunderlich 469*f397471aSFrank Wunderlich&serial0 { 470*f397471aSFrank Wunderlich status = "okay"; 471*f397471aSFrank Wunderlich}; 472*f397471aSFrank Wunderlich 473*f397471aSFrank Wunderlich&spi0 { 474*f397471aSFrank Wunderlich pinctrl-0 = <&spi0_flash_pins>; 475*f397471aSFrank Wunderlich pinctrl-names = "default"; 476*f397471aSFrank Wunderlich status = "okay"; 477*f397471aSFrank Wunderlich 478*f397471aSFrank Wunderlich spi_nand: nand@0 { 479*f397471aSFrank Wunderlich compatible = "spi-nand"; 480*f397471aSFrank Wunderlich reg = <0>; 481*f397471aSFrank Wunderlich spi-max-frequency = <52000000>; 482*f397471aSFrank Wunderlich spi-rx-bus-width = <4>; 483*f397471aSFrank Wunderlich spi-tx-bus-width = <4>; 484*f397471aSFrank Wunderlich }; 485*f397471aSFrank Wunderlich}; 486*f397471aSFrank Wunderlich 487*f397471aSFrank Wunderlich&spi_nand { 488*f397471aSFrank Wunderlich partitions { 489*f397471aSFrank Wunderlich compatible = "fixed-partitions"; 490*f397471aSFrank Wunderlich #address-cells = <1>; 491*f397471aSFrank Wunderlich #size-cells = <1>; 492*f397471aSFrank Wunderlich 493*f397471aSFrank Wunderlich partition@0 { 494*f397471aSFrank Wunderlich reg = <0x0 0x200000>; 495*f397471aSFrank Wunderlich label = "bl2"; 496*f397471aSFrank Wunderlich }; 497*f397471aSFrank Wunderlich 498*f397471aSFrank Wunderlich partition@200000 { 499*f397471aSFrank Wunderlich compatible = "linux,ubi"; 500*f397471aSFrank Wunderlich reg = <0x200000 0xfe00000>; 501*f397471aSFrank Wunderlich label = "ubi"; 502*f397471aSFrank Wunderlich }; 503*f397471aSFrank Wunderlich }; 504*f397471aSFrank Wunderlich}; 505*f397471aSFrank Wunderlich 506*f397471aSFrank Wunderlich/* back USB */ 507*f397471aSFrank Wunderlich&ssusb0 { 508*f397471aSFrank Wunderlich /* Use U2P only instead of both U3P/U2P due to U3P serdes shared with pcie2 */ 509*f397471aSFrank Wunderlich phys = <&xphyu2port0 PHY_TYPE_USB2>; 510*f397471aSFrank Wunderlich mediatek,u3p-dis-msk = <1>; 511*f397471aSFrank Wunderlich status = "okay"; 512*f397471aSFrank Wunderlich}; 513*f397471aSFrank Wunderlich 514*f397471aSFrank Wunderlich/* front USB */ 515*f397471aSFrank Wunderlich&ssusb1 { 516*f397471aSFrank Wunderlich status = "okay"; 517*f397471aSFrank Wunderlich}; 518*f397471aSFrank Wunderlich 519*f397471aSFrank Wunderlich&switch { 520*f397471aSFrank Wunderlich dsa,member = <1 0>; 521*f397471aSFrank Wunderlich status = "okay"; 522*f397471aSFrank Wunderlich}; 523*f397471aSFrank Wunderlich 524*f397471aSFrank Wunderlich&tphy { 525*f397471aSFrank Wunderlich status = "okay"; 526*f397471aSFrank Wunderlich}; 527*f397471aSFrank Wunderlich 528*f397471aSFrank Wunderlich&watchdog { 529*f397471aSFrank Wunderlich status = "okay"; 530*f397471aSFrank Wunderlich}; 531*f397471aSFrank Wunderlich 532*f397471aSFrank Wunderlich&xsphy { 533*f397471aSFrank Wunderlich status = "okay"; 534*f397471aSFrank Wunderlich}; 535