Commit 518272af authored by Leonard Göhrs's avatar Leonard Göhrs Committed by Alexandre Torgue

ARM: dts: stm32: lxa-tac: add Linux Automation GmbH TAC

The Linux Automation Test Automation Controller (LXA TAC)[1] is an embedded
software development tool built around the Octavo Systems OSD32MP15x SiP.

The device contains an eMMC for storage, a DSA-capable on board ethernet
switch with two external ports, dual CAN busses, a power switch to turn
a device under test on or off and some other I/O.

As of now there are two STM32MP157 based hardware generations (Gen 1 and
Gen 2) that have most of their hardware config in common.
In the future there will also be a STM32MP153 based hardware generation.

[1]: https://www.linux-automation.com/en/products/lxa-tac.htmlSigned-off-by: default avatarLeonard Göhrs <l.goehrs@pengutronix.de>
Signed-off-by: default avatarAlexandre Torgue <alexandre.torgue@foss.st.com>
parent e5894408
......@@ -56,6 +56,8 @@ dtb-$(CONFIG_ARCH_STM32) += \
stm32mp157c-ev1.dtb \
stm32mp157c-ev1-scmi.dtb \
stm32mp157c-lxa-mc1.dtb \
stm32mp157c-lxa-tac-gen1.dtb \
stm32mp157c-lxa-tac-gen2.dtb \
stm32mp157c-odyssey.dtb \
stm32mp157c-phycore-stm32mp1-3.dtb
dtb-$(CONFIG_ARCH_U8500) += \
......
// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause)
/*
* Copyright (C) 2020 STMicroelectronics - All Rights Reserved
* Copyright (C) 2021 Rouven Czerwinski, Pengutronix
* Copyright (C) 2023 Leonard Göhrs, Pengutronix
*/
/dts-v1/;
#include "stm32mp157.dtsi"
#include "stm32mp15xc-lxa-tac.dtsi"
/ {
model = "Linux Automation Test Automation Controller (TAC) Gen 1";
compatible = "lxa,stm32mp157c-tac-gen1", "oct,stm32mp15xx-osd32", "st,stm32mp157";
backlight: backlight {
compatible = "pwm-backlight";
power-supply = <&v3v3>;
brightness-levels = <0 31 63 95 127 159 191 223 255>;
default-brightness-level = <7>;
pwms = <&backlight_pwm 1 1000000 0>;
};
reg_iobus_12v: regulator-iobus-12v {
compatible = "regulator-fixed";
vin-supply = <&reg_12v>;
gpio = <&gpioh 13 GPIO_ACTIVE_HIGH>;
enable-active-high;
regulator-max-microvolt = <12000000>;
regulator-min-microvolt = <12000000>;
regulator-name = "12V_IOBUS";
};
};
&gpioa {
gpio-line-names = "", "", "STACK_CS2", "", "STACK_CS3", /* 0 */
"ETH_GPIO1", "ETH_INT", "", "", "", /* 5 */
"", "", "", "BOOTROM_LED", "ETH_LAB_LEDRP", /* 10 */
""; /* 15 */
};
&gpioc {
gpio-line-names = "", "STACK_CS1", "", "", "", /* 0 */
"", "", "", "", "", /* 5 */
"", ""; /* 10 */
};
&gpu {
status = "disabled";
};
&i2c1 {
powerboard_gpio: gpio@24 {
compatible = "nxp,pca9570";
reg = <0x24>;
#gpio-cells = <2>;
gpio-controller;
gpio-line-names = "DUT_PWR_EN", "DUT_PWR_DISCH", "DUT_PWR_ADCRST", "";
};
};
&spi2 {
adc@0 {
compatible = "ti,lmp92064";
reg = <0>;
spi-max-frequency = <5000000>;
vdd-supply = <&reg_pb_3v3>;
vdig-supply = <&reg_pb_3v3>;
reset-gpios = <&powerboard_gpio 2 GPIO_ACTIVE_HIGH>;
shunt-resistor-micro-ohms = <15000>;
};
};
&timers1 {
/* spare dmas for other usage */
/delete-property/dmas;
/delete-property/dma-names;
status = "okay";
backlight_pwm: pwm {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&pwm1_pins_c>;
pinctrl-1 = <&pwm1_sleep_pins_c>;
status = "okay";
};
};
// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause)
/*
* Copyright (C) 2020 STMicroelectronics - All Rights Reserved
* Copyright (C) 2021 Rouven Czerwinski, Pengutronix
* Copyright (C) 2023 Leonard Göhrs, Pengutronix
*/
/dts-v1/;
#include "stm32mp157.dtsi"
#include "stm32mp15xc-lxa-tac.dtsi"
/ {
model = "Linux Automation Test Automation Controller (TAC) Gen 2";
compatible = "lxa,stm32mp157c-tac-gen2", "oct,stm32mp15xx-osd32", "st,stm32mp157";
backlight: backlight {
compatible = "pwm-backlight";
power-supply = <&v3v3>;
brightness-levels = <0 31 63 95 127 159 191 223 255>;
default-brightness-level = <7>;
pwms = <&led_pwm 3 1000000 0>;
};
reg_iobus_12v: regulator-iobus-12v {
compatible = "regulator-fixed";
vin-supply = <&reg_12v>;
gpio = <&gpioh 13 GPIO_ACTIVE_LOW>;
regulator-max-microvolt = <12000000>;
regulator-min-microvolt = <12000000>;
regulator-name = "12V_IOBUS";
};
led-controller-1 {
compatible = "pwm-leds-multicolor";
multi-led {
color = <LED_COLOR_ID_RGB>;
function = LED_FUNCTION_STATUS;
max-brightness = <65535>;
led-red {
active-low;
color = <LED_COLOR_ID_RED>;
pwms = <&led_pwm 0 1000000 0>;
};
led-green {
active-low;
color = <LED_COLOR_ID_GREEN>;
pwms = <&led_pwm 2 1000000 0>;
};
led-blue {
active-low;
color = <LED_COLOR_ID_BLUE>;
pwms = <&led_pwm 1 1000000 0>;
};
};
};
led-controller-2 {
compatible = "gpio-leds";
led-5 {
label = "tac:green:iobus";
gpios = <&gpiog 1 GPIO_ACTIVE_HIGH>;
};
led-6 {
label = "tac:green:can";
gpios = <&gpiof 3 GPIO_ACTIVE_HIGH>;
};
led-7 {
label = "tac:green:out0";
gpios = <&gpiob 8 GPIO_ACTIVE_HIGH>;
};
led-8 {
label = "tac:green:out1";
gpios = <&gpiog 3 GPIO_ACTIVE_HIGH>;
};
led-9 {
label = "tac:green:uarttx";
gpios = <&gpiod 3 GPIO_ACTIVE_HIGH>;
};
led-10 {
label = "tac:green:uartrx";
gpios = <&gpiof 6 GPIO_ACTIVE_HIGH>;
};
led-11 {
label = "tac:green:usbh1";
gpios = <&gpioc 8 GPIO_ACTIVE_HIGH>;
};
led-12 {
label = "tac:green:usbh2";
gpios = <&gpiod 6 GPIO_ACTIVE_HIGH>;
};
led-13 {
label = "tac:green:usbh3";
gpios = <&gpiob 9 GPIO_ACTIVE_HIGH>;
};
led-14 {
label = "tac:green:usbg";
gpios = <&gpiod 14 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "usb-gadget";
};
led-15 {
label = "tac:green:dutpwr";
gpios = <&gpioa 15 GPIO_ACTIVE_HIGH>;
};
};
};
&gpioa {
gpio-line-names = "", "", "DUT_PWR_EN", "", "STACK_CS3", /* 0 */
"ETH_GPIO1", "ETH_INT", "", "", "", /* 5 */
"", "", "", "BOOTROM_LED", "ETH_LAB_LEDRP", /* 10 */
""; /* 15 */
};
&gpioc {
gpio-line-names = "", "DUT_PWR_DISCH", "", "", "", /* 0 */
"", "", "", "", "", /* 5 */
"", ""; /* 10 */
};
&gpu {
status = "disabled";
};
&m_can2 {
termination-gpios = <&gpioe 4 GPIO_ACTIVE_HIGH>;
termination-ohms = <120>;
};
&spi2 {
adc@0 {
compatible = "ti,lmp92064";
reg = <0>;
reset-gpios = <&gpioa 4 GPIO_ACTIVE_HIGH>;
shunt-resistor-micro-ohms = <15000>;
spi-max-frequency = <5000000>;
vdd-supply = <&reg_pb_3v3>;
vdig-supply = <&reg_pb_3v3>;
};
};
&timers8 {
/* spare dmas for other usage */
/delete-property/dmas;
/delete-property/dma-names;
status = "okay";
led_pwm: pwm {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&pwm8_pins_b>;
pinctrl-1 = <&pwm8_sleep_pins_b>;
status = "okay";
};
};
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment