* [PATCH v1 1/4] arm64: dts: imx93-var-som-symphony: add TPM support
2026-05-29 10:10 [PATCH v1 0/4] arm64: dts: imx93-var-som-symphony: align DTS with hardware revision Stefano Radaelli
@ 2026-05-29 10:10 ` Stefano Radaelli
2026-05-29 10:35 ` sashiko-bot
2026-05-29 10:10 ` [PATCH v1 2/4] arm64: dts: imx93-var-som-symphony: enable UART7 Stefano Radaelli
` (2 subsequent siblings)
3 siblings, 1 reply; 6+ messages in thread
From: Stefano Radaelli @ 2026-05-29 10:10 UTC (permalink / raw)
To: linux-kernel, devicetree, imx, linux-arm-kernel
Cc: pierluigi.p, Stefano Radaelli, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Frank Li, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam
From: Stefano Radaelli <stefano.r@variscite.com>
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.
Signed-off-by: Stefano Radaelli <stefano.r@variscite.com>
---
.../dts/freescale/imx93-var-som-symphony.dts | 20 +++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts b/arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts
index c0842fb3cfa3..ea996a36b022 100644
--- a/arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts
+++ b/arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts
@@ -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";
--
2.47.3
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH v1 1/4] arm64: dts: imx93-var-som-symphony: add TPM support
2026-05-29 10:10 ` [PATCH v1 1/4] arm64: dts: imx93-var-som-symphony: add TPM support Stefano Radaelli
@ 2026-05-29 10:35 ` sashiko-bot
0 siblings, 0 replies; 6+ messages in thread
From: sashiko-bot @ 2026-05-29 10:35 UTC (permalink / raw)
To: Stefano Radaelli; +Cc: Frank.Li, conor+dt, robh, imx, devicetree
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 <stefano.r@variscite.com>
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.
> diff --git a/arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts b/arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts
> index c0842fb3cfa33..ea996a36b0228 100644
> --- a/arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts
> +++ b/arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts
> @@ -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.
> + 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?
> + st33ktpm2xi2c: tpm@2e {
> + compatible = "st,st33ktpm2xi2c", "tcg,tpm-tis-i2c";
> + reg = <0x2e>;
> + };
> +
[ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/cover.1780049085.git.stefano.r@variscite.com?part=1
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v1 2/4] arm64: dts: imx93-var-som-symphony: enable UART7
2026-05-29 10:10 [PATCH v1 0/4] arm64: dts: imx93-var-som-symphony: align DTS with hardware revision Stefano Radaelli
2026-05-29 10:10 ` [PATCH v1 1/4] arm64: dts: imx93-var-som-symphony: add TPM support Stefano Radaelli
@ 2026-05-29 10:10 ` Stefano Radaelli
2026-05-29 10:10 ` [PATCH v1 3/4] arm64: dts: imx93-var-som-symphony: keep RGB_SEL low Stefano Radaelli
2026-05-29 10:10 ` [PATCH v1 4/4] arm64: dts: imx93-var-som-symphony: enable TPM3 PWM Stefano Radaelli
3 siblings, 0 replies; 6+ messages in thread
From: Stefano Radaelli @ 2026-05-29 10:10 UTC (permalink / raw)
To: linux-kernel, devicetree, imx, linux-arm-kernel
Cc: pierluigi.p, Stefano Radaelli, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Frank Li, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam
From: Stefano Radaelli <stefano.r@variscite.com>
Enable UART7 on the Symphony carrier board and add its pinctrl
configuration.
Signed-off-by: Stefano Radaelli <stefano.r@variscite.com>
---
.../boot/dts/freescale/imx93-var-som-symphony.dts | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts b/arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts
index ea996a36b022..a5fe8432ae59 100644
--- a/arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts
+++ b/arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts
@@ -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
--
2.47.3
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH v1 3/4] arm64: dts: imx93-var-som-symphony: keep RGB_SEL low
2026-05-29 10:10 [PATCH v1 0/4] arm64: dts: imx93-var-som-symphony: align DTS with hardware revision Stefano Radaelli
2026-05-29 10:10 ` [PATCH v1 1/4] arm64: dts: imx93-var-som-symphony: add TPM support Stefano Radaelli
2026-05-29 10:10 ` [PATCH v1 2/4] arm64: dts: imx93-var-som-symphony: enable UART7 Stefano Radaelli
@ 2026-05-29 10:10 ` Stefano Radaelli
2026-05-29 10:10 ` [PATCH v1 4/4] arm64: dts: imx93-var-som-symphony: enable TPM3 PWM Stefano Radaelli
3 siblings, 0 replies; 6+ messages in thread
From: Stefano Radaelli @ 2026-05-29 10:10 UTC (permalink / raw)
To: linux-kernel, devicetree, imx, linux-arm-kernel
Cc: pierluigi.p, Stefano Radaelli, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Frank Li, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam
From: Stefano Radaelli <stefano.r@variscite.com>
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.
Signed-off-by: Stefano Radaelli <stefano.r@variscite.com>
---
arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts b/arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts
index a5fe8432ae59..23b359e39094 100644
--- a/arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts
+++ b/arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts
@@ -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 {
--
2.47.3
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH v1 4/4] arm64: dts: imx93-var-som-symphony: enable TPM3 PWM
2026-05-29 10:10 [PATCH v1 0/4] arm64: dts: imx93-var-som-symphony: align DTS with hardware revision Stefano Radaelli
` (2 preceding siblings ...)
2026-05-29 10:10 ` [PATCH v1 3/4] arm64: dts: imx93-var-som-symphony: keep RGB_SEL low Stefano Radaelli
@ 2026-05-29 10:10 ` Stefano Radaelli
3 siblings, 0 replies; 6+ messages in thread
From: Stefano Radaelli @ 2026-05-29 10:10 UTC (permalink / raw)
To: linux-kernel, devicetree, imx, linux-arm-kernel
Cc: pierluigi.p, Stefano Radaelli, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Frank Li, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam
From: Stefano Radaelli <stefano.r@variscite.com>
Enable TPM3 on the Symphony carrier board and add the pinctrl states for
the PWM output and sleep configuration.
Signed-off-by: Stefano Radaelli <stefano.r@variscite.com>
---
.../dts/freescale/imx93-var-som-symphony.dts | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts b/arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts
index 23b359e39094..7f79cd7e7a4c 100644
--- a/arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts
+++ b/arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts
@@ -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
--
2.47.3
^ permalink raw reply related [flat|nested] 6+ messages in thread