arm64: dts: imx93-var-som-symphony: align DTS with hardware revision
Subsystems (2)
cover arm64: dts: imx93-var-som-symphony: align DTS with hardware revision
This series updates the i.MX93 VAR-SOM Symphony device tree to match the latest carrier board hardware revision.
The changes add support for onboard peripherals and complete the board configuration with the required GPIO, pinctrl and PWM settings.
Stefano Radaelli (4):
arm64: dts: imx93-var-som-symphony: add TPM support
arm64: dts: imx93-var-som-symphony: enable UART7
arm64: dts: imx93-var-som-symphony: keep RGB_SEL low
arm64: dts: imx93-var-som-symphony: enable TPM3 PWM
.../dts/freescale/imx93-var-som-symphony.dts | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+)
base-commit: b3c1d1631f097619f8091f0293e027c4301285d6
Signature · 1 line
2.47.3
PATCH 1/4 arm64: dts: imx93-var-som-symphony: add TPM support
From: Stefano Radaelli <[email protected]>
Add the ST33KTPM2XI2C TPM device on the Symphony carrier board.
The TPM enable signal is driven through a PCAL6408 GPIO expander, so add the expander on the I2C bus and configure the TPM enable line as a GPIO hog.
--- .../dts/freescale/imx93-var-som-symphony.dts | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+)
arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts +20 -0
@@ -208,6 +208,26 @@ &lpi2c1 { sda-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>; status = "okay"; + pca6408: gpio@21 { + compatible = "nxp,pcal6408"; + reg = <0x21>; + gpio-controller; + #gpio-cells = <2>; + status = "okay"; + + tpm-enable-hog { + gpio-hog; + gpios = <4 GPIO_ACTIVE_HIGH>; + output-high; + line-name = "tpm_en"; + }; + }; + + st33ktpm2xi2c: tpm@2e { + compatible = "st,st33ktpm2xi2c", "tcg,tpm-tis-i2c"; + reg = <0x2e>; + }; + /* Capacitive touch controller */ ft5x06_ts: touchscreen@38 { compatible = "edt,edt-ft5206";
Signature · 1 line
2.47.3
[email protected]
AI reviewRe: [PATCH v1 1/4] arm64: dts: imx93-var-som-symphony: add TPM support
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider: - [High] Using a GPIO hog to enable the TPM device creates an unhandled dependency, leading to potential…
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] Using a GPIO hog to enable the TPM device creates an unhandled dependency, leading to potential probe and suspend/resume failures.
- [Low] The node name and label for the PCAL6408 GPIO expander contain a typo, omitting the letter 'l'.
--
commit bcdb28f289b71a5c2629f6f0cbc1ebb8edd84640
Author: Stefano Radaelli <[email protected]>
arm64: dts: imx93-var-som-symphony: add TPM support
This commit adds support for the ST33KTPM2XI2C TPM device on the Symphony carrier board. It configures the TPM enable line as a GPIO hog on a PCAL6408 expander located on the I2C bus.
arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts &lpi2c1 { · line 211
Quoted 9 lines
arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts +1
-0@@ -208,6 +208,26 @@ &lpi2c1 { sda-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>; status = "okay"; + pca6408: gpio@21 {
[Severity: Low]
This isn't a bug, but the node name and label appear to contain a typo. The commit message and compatible string identify the part as a PCAL6408, but the label and node name omit the letter l.
arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts &lpi2c1 { · line 224
Quoted 13 lines
arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts +13
-0+ compatible = "nxp,pcal6408"; + reg = <0x21>; + gpio-controller; + #gpio-cells = <2>; + status = "okay"; + + tpm-enable-hog { + gpio-hog; + gpios = <4 GPIO_ACTIVE_HIGH>; + output-high; + line-name = "tpm_en"; + }; + };
[Severity: High]
Does using a GPIO hog here create an unhandled probe dependency?
Because the device tree core ignores GPIO hog nodes when parsing dependencies, it doesn't create an explicit supplier/consumer link via fw_devlink. This means there is no guarantee the GPIO expander is probed before the TPM device.
If the drivers are built as modules and loaded in parallel, and the TPM driver happens to bind first, its probe function will attempt an I2C read. Could that read fail because the TPM is still disabled, potentially preventing the device from functioning?
Quoted 5 lines
arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts +5
-0+ st33ktpm2xi2c: tpm@2e { + compatible = "st,st33ktpm2xi2c", "tcg,tpm-tis-i2c"; + reg = <0x2e>; + }; +
[ ... ]
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=1
PATCH 2/4 arm64: dts: imx93-var-som-symphony: enable UART7
In reply to Stefano RadaelliFrom: Stefano Radaelli <[email protected]>
Enable UART7 on the Symphony carrier board and add its pinctrl configuration.
--- .../boot/dts/freescale/imx93-var-som-symphony.dts | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts +14 -0
@@ -35,6 +35,7 @@ aliases { serial3 = &lpuart4; serial4 = &lpuart5; serial5 = &lpuart6; + serial6 = &lpuart7; };
@@ -310,6 +311,12 @@ &lpuart6 { status = "okay"; }; +&lpuart7 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart7>; + status = "okay"; +}; + &usbotg1 { dr_mode = "otg"; hnp-disable;
@@ -446,6 +453,13 @@ MX93_PAD_GPIO_IO04__LPUART6_TX 0x31e >; }; + pinctrl_uart7: uart7grp { + fsl,pins = < + MX93_PAD_GPIO_IO09__LPUART7_RX 0x31e + MX93_PAD_GPIO_IO08__LPUART7_TX 0x31e + >; + }; + pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp { fsl,pins = < MX93_PAD_GPIO_IO18__GPIO2_IO18 0x31e
Signature · 1 line
2.47.3
PATCH 3/4 arm64: dts: imx93-var-som-symphony: keep RGB_SEL low
In reply to Stefano RadaelliFrom: Stefano Radaelli <[email protected]>
Keep the RGB_SEL line driven low on the Symphony carrier board.
This avoids leaving the line floating and ensures the board remains in the expected display configuration.
--- arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts | 8 ++++++++ 1 file changed, 8 insertions(+)
arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts +8 -0
@@ -222,6 +222,14 @@ tpm-enable-hog { output-high; line-name = "tpm_en"; }; + + /* RGB_SEL */ + lvds-brg-enable-hog { + gpio-hog; + gpios = <7 GPIO_ACTIVE_HIGH>; + output-low; + line-name = "lvds_brg_en"; + }; }; st33ktpm2xi2c: tpm@2e {
Signature · 1 line
2.47.3
PATCH 4/4 arm64: dts: imx93-var-som-symphony: enable TPM3 PWM
In reply to Stefano RadaelliFrom: Stefano Radaelli <[email protected]>
Enable TPM3 on the Symphony carrier board and add the pinctrl states for the PWM output and sleep configuration.
--- .../dts/freescale/imx93-var-som-symphony.dts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+)
arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts +19 -0
@@ -325,6 +325,13 @@ &lpuart7 { status = "okay"; }; +&tpm3 { + pinctrl-0 = <&pinctrl_tpm3>; + pinctrl-1 = <&pinctrl_tpm3_sleep>; + pinctrl-names = "default", "sleep"; + status = "okay"; +}; + &usbotg1 { dr_mode = "otg"; hnp-disable;
@@ -447,6 +454,18 @@ MX93_PAD_PDM_BIT_STREAM1__GPIO1_IO10 0x31e >; }; + pinctrl_tpm3: tpm3grp { + fsl,pins = < + MX93_PAD_GPIO_IO24__TPM3_CH3 0x51e + >; + }; + + pinctrl_tpm3_sleep: tpm3sleepgrp { + fsl,pins = < + MX93_PAD_GPIO_IO24__GPIO2_IO24 0x51e + >; + }; + pinctrl_uart1: uart1grp { fsl,pins = < MX93_PAD_UART1_RXD__LPUART1_RX 0x31e
Signature · 1 line
2.47.3