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