1*518272afSLeonard Göhrs// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause) 2*518272afSLeonard Göhrs/* 3*518272afSLeonard Göhrs * Copyright (C) 2020 STMicroelectronics - All Rights Reserved 4*518272afSLeonard Göhrs * Copyright (C) 2021 Rouven Czerwinski, Pengutronix 5*518272afSLeonard Göhrs * Copyright (C) 2023 Leonard Göhrs, Pengutronix 6*518272afSLeonard Göhrs */ 7*518272afSLeonard Göhrs 8*518272afSLeonard Göhrs#include "stm32mp15xc.dtsi" 9*518272afSLeonard Göhrs#include "stm32mp15xx-osd32.dtsi" 10*518272afSLeonard Göhrs#include "stm32mp15xxac-pinctrl.dtsi" 11*518272afSLeonard Göhrs 12*518272afSLeonard Göhrs#include <dt-bindings/gpio/gpio.h> 13*518272afSLeonard Göhrs#include <dt-bindings/input/input.h> 14*518272afSLeonard Göhrs#include <dt-bindings/leds/common.h> 15*518272afSLeonard Göhrs#include <dt-bindings/pwm/pwm.h> 16*518272afSLeonard Göhrs 17*518272afSLeonard Göhrs/ { 18*518272afSLeonard Göhrs aliases { 19*518272afSLeonard Göhrs ethernet0 = ðernet0; 20*518272afSLeonard Göhrs ethernet1 = &port_uplink; 21*518272afSLeonard Göhrs ethernet2 = &port_dut; 22*518272afSLeonard Göhrs mmc1 = &sdmmc2; 23*518272afSLeonard Göhrs serial0 = &uart4; 24*518272afSLeonard Göhrs serial1 = &usart3; 25*518272afSLeonard Göhrs }; 26*518272afSLeonard Göhrs 27*518272afSLeonard Göhrs chosen { 28*518272afSLeonard Göhrs stdout-path = &uart4; 29*518272afSLeonard Göhrs }; 30*518272afSLeonard Göhrs 31*518272afSLeonard Göhrs led-controller-0 { 32*518272afSLeonard Göhrs compatible = "gpio-leds"; 33*518272afSLeonard Göhrs 34*518272afSLeonard Göhrs led-0 { 35*518272afSLeonard Göhrs label = "tac:green:user1"; 36*518272afSLeonard Göhrs gpios = <&gpiof 10 GPIO_ACTIVE_HIGH>; 37*518272afSLeonard Göhrs linux,default-trigger = "heartbeat"; 38*518272afSLeonard Göhrs }; 39*518272afSLeonard Göhrs 40*518272afSLeonard Göhrs led-1 { 41*518272afSLeonard Göhrs label = "tac:green:user2"; 42*518272afSLeonard Göhrs gpios = <&gpiog 7 GPIO_ACTIVE_HIGH>; 43*518272afSLeonard Göhrs }; 44*518272afSLeonard Göhrs 45*518272afSLeonard Göhrs led-2 { 46*518272afSLeonard Göhrs label = "tac:green:statusdut"; 47*518272afSLeonard Göhrs gpios = <&gpioa 13 GPIO_ACTIVE_LOW>; 48*518272afSLeonard Göhrs }; 49*518272afSLeonard Göhrs 50*518272afSLeonard Göhrs /* led-3 and led-4 are internally connected antiparallel to one 51*518272afSLeonard Göhrs * another inside the ethernet jack like this: 52*518272afSLeonard Göhrs * GPIOA14 ---+---|led-3|>--+--- GPIOD15 53*518272afSLeonard Göhrs * +--<|led-4|---+ 54*518272afSLeonard Göhrs * E.g. only one of the LEDs can be illuminated at a time while 55*518272afSLeonard Göhrs * the other output must be driven low. 56*518272afSLeonard Göhrs * This should likely be implemented using a multi color LED 57*518272afSLeonard Göhrs * driver for antiparallel LEDs. 58*518272afSLeonard Göhrs */ 59*518272afSLeonard Göhrs led-3 { 60*518272afSLeonard Göhrs label = "tac:green:statuslab"; 61*518272afSLeonard Göhrs gpios = <&gpioa 14 GPIO_ACTIVE_HIGH>; 62*518272afSLeonard Göhrs }; 63*518272afSLeonard Göhrs 64*518272afSLeonard Göhrs led-4 { 65*518272afSLeonard Göhrs label = "tac:orange:statuslab"; 66*518272afSLeonard Göhrs gpios = <&gpiod 15 GPIO_ACTIVE_HIGH>; 67*518272afSLeonard Göhrs }; 68*518272afSLeonard Göhrs }; 69*518272afSLeonard Göhrs 70*518272afSLeonard Göhrs gpio-keys { 71*518272afSLeonard Göhrs compatible = "gpio-keys"; 72*518272afSLeonard Göhrs 73*518272afSLeonard Göhrs button-lower { 74*518272afSLeonard Göhrs label = "USER_BTN2"; 75*518272afSLeonard Göhrs linux,code = <KEY_ESC>; 76*518272afSLeonard Göhrs gpios = <&gpioe 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; 77*518272afSLeonard Göhrs }; 78*518272afSLeonard Göhrs 79*518272afSLeonard Göhrs button-upper { 80*518272afSLeonard Göhrs label = "USER_BTN"; 81*518272afSLeonard Göhrs linux,code = <KEY_HOME>; 82*518272afSLeonard Göhrs gpios = <&gpioi 11 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; 83*518272afSLeonard Göhrs }; 84*518272afSLeonard Göhrs }; 85*518272afSLeonard Göhrs 86*518272afSLeonard Göhrs /* supplied by either barrel connector or PoE */ 87*518272afSLeonard Göhrs reg_12v: regulator-12v { 88*518272afSLeonard Göhrs compatible = "regulator-fixed"; 89*518272afSLeonard Göhrs regulator-name = "12V"; 90*518272afSLeonard Göhrs regulator-min-microvolt = <12000000>; 91*518272afSLeonard Göhrs regulator-max-microvolt = <12000000>; 92*518272afSLeonard Göhrs regulator-always-on; 93*518272afSLeonard Göhrs }; 94*518272afSLeonard Göhrs 95*518272afSLeonard Göhrs reg_5v: regulator-5v { 96*518272afSLeonard Göhrs compatible = "regulator-fixed"; 97*518272afSLeonard Göhrs regulator-name = "5V"; 98*518272afSLeonard Göhrs regulator-min-microvolt = <5000000>; 99*518272afSLeonard Göhrs regulator-max-microvolt = <5000000>; 100*518272afSLeonard Göhrs regulator-always-on; 101*518272afSLeonard Göhrs vin-supply = <®_12v>; 102*518272afSLeonard Göhrs }; 103*518272afSLeonard Göhrs 104*518272afSLeonard Göhrs reg_1v2: regulator-1v2 { 105*518272afSLeonard Göhrs compatible = "regulator-fixed"; 106*518272afSLeonard Göhrs regulator-name = "1V2"; 107*518272afSLeonard Göhrs regulator-min-microvolt = <1200000>; 108*518272afSLeonard Göhrs regulator-max-microvolt = <1200000>; 109*518272afSLeonard Göhrs regulator-always-on; 110*518272afSLeonard Göhrs vin-supply = <®_5v>; 111*518272afSLeonard Göhrs }; 112*518272afSLeonard Göhrs 113*518272afSLeonard Göhrs reg_pb_5v: regulator-pb-5v { 114*518272afSLeonard Göhrs compatible = "regulator-fixed"; 115*518272afSLeonard Göhrs regulator-name = "5V_POWERBOARD"; 116*518272afSLeonard Göhrs regulator-min-microvolt = <5000000>; 117*518272afSLeonard Göhrs regulator-max-microvolt = <5000000>; 118*518272afSLeonard Göhrs regulator-always-on; 119*518272afSLeonard Göhrs vin-supply = <®_5v>; 120*518272afSLeonard Göhrs }; 121*518272afSLeonard Göhrs 122*518272afSLeonard Göhrs reg_pb_3v3: regulator-pb-3v3 { 123*518272afSLeonard Göhrs compatible = "regulator-fixed"; 124*518272afSLeonard Göhrs regulator-name = "3V3_POWERBOARD"; 125*518272afSLeonard Göhrs regulator-min-microvolt = <3300000>; 126*518272afSLeonard Göhrs regulator-max-microvolt = <3300000>; 127*518272afSLeonard Göhrs regulator-always-on; 128*518272afSLeonard Göhrs vin-supply = <®_pb_5v>; 129*518272afSLeonard Göhrs }; 130*518272afSLeonard Göhrs 131*518272afSLeonard Göhrs output-iobus-12v { 132*518272afSLeonard Göhrs compatible = "regulator-output"; 133*518272afSLeonard Göhrs vout-supply = <®_iobus_12v>; 134*518272afSLeonard Göhrs }; 135*518272afSLeonard Göhrs 136*518272afSLeonard Göhrs output-vuart { 137*518272afSLeonard Göhrs compatible = "regulator-output"; 138*518272afSLeonard Göhrs vout-supply = <&v3v3_hdmi>; 139*518272afSLeonard Göhrs }; 140*518272afSLeonard Göhrs}; 141*518272afSLeonard Göhrs 142*518272afSLeonard Göhrsbaseboard_eeprom: &sip_eeprom { 143*518272afSLeonard Göhrs}; 144*518272afSLeonard Göhrs 145*518272afSLeonard Göhrs&adc { 146*518272afSLeonard Göhrs pinctrl-names = "default"; 147*518272afSLeonard Göhrs pinctrl-0 = <&adc1_ain_pins_a>; 148*518272afSLeonard Göhrs vdd-supply = <&vdd>; 149*518272afSLeonard Göhrs vdda-supply = <&vdda>; 150*518272afSLeonard Göhrs vref-supply = <&vrefbuf>; 151*518272afSLeonard Göhrs status = "okay"; 152*518272afSLeonard Göhrs 153*518272afSLeonard Göhrs adc1: adc@0 { 154*518272afSLeonard Göhrs st,adc-channels = <0 1 2 5 9 10 13 15>; 155*518272afSLeonard Göhrs st,min-sample-time-nsecs = <5000>; 156*518272afSLeonard Göhrs #address-cells = <1>; 157*518272afSLeonard Göhrs #size-cells = <0>; 158*518272afSLeonard Göhrs status = "okay"; 159*518272afSLeonard Göhrs 160*518272afSLeonard Göhrs channel@0 { 161*518272afSLeonard Göhrs reg = <0>; 162*518272afSLeonard Göhrs label = "HOST_2_CURR_FB"; 163*518272afSLeonard Göhrs }; 164*518272afSLeonard Göhrs 165*518272afSLeonard Göhrs channel@1 { 166*518272afSLeonard Göhrs reg = <1>; 167*518272afSLeonard Göhrs label = "HOST_3_CURR_FB"; 168*518272afSLeonard Göhrs }; 169*518272afSLeonard Göhrs 170*518272afSLeonard Göhrs channel@2 { 171*518272afSLeonard Göhrs reg = <2>; 172*518272afSLeonard Göhrs label = "OUT_0_FB"; 173*518272afSLeonard Göhrs }; 174*518272afSLeonard Göhrs 175*518272afSLeonard Göhrs channel@5 { 176*518272afSLeonard Göhrs reg = <5>; 177*518272afSLeonard Göhrs label = "IOBUS_CURR_FB"; 178*518272afSLeonard Göhrs }; 179*518272afSLeonard Göhrs 180*518272afSLeonard Göhrs channel@9 { 181*518272afSLeonard Göhrs reg = <9>; 182*518272afSLeonard Göhrs label = "IOBUS_VOLT_FB"; 183*518272afSLeonard Göhrs }; 184*518272afSLeonard Göhrs 185*518272afSLeonard Göhrs channel@10 { 186*518272afSLeonard Göhrs reg = <10>; 187*518272afSLeonard Göhrs label = "OUT_1_FB"; 188*518272afSLeonard Göhrs }; 189*518272afSLeonard Göhrs 190*518272afSLeonard Göhrs channel@13 { 191*518272afSLeonard Göhrs reg = <13>; 192*518272afSLeonard Göhrs label = "HOST_CURR_FB"; 193*518272afSLeonard Göhrs }; 194*518272afSLeonard Göhrs 195*518272afSLeonard Göhrs channel@15 { 196*518272afSLeonard Göhrs reg = <15>; 197*518272afSLeonard Göhrs label = "HOST_1_CURR_FB"; 198*518272afSLeonard Göhrs }; 199*518272afSLeonard Göhrs }; 200*518272afSLeonard Göhrs 201*518272afSLeonard Göhrs adc2: adc@100 { 202*518272afSLeonard Göhrs st,adc-channels = <12>; 203*518272afSLeonard Göhrs st,min-sample-time-nsecs = <500000>; 204*518272afSLeonard Göhrs #address-cells = <1>; 205*518272afSLeonard Göhrs #size-cells = <0>; 206*518272afSLeonard Göhrs status = "okay"; 207*518272afSLeonard Göhrs 208*518272afSLeonard Göhrs channel@12 { 209*518272afSLeonard Göhrs reg = <12>; 210*518272afSLeonard Göhrs label = "TEMP_INTERNAL"; 211*518272afSLeonard Göhrs }; 212*518272afSLeonard Göhrs }; 213*518272afSLeonard Göhrs}; 214*518272afSLeonard Göhrs 215*518272afSLeonard Göhrs&crc1 { 216*518272afSLeonard Göhrs status = "okay"; 217*518272afSLeonard Göhrs}; 218*518272afSLeonard Göhrs 219*518272afSLeonard Göhrs&cryp1 { 220*518272afSLeonard Göhrs status = "okay"; 221*518272afSLeonard Göhrs}; 222*518272afSLeonard Göhrs 223*518272afSLeonard Göhrs&dts { 224*518272afSLeonard Göhrs status = "okay"; 225*518272afSLeonard Göhrs}; 226*518272afSLeonard Göhrs 227*518272afSLeonard Göhrsðernet0 { 228*518272afSLeonard Göhrs assigned-clocks = <&rcc ETHCK_K>, <&rcc PLL4_P>; 229*518272afSLeonard Göhrs assigned-clock-parents = <&rcc PLL4_P>; 230*518272afSLeonard Göhrs assigned-clock-rates = <125000000>; /* Clock PLL4 to 750Mhz in ATF */ 231*518272afSLeonard Göhrs 232*518272afSLeonard Göhrs pinctrl-names = "default", "sleep"; 233*518272afSLeonard Göhrs pinctrl-0 = <ðernet0_rgmii_pins_e>; 234*518272afSLeonard Göhrs pinctrl-1 = <ðernet0_rgmii_sleep_pins_e>; 235*518272afSLeonard Göhrs 236*518272afSLeonard Göhrs st,eth-clk-sel; 237*518272afSLeonard Göhrs phy-mode = "rgmii-id"; 238*518272afSLeonard Göhrs 239*518272afSLeonard Göhrs status = "okay"; 240*518272afSLeonard Göhrs 241*518272afSLeonard Göhrs fixed-link { 242*518272afSLeonard Göhrs speed = <1000>; 243*518272afSLeonard Göhrs full-duplex; 244*518272afSLeonard Göhrs }; 245*518272afSLeonard Göhrs}; 246*518272afSLeonard Göhrs 247*518272afSLeonard Göhrsðernet0_rgmii_pins_e { 248*518272afSLeonard Göhrs pins1 { 249*518272afSLeonard Göhrs /* Reduce EMI emission by reducing RGMII drive strength */ 250*518272afSLeonard Göhrs slew-rate = <1>; 251*518272afSLeonard Göhrs }; 252*518272afSLeonard Göhrs}; 253*518272afSLeonard Göhrs 254*518272afSLeonard Göhrs&gpiob { 255*518272afSLeonard Göhrs gpio-line-names = "", "", "", "", "", /* 0 */ 256*518272afSLeonard Göhrs "", "USB_RESET", "", "", "", /* 5 */ 257*518272afSLeonard Göhrs "", "", "", "", "", /* 10 */ 258*518272afSLeonard Göhrs ""; /* 15 */ 259*518272afSLeonard Göhrs}; 260*518272afSLeonard Göhrs 261*518272afSLeonard Göhrs&gpiod { 262*518272afSLeonard Göhrs gpio-line-names = "", "", "", "", "TP38", /* 0 */ 263*518272afSLeonard Göhrs "TP39", "", "", "TP41", "TP42", /* 5 */ 264*518272afSLeonard Göhrs "OLED_DC", "", "", "ETH_CS", "", /* 10 */ 265*518272afSLeonard Göhrs "ETH_LAB_LEDRN"; /* 15 */ 266*518272afSLeonard Göhrs}; 267*518272afSLeonard Göhrs 268*518272afSLeonard Göhrs&gpioe { 269*518272afSLeonard Göhrs gpio-line-names = "TP35", "", "", "", "CAN_1_120R", /* 0 */ 270*518272afSLeonard Göhrs "", "", "USER_BTN2", "TP48", "UART_TX_EN", /* 5 */ 271*518272afSLeonard Göhrs "UART_RX_EN", "TP24", "", "TP25", "TP26", /* 10 */ 272*518272afSLeonard Göhrs "TP27"; /* 15 */ 273*518272afSLeonard Göhrs}; 274*518272afSLeonard Göhrs 275*518272afSLeonard Göhrs&gpiof { 276*518272afSLeonard Göhrs gpio-line-names = "TP36", "TP37", "", "", "OLED_CS", /* 0 */ 277*518272afSLeonard Göhrs "", "", "", "", "", /* 5 */ 278*518272afSLeonard Göhrs "USER_LED1", "", "STACK_CS0", "", "", /* 10 */ 279*518272afSLeonard Göhrs ""; /* 15 */ 280*518272afSLeonard Göhrs}; 281*518272afSLeonard Göhrs 282*518272afSLeonard Göhrs&gpiog { 283*518272afSLeonard Göhrs gpio-line-names = "ETH_RESET", "", "", "", "", /* 0 */ 284*518272afSLeonard Göhrs "IOBUS_FLT_FB", "", "USER_LED2", "ETH1_PPS_A", "CAN_0_120R", /* 5 */ 285*518272afSLeonard Göhrs "TP49", "", "", "", "", /* 10 */ 286*518272afSLeonard Göhrs ""; /* 15 */ 287*518272afSLeonard Göhrs}; 288*518272afSLeonard Göhrs 289*518272afSLeonard Göhrs&gpioh { 290*518272afSLeonard Göhrs gpio-line-names = "", "", "OUT_1", "OUT_0", "OLED_RESET", /* 0 */ 291*518272afSLeonard Göhrs "", "", "", "", "", /* 5 */ 292*518272afSLeonard Göhrs "ETH1_PPS_B", "ETH_GPIO2", "", "IOBUS_PWR_EN", "", /* 10 */ 293*518272afSLeonard Göhrs "TP33"; /* 15 */ 294*518272afSLeonard Göhrs}; 295*518272afSLeonard Göhrs 296*518272afSLeonard Göhrs&gpioi { 297*518272afSLeonard Göhrs gpio-line-names = "TIM_RTS", "", "", "", "DEVICE_DATA_EN", /* 0 */ 298*518272afSLeonard Göhrs "", "", "", "ETH_WOL", "TP43", /* 5 */ 299*518272afSLeonard Göhrs "", "USER_BTN"; /* 10 */ 300*518272afSLeonard Göhrs}; 301*518272afSLeonard Göhrs 302*518272afSLeonard Göhrs&gpioz { 303*518272afSLeonard Göhrs gpio-line-names = "HWID0", "HWID1", "HWID2", "HWID3", "", /* 0 */ 304*518272afSLeonard Göhrs "", "HWID4", "HWID5"; /* 5 */ 305*518272afSLeonard Göhrs}; 306*518272afSLeonard Göhrs 307*518272afSLeonard Göhrs&hash1 { 308*518272afSLeonard Göhrs status = "okay"; 309*518272afSLeonard Göhrs}; 310*518272afSLeonard Göhrs 311*518272afSLeonard Göhrs&i2c1 { 312*518272afSLeonard Göhrs pinctrl-names = "default", "sleep"; 313*518272afSLeonard Göhrs pinctrl-0 = <&i2c1_pins_b>; 314*518272afSLeonard Göhrs pinctrl-1 = <&i2c1_sleep_pins_b>; 315*518272afSLeonard Göhrs status = "okay"; 316*518272afSLeonard Göhrs 317*518272afSLeonard Göhrs powerboard_eeprom: eeprom@50 { 318*518272afSLeonard Göhrs compatible = "atmel,24c02"; 319*518272afSLeonard Göhrs reg = <0x50>; 320*518272afSLeonard Göhrs vcc-supply = <&v3v3>; 321*518272afSLeonard Göhrs }; 322*518272afSLeonard Göhrs 323*518272afSLeonard Göhrs temperature-sensor@48 { 324*518272afSLeonard Göhrs compatible = "national,lm75a"; 325*518272afSLeonard Göhrs reg = <0x48>; 326*518272afSLeonard Göhrs status = "disabled"; 327*518272afSLeonard Göhrs }; 328*518272afSLeonard Göhrs}; 329*518272afSLeonard Göhrs 330*518272afSLeonard Göhrs&i2c5 { 331*518272afSLeonard Göhrs /delete-property/dmas; 332*518272afSLeonard Göhrs /delete-property/dma-names; 333*518272afSLeonard Göhrs 334*518272afSLeonard Göhrs pinctrl-names = "default", "sleep"; 335*518272afSLeonard Göhrs pinctrl-0 = <&i2c5_pins_b>; 336*518272afSLeonard Göhrs pinctrl-1 = <&i2c5_sleep_pins_b>; 337*518272afSLeonard Göhrs 338*518272afSLeonard Göhrs status = "okay"; 339*518272afSLeonard Göhrs 340*518272afSLeonard Göhrs usbhub: usbhub@2c { 341*518272afSLeonard Göhrs compatible ="microchip,usb2514b"; 342*518272afSLeonard Göhrs reg = <0x2c>; 343*518272afSLeonard Göhrs vdd-supply = <&v3v3>; 344*518272afSLeonard Göhrs reset-gpios = <&gpiob 6 GPIO_ACTIVE_LOW>; 345*518272afSLeonard Göhrs }; 346*518272afSLeonard Göhrs}; 347*518272afSLeonard Göhrs 348*518272afSLeonard Göhrs&iwdg2 { 349*518272afSLeonard Göhrs timeout-sec = <8>; 350*518272afSLeonard Göhrs status = "okay"; 351*518272afSLeonard Göhrs}; 352*518272afSLeonard Göhrs 353*518272afSLeonard Göhrs&m_can1 { 354*518272afSLeonard Göhrs pinctrl-names = "default", "sleep"; 355*518272afSLeonard Göhrs pinctrl-0 = <&m_can1_pins_b>; 356*518272afSLeonard Göhrs pinctrl-1 = <&m_can1_sleep_pins_b>; 357*518272afSLeonard Göhrs status = "okay"; 358*518272afSLeonard Göhrs}; 359*518272afSLeonard Göhrs 360*518272afSLeonard Göhrs&m_can2 { 361*518272afSLeonard Göhrs pinctrl-names = "default", "sleep"; 362*518272afSLeonard Göhrs pinctrl-0 = <&m_can2_pins_a>; 363*518272afSLeonard Göhrs pinctrl-1 = <&m_can2_sleep_pins_a>; 364*518272afSLeonard Göhrs status = "okay"; 365*518272afSLeonard Göhrs}; 366*518272afSLeonard Göhrs 367*518272afSLeonard Göhrs&pmic { 368*518272afSLeonard Göhrs regulators { 369*518272afSLeonard Göhrs buck1-supply = <®_5v>; /* VIN */ 370*518272afSLeonard Göhrs buck2-supply = <®_5v>; /* VIN */ 371*518272afSLeonard Göhrs buck3-supply = <®_5v>; /* VIN */ 372*518272afSLeonard Göhrs buck4-supply = <®_5v>; /* VIN */ 373*518272afSLeonard Göhrs ldo2-supply = <®_5v>; /* PMIC_LDO25IN */ 374*518272afSLeonard Göhrs ldo4-supply = <®_5v>; /* VIN */ 375*518272afSLeonard Göhrs ldo5-supply = <®_5v>; /* PMIC_LDO25IN */ 376*518272afSLeonard Göhrs vref_ddr-supply = <®_5v>; /* VIN */ 377*518272afSLeonard Göhrs boost-supply = <®_5v>; /* PMIC_BSTIN */ 378*518272afSLeonard Göhrs pwr_sw2-supply = <&bst_out>; /* PMIC_SWIN */ 379*518272afSLeonard Göhrs }; 380*518272afSLeonard Göhrs}; 381*518272afSLeonard Göhrs 382*518272afSLeonard Göhrs&pwr_regulators { 383*518272afSLeonard Göhrs vdd-supply = <&vdd>; 384*518272afSLeonard Göhrs vdd_3v3_usbfs-supply = <&vdd_usb>; 385*518272afSLeonard Göhrs}; 386*518272afSLeonard Göhrs 387*518272afSLeonard Göhrs&rtc { 388*518272afSLeonard Göhrs status = "okay"; 389*518272afSLeonard Göhrs}; 390*518272afSLeonard Göhrs 391*518272afSLeonard Göhrs&sdmmc2 { 392*518272afSLeonard Göhrs pinctrl-names = "default", "opendrain", "sleep"; 393*518272afSLeonard Göhrs pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_b>; 394*518272afSLeonard Göhrs pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_b>; 395*518272afSLeonard Göhrs pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_b>; 396*518272afSLeonard Göhrs vmmc-supply = <&v3v3>; 397*518272afSLeonard Göhrs 398*518272afSLeonard Göhrs bus-width = <8>; 399*518272afSLeonard Göhrs mmc-ddr-3_3v; 400*518272afSLeonard Göhrs no-1-8-v; 401*518272afSLeonard Göhrs non-removable; 402*518272afSLeonard Göhrs no-sd; 403*518272afSLeonard Göhrs no-sdio; 404*518272afSLeonard Göhrs st,neg-edge; 405*518272afSLeonard Göhrs 406*518272afSLeonard Göhrs status = "okay"; 407*518272afSLeonard Göhrs}; 408*518272afSLeonard Göhrs 409*518272afSLeonard Göhrs&spi2 { 410*518272afSLeonard Göhrs pinctrl-names = "default"; 411*518272afSLeonard Göhrs pinctrl-0 = <&spi2_pins_c>; 412*518272afSLeonard Göhrs cs-gpios = <&gpiof 12 GPIO_ACTIVE_LOW>; 413*518272afSLeonard Göhrs status = "okay"; 414*518272afSLeonard Göhrs}; 415*518272afSLeonard Göhrs 416*518272afSLeonard Göhrs&spi4 { 417*518272afSLeonard Göhrs pinctrl-names = "default"; 418*518272afSLeonard Göhrs pinctrl-0 = <&spi4_pins_a>; 419*518272afSLeonard Göhrs cs-gpios = <&gpiof 4 GPIO_ACTIVE_LOW>; 420*518272afSLeonard Göhrs status = "okay"; 421*518272afSLeonard Göhrs 422*518272afSLeonard Göhrs lcd: display@0 { 423*518272afSLeonard Göhrs compatible = "shineworld,lh133k", "panel-mipi-dbi-spi"; 424*518272afSLeonard Göhrs reg = <0>; 425*518272afSLeonard Göhrs power-supply = <&v3v3>; 426*518272afSLeonard Göhrs io-supply = <&v3v3>; 427*518272afSLeonard Göhrs backlight = <&backlight>; 428*518272afSLeonard Göhrs dc-gpios = <&gpiod 10 GPIO_ACTIVE_HIGH>; 429*518272afSLeonard Göhrs reset-gpios = <&gpioh 4 GPIO_ACTIVE_HIGH>; 430*518272afSLeonard Göhrs spi-3wire; 431*518272afSLeonard Göhrs spi-max-frequency = <32000000>; 432*518272afSLeonard Göhrs 433*518272afSLeonard Göhrs width-mm = <23>; 434*518272afSLeonard Göhrs height-mm = <23>; 435*518272afSLeonard Göhrs rotation = <180>; 436*518272afSLeonard Göhrs 437*518272afSLeonard Göhrs panel-timing { 438*518272afSLeonard Göhrs hactive = <240>; 439*518272afSLeonard Göhrs vactive = <240>; 440*518272afSLeonard Göhrs hback-porch = <0>; 441*518272afSLeonard Göhrs vback-porch = <0>; 442*518272afSLeonard Göhrs 443*518272afSLeonard Göhrs clock-frequency = <0>; 444*518272afSLeonard Göhrs hfront-porch = <0>; 445*518272afSLeonard Göhrs hsync-len = <0>; 446*518272afSLeonard Göhrs vfront-porch = <0>; 447*518272afSLeonard Göhrs vsync-len = <0>; 448*518272afSLeonard Göhrs }; 449*518272afSLeonard Göhrs }; 450*518272afSLeonard Göhrs}; 451*518272afSLeonard Göhrs 452*518272afSLeonard Göhrs&spi5 { 453*518272afSLeonard Göhrs pinctrl-names = "default"; 454*518272afSLeonard Göhrs pinctrl-0 = <&spi5_pins_a>; 455*518272afSLeonard Göhrs 456*518272afSLeonard Göhrs /* spare dmas for other usage */ 457*518272afSLeonard Göhrs /delete-property/dmas; 458*518272afSLeonard Göhrs /delete-property/dma-names; 459*518272afSLeonard Göhrs 460*518272afSLeonard Göhrs cs-gpios = <&gpiod 13 GPIO_ACTIVE_LOW>; 461*518272afSLeonard Göhrs 462*518272afSLeonard Göhrs status = "okay"; 463*518272afSLeonard Göhrs 464*518272afSLeonard Göhrs switch: switch@0 { 465*518272afSLeonard Göhrs compatible = "microchip,ksz9563"; 466*518272afSLeonard Göhrs reg = <0>; 467*518272afSLeonard Göhrs 468*518272afSLeonard Göhrs reset-gpios = <&gpiog 0 GPIO_ACTIVE_LOW>; 469*518272afSLeonard Göhrs spi-max-frequency = <44000000>; 470*518272afSLeonard Göhrs 471*518272afSLeonard Göhrs interrupt-parent = <&gpioa>; 472*518272afSLeonard Göhrs interrupts = <6 IRQ_TYPE_EDGE_RISING>; 473*518272afSLeonard Göhrs 474*518272afSLeonard Göhrs ports { 475*518272afSLeonard Göhrs #address-cells = <1>; 476*518272afSLeonard Göhrs #size-cells = <0>; 477*518272afSLeonard Göhrs port_dut: port@0 { 478*518272afSLeonard Göhrs reg = <0>; 479*518272afSLeonard Göhrs label = "dut"; 480*518272afSLeonard Göhrs }; 481*518272afSLeonard Göhrs 482*518272afSLeonard Göhrs port_uplink: port@1 { 483*518272afSLeonard Göhrs reg = <1>; 484*518272afSLeonard Göhrs label = "uplink"; 485*518272afSLeonard Göhrs }; 486*518272afSLeonard Göhrs 487*518272afSLeonard Göhrs port_cpu: port@2 { 488*518272afSLeonard Göhrs reg = <2>; 489*518272afSLeonard Göhrs label = "cpu"; 490*518272afSLeonard Göhrs 491*518272afSLeonard Göhrs ethernet = <ðernet0>; 492*518272afSLeonard Göhrs 493*518272afSLeonard Göhrs phy-mode = "rgmii-id"; 494*518272afSLeonard Göhrs rx-internal-delay-ps = <2000>; 495*518272afSLeonard Göhrs tx-internal-delay-ps = <2000>; 496*518272afSLeonard Göhrs 497*518272afSLeonard Göhrs fixed-link { 498*518272afSLeonard Göhrs speed = <1000>; 499*518272afSLeonard Göhrs full-duplex; 500*518272afSLeonard Göhrs }; 501*518272afSLeonard Göhrs }; 502*518272afSLeonard Göhrs }; 503*518272afSLeonard Göhrs }; 504*518272afSLeonard Göhrs}; 505*518272afSLeonard Göhrs 506*518272afSLeonard Göhrs&timers2 { 507*518272afSLeonard Göhrs /* spare dmas for other usage */ 508*518272afSLeonard Göhrs /delete-property/dmas; 509*518272afSLeonard Göhrs /delete-property/dma-names; 510*518272afSLeonard Göhrs 511*518272afSLeonard Göhrs status = "okay"; 512*518272afSLeonard Göhrs 513*518272afSLeonard Göhrs timer@1 { 514*518272afSLeonard Göhrs status = "okay"; 515*518272afSLeonard Göhrs }; 516*518272afSLeonard Göhrs}; 517*518272afSLeonard Göhrs 518*518272afSLeonard Göhrs&timers3 { 519*518272afSLeonard Göhrs /* spare dmas for other usage */ 520*518272afSLeonard Göhrs /delete-property/dmas; 521*518272afSLeonard Göhrs /delete-property/dma-names; 522*518272afSLeonard Göhrs 523*518272afSLeonard Göhrs status = "okay"; 524*518272afSLeonard Göhrs 525*518272afSLeonard Göhrs timer@2 { 526*518272afSLeonard Göhrs status = "okay"; 527*518272afSLeonard Göhrs }; 528*518272afSLeonard Göhrs}; 529*518272afSLeonard Göhrs 530*518272afSLeonard Göhrs&timers4 { 531*518272afSLeonard Göhrs /* spare dmas for other usage */ 532*518272afSLeonard Göhrs /delete-property/dmas; 533*518272afSLeonard Göhrs /delete-property/dma-names; 534*518272afSLeonard Göhrs 535*518272afSLeonard Göhrs status = "okay"; 536*518272afSLeonard Göhrs 537*518272afSLeonard Göhrs timer@3 { 538*518272afSLeonard Göhrs status = "okay"; 539*518272afSLeonard Göhrs }; 540*518272afSLeonard Göhrs}; 541*518272afSLeonard Göhrs 542*518272afSLeonard Göhrs&uart4 { 543*518272afSLeonard Göhrs label = "debug"; 544*518272afSLeonard Göhrs 545*518272afSLeonard Göhrs pinctrl-names = "default"; 546*518272afSLeonard Göhrs pinctrl-0 = <&uart4_pins_a>; 547*518272afSLeonard Göhrs 548*518272afSLeonard Göhrs /* spare dmas for other usage */ 549*518272afSLeonard Göhrs /delete-property/dmas; 550*518272afSLeonard Göhrs /delete-property/dma-names; 551*518272afSLeonard Göhrs 552*518272afSLeonard Göhrs status = "okay"; 553*518272afSLeonard Göhrs}; 554*518272afSLeonard Göhrs 555*518272afSLeonard Göhrs&usart3 { 556*518272afSLeonard Göhrs label = "dut"; 557*518272afSLeonard Göhrs uart-has-rtscts; 558*518272afSLeonard Göhrs 559*518272afSLeonard Göhrs pinctrl-names = "default"; 560*518272afSLeonard Göhrs pinctrl-0 = <&usart3_pins_f>; 561*518272afSLeonard Göhrs 562*518272afSLeonard Göhrs /* spare dmas for other usage */ 563*518272afSLeonard Göhrs /delete-property/dmas; 564*518272afSLeonard Göhrs /delete-property/dma-names; 565*518272afSLeonard Göhrs 566*518272afSLeonard Göhrs status = "okay"; 567*518272afSLeonard Göhrs}; 568*518272afSLeonard Göhrs 569*518272afSLeonard Göhrs&usbh_ehci { 570*518272afSLeonard Göhrs phys = <&usbphyc_port0>; 571*518272afSLeonard Göhrs phy-names = "usb"; 572*518272afSLeonard Göhrs 573*518272afSLeonard Göhrs status = "okay"; 574*518272afSLeonard Göhrs}; 575*518272afSLeonard Göhrs 576*518272afSLeonard Göhrs&usbotg_hs { 577*518272afSLeonard Göhrs phys = <&usbphyc_port1 0>; 578*518272afSLeonard Göhrs phy-names = "usb2-phy"; 579*518272afSLeonard Göhrs 580*518272afSLeonard Göhrs vusb_d-supply = <&vdd_usb>; 581*518272afSLeonard Göhrs vusb_a-supply = <®18>; 582*518272afSLeonard Göhrs 583*518272afSLeonard Göhrs dr_mode = "peripheral"; 584*518272afSLeonard Göhrs 585*518272afSLeonard Göhrs status = "okay"; 586*518272afSLeonard Göhrs}; 587*518272afSLeonard Göhrs 588*518272afSLeonard Göhrs&usbphyc { 589*518272afSLeonard Göhrs status = "okay"; 590*518272afSLeonard Göhrs}; 591*518272afSLeonard Göhrs 592*518272afSLeonard Göhrs&usbphyc_port0 { 593*518272afSLeonard Göhrs phy-supply = <&vdd_usb>; 594*518272afSLeonard Göhrs}; 595*518272afSLeonard Göhrs 596*518272afSLeonard Göhrs&usbphyc_port1 { 597*518272afSLeonard Göhrs phy-supply = <&vdd_usb>; 598*518272afSLeonard Göhrs}; 599*518272afSLeonard Göhrs 600*518272afSLeonard Göhrs&v3v3_hdmi { 601*518272afSLeonard Göhrs /delete-property/regulator-always-on; 602*518272afSLeonard Göhrs}; 603*518272afSLeonard Göhrs 604*518272afSLeonard Göhrs&vrefbuf { 605*518272afSLeonard Göhrs regulator-min-microvolt = <2500000>; 606*518272afSLeonard Göhrs regulator-max-microvolt = <2500000>; 607*518272afSLeonard Göhrs vdda-supply = <&vdda>; 608*518272afSLeonard Göhrs 609*518272afSLeonard Göhrs status = "okay"; 610*518272afSLeonard Göhrs}; 611