1*08d312c9SLeonard Göhrs// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause) 2*08d312c9SLeonard Göhrs/* 3*08d312c9SLeonard Göhrs * Copyright (C) 2020 STMicroelectronics - All Rights Reserved 4*08d312c9SLeonard Göhrs * Copyright (C) 2021 Rouven Czerwinski, Pengutronix 5*08d312c9SLeonard Göhrs * Copyright (C) 2023, 2024 Leonard Göhrs, Pengutronix 6*08d312c9SLeonard Göhrs */ 7*08d312c9SLeonard Göhrs 8*08d312c9SLeonard Göhrs/dts-v1/; 9*08d312c9SLeonard Göhrs 10*08d312c9SLeonard Göhrs#include "stm32mp153.dtsi" 11*08d312c9SLeonard Göhrs#include "stm32mp15xc-lxa-tac.dtsi" 12*08d312c9SLeonard Göhrs 13*08d312c9SLeonard Göhrs/ { 14*08d312c9SLeonard Göhrs model = "Linux Automation Test Automation Controller (TAC) Gen 3"; 15*08d312c9SLeonard Göhrs compatible = "lxa,stm32mp153c-tac-gen3", "oct,stm32mp153x-osd32", "st,stm32mp153"; 16*08d312c9SLeonard Göhrs 17*08d312c9SLeonard Göhrs backlight: backlight { 18*08d312c9SLeonard Göhrs compatible = "pwm-backlight"; 19*08d312c9SLeonard Göhrs power-supply = <&v3v3>; 20*08d312c9SLeonard Göhrs 21*08d312c9SLeonard Göhrs brightness-levels = <0 31 63 95 127 159 191 223 255>; 22*08d312c9SLeonard Göhrs default-brightness-level = <7>; 23*08d312c9SLeonard Göhrs pwms = <&led_pwm 3 1000000 0>; 24*08d312c9SLeonard Göhrs }; 25*08d312c9SLeonard Göhrs 26*08d312c9SLeonard Göhrs reg_iobus_12v: regulator-iobus-12v { 27*08d312c9SLeonard Göhrs compatible = "regulator-fixed"; 28*08d312c9SLeonard Göhrs vin-supply = <®_12v>; 29*08d312c9SLeonard Göhrs gpio = <&gpioh 13 GPIO_ACTIVE_LOW>; 30*08d312c9SLeonard Göhrs regulator-max-microvolt = <12000000>; 31*08d312c9SLeonard Göhrs regulator-min-microvolt = <12000000>; 32*08d312c9SLeonard Göhrs regulator-name = "12V_IOBUS"; 33*08d312c9SLeonard Göhrs }; 34*08d312c9SLeonard Göhrs 35*08d312c9SLeonard Göhrs led-controller-1 { 36*08d312c9SLeonard Göhrs compatible = "pwm-leds-multicolor"; 37*08d312c9SLeonard Göhrs 38*08d312c9SLeonard Göhrs multi-led { 39*08d312c9SLeonard Göhrs color = <LED_COLOR_ID_RGB>; 40*08d312c9SLeonard Göhrs function = LED_FUNCTION_STATUS; 41*08d312c9SLeonard Göhrs max-brightness = <65535>; 42*08d312c9SLeonard Göhrs 43*08d312c9SLeonard Göhrs led-red { 44*08d312c9SLeonard Göhrs active-low; 45*08d312c9SLeonard Göhrs color = <LED_COLOR_ID_RED>; 46*08d312c9SLeonard Göhrs pwms = <&led_pwm 0 1000000 0>; 47*08d312c9SLeonard Göhrs }; 48*08d312c9SLeonard Göhrs 49*08d312c9SLeonard Göhrs led-green { 50*08d312c9SLeonard Göhrs active-low; 51*08d312c9SLeonard Göhrs color = <LED_COLOR_ID_GREEN>; 52*08d312c9SLeonard Göhrs pwms = <&led_pwm 2 1000000 0>; 53*08d312c9SLeonard Göhrs }; 54*08d312c9SLeonard Göhrs 55*08d312c9SLeonard Göhrs led-blue { 56*08d312c9SLeonard Göhrs active-low; 57*08d312c9SLeonard Göhrs color = <LED_COLOR_ID_BLUE>; 58*08d312c9SLeonard Göhrs pwms = <&led_pwm 1 1000000 0>; 59*08d312c9SLeonard Göhrs }; 60*08d312c9SLeonard Göhrs }; 61*08d312c9SLeonard Göhrs }; 62*08d312c9SLeonard Göhrs 63*08d312c9SLeonard Göhrs led-controller-2 { 64*08d312c9SLeonard Göhrs compatible = "gpio-leds"; 65*08d312c9SLeonard Göhrs 66*08d312c9SLeonard Göhrs led-5 { 67*08d312c9SLeonard Göhrs label = "tac:green:iobus"; 68*08d312c9SLeonard Göhrs gpios = <&gpiog 1 GPIO_ACTIVE_HIGH>; 69*08d312c9SLeonard Göhrs }; 70*08d312c9SLeonard Göhrs 71*08d312c9SLeonard Göhrs led-6 { 72*08d312c9SLeonard Göhrs label = "tac:green:can"; 73*08d312c9SLeonard Göhrs gpios = <&gpiof 3 GPIO_ACTIVE_HIGH>; 74*08d312c9SLeonard Göhrs }; 75*08d312c9SLeonard Göhrs 76*08d312c9SLeonard Göhrs led-7 { 77*08d312c9SLeonard Göhrs label = "tac:green:out0"; 78*08d312c9SLeonard Göhrs gpios = <&gpiob 8 GPIO_ACTIVE_HIGH>; 79*08d312c9SLeonard Göhrs }; 80*08d312c9SLeonard Göhrs 81*08d312c9SLeonard Göhrs led-8 { 82*08d312c9SLeonard Göhrs label = "tac:green:out1"; 83*08d312c9SLeonard Göhrs gpios = <&gpiog 3 GPIO_ACTIVE_HIGH>; 84*08d312c9SLeonard Göhrs }; 85*08d312c9SLeonard Göhrs 86*08d312c9SLeonard Göhrs led-9 { 87*08d312c9SLeonard Göhrs label = "tac:green:uarttx"; 88*08d312c9SLeonard Göhrs gpios = <&gpiod 3 GPIO_ACTIVE_HIGH>; 89*08d312c9SLeonard Göhrs }; 90*08d312c9SLeonard Göhrs 91*08d312c9SLeonard Göhrs led-10 { 92*08d312c9SLeonard Göhrs label = "tac:green:uartrx"; 93*08d312c9SLeonard Göhrs gpios = <&gpiof 6 GPIO_ACTIVE_HIGH>; 94*08d312c9SLeonard Göhrs }; 95*08d312c9SLeonard Göhrs 96*08d312c9SLeonard Göhrs led-11 { 97*08d312c9SLeonard Göhrs label = "tac:green:usbh1"; 98*08d312c9SLeonard Göhrs gpios = <&gpioc 8 GPIO_ACTIVE_HIGH>; 99*08d312c9SLeonard Göhrs }; 100*08d312c9SLeonard Göhrs 101*08d312c9SLeonard Göhrs led-12 { 102*08d312c9SLeonard Göhrs label = "tac:green:usbh2"; 103*08d312c9SLeonard Göhrs gpios = <&gpiod 6 GPIO_ACTIVE_HIGH>; 104*08d312c9SLeonard Göhrs }; 105*08d312c9SLeonard Göhrs 106*08d312c9SLeonard Göhrs led-13 { 107*08d312c9SLeonard Göhrs label = "tac:green:usbh3"; 108*08d312c9SLeonard Göhrs gpios = <&gpiob 9 GPIO_ACTIVE_HIGH>; 109*08d312c9SLeonard Göhrs }; 110*08d312c9SLeonard Göhrs 111*08d312c9SLeonard Göhrs led-14 { 112*08d312c9SLeonard Göhrs label = "tac:green:usbg"; 113*08d312c9SLeonard Göhrs gpios = <&gpiod 14 GPIO_ACTIVE_HIGH>; 114*08d312c9SLeonard Göhrs linux,default-trigger = "usb-gadget"; 115*08d312c9SLeonard Göhrs }; 116*08d312c9SLeonard Göhrs 117*08d312c9SLeonard Göhrs led-15 { 118*08d312c9SLeonard Göhrs label = "tac:green:dutpwr"; 119*08d312c9SLeonard Göhrs gpios = <&gpioa 15 GPIO_ACTIVE_HIGH>; 120*08d312c9SLeonard Göhrs }; 121*08d312c9SLeonard Göhrs }; 122*08d312c9SLeonard Göhrs}; 123*08d312c9SLeonard Göhrs 124*08d312c9SLeonard Göhrs&adc { 125*08d312c9SLeonard Göhrs pinctrl-names = "default"; 126*08d312c9SLeonard Göhrs pinctrl-0 = <&board_adc1_ain_pins>; 127*08d312c9SLeonard Göhrs vdd-supply = <&vdd>; 128*08d312c9SLeonard Göhrs vdda-supply = <&vdda>; 129*08d312c9SLeonard Göhrs vref-supply = <&vrefbuf>; 130*08d312c9SLeonard Göhrs status = "okay"; 131*08d312c9SLeonard Göhrs 132*08d312c9SLeonard Göhrs adc1: adc@0 { 133*08d312c9SLeonard Göhrs st,adc-channels = <2 5 9 10 13 14 15 18>; 134*08d312c9SLeonard Göhrs st,min-sample-time-nsecs = <5000>; 135*08d312c9SLeonard Göhrs #address-cells = <1>; 136*08d312c9SLeonard Göhrs #size-cells = <0>; 137*08d312c9SLeonard Göhrs status = "okay"; 138*08d312c9SLeonard Göhrs 139*08d312c9SLeonard Göhrs channel@2 { 140*08d312c9SLeonard Göhrs reg = <2>; 141*08d312c9SLeonard Göhrs label = "OUT_0_FB"; 142*08d312c9SLeonard Göhrs }; 143*08d312c9SLeonard Göhrs 144*08d312c9SLeonard Göhrs channel@5 { 145*08d312c9SLeonard Göhrs reg = <5>; 146*08d312c9SLeonard Göhrs label = "IOBUS_CURR_FB"; 147*08d312c9SLeonard Göhrs }; 148*08d312c9SLeonard Göhrs 149*08d312c9SLeonard Göhrs channel@9 { 150*08d312c9SLeonard Göhrs reg = <9>; 151*08d312c9SLeonard Göhrs label = "IOBUS_VOLT_FB"; 152*08d312c9SLeonard Göhrs }; 153*08d312c9SLeonard Göhrs 154*08d312c9SLeonard Göhrs channel@10 { 155*08d312c9SLeonard Göhrs reg = <10>; 156*08d312c9SLeonard Göhrs label = "OUT_1_FB"; 157*08d312c9SLeonard Göhrs }; 158*08d312c9SLeonard Göhrs 159*08d312c9SLeonard Göhrs channel@13 { 160*08d312c9SLeonard Göhrs reg = <13>; 161*08d312c9SLeonard Göhrs label = "HOST_CURR_FB"; 162*08d312c9SLeonard Göhrs }; 163*08d312c9SLeonard Göhrs 164*08d312c9SLeonard Göhrs channel@14 { 165*08d312c9SLeonard Göhrs reg = <14>; 166*08d312c9SLeonard Göhrs label = "HOST_3_CURR_FB"; 167*08d312c9SLeonard Göhrs }; 168*08d312c9SLeonard Göhrs 169*08d312c9SLeonard Göhrs channel@15 { 170*08d312c9SLeonard Göhrs reg = <15>; 171*08d312c9SLeonard Göhrs label = "HOST_1_CURR_FB"; 172*08d312c9SLeonard Göhrs }; 173*08d312c9SLeonard Göhrs 174*08d312c9SLeonard Göhrs channel@18 { 175*08d312c9SLeonard Göhrs reg = <18>; 176*08d312c9SLeonard Göhrs label = "HOST_2_CURR_FB"; 177*08d312c9SLeonard Göhrs }; 178*08d312c9SLeonard Göhrs }; 179*08d312c9SLeonard Göhrs 180*08d312c9SLeonard Göhrs adc2: adc@100 { 181*08d312c9SLeonard Göhrs st,adc-channels = <12>; 182*08d312c9SLeonard Göhrs st,min-sample-time-nsecs = <500000>; 183*08d312c9SLeonard Göhrs #address-cells = <1>; 184*08d312c9SLeonard Göhrs #size-cells = <0>; 185*08d312c9SLeonard Göhrs status = "okay"; 186*08d312c9SLeonard Göhrs 187*08d312c9SLeonard Göhrs channel@12 { 188*08d312c9SLeonard Göhrs reg = <12>; 189*08d312c9SLeonard Göhrs label = "TEMP_INTERNAL"; 190*08d312c9SLeonard Göhrs }; 191*08d312c9SLeonard Göhrs }; 192*08d312c9SLeonard Göhrs}; 193*08d312c9SLeonard Göhrs 194*08d312c9SLeonard Göhrs&gpioa { 195*08d312c9SLeonard Göhrs gpio-line-names = "", "", "", "", "", /* 0 */ 196*08d312c9SLeonard Göhrs "ETH_GPIO1", "ETH_INT", "", "", "", /* 5 */ 197*08d312c9SLeonard Göhrs "", "", "", "BOOTROM_LED", "ETH_LAB_LEDRP", /* 10 */ 198*08d312c9SLeonard Göhrs ""; /* 15 */ 199*08d312c9SLeonard Göhrs}; 200*08d312c9SLeonard Göhrs 201*08d312c9SLeonard Göhrs&gpioc { 202*08d312c9SLeonard Göhrs gpio-line-names = "", "DUT_PWR_DISCH", "", "", "", /* 0 */ 203*08d312c9SLeonard Göhrs "", "", "", "", "", /* 5 */ 204*08d312c9SLeonard Göhrs "", ""; /* 10 */ 205*08d312c9SLeonard Göhrs}; 206*08d312c9SLeonard Göhrs 207*08d312c9SLeonard Göhrs&gpioe { 208*08d312c9SLeonard Göhrs gpio-line-names = "TP35", "", "", "", "CAN_1_120R", /* 0 */ 209*08d312c9SLeonard Göhrs "", "", "USER_BTN2", "DUT_PWR_EN", "UART_TX_EN", /* 5 */ 210*08d312c9SLeonard Göhrs "UART_RX_EN", "TP24", "", "TP25", "TP26", /* 10 */ 211*08d312c9SLeonard Göhrs "TP27"; /* 15 */ 212*08d312c9SLeonard Göhrs}; 213*08d312c9SLeonard Göhrs 214*08d312c9SLeonard Göhrs&gpiog { 215*08d312c9SLeonard Göhrs gpio-line-names = "ETH_RESET", "", "", "", "", /* 0 */ 216*08d312c9SLeonard Göhrs "IOBUS_FLT_FB", "", "USER_LED2", "ETH1_PPS_A", "CAN_0_120R", /* 5 */ 217*08d312c9SLeonard Göhrs "POWER_ADC_RESET", "", "", "", "", /* 10 */ 218*08d312c9SLeonard Göhrs ""; /* 15 */ 219*08d312c9SLeonard Göhrs}; 220*08d312c9SLeonard Göhrs 221*08d312c9SLeonard Göhrs&m_can2 { 222*08d312c9SLeonard Göhrs termination-gpios = <&gpioe 4 GPIO_ACTIVE_HIGH>; 223*08d312c9SLeonard Göhrs termination-ohms = <120>; 224*08d312c9SLeonard Göhrs}; 225*08d312c9SLeonard Göhrs 226*08d312c9SLeonard Göhrs&pinctrl { 227*08d312c9SLeonard Göhrs board_adc1_ain_pins: board-adc1-ain-0 { 228*08d312c9SLeonard Göhrs pins { 229*08d312c9SLeonard Göhrs pinmux = <STM32_PINMUX('F', 11, ANALOG)>, /* ADC1_INP2 */ 230*08d312c9SLeonard Göhrs <STM32_PINMUX('B', 1, ANALOG)>, /* ADC1_INP5 */ 231*08d312c9SLeonard Göhrs <STM32_PINMUX('B', 0, ANALOG)>, /* ADC1_INP9 */ 232*08d312c9SLeonard Göhrs <STM32_PINMUX('C', 0, ANALOG)>, /* ADC1_INP10 */ 233*08d312c9SLeonard Göhrs <STM32_PINMUX('C', 3, ANALOG)>, /* ADC1_INP13 */ 234*08d312c9SLeonard Göhrs <STM32_PINMUX('A', 2, ANALOG)>, /* ADC1_INP14 */ 235*08d312c9SLeonard Göhrs <STM32_PINMUX('A', 3, ANALOG)>, /* ADC1_INP15 */ 236*08d312c9SLeonard Göhrs <STM32_PINMUX('A', 4, ANALOG)>; /* ADC1_INP18 */ 237*08d312c9SLeonard Göhrs }; 238*08d312c9SLeonard Göhrs }; 239*08d312c9SLeonard Göhrs}; 240*08d312c9SLeonard Göhrs 241*08d312c9SLeonard Göhrs&spi2 { 242*08d312c9SLeonard Göhrs adc@0 { 243*08d312c9SLeonard Göhrs compatible = "ti,lmp92064"; 244*08d312c9SLeonard Göhrs reg = <0>; 245*08d312c9SLeonard Göhrs 246*08d312c9SLeonard Göhrs reset-gpios = <&gpiog 10 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 247*08d312c9SLeonard Göhrs shunt-resistor-micro-ohms = <15000>; 248*08d312c9SLeonard Göhrs spi-max-frequency = <5000000>; 249*08d312c9SLeonard Göhrs vdd-supply = <®_pb_3v3>; 250*08d312c9SLeonard Göhrs vdig-supply = <®_pb_3v3>; 251*08d312c9SLeonard Göhrs }; 252*08d312c9SLeonard Göhrs}; 253*08d312c9SLeonard Göhrs 254*08d312c9SLeonard Göhrs&timers8 { 255*08d312c9SLeonard Göhrs /* spare dmas for other usage */ 256*08d312c9SLeonard Göhrs /delete-property/dmas; 257*08d312c9SLeonard Göhrs /delete-property/dma-names; 258*08d312c9SLeonard Göhrs 259*08d312c9SLeonard Göhrs status = "okay"; 260*08d312c9SLeonard Göhrs 261*08d312c9SLeonard Göhrs led_pwm: pwm { 262*08d312c9SLeonard Göhrs pinctrl-names = "default", "sleep"; 263*08d312c9SLeonard Göhrs pinctrl-0 = <&pwm8_pins_b>; 264*08d312c9SLeonard Göhrs pinctrl-1 = <&pwm8_sleep_pins_b>; 265*08d312c9SLeonard Göhrs status = "okay"; 266*08d312c9SLeonard Göhrs }; 267*08d312c9SLeonard Göhrs}; 268