* [PATCH v4 1/3] dt-bindings: phy: ti,tcan104x-can: Document Microchip ATA6563
@ 2026-09-17 6:25 Marek Vasut
2026-09-17 6:25 ` [PATCH v4 2/3] dt-bindings: arm: fsl: Document Data Modul i.MX95 eDM SBC Marek Vasut
` (3 more replies)
0 siblings, 4 replies; 19+ messages in thread
From: Marek Vasut @ 2026-09-17 6:25 UTC (permalink / raw)
To: linux-arm-kernel
Cc: Marek Vasut, Aswath Govindraju, Conor Dooley, Fabio Estevam,
Frank Li, Krzysztof Kozlowski, Marc Kleine-Budde, Rob Herring,
devicetree, imx, linux-can, linux-kernel
Microchip ATA6563 is High-Speed CAN Transceiver with Standby Mode.
It is pin-compatible with TI TCAN1042 and has a compatible programming
model, therefore use ti,tcan1042 as fallback compatible.
Signed-off-by: Marek Vasut <marex@nabladev.com>
---
Cc: Aswath Govindraju <a-govindraju@ti.com>
Cc: Conor Dooley <conor+dt@kernel.org>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Frank Li <Frank.Li@nxp.com>
Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
Cc: Marc Kleine-Budde <mkl@pengutronix.de>
Cc: Rob Herring <robh@kernel.org>
Cc: devicetree@vger.kernel.org
Cc: imx@lists.linux.dev
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-can@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
V2: No change
V3: No change
V4: No change
---
Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml b/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml
index 9f5c37ca6496a..75c276548e122 100644
--- a/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml
+++ b/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml
@@ -18,6 +18,7 @@ properties:
- items:
- enum:
- microchip,ata6561
+ - microchip,ata6563
- ti,tcan1051
- const: ti,tcan1042
- items:
--
2.53.0
^ permalink raw reply related [flat|nested] 19+ messages in thread* [PATCH v4 2/3] dt-bindings: arm: fsl: Document Data Modul i.MX95 eDM SBC 2026-09-17 6:25 [PATCH v4 1/3] dt-bindings: phy: ti,tcan104x-can: Document Microchip ATA6563 Marek Vasut @ 2026-09-17 6:25 ` Marek Vasut 2026-09-18 11:01 ` Krzysztof Kozlowski 2026-09-17 6:25 ` [PATCH v4 3/3] arm64: dts: imx95: Add support for " Marek Vasut ` (2 subsequent siblings) 3 siblings, 1 reply; 19+ messages in thread From: Marek Vasut @ 2026-09-17 6:25 UTC (permalink / raw) To: linux-arm-kernel Cc: Marek Vasut, Aswath Govindraju, Conor Dooley, Fabio Estevam, Frank Li, Krzysztof Kozlowski, Marc Kleine-Budde, Rob Herring, devicetree, imx, linux-can, linux-kernel Document Data Modul i.MX95 eDM SBC board. This is an evaluation board for various custom display units. Currently supported are serial console, ethernet, eMMC, SD, SPI NOR, USB host and PCIe. Signed-off-by: Marek Vasut <marex@nabladev.com> --- Cc: Aswath Govindraju <a-govindraju@ti.com> Cc: Conor Dooley <conor+dt@kernel.org> Cc: Fabio Estevam <festevam@gmail.com> Cc: Frank Li <Frank.Li@nxp.com> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org> Cc: Marc Kleine-Budde <mkl@pengutronix.de> Cc: Rob Herring <robh@kernel.org> Cc: devicetree@vger.kernel.org Cc: imx@lists.linux.dev Cc: linux-arm-kernel@lists.infradead.org Cc: linux-can@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- V2: No change V3: No change V4: No change --- Documentation/devicetree/bindings/arm/fsl.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/arm/fsl.yaml b/Documentation/devicetree/bindings/arm/fsl.yaml index 36e28e0e4ad99..04abae2018043 100644 --- a/Documentation/devicetree/bindings/arm/fsl.yaml +++ b/Documentation/devicetree/bindings/arm/fsl.yaml @@ -1548,6 +1548,7 @@ properties: - description: i.MX95 based Boards items: - enum: + - dmo,imx95-data-modul-edm-sbc # i.MX95 eDM SBC - fsl,imx95-15x15-ab2 # i.MX95 15x15 Audio Board V2 - fsl,imx95-15x15-evk # i.MX95 15x15 EVK Board - fsl,imx95-15x15-frdm # i.MX95 15x15 FRDM Board -- 2.53.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH v4 2/3] dt-bindings: arm: fsl: Document Data Modul i.MX95 eDM SBC 2026-09-17 6:25 ` [PATCH v4 2/3] dt-bindings: arm: fsl: Document Data Modul i.MX95 eDM SBC Marek Vasut @ 2026-09-18 11:01 ` Krzysztof Kozlowski 0 siblings, 0 replies; 19+ messages in thread From: Krzysztof Kozlowski @ 2026-09-18 11:01 UTC (permalink / raw) To: Marek Vasut Cc: linux-arm-kernel, Aswath Govindraju, Conor Dooley, Fabio Estevam, Frank Li, Krzysztof Kozlowski, Marc Kleine-Budde, Rob Herring, devicetree, imx, linux-can, linux-kernel On Thu, Sep 17, 2026 at 08:25:27AM +0200, Marek Vasut wrote: > Document Data Modul i.MX95 eDM SBC board. This is an evaluation > board for various custom display units. Currently supported are > serial console, ethernet, eMMC, SD, SPI NOR, USB host and PCIe. > > Signed-off-by: Marek Vasut <marex@nabladev.com> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Best regards, Krzysztof ^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH v4 3/3] arm64: dts: imx95: Add support for Data Modul i.MX95 eDM SBC 2026-09-17 6:25 [PATCH v4 1/3] dt-bindings: phy: ti,tcan104x-can: Document Microchip ATA6563 Marek Vasut 2026-09-17 6:25 ` [PATCH v4 2/3] dt-bindings: arm: fsl: Document Data Modul i.MX95 eDM SBC Marek Vasut @ 2026-09-17 6:25 ` Marek Vasut 2026-09-17 6:35 ` sashiko-bot 2026-09-17 6:31 ` [PATCH v4 1/3] dt-bindings: phy: ti,tcan104x-can: Document Microchip ATA6563 sashiko-bot 2026-09-18 10:58 ` Krzysztof Kozlowski 3 siblings, 1 reply; 19+ messages in thread From: Marek Vasut @ 2026-09-17 6:25 UTC (permalink / raw) To: linux-arm-kernel Cc: Marek Vasut, Aswath Govindraju, Conor Dooley, Fabio Estevam, Frank Li, Krzysztof Kozlowski, Marc Kleine-Budde, Rob Herring, devicetree, imx, linux-can, linux-kernel Add support for Data Modul i.MX95 eDM SBC board. This is an evaluation board for various custom display units. Currently supported are serial console, ethernet, eMMC, SD, SPI NOR, USB host and PCIe. Signed-off-by: Marek Vasut <marex@nabladev.com> --- Cc: Aswath Govindraju <a-govindraju@ti.com> Cc: Conor Dooley <conor+dt@kernel.org> Cc: Fabio Estevam <festevam@gmail.com> Cc: Frank Li <Frank.Li@nxp.com> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org> Cc: Marc Kleine-Budde <mkl@pengutronix.de> Cc: Rob Herring <robh@kernel.org> Cc: devicetree@vger.kernel.org Cc: imx@lists.linux.dev Cc: linux-arm-kernel@lists.infradead.org Cc: linux-can@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- V2: - Rename PCIE_M2-E_EN to PCIE_M2-M_EN - Fix the PCAL expander GPIO reset V3: - Fix regulator-5p0v node name - Use reset-gpios consistently V4: - Replace gpio with gpios DT property --- arch/arm64/boot/dts/freescale/Makefile | 1 + .../freescale/imx95-data-modul-edm-sbc.dts | 1111 +++++++++++++++++ 2 files changed, 1112 insertions(+) create mode 100644 arch/arm64/boot/dts/freescale/imx95-data-modul-edm-sbc.dts diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile index 7944e3b325130..8e4c4464788e4 100644 --- a/arch/arm64/boot/dts/freescale/Makefile +++ b/arch/arm64/boot/dts/freescale/Makefile @@ -955,6 +955,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx95-19x19-evk-sof.dtb dtb-$(CONFIG_ARCH_MXC) += imx95-19x19-frdm-pro.dtb dtb-$(CONFIG_ARCH_MXC) += imx95-aquila-clover.dtb dtb-$(CONFIG_ARCH_MXC) += imx95-aquila-dev.dtb +dtb-$(CONFIG_ARCH_MXC) += imx95-data-modul-edm-sbc.dtb dtb-$(CONFIG_ARCH_MXC) += imx95-toradex-smarc-dev.dtb dtb-$(CONFIG_ARCH_MXC) += imx95-tqma9596la-mba95xxca.dtb dtb-$(CONFIG_ARCH_MXC) += imx95-tqma9596sa-mb-smarc-2.dtb diff --git a/arch/arm64/boot/dts/freescale/imx95-data-modul-edm-sbc.dts b/arch/arm64/boot/dts/freescale/imx95-data-modul-edm-sbc.dts new file mode 100644 index 0000000000000..0181262eb8a98 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx95-data-modul-edm-sbc.dts @@ -0,0 +1,1111 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (C) 2025-2026 Marek Vasut <marex@nabladev.com> + */ + +/dts-v1/; + +#include <dt-bindings/i3c/i3c.h> +#include <dt-bindings/leds/common.h> +#include <dt-bindings/pwm/pwm.h> +#include <dt-bindings/usb/pd.h> +#include "imx95.dtsi" + +/ { + model = "Data Modul i.MX95 eDM SBC"; + compatible = "dmo,imx95-data-modul-edm-sbc", "fsl,imx95"; + + aliases { + ethernet0 = &enetc_port0; + ethernet1 = &enetc_port1; + gpio0 = &gpio1; + gpio1 = &gpio2; + gpio2 = &gpio3; + gpio3 = &gpio4; + gpio4 = &gpio5; + i2c0 = &lpi2c1; + i2c1 = &lpi2c2; + i2c2 = &lpi2c5; + mmc0 = &usdhc1; + mmc1 = &usdhc2; + mmc2 = &usdhc3; + serial0 = &lpuart1; + serial1 = &lpuart2; + serial2 = &lpuart5; + serial3 = &lpuart7; + serial4 = &lpuart8; + }; + + chosen { + stdout-path = &lpuart1; + }; + + memory@80000000 { + device_type = "memory"; + reg = <0x0 0x80000000 0 0x80000000>; + }; + + backlight_dsi: backlight-dsi { + compatible = "pwm-backlight"; + brightness-levels = <0 1 10 20 30 40 50 60 70 75 80 90 100>; + default-brightness-level = <7>; + enable-gpios = <&i2c2_gpio_expander_21 12 GPIO_ACTIVE_HIGH>; + pwms = <&tpm4 3 5000000 0>; + /* Disabled by default, unless display board plugged in. */ + status = "disabled"; + }; + + backlight_lvds: backlight-lvds { + compatible = "pwm-backlight"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_panel_backlight_lvds>; + brightness-levels = <0 1 10 20 30 40 50 60 70 75 80 90 100>; + default-brightness-level = <7>; + enable-gpios = <&gpio2 27 GPIO_ACTIVE_HIGH>; + pwms = <&tpm3 3 5000000 0>; + /* Disabled by default, unless display board plugged in. */ + status = "disabled"; + }; + + bt_sco_codec: bt-sco-codec { + compatible = "linux,bt-sco"; + #sound-dai-cells = <1>; + }; + + flexcan3_phy: can-phy0 { + compatible = "microchip,ata6563", "ti,tcan1042"; + #phy-cells = <0>; + max-bitrate = <5000000>; + standby-gpios = <&i2c2_gpio_expander_20 15 GPIO_ACTIVE_HIGH>; + }; + + flexcan5_phy: can-phy1 { + compatible = "microchip,ata6563", "ti,tcan1042"; + #phy-cells = <0>; + max-bitrate = <5000000>; + standby-gpios = <&i2c2_gpio_expander_20 16 GPIO_ACTIVE_HIGH>; + }; + + led { + compatible = "gpio-leds"; + pinctrl-0 = <&pinctrl_led>; + pinctrl-names = "default"; + + led-0 { + color = <LED_COLOR_ID_GREEN>; + default-state = "off"; + function = LED_FUNCTION_INDICATOR; + function-enumerator = <0>; + gpios = <&gpio5 9 GPIO_ACTIVE_HIGH>; + }; + + led-1 { + color = <LED_COLOR_ID_RED>; + default-state = "off"; + function = LED_FUNCTION_INDICATOR; + function-enumerator = <0>; + gpios = <&gpio5 8 GPIO_ACTIVE_HIGH>; + }; + }; + + reg_1p8v: regulator-1p8v { + compatible = "regulator-fixed"; + regulator-max-microvolt = <1800000>; + regulator-min-microvolt = <1800000>; + regulator-name = "VDD_1V8"; + }; + + /* PF09 SW1, but the PMIC is controlled by CM33 */ + reg_3p3v: regulator-3p3v { + compatible = "regulator-fixed"; + regulator-max-microvolt = <3300000>; + regulator-min-microvolt = <3300000>; + regulator-name = "VDD_3V3"; + }; + + reg_5p0v: regulator-5p0v { + compatible = "regulator-fixed"; + regulator-max-microvolt = <5000000>; + regulator-min-microvolt = <5000000>; + regulator-name = "VDD_5V0"; + }; + + reg_panel_vcc: regulator-panel-vcc { + compatible = "regulator-fixed"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "PANEL_VCC"; + gpios = <&i2c2_gpio_expander_20 17 0>; + /* Disabled by default, unless display board plugged in. */ + status = "disabled"; + }; + + reg_pcie0: regulator-pcie0 { + compatible = "regulator-fixed"; + regulator-max-microvolt = <3300000>; + regulator-min-microvolt = <3300000>; + regulator-name = "PCIE_M2-B_EN"; + gpios = <&i2c2_gpio_expander_20 6 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + reg_pcie1: regulator-pcie1 { + compatible = "regulator-fixed"; + regulator-name = "PCIE_M2-M_EN"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + gpios = <&i2c2_gpio_expander_21 7 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + reg_usb2_vbus: regulator-usb2-vbus { + compatible = "regulator-fixed"; + regulator-name = "USB2_VBUS"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + gpios = <&i2c2_gpio_expander_21 16 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + reg_usdhc2_vmmc: regulator-usdhc2 { + compatible = "regulator-fixed"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "VDD_SD2_3V3"; + }; + + sound-bt-sco { + compatible = "simple-audio-card"; + simple-audio-card,bitclock-inversion; + simple-audio-card,bitclock-master = <&btcpu>; + simple-audio-card,format = "dsp_a"; + simple-audio-card,frame-master = <&btcpu>; + simple-audio-card,name = "bt-sco-audio"; + + simple-audio-card,codec { + sound-dai = <&bt_sco_codec 1>; + }; + + btcpu: simple-audio-card,cpu { + dai-tdm-slot-num = <2>; + dai-tdm-slot-width = <16>; + sound-dai = <&sai5>; + }; + }; + + sound-micfil { + compatible = "fsl,imx-audio-card"; + model = "micfil-audio"; + + pri-dai-link { + link-name = "micfil hifi"; + format = "i2s"; + cpu { + sound-dai = <&micfil>; + }; + }; + }; + + sound-tas2552 { + compatible = "simple-audio-card"; + simple-audio-card,bitclock-master = <&cpudai>; + simple-audio-card,format = "i2s"; + simple-audio-card,frame-master = <&cpudai>; + simple-audio-card,mclk-fs = <256>; + simple-audio-card,name = "tas2552-audio"; + simple-audio-card,routing = "Speaker", "OUT"; + simple-audio-card,widgets = "Speaker", "Speaker"; + + simple-audio-card,codec { + sound-dai = <&tas2552>; + }; + + cpudai: simple-audio-card,cpu { + sound-dai = <&sai3>; + }; + }; +}; + +&enetc_port0 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_enetc0>; + phy-handle = <ðphy0>; + phy-mode = "rgmii-id"; + status = "okay"; +}; + +&enetc_port1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_enetc1>; + phy-handle = <ðphy1>; + phy-mode = "rgmii-id"; + status = "okay"; +}; + +&flexcan3 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_flexcan3>; + phys = <&flexcan3_phy>; + status = "okay"; +}; + +&flexcan5 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_flexcan5>; + phys = <&flexcan5_phy>; + status = "okay"; +}; + +&gpio1 { + gpio-line-names = + "", "", "", "", + "", "BOOT_MODE0", "", "BOOT_MODE1", + "", "", "SYS_WAKEUP", "BOOT_MODE2", + "", "BOOT_MODE3", "", ""; + status = "okay"; +}; + +&gpio5 { + pcal6524-reset-hog { + gpio-hog; + gpios = <10 0>; + output-high; + line-name = "IO_XPNDR_RST_1V8"; + }; + + pewake0-hog { + gpio-hog; + gpios = <14 0>; + input; + line-name = "PCIE_PEWAKE_M2-B"; + }; + + pewake1-hog { + gpio-hog; + gpios = <17 0>; + input; + line-name = "PCIE_PEWAKE_M2-M"; + }; +}; + +&i3c2 { /* Feature connector I2C/I3C */ + i2c-scl-hz = <400000>; + pinctrl-0 = <&pinctrl_i3c2>; + pinctrl-names = "default"; + status = "okay"; +}; + +&lpi2c2 { + clock-frequency = <400000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_lpi2c2>; + status = "okay"; + + i2c2_gpio_expander_20: gpio@20 { /* U12 */ + compatible = "nxp,pcal6524"; + reg = <0x20>; + #gpio-cells = <2>; + gpio-controller; + #interrupt-cells = <2>; + interrupt-controller; + interrupts-extended = <&gpio5 11 IRQ_TYPE_LEVEL_HIGH>; + vcc-supply = <®_3p3v>; + /* + * reset-gpios cannot be used because the reset + * line is shared by multiple PCAL6524 consumers. + */ + gpio-line-names = + /* Port 0 */ + "UART8_RS232-485_MODE0", "UART8_RS232-485_MODE1", + "UART8_RS232-485_Term_TX", "UART8_RS232-485_Term_RX", + "UART8_RS232-485_EN", "VDD_3V3_M2-E_EN", + "VDD_3V3_M2-B_EN", "M2_I2C_ALERT", + /* Port 1 */ + "M2-B_FULL_CARD_PWROFF", "M2-B_W_DISABLE1", + "M2-B_W_DISABLE2", "M2-B_RESET", + "M2-E_W_DISABLE1", "M2-E_W_DISABLE2", + "M2-E_SDIO_RESET", "CAN3_STBY", + /* Port 2 */ + "CAN5_STBY", "V_LCD_EN", + "V_LCD_SEL_3V3", "V_LCD_SEL_5V0", + "V_LCD_SEL_12V0", "V_12V0_CC", + "V_12V0_PG", "AUDIO_EN"; + }; + + i2c2_gpio_expander_21: gpio@21 { /* U14 */ + compatible = "nxp,pcal6524"; + reg = <0x21>; + #gpio-cells = <2>; + gpio-controller; + #interrupt-cells = <2>; + interrupt-controller; + interrupts-extended = <&gpio5 11 IRQ_TYPE_LEVEL_HIGH>; + vcc-supply = <®_3p3v>; + /* + * reset-gpios cannot be used because the reset + * line is shared by multiple PCAL6524 consumers. + */ + gpio-line-names = + /* Port 0 */ + "V_BKL_PWM_SEL_5V0", "V_BKL_EN_SEL_5V0", + "UART7_RS232-485_MODE0", "UART7_RS232-485_MODE1", + "UART7_RS232-485_Term_TX", "UART7_RS232-485_Term_RX", + "UART7_RS232-485_EN", "VDD_3V3_M2-M_EN", + /* Port 1 */ + "TOUCH_INT", "TOUCH_RESET", + "CAMERA_PWREN", "CAMERA_LED", + "MIPI_DSI-CSI_BL_EN", "MIPI_DSI-CSI_RESET", + "MIPI_DSI-CSI_INT", "LVDS_PANEL_GPIO", + /* Port 2 */ + "USB2_PWR_EN", "USB2_PWR_OC#", + "VDD_1V2_USB_PG", "PF09_PG", + "USB_HUB_RESET", "PF09_FS0B", + "PF53_VDD_ARM_PG", "PF53_VDD_SOC_PG"; + + usb-hub-hog { + gpio-hog; + gpios = <20 0>; + output-high; + line-name = "USB_HUB_RESET"; + }; + }; + + i2c2_gpio_expander_22: gpio@22 { /* U13 */ + compatible = "nxp,pcal6524"; + reg = <0x22>; + #gpio-cells = <2>; + gpio-controller; + #interrupt-cells = <2>; + interrupt-controller; + interrupts-extended = <&gpio5 11 IRQ_TYPE_LEVEL_HIGH>; + vcc-supply = <®_3p3v>; + /* + * reset-gpios cannot be used because the reset + * line is shared by multiple PCAL6524 consumers. + */ + gpio-line-names = + /* Port 0 */ + "eMMC_RESET", "WDOG_IRQ#", + "FAN_ALERT", "VDD_1V2_ETH_PG", + "ENET1_RESET", "ENET2_RESET", + "TPM_IRQ", "TPM_RESET", + /* Port 1 */ + "FEATURE_CONN_GPIO1", "FEATURE_CONN_GPIO2", + "FEATURE_CONN_GPIO3", "FEATURE_CONN_GPIO4", + "FEATURE_CONN_GPIO5", "FEATURE_CONN_GPIO6", + "", "", + /* Port 2 */ + "", "", "", "", "", "", + "UART5_SEL", "EEPROM_WRITE_ENABLE"; + }; + + fan_controller: fan-controller@2f { + compatible = "microchip,emc2301", "microchip,emc2305"; + reg = <0x2f>; + #address-cells = <1>; + #size-cells = <0>; + #pwm-cells = <3>; + + fan@0 { + reg = <0x0>; + pwms = <&fan_controller 26000 0 1>; + #cooling-cells = <2>; + }; + }; + + tas2552: audio-codec@40 { + compatible = "ti,tas2552"; + reg = <0x40>; + #sound-dai-cells = <0>; + avdd-supply = <®_1p8v>; + iovdd-supply = <®_3p3v>; + vbat-supply = <®_5p0v>; + enable-gpio = <&i2c2_gpio_expander_20 23 GPIO_ACTIVE_HIGH>; + }; + + temperature-sensor@43 { + compatible = "ti,tmp110", "ti,tmp102"; + reg = <0x43>; + }; +}; + +&lpi2c5 { + clock-frequency = <400000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_lpi2c5>; + status = "okay"; +}; + +&lpuart1 { /* A55 Debug */ + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart1>; + status = "okay"; +}; + +&lpuart2 { /* M33 Debug */ + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart2>; + status = "reserved"; +}; + +&lpuart5 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart5>; + uart-has-rtscts; + status = "okay"; +}; + +&lpuart7 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart7>; + uart-has-rtscts; + status = "okay"; +}; + +&lpuart8 { /* M7 Debug */ + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart8>; + uart-has-rtscts; + status = "okay"; +}; + +&lpspi1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_lpspi1>; + cs-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; + status = "okay"; + + flash@0 { /* W25Q128FVSI */ + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <10000000>; + }; +}; + +&lpspi6 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_lpspi6>; + cs-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>; + status = "okay"; +}; + +&micfil { + #sound-dai-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_pdm>; + assigned-clocks = <&scmi_clk IMX95_CLK_AUDIOPLL1_VCO>, + <&scmi_clk IMX95_CLK_AUDIOPLL2_VCO>, + <&scmi_clk IMX95_CLK_AUDIOPLL1>, + <&scmi_clk IMX95_CLK_AUDIOPLL2>, + <&scmi_clk IMX95_CLK_PDM>; + assigned-clock-parents = <0>, <0>, <0>, <0>, + <&scmi_clk IMX95_CLK_AUDIOPLL1>; + assigned-clock-rates = <3932160000>, + <3612672000>, <393216000>, + <361267200>, <49152000>; + status = "okay"; +}; + +&mu7 { + status = "okay"; +}; + +&netc_blk_ctrl { + status = "okay"; +}; + +&netc_emdio { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_emdio>; + status = "okay"; + + ethphy0: ethernet-phy@1 { /* KSZ9131RNXI U20 */ + compatible = "ethernet-phy-id0022.1640"; + reg = <1>; + interrupts-extended = <&gpio1 10 IRQ_TYPE_LEVEL_LOW>; + reset-assert-us = <1000>; + /* RESET_N signal rise time ~100ms */ + reset-deassert-us = <120000>; + reset-gpios = <&i2c2_gpio_expander_22 4 GPIO_ACTIVE_HIGH>; + }; + + ethphy1: ethernet-phy@2 { /* KSZ9131RNXI U22 */ + compatible = "ethernet-phy-id0022.1640"; + reg = <2>; + interrupts-extended = <&gpio1 10 IRQ_TYPE_LEVEL_LOW>; + reset-assert-us = <1000>; + /* RESET_N signal rise time ~100ms */ + reset-deassert-us = <120000>; + reset-gpios = <&i2c2_gpio_expander_22 5 GPIO_ACTIVE_HIGH>; + }; +}; + +&netc_timer { + status = "okay"; +}; + +&netcmix_blk_ctrl { + status = "okay"; +}; + +&pcie0 { /* M.2 Key-B */ + pinctrl-0 = <&pinctrl_pcie0>; + pinctrl-names = "default"; + reset-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>; + vpcie-supply = <®_pcie0>; + status = "okay"; +}; + +&pcie1 { /* M.2 Key-M */ + pinctrl-0 = <&pinctrl_pcie1>; + pinctrl-names = "default"; + reset-gpios = <&gpio5 16 GPIO_ACTIVE_LOW>; + vpcie-supply = <®_pcie1>; + status = "okay"; +}; + +&sai3 { + #sound-dai-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_sai3>; + assigned-clocks = <&scmi_clk IMX95_CLK_AUDIOPLL1_VCO>, + <&scmi_clk IMX95_CLK_AUDIOPLL2_VCO>, + <&scmi_clk IMX95_CLK_AUDIOPLL1>, + <&scmi_clk IMX95_CLK_AUDIOPLL2>, + <&scmi_clk IMX95_CLK_SAI3>; + assigned-clock-parents = <0>, <0>, <0>, <0>, + <&scmi_clk IMX95_CLK_AUDIOPLL1>; + assigned-clock-rates = <3932160000>, + <3612672000>, <393216000>, + <361267200>, <12288000>; + fsl,sai-mclk-direction-output; + status = "okay"; +}; + +&sai4 { + assigned-clocks = <&scmi_clk IMX95_CLK_AUDIOPLL1_VCO>, + <&scmi_clk IMX95_CLK_AUDIOPLL2_VCO>, + <&scmi_clk IMX95_CLK_AUDIOPLL1>, + <&scmi_clk IMX95_CLK_AUDIOPLL2>, + <&scmi_clk IMX95_CLK_SAI4>; + assigned-clock-parents = <0>, <0>, <0>, <0>, <&scmi_clk IMX95_CLK_AUDIOPLL1>; + assigned-clock-rates = <3932160000>, <3612672000>, <393216000>, <361267200>, <12288000>; + #sound-dai-cells = <0>; + pinctrl-0 = <&pinctrl_sai4>; + pinctrl-names = "default"; + fsl,sai-mclk-direction-output; + status = "okay"; +}; + +&sai5 { + assigned-clocks = <&scmi_clk IMX95_CLK_AUDIOPLL1_VCO>, + <&scmi_clk IMX95_CLK_AUDIOPLL2_VCO>, + <&scmi_clk IMX95_CLK_AUDIOPLL1>, + <&scmi_clk IMX95_CLK_AUDIOPLL2>, + <&scmi_clk IMX95_CLK_SAI5>; + assigned-clock-parents = <0>, <0>, <0>, <0>, <&scmi_clk IMX95_CLK_AUDIOPLL1>; + assigned-clock-rates = <3932160000>, <3612672000>, <393216000>, <361267200>, <12288000>; + #sound-dai-cells = <0>; + pinctrl-0 = <&pinctrl_sai5>; + pinctrl-names = "default"; + fsl,sai-mclk-direction-output; + status = "okay"; +}; + +&thermal_zones { + pf09-thermal { + polling-delay = <2000>; + polling-delay-passive = <250>; + thermal-sensors = <&scmi_sensor 2>; + + trips { + trip0 { + hysteresis = <2000>; + temperature = <140000>; + type = "passive"; + }; + + trip1 { + hysteresis = <2000>; + temperature = <155000>; + type = "critical"; + }; + }; + }; + + pf53arm-thermal { + polling-delay = <2000>; + polling-delay-passive = <250>; + thermal-sensors = <&scmi_sensor 4>; + + cooling-maps { + map0 { + trip = <&pf5301_alert>; + cooling-device = + <&A55_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&A55_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&A55_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&A55_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&A55_4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&A55_5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; + + trips { + pf5301_alert: trip0 { + hysteresis = <2000>; + temperature = <140000>; + type = "passive"; + }; + + pf5301_crit: trip1 { + hysteresis = <2000>; + temperature = <155000>; + type = "critical"; + }; + }; + }; + + pf53soc-thermal { + polling-delay = <2000>; + polling-delay-passive = <250>; + thermal-sensors = <&scmi_sensor 3>; + + trips { + pf5302_alert: trip0 { + hysteresis = <2000>; + temperature = <140000>; + type = "passive"; + }; + + pf5302_crit: trip1 { + hysteresis = <2000>; + temperature = <155000>; + type = "critical"; + }; + }; + }; +}; + +&tpm3 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_tpm3>; + status = "okay"; +}; + +&tpm4 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_tpm4>; + status = "okay"; +}; + +&usb2 { + dr_mode = "host"; + vbus-supply = <®_usb2_vbus>; + status = "okay"; +}; + +&usb3 { + status = "okay"; +}; + +&usb3_dwc3 { + dr_mode = "host"; + status = "okay"; +}; + +&usb3_phy { + status = "okay"; +}; + +&usdhc1 { /* eMMC */ + pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep"; + pinctrl-0 = <&pinctrl_usdhc1>; + pinctrl-1 = <&pinctrl_usdhc1_100mhz>; + pinctrl-2 = <&pinctrl_usdhc1_200mhz>; + pinctrl-3 = <&pinctrl_usdhc1>; + bus-width = <8>; + non-removable; + no-sdio; + no-sd; + status = "okay"; +}; + +&usdhc2 { /* SD-Card */ + pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep"; + pinctrl-0 = <&pinctrl_usdhc2>; + pinctrl-1 = <&pinctrl_usdhc2_100mhz>; + pinctrl-2 = <&pinctrl_usdhc2_200mhz>; + pinctrl-3 = <&pinctrl_usdhc2>; + cd-gpios = <&gpio3 0 GPIO_ACTIVE_LOW>; + vmmc-supply = <®_usdhc2_vmmc>; + bus-width = <4>; + status = "okay"; +}; + +&usdhc3 { /* M.2 Key-E */ + pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep"; + pinctrl-0 = <&pinctrl_usdhc3>; + pinctrl-1 = <&pinctrl_usdhc3_100mhz>; + pinctrl-2 = <&pinctrl_usdhc3_200mhz>; + pinctrl-3 = <&pinctrl_usdhc3>; + bus-width = <4>; + status = "okay"; +}; + +&wdog3 { + fsl,ext-reset-output; + status = "okay"; +}; + +&scmi_iomuxc { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_hog>; + + pinctrl_hog: hoggrp { + fsl,pins = < + /* PCIe 0 PEWAKE */ + IMX95_PAD_GPIO_IO34__GPIO5_IO_BIT14 0x4000031e + /* PCIe 1 PEWAKE */ + IMX95_PAD_GPIO_IO37__GPIO5_IO_BIT17 0x4000031e + /* BOOT_MODE2 */ + IMX95_PAD_SAI1_TXFS__AONMIX_TOP_GPIO1_IO_BIT11 0x4000031e + /* IO_XPNDR_RST_1V8 shared by multiple expanders */ + IMX95_PAD_XSPI1_SS0_B__GPIO5_IO_BIT10 0x40000b9e + /* IO_XPNDR_INT_1V8 shared by multiple expanders */ + IMX95_PAD_XSPI1_SS1_B__GPIO5_IO_BIT11 0x40000b9e + >; + }; + + pinctrl_emdio: emdiogrp { + fsl,pins = < + IMX95_PAD_ENET2_MDC__NETCMIX_TOP_NETC_MDC 0x50e + IMX95_PAD_ENET2_MDIO__NETCMIX_TOP_NETC_MDIO 0x90e + >; + }; + + pinctrl_enetc0: enetc0grp { + fsl,pins = < + IMX95_PAD_ENET1_RD0__NETCMIX_TOP_ETH0_RGMII_RD0 0x57e + IMX95_PAD_ENET1_RD1__NETCMIX_TOP_ETH0_RGMII_RD1 0x57e + IMX95_PAD_ENET1_RD2__NETCMIX_TOP_ETH0_RGMII_RD2 0x57e + IMX95_PAD_ENET1_RD3__NETCMIX_TOP_ETH0_RGMII_RD3 0x57e + IMX95_PAD_ENET1_RXC__NETCMIX_TOP_ETH0_RGMII_RX_CLK 0x58e + IMX95_PAD_ENET1_RX_CTL__NETCMIX_TOP_ETH0_RGMII_RX_CTL 0x57e + IMX95_PAD_ENET1_TD0__NETCMIX_TOP_ETH0_RGMII_TD0 0x50e + IMX95_PAD_ENET1_TD1__NETCMIX_TOP_ETH0_RGMII_TD1 0x50e + IMX95_PAD_ENET1_TD2__NETCMIX_TOP_ETH0_RGMII_TD2 0x50e + IMX95_PAD_ENET1_TD3__NETCMIX_TOP_ETH0_RGMII_TD3 0x50e + IMX95_PAD_ENET1_TXC__NETCMIX_TOP_ETH0_RGMII_TX_CLK 0x58e + IMX95_PAD_ENET1_TX_CTL__NETCMIX_TOP_ETH0_RGMII_TX_CTL 0x57e + >; + }; + + pinctrl_enetc1: enetc1grp { + fsl,pins = < + IMX95_PAD_ENET2_RD0__NETCMIX_TOP_ETH1_RGMII_RD0 0x57e + IMX95_PAD_ENET2_RD1__NETCMIX_TOP_ETH1_RGMII_RD1 0x57e + IMX95_PAD_ENET2_RD2__NETCMIX_TOP_ETH1_RGMII_RD2 0x57e + IMX95_PAD_ENET2_RD3__NETCMIX_TOP_ETH1_RGMII_RD3 0x57e + IMX95_PAD_ENET2_RXC__NETCMIX_TOP_ETH1_RGMII_RX_CLK 0x58e + IMX95_PAD_ENET2_RX_CTL__NETCMIX_TOP_ETH1_RGMII_RX_CTL 0x57e + IMX95_PAD_ENET2_TD0__NETCMIX_TOP_ETH1_RGMII_TD0 0x50e + IMX95_PAD_ENET2_TD1__NETCMIX_TOP_ETH1_RGMII_TD1 0x50e + IMX95_PAD_ENET2_TD2__NETCMIX_TOP_ETH1_RGMII_TD2 0x50e + IMX95_PAD_ENET2_TD3__NETCMIX_TOP_ETH1_RGMII_TD3 0x50e + IMX95_PAD_ENET2_TXC__NETCMIX_TOP_ETH1_RGMII_TX_CLK 0x58e + IMX95_PAD_ENET2_TX_CTL__NETCMIX_TOP_ETH1_RGMII_TX_CTL 0x57e + >; + }; + + pinctrl_flexcan3: flexcan3grp { + fsl,pins = < + IMX95_PAD_GPIO_IO28__CAN3_TX 0x39e + IMX95_PAD_GPIO_IO29__CAN3_RX 0x39e + >; + }; + + pinctrl_flexcan5: flexcan5grp { + fsl,pins = < + IMX95_PAD_GPIO_IO30__CAN5_TX 0x39e + IMX95_PAD_GPIO_IO31__CAN5_RX 0x39e + >; + }; + + pinctrl_i3c2: i3c2grp { + fsl,pins = < + IMX95_PAD_ENET1_MDC__I3C2_SCL 0x40000186 + IMX95_PAD_ENET1_MDIO__I3C2_SDA 0x40000186 + >; + }; + + pinctrl_led: ledgrp { + fsl,pins = < + IMX95_PAD_XSPI1_DQS__GPIO5_IO_BIT8 0x14e + IMX95_PAD_XSPI1_SCLK__GPIO5_IO_BIT9 0x14e + >; + }; + + pinctrl_lpi2c2: lpi2c2grp { + fsl,pins = < + IMX95_PAD_I2C2_SCL__AONMIX_TOP_LPI2C2_SCL 0x40000b9e + IMX95_PAD_I2C2_SDA__AONMIX_TOP_LPI2C2_SDA 0x40000b9e + >; + }; + + pinctrl_lpi2c5: lpi2c5grp { + fsl,pins = < + IMX95_PAD_GPIO_IO22__LPI2C5_SDA 0x40000b9e + IMX95_PAD_GPIO_IO23__LPI2C5_SCL 0x40000b9e + >; + }; + + pinctrl_lpspi1: lpspi1grp { + fsl,pins = < + IMX95_PAD_SAI1_TXC__AONMIX_TOP_LPSPI1_SIN 0x3fe + IMX95_PAD_SAI1_TXD0__AONMIX_TOP_LPSPI1_SCK 0x3fe + IMX95_PAD_SAI1_RXD0__AONMIX_TOP_LPSPI1_SOUT 0x3fe + IMX95_PAD_PDM_BIT_STREAM0__AONMIX_TOP_GPIO1_IO_BIT9 0x3fe + >; + }; + + pinctrl_lpspi6: lpspi6grp { + fsl,pins = < + IMX95_PAD_GPIO_IO00__GPIO2_IO_BIT0 0x3fe + IMX95_PAD_GPIO_IO01__LPSPI6_SIN 0x3fe + IMX95_PAD_GPIO_IO02__LPSPI6_SOUT 0x3fe + IMX95_PAD_GPIO_IO03__LPSPI6_SCK 0x3fe + >; + }; + + pinctrl_pcie0: pcie0grp { + fsl,pins = < + IMX95_PAD_GPIO_IO32__HSIOMIX_TOP_PCIE1_CLKREQ_B 0x4000031e + IMX95_PAD_GPIO_IO33__GPIO5_IO_BIT13 0x31e + >; + }; + + pinctrl_pcie1: pcie1grp { + fsl,pins = < + IMX95_PAD_GPIO_IO35__HSIOMIX_TOP_PCIE2_CLKREQ_B 0x4000031e + IMX95_PAD_GPIO_IO36__GPIO5_IO_BIT16 0x31e + >; + }; + + pinctrl_panel_backlight_lvds: backlightlvdsgrp { + fsl,pins = < + IMX95_PAD_GPIO_IO27__GPIO2_IO_BIT27 0x31e + >; + }; + + pinctrl_pdm: pdmgrp { + fsl,pins = < + IMX95_PAD_GPIO_IO04__AONMIX_TOP_PDM_CLK 0x31e + IMX95_PAD_GPIO_IO05__AONMIX_TOP_PDM_BIT_STREAM_BIT0 0x31e + IMX95_PAD_GPIO_IO06__AONMIX_TOP_PDM_BIT_STREAM_BIT1 0x31e + >; + }; + + pinctrl_sai4: sai4grp { + fsl,pins = < + IMX95_PAD_XSPI1_DATA0__SAI4_TX_BCLK 0x31e + IMX95_PAD_XSPI1_DATA1__SAI4_TX_SYNC 0x31e + IMX95_PAD_XSPI1_DATA2__SAI4_TX_DATA_BIT0 0x31e + IMX95_PAD_XSPI1_DATA3__SAI4_RX_DATA_BIT0 0x31e + >; + }; + + pinctrl_sai5: sai5grp { + fsl,pins = < + IMX95_PAD_XSPI1_DATA4__SAI5_TX_DATA_BIT0 0x31e + IMX95_PAD_XSPI1_DATA5__SAI5_TX_SYNC 0x31e + IMX95_PAD_XSPI1_DATA6__SAI5_TX_BCLK 0x31e + IMX95_PAD_XSPI1_DATA7__SAI5_RX_DATA_BIT0 0x31e + >; + }; + + pinctrl_sai3: sai3grp { + fsl,pins = < + IMX95_PAD_GPIO_IO16__SAI3_TX_BCLK 0x31e + IMX95_PAD_GPIO_IO17__SAI3_MCLK 0x31e + IMX95_PAD_GPIO_IO18__SAI3_RX_BCLK 0x31e + IMX95_PAD_GPIO_IO19__SAI3_RX_SYNC 0x31e + IMX95_PAD_GPIO_IO20__SAI3_RX_DATA_BIT0 0x31e + IMX95_PAD_GPIO_IO21__SAI3_TX_DATA_BIT0 0x31e + IMX95_PAD_GPIO_IO26__SAI3_TX_SYNC 0x31e + >; + }; + + pinctrl_tpm3: tpm3grp { + fsl,pins = < + IMX95_PAD_GPIO_IO24__TPM3_CH3 0x51e + >; + }; + + pinctrl_tpm4: tpm4grp { + fsl,pins = < + IMX95_PAD_GPIO_IO25__TPM4_CH3 0x51e + >; + }; + + pinctrl_uart1: uart1grp { + fsl,pins = < + IMX95_PAD_UART1_RXD__AONMIX_TOP_LPUART1_RX 0x31e + IMX95_PAD_UART1_TXD__AONMIX_TOP_LPUART1_TX 0x31e + >; + }; + + pinctrl_uart2: uart2grp { + fsl,pins = < + IMX95_PAD_UART2_RXD__AONMIX_TOP_LPUART2_RX 0x31e + IMX95_PAD_UART2_TXD__AONMIX_TOP_LPUART2_TX 0x31e + >; + }; + + pinctrl_uart5: uart5grp { + fsl,pins = < + IMX95_PAD_DAP_TDO_TRACESWO__LPUART5_TX 0x31e + IMX95_PAD_DAP_TDI__LPUART5_RX 0x31e + IMX95_PAD_DAP_TMS_SWDIO__LPUART5_RTS_B 0x31e + IMX95_PAD_DAP_TCLK_SWCLK__LPUART5_CTS_B 0x31e + >; + }; + + pinctrl_uart7: uart7grp { + fsl,pins = < + IMX95_PAD_GPIO_IO08__LPUART7_TX 0x31e + IMX95_PAD_GPIO_IO09__LPUART7_RX 0x31e + IMX95_PAD_GPIO_IO10__LPUART7_CTS_B 0x31e + IMX95_PAD_GPIO_IO11__LPUART7_RTS_B 0x31e + >; + }; + + pinctrl_uart8: uart8grp { + fsl,pins = < + IMX95_PAD_GPIO_IO12__LPUART8_TX 0x31e + IMX95_PAD_GPIO_IO13__LPUART8_RX 0x31e + IMX95_PAD_GPIO_IO14__LPUART8_CTS_B 0x31e + IMX95_PAD_GPIO_IO15__LPUART8_RTS_B 0x31e + >; + }; + + pinctrl_usdhc1: usdhc1grp { + fsl,pins = < + IMX95_PAD_SD1_CLK__USDHC1_CLK 0x158e + IMX95_PAD_SD1_CMD__USDHC1_CMD 0x138e + IMX95_PAD_SD1_DATA0__USDHC1_DATA0 0x138e + IMX95_PAD_SD1_DATA1__USDHC1_DATA1 0x138e + IMX95_PAD_SD1_DATA2__USDHC1_DATA2 0x138e + IMX95_PAD_SD1_DATA3__USDHC1_DATA3 0x138e + IMX95_PAD_SD1_DATA4__USDHC1_DATA4 0x138e + IMX95_PAD_SD1_DATA5__USDHC1_DATA5 0x138e + IMX95_PAD_SD1_DATA6__USDHC1_DATA6 0x138e + IMX95_PAD_SD1_DATA7__USDHC1_DATA7 0x138e + IMX95_PAD_SD1_STROBE__USDHC1_STROBE 0x158e + >; + }; + + pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp { + fsl,pins = < + IMX95_PAD_SD1_CLK__USDHC1_CLK 0x158e + IMX95_PAD_SD1_CMD__USDHC1_CMD 0x138e + IMX95_PAD_SD1_DATA0__USDHC1_DATA0 0x138e + IMX95_PAD_SD1_DATA1__USDHC1_DATA1 0x138e + IMX95_PAD_SD1_DATA2__USDHC1_DATA2 0x138e + IMX95_PAD_SD1_DATA3__USDHC1_DATA3 0x138e + IMX95_PAD_SD1_DATA4__USDHC1_DATA4 0x138e + IMX95_PAD_SD1_DATA5__USDHC1_DATA5 0x138e + IMX95_PAD_SD1_DATA6__USDHC1_DATA6 0x138e + IMX95_PAD_SD1_DATA7__USDHC1_DATA7 0x138e + IMX95_PAD_SD1_STROBE__USDHC1_STROBE 0x158e + >; + }; + + pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp { + fsl,pins = < + IMX95_PAD_SD1_CLK__USDHC1_CLK 0x15fe + IMX95_PAD_SD1_CMD__USDHC1_CMD 0x13fe + IMX95_PAD_SD1_DATA0__USDHC1_DATA0 0x13fe + IMX95_PAD_SD1_DATA1__USDHC1_DATA1 0x13fe + IMX95_PAD_SD1_DATA2__USDHC1_DATA2 0x13fe + IMX95_PAD_SD1_DATA3__USDHC1_DATA3 0x13fe + IMX95_PAD_SD1_DATA4__USDHC1_DATA4 0x13fe + IMX95_PAD_SD1_DATA5__USDHC1_DATA5 0x13fe + IMX95_PAD_SD1_DATA6__USDHC1_DATA6 0x13fe + IMX95_PAD_SD1_DATA7__USDHC1_DATA7 0x13fe + IMX95_PAD_SD1_STROBE__USDHC1_STROBE 0x15fe + >; + }; + + pinctrl_usdhc2: usdhc2grp { + fsl,pins = < + IMX95_PAD_SD2_CLK__USDHC2_CLK 0x158e + IMX95_PAD_SD2_CMD__USDHC2_CMD 0x138e + IMX95_PAD_SD2_DATA0__USDHC2_DATA0 0x138e + IMX95_PAD_SD2_DATA1__USDHC2_DATA1 0x138e + IMX95_PAD_SD2_DATA2__USDHC2_DATA2 0x138e + IMX95_PAD_SD2_DATA3__USDHC2_DATA3 0x138e + IMX95_PAD_SD2_VSELECT__USDHC2_VSELECT 0x51e + IMX95_PAD_SD2_CD_B__GPIO3_IO_BIT0 0x31e + >; + }; + + pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp { + fsl,pins = < + IMX95_PAD_SD2_CLK__USDHC2_CLK 0x158e + IMX95_PAD_SD2_CMD__USDHC2_CMD 0x138e + IMX95_PAD_SD2_DATA0__USDHC2_DATA0 0x138e + IMX95_PAD_SD2_DATA1__USDHC2_DATA1 0x138e + IMX95_PAD_SD2_DATA2__USDHC2_DATA2 0x138e + IMX95_PAD_SD2_DATA3__USDHC2_DATA3 0x138e + IMX95_PAD_SD2_VSELECT__USDHC2_VSELECT 0x51e + IMX95_PAD_SD2_CD_B__GPIO3_IO_BIT0 0x31e + >; + }; + + pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp { + fsl,pins = < + IMX95_PAD_SD2_CLK__USDHC2_CLK 0x158e + IMX95_PAD_SD2_CMD__USDHC2_CMD 0x138e + IMX95_PAD_SD2_DATA0__USDHC2_DATA0 0x138e + IMX95_PAD_SD2_DATA1__USDHC2_DATA1 0x138e + IMX95_PAD_SD2_DATA2__USDHC2_DATA2 0x138e + IMX95_PAD_SD2_DATA3__USDHC2_DATA3 0x138e + IMX95_PAD_SD2_VSELECT__USDHC2_VSELECT 0x51e + IMX95_PAD_SD2_CD_B__GPIO3_IO_BIT0 0x31e + >; + }; + + pinctrl_usdhc3: usdhc3grp { + fsl,pins = < + IMX95_PAD_SD3_CLK__USDHC3_CLK 0x158e + IMX95_PAD_SD3_CMD__USDHC3_CMD 0x138e + IMX95_PAD_SD3_DATA0__USDHC3_DATA0 0x138e + IMX95_PAD_SD3_DATA1__USDHC3_DATA1 0x138e + IMX95_PAD_SD3_DATA2__USDHC3_DATA2 0x138e + IMX95_PAD_SD3_DATA3__USDHC3_DATA3 0x138e + >; + }; + + pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp { + fsl,pins = < + IMX95_PAD_SD3_CLK__USDHC3_CLK 0x158e + IMX95_PAD_SD3_CMD__USDHC3_CMD 0x138e + IMX95_PAD_SD3_DATA0__USDHC3_DATA0 0x138e + IMX95_PAD_SD3_DATA1__USDHC3_DATA1 0x138e + IMX95_PAD_SD3_DATA2__USDHC3_DATA2 0x138e + IMX95_PAD_SD3_DATA3__USDHC3_DATA3 0x138e + >; + }; + + pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp { + fsl,pins = < + IMX95_PAD_SD3_CLK__USDHC3_CLK 0x158e + IMX95_PAD_SD3_CMD__USDHC3_CMD 0x138e + IMX95_PAD_SD3_DATA0__USDHC3_DATA0 0x138e + IMX95_PAD_SD3_DATA1__USDHC3_DATA1 0x138e + IMX95_PAD_SD3_DATA2__USDHC3_DATA2 0x138e + IMX95_PAD_SD3_DATA3__USDHC3_DATA3 0x138e + >; + }; +}; -- 2.53.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH v4 3/3] arm64: dts: imx95: Add support for Data Modul i.MX95 eDM SBC 2026-09-17 6:25 ` [PATCH v4 3/3] arm64: dts: imx95: Add support for " Marek Vasut @ 2026-09-17 6:35 ` sashiko-bot 2026-09-17 16:53 ` Frank Li 0 siblings, 1 reply; 19+ messages in thread From: sashiko-bot @ 2026-09-17 6:35 UTC (permalink / raw) To: Marek Vasut Cc: Marc Kleine-Budde, robh, Frank.Li, imx, conor+dt, Oliver Hartkopp, Oleksij Rempel, linux-can, Vincent Mailhol, devicetree Thank you for your contribution! Sashiko AI review found 6 potential issue(s) to consider: - [High] dts: pcal6524 interrupt polarity is incorrectly set to LEVEL_HIGH - [Medium] dts: Ethernet PHY reset-gpios configured with wrong polarity - [Medium] dts: eMMC reset GPIO defined but unused in usdhc1 - [Medium] dts: reg_panel_vcc regulator missing enable-active-high property - [Medium] dts: M.2 Key-E (usdhc3) slot missing power regulator - [Low] dts: tas2552 codec uses deprecated enable-gpio instead of enable-gpios -- commit 5792bafb068af6288c67560ae9fb90a4c34326af Author: Marek Vasut <marex@nabladev.com> arm64: dts: imx95: Add support for Data Modul i.MX95 eDM SBC This commit adds support for the Data Modul i.MX95 eDM SBC evaluation board, enabling various peripherals like serial console, ethernet, eMMC, SD, SPI NOR, USB, and PCIe. > diff --git a/arch/arm64/boot/dts/freescale/imx95-data-modul-edm-sbc.dts b/arch/arm64/boot/dts/freescale/imx95-data-modul-edm-sbc.dts > new file mode 100644 > index 0000000000000..0181262eb8a98 > --- /dev/null > +++ b/arch/arm64/boot/dts/freescale/imx95-data-modul-edm-sbc.dts [ ... ] > + reg_panel_vcc: regulator-panel-vcc { > + compatible = "regulator-fixed"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-name = "PANEL_VCC"; > + gpios = <&i2c2_gpio_expander_20 17 0>; > + /* Disabled by default, unless display board plugged in. */ > + status = "disabled"; > + }; [Severity: Medium] Does reg_panel_vcc need an enable-active-high property? Without it, the regulator defaults to active-low logic, which will drive the panel VCC low when the regulator is enabled. [ ... ] > + i2c2_gpio_expander_20: gpio@20 { /* U12 */ > + compatible = "nxp,pcal6524"; > + reg = <0x20>; > + #gpio-cells = <2>; > + gpio-controller; > + #interrupt-cells = <2>; > + interrupt-controller; > + interrupts-extended = <&gpio5 11 IRQ_TYPE_LEVEL_HIGH>; [Severity: High] Will triggering interrupts-extended on IRQ_TYPE_LEVEL_HIGH cause an interrupt storm? The PCAL6524 INT output is an open-drain, active-low signal, so the line will idle high. [ ... ] > + i2c2_gpio_expander_21: gpio@21 { /* U14 */ > + compatible = "nxp,pcal6524"; > + reg = <0x21>; > + #gpio-cells = <2>; > + gpio-controller; > + #interrupt-cells = <2>; > + interrupt-controller; > + interrupts-extended = <&gpio5 11 IRQ_TYPE_LEVEL_HIGH>; [Severity: High] Could this IRQ_TYPE_LEVEL_HIGH configuration also lead to an interrupt storm for i2c2_gpio_expander_21? [ ... ] > + i2c2_gpio_expander_22: gpio@22 { /* U13 */ > + compatible = "nxp,pcal6524"; > + reg = <0x22>; > + #gpio-cells = <2>; > + gpio-controller; > + #interrupt-cells = <2>; > + interrupt-controller; > + interrupts-extended = <&gpio5 11 IRQ_TYPE_LEVEL_HIGH>; [Severity: High] Does i2c2_gpio_expander_22 similarly need to be configured for an active-low interrupt instead of IRQ_TYPE_LEVEL_HIGH? [ ... ] > + tas2552: audio-codec@40 { > + compatible = "ti,tas2552"; > + reg = <0x40>; > + #sound-dai-cells = <0>; > + avdd-supply = <®_1p8v>; > + iovdd-supply = <®_3p3v>; > + vbat-supply = <®_5p0v>; > + enable-gpio = <&i2c2_gpio_expander_20 23 GPIO_ACTIVE_HIGH>; [Severity: Low] This isn't a bug, but should tas2552 be using the enable-gpios property name instead of the deprecated enable-gpio? The patch changelog mentions replacing gpio with gpios DT properties. [ ... ] > + ethphy0: ethernet-phy@1 { /* KSZ9131RNXI U20 */ > + compatible = "ethernet-phy-id0022.1640"; > + reg = <1>; > + interrupts-extended = <&gpio1 10 IRQ_TYPE_LEVEL_LOW>; > + reset-assert-us = <1000>; > + /* RESET_N signal rise time ~100ms */ > + reset-deassert-us = <120000>; > + reset-gpios = <&i2c2_gpio_expander_22 4 GPIO_ACTIVE_HIGH>; [Severity: Medium] Will ethphy0 be held in reset permanently? The KSZ9131RNXI RESET_N signal is active-low, so defining reset-gpios with GPIO_ACTIVE_HIGH will drive the line high to assert reset. > + }; > + > + ethphy1: ethernet-phy@2 { /* KSZ9131RNXI U22 */ > + compatible = "ethernet-phy-id0022.1640"; > + reg = <2>; > + interrupts-extended = <&gpio1 10 IRQ_TYPE_LEVEL_LOW>; > + reset-assert-us = <1000>; > + /* RESET_N signal rise time ~100ms */ > + reset-deassert-us = <120000>; > + reset-gpios = <&i2c2_gpio_expander_22 5 GPIO_ACTIVE_HIGH>; [Severity: Medium] Does ethphy1 also suffer from the incorrect GPIO_ACTIVE_HIGH reset polarity? [ ... ] > +&usdhc1 { /* eMMC */ > + pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep"; > + pinctrl-0 = <&pinctrl_usdhc1>; [Severity: Medium] Could usdhc1 be missing its reset sequence configuration? The hardware provides an eMMC_RESET line on the I2C GPIO expander, but it isn't consumed via mmc-pwrseq or reset-gpios. This might cause the eMMC to fail to initialize during warm reboots. [ ... ] > +&usdhc3 { /* M.2 Key-E */ > + pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep"; > + pinctrl-0 = <&pinctrl_usdhc3>; [Severity: Medium] Does the usdhc3 node need a vmmc-supply? The VDD_3V3_M2-E_EN pin is defined on the expander but there is no fixed regulator defined to power the M.2 Key-E slot, which might leave peripherals undetectable. -- Sashiko AI review · https://sashiko.dev/#/patchset/20260917062543.534416-1-marex@nabladev.com?part=3 ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v4 3/3] arm64: dts: imx95: Add support for Data Modul i.MX95 eDM SBC 2026-09-17 6:35 ` sashiko-bot @ 2026-09-17 16:53 ` Frank Li 2026-09-17 17:19 ` Marek Vasut 0 siblings, 1 reply; 19+ messages in thread From: Frank Li @ 2026-09-17 16:53 UTC (permalink / raw) To: sashiko-reviews Cc: Marek Vasut, Marc Kleine-Budde, robh, Frank.Li, imx, conor+dt, Oliver Hartkopp, Oleksij Rempel, linux-can, Vincent Mailhol, devicetree On Thu, Sep 17, 2026 at 06:35:12AM +0000, sashiko-bot@kernel.org wrote: > Thank you for your contribution! Sashiko AI review found 6 potential issue(s) to consider: > - [High] dts: pcal6524 interrupt polarity is incorrectly set to LEVEL_HIGH > - [Medium] dts: Ethernet PHY reset-gpios configured with wrong polarity > - [Medium] dts: eMMC reset GPIO defined but unused in usdhc1 > - [Medium] dts: reg_panel_vcc regulator missing enable-active-high property > - [Medium] dts: M.2 Key-E (usdhc3) slot missing power regulator > - [Low] dts: tas2552 codec uses deprecated enable-gpio instead of enable-gpios > -- > > commit 5792bafb068af6288c67560ae9fb90a4c34326af > Author: Marek Vasut <marex@nabladev.com> > arm64: dts: imx95: Add support for Data Modul i.MX95 eDM SBC > > This commit adds support for the Data Modul i.MX95 eDM SBC evaluation board, > enabling various peripherals like serial console, ethernet, eMMC, SD, > SPI NOR, USB, and PCIe. > > > diff --git a/arch/arm64/boot/dts/freescale/imx95-data-modul-edm-sbc.dts b/arch/arm64/boot/dts/freescale/imx95-data-modul-edm-sbc.dts > > new file mode 100644 > > index 0000000000000..0181262eb8a98 > > --- /dev/null > > +++ b/arch/arm64/boot/dts/freescale/imx95-data-modul-edm-sbc.dts > > [ ... ] > > > + reg_panel_vcc: regulator-panel-vcc { > > + compatible = "regulator-fixed"; > > + regulator-min-microvolt = <3300000>; > > + regulator-max-microvolt = <3300000>; > > + regulator-name = "PANEL_VCC"; > > + gpios = <&i2c2_gpio_expander_20 17 0>; gpio third arg 0, means GPIO_ACTIVE_HIGH so need enable-active-high if your boards have invertor should use GPIO_ACTIVE_LOW > > + /* Disabled by default, unless display board plugged in. */ > > + status = "disabled"; > > + }; > > [Severity: Medium] > Does reg_panel_vcc need an enable-active-high property? Without it, the > regulator defaults to active-low logic, which will drive the panel VCC low > when the regulator is enabled. > > [ ... ] > > > + i2c2_gpio_expander_20: gpio@20 { /* U12 */ > > + compatible = "nxp,pcal6524"; > > + reg = <0x20>; > > + #gpio-cells = <2>; > > + gpio-controller; > > + #interrupt-cells = <2>; > > + interrupt-controller; > > + interrupts-extended = <&gpio5 11 IRQ_TYPE_LEVEL_HIGH>; > > [Severity: High] > Will triggering interrupts-extended on IRQ_TYPE_LEVEL_HIGH cause an interrupt > storm? The PCAL6524 INT output is an open-drain, active-low signal, so the > line will idle high. Yes, suppose it should LOW to trigger irq. > > [ ... ] > > > + i2c2_gpio_expander_21: gpio@21 { /* U14 */ > > + compatible = "nxp,pcal6524"; > > + reg = <0x21>; > > + #gpio-cells = <2>; > > + gpio-controller; > > + #interrupt-cells = <2>; > > + interrupt-controller; > > + interrupts-extended = <&gpio5 11 IRQ_TYPE_LEVEL_HIGH>; > > [Severity: High] > Could this IRQ_TYPE_LEVEL_HIGH configuration also lead to an interrupt > storm for i2c2_gpio_expander_21? > > [ ... ] > > > + i2c2_gpio_expander_22: gpio@22 { /* U13 */ > > + compatible = "nxp,pcal6524"; > > + reg = <0x22>; > > + #gpio-cells = <2>; > > + gpio-controller; > > + #interrupt-cells = <2>; > > + interrupt-controller; > > + interrupts-extended = <&gpio5 11 IRQ_TYPE_LEVEL_HIGH>; > > [Severity: High] > Does i2c2_gpio_expander_22 similarly need to be configured for an active-low > interrupt instead of IRQ_TYPE_LEVEL_HIGH? > > [ ... ] > > > + tas2552: audio-codec@40 { > > + compatible = "ti,tas2552"; > > + reg = <0x40>; > > + #sound-dai-cells = <0>; > > + avdd-supply = <®_1p8v>; > > + iovdd-supply = <®_3p3v>; > > + vbat-supply = <®_5p0v>; > > + enable-gpio = <&i2c2_gpio_expander_20 23 GPIO_ACTIVE_HIGH>; > > [Severity: Low] > This isn't a bug, but should tas2552 be using the enable-gpios property name > instead of the deprecated enable-gpio? The patch changelog mentions replacing > gpio with gpios DT properties. Please fix this one. > > [ ... ] > > > + ethphy0: ethernet-phy@1 { /* KSZ9131RNXI U20 */ > > + compatible = "ethernet-phy-id0022.1640"; > > + reg = <1>; > > + interrupts-extended = <&gpio1 10 IRQ_TYPE_LEVEL_LOW>; > > + reset-assert-us = <1000>; > > + /* RESET_N signal rise time ~100ms */ > > + reset-deassert-us = <120000>; > > + reset-gpios = <&i2c2_gpio_expander_22 4 GPIO_ACTIVE_HIGH>; > > [Severity: Medium] > Will ethphy0 be held in reset permanently? The KSZ9131RNXI RESET_N signal is > active-low, so defining reset-gpios with GPIO_ACTIVE_HIGH will drive the line > high to assert reset. > > > + }; > > + > > + ethphy1: ethernet-phy@2 { /* KSZ9131RNXI U22 */ > > + compatible = "ethernet-phy-id0022.1640"; > > + reg = <2>; > > + interrupts-extended = <&gpio1 10 IRQ_TYPE_LEVEL_LOW>; > > + reset-assert-us = <1000>; > > + /* RESET_N signal rise time ~100ms */ > > + reset-deassert-us = <120000>; > > + reset-gpios = <&i2c2_gpio_expander_22 5 GPIO_ACTIVE_HIGH>; > > [Severity: Medium] > Does ethphy1 also suffer from the incorrect GPIO_ACTIVE_HIGH reset polarity? Is it correct? > > [ ... ] > > > +&usdhc1 { /* eMMC */ > > + pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep"; > > + pinctrl-0 = <&pinctrl_usdhc1>; > > [Severity: Medium] > Could usdhc1 be missing its reset sequence configuration? The hardware > provides an eMMC_RESET line on the I2C GPIO expander, but it isn't consumed > via mmc-pwrseq or reset-gpios. This might cause the eMMC to fail to initialize > during warm reboots. Please check this Frank > > [ ... ] > > > +&usdhc3 { /* M.2 Key-E */ > > + pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep"; > > + pinctrl-0 = <&pinctrl_usdhc3>; > > [Severity: Medium] > Does the usdhc3 node need a vmmc-supply? The VDD_3V3_M2-E_EN pin is defined on > the expander but there is no fixed regulator defined to power the M.2 Key-E > slot, which might leave peripherals undetectable. > > -- > Sashiko AI review · https://sashiko.dev/#/patchset/20260917062543.534416-1-marex@nabladev.com?part=3 ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v4 3/3] arm64: dts: imx95: Add support for Data Modul i.MX95 eDM SBC 2026-09-17 16:53 ` Frank Li @ 2026-09-17 17:19 ` Marek Vasut 2026-09-17 18:46 ` Frank Li 0 siblings, 1 reply; 19+ messages in thread From: Marek Vasut @ 2026-09-17 17:19 UTC (permalink / raw) To: Frank Li Cc: Marc Kleine-Budde, robh, Frank.Li, imx, conor+dt, Oliver Hartkopp, Oleksij Rempel, linux-can, Vincent Mailhol, devicetree On 9/17/26 6:53 PM, Frank Li wrote: Hello Frank, > On Thu, Sep 17, 2026 at 06:35:12AM +0000, sashiko-bot@kernel.org wrote: >> Thank you for your contribution! Sashiko AI review found 6 potential issue(s) to consider: >> - [High] dts: pcal6524 interrupt polarity is incorrectly set to LEVEL_HIGH >> - [Medium] dts: Ethernet PHY reset-gpios configured with wrong polarity >> - [Medium] dts: eMMC reset GPIO defined but unused in usdhc1 >> - [Medium] dts: reg_panel_vcc regulator missing enable-active-high property >> - [Medium] dts: M.2 Key-E (usdhc3) slot missing power regulator >> - [Low] dts: tas2552 codec uses deprecated enable-gpio instead of enable-gpios [...] >>> + reg_panel_vcc: regulator-panel-vcc { >>> + compatible = "regulator-fixed"; >>> + regulator-min-microvolt = <3300000>; >>> + regulator-max-microvolt = <3300000>; >>> + regulator-name = "PANEL_VCC"; >>> + gpios = <&i2c2_gpio_expander_20 17 0>; > > gpio third arg 0, means GPIO_ACTIVE_HIGH > > so need enable-active-high > > if your boards have invertor should use GPIO_ACTIVE_LOW I already went through all that, please see "Re: [PATCH 3/3] arm64: dts: imx95: Add support for Data Modul i.MX95 eDM SBC" . [...] >>> + tas2552: audio-codec@40 { >>> + compatible = "ti,tas2552"; >>> + reg = <0x40>; >>> + #sound-dai-cells = <0>; >>> + avdd-supply = <®_1p8v>; >>> + iovdd-supply = <®_3p3v>; >>> + vbat-supply = <®_5p0v>; >>> + enable-gpio = <&i2c2_gpio_expander_20 23 GPIO_ACTIVE_HIGH>; >> >> [Severity: Low] >> This isn't a bug, but should tas2552 be using the enable-gpios property name >> instead of the deprecated enable-gpio? The patch changelog mentions replacing >> gpio with gpios DT properties. > > Please fix this one. No, this is correct, see Documentation/devicetree/bindings/sound/ti,tas2552.yaml: enable-gpio: [...] ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v4 3/3] arm64: dts: imx95: Add support for Data Modul i.MX95 eDM SBC 2026-09-17 17:19 ` Marek Vasut @ 2026-09-17 18:46 ` Frank Li 2026-09-17 18:55 ` Marek Vasut 0 siblings, 1 reply; 19+ messages in thread From: Frank Li @ 2026-09-17 18:46 UTC (permalink / raw) To: Marek Vasut Cc: Marc Kleine-Budde, robh, Frank.Li, imx, conor+dt, Oliver Hartkopp, Oleksij Rempel, linux-can, Vincent Mailhol, devicetree On Thu, Sep 17, 2026 at 07:19:51PM +0200, Marek Vasut wrote: > On 9/17/26 6:53 PM, Frank Li wrote: > > Hello Frank, > > > On Thu, Sep 17, 2026 at 06:35:12AM +0000, sashiko-bot@kernel.org wrote: > > > Thank you for your contribution! Sashiko AI review found 6 potential issue(s) to consider: > > > - [High] dts: pcal6524 interrupt polarity is incorrectly set to LEVEL_HIGH > > > - [Medium] dts: Ethernet PHY reset-gpios configured with wrong polarity > > > - [Medium] dts: eMMC reset GPIO defined but unused in usdhc1 > > > - [Medium] dts: reg_panel_vcc regulator missing enable-active-high property > > > - [Medium] dts: M.2 Key-E (usdhc3) slot missing power regulator > > > - [Low] dts: tas2552 codec uses deprecated enable-gpio instead of enable-gpios > > [...] > > > > > + reg_panel_vcc: regulator-panel-vcc { > > > > + compatible = "regulator-fixed"; > > > > + regulator-min-microvolt = <3300000>; > > > > + regulator-max-microvolt = <3300000>; > > > > + regulator-name = "PANEL_VCC"; > > > > + gpios = <&i2c2_gpio_expander_20 17 0>; > > > > gpio third arg 0, means GPIO_ACTIVE_HIGH > > > > so need enable-active-high > > > > if your boards have invertor should use GPIO_ACTIVE_LOW > > I already went through all that, please see "Re: [PATCH 3/3] arm64: dts: > imx95: Add support for Data Modul i.MX95 eDM SBC" . at https://lore.kernel.org/imx/f4dbeaac-ab10-4980-9fc5-533907be223c@nabladev.com/ <&i2c2_gpio_expander_20 17 0>; ^ 0 should use predefine MACRO, after I check 0 means GPIO_ACTIVE_HIGH. so need enable-active-high for regulator. > > [...] > > > > > + tas2552: audio-codec@40 { > > > > + compatible = "ti,tas2552"; > > > > + reg = <0x40>; > > > > + #sound-dai-cells = <0>; > > > > + avdd-supply = <®_1p8v>; > > > > + iovdd-supply = <®_3p3v>; > > > > + vbat-supply = <®_5p0v>; > > > > + enable-gpio = <&i2c2_gpio_expander_20 23 GPIO_ACTIVE_HIGH>; > > > > > > [Severity: Low] > > > This isn't a bug, but should tas2552 be using the enable-gpios property name > > > instead of the deprecated enable-gpio? The patch changelog mentions replacing > > > gpio with gpios DT properties. > > > > Please fix this one. > > No, this is correct, see > > Documentation/devicetree/bindings/sound/ti,tas2552.yaml: enable-gpio: It is fine now, I suggest update bindings to allow both. which convert by Rob at Jan 2026. I think Rob may miss it. kernel hack code covert -gpio to -gpios Frank > > [...] ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v4 3/3] arm64: dts: imx95: Add support for Data Modul i.MX95 eDM SBC 2026-09-17 18:46 ` Frank Li @ 2026-09-17 18:55 ` Marek Vasut 2026-09-18 13:58 ` Frank Li 0 siblings, 1 reply; 19+ messages in thread From: Marek Vasut @ 2026-09-17 18:55 UTC (permalink / raw) To: Frank Li Cc: Marc Kleine-Budde, robh, Frank.Li, imx, conor+dt, Oliver Hartkopp, Oleksij Rempel, linux-can, Vincent Mailhol, devicetree On 9/17/26 8:46 PM, Frank Li wrote: Hello Frank, [...] >>>>> + reg_panel_vcc: regulator-panel-vcc { >>>>> + compatible = "regulator-fixed"; >>>>> + regulator-min-microvolt = <3300000>; >>>>> + regulator-max-microvolt = <3300000>; >>>>> + regulator-name = "PANEL_VCC"; >>>>> + gpios = <&i2c2_gpio_expander_20 17 0>; >>> >>> gpio third arg 0, means GPIO_ACTIVE_HIGH >>> >>> so need enable-active-high >>> >>> if your boards have invertor should use GPIO_ACTIVE_LOW >> >> I already went through all that, please see "Re: [PATCH 3/3] arm64: dts: >> imx95: Add support for Data Modul i.MX95 eDM SBC" . > > at https://lore.kernel.org/imx/f4dbeaac-ab10-4980-9fc5-533907be223c@nabladev.com/ > > <&i2c2_gpio_expander_20 17 0>; > ^ > > 0 should use predefine MACRO, after I check 0 means GPIO_ACTIVE_HIGH. > > so need enable-active-high for regulator. This is extended via a DTO, so no, I must not use a macro because I do not know the polarity of this signal, that is why there is 0 here. The enable-active-high DT property must explicitly NOT be here, because the DTO can not remove properties from the base DT. Adding enable-active-high here would make the DTO unable to operate this signal as active-low . >>>>> + tas2552: audio-codec@40 { >>>>> + compatible = "ti,tas2552"; >>>>> + reg = <0x40>; >>>>> + #sound-dai-cells = <0>; >>>>> + avdd-supply = <®_1p8v>; >>>>> + iovdd-supply = <®_3p3v>; >>>>> + vbat-supply = <®_5p0v>; >>>>> + enable-gpio = <&i2c2_gpio_expander_20 23 GPIO_ACTIVE_HIGH>; >>>> >>>> [Severity: Low] >>>> This isn't a bug, but should tas2552 be using the enable-gpios property name >>>> instead of the deprecated enable-gpio? The patch changelog mentions replacing >>>> gpio with gpios DT properties. >>> >>> Please fix this one. >> >> No, this is correct, see >> >> Documentation/devicetree/bindings/sound/ti,tas2552.yaml: enable-gpio: > > It is fine now, I suggest update bindings to allow both. which convert > by Rob at Jan 2026. I think Rob may miss it. > > kernel hack code covert -gpio to -gpios I'll add that into my todo, but that is a separate fix from this DT. ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v4 3/3] arm64: dts: imx95: Add support for Data Modul i.MX95 eDM SBC 2026-09-17 18:55 ` Marek Vasut @ 2026-09-18 13:58 ` Frank Li 2026-09-20 17:05 ` Marek Vasut 0 siblings, 1 reply; 19+ messages in thread From: Frank Li @ 2026-09-18 13:58 UTC (permalink / raw) To: Marek Vasut Cc: Marc Kleine-Budde, robh, Frank.Li, imx, conor+dt, Oliver Hartkopp, Oleksij Rempel, linux-can, Vincent Mailhol, devicetree On Thu, Sep 17, 2026 at 08:55:56PM +0200, Marek Vasut wrote: > On 9/17/26 8:46 PM, Frank Li wrote: > > Hello Frank, > > [...] > > > > > > > + reg_panel_vcc: regulator-panel-vcc { > > > > > > + compatible = "regulator-fixed"; > > > > > > + regulator-min-microvolt = <3300000>; > > > > > > + regulator-max-microvolt = <3300000>; > > > > > > + regulator-name = "PANEL_VCC"; > > > > > > + gpios = <&i2c2_gpio_expander_20 17 0>; > > > > > > > > gpio third arg 0, means GPIO_ACTIVE_HIGH > > > > > > > > so need enable-active-high > > > > > > > > if your boards have invertor should use GPIO_ACTIVE_LOW > > > > > > I already went through all that, please see "Re: [PATCH 3/3] arm64: dts: > > > imx95: Add support for Data Modul i.MX95 eDM SBC" . > > > > at https://lore.kernel.org/imx/f4dbeaac-ab10-4980-9fc5-533907be223c@nabladev.com/ > > > > <&i2c2_gpio_expander_20 17 0>; > > ^ > > > > 0 should use predefine MACRO, after I check 0 means GPIO_ACTIVE_HIGH. > > > > so need enable-active-high for regulator. > > This is extended via a DTO, so no, I must not use a macro because I do not > know the polarity of this signal, that is why there is 0 here. > > The enable-active-high DT property must explicitly NOT be here, because the > DTO can not remove properties from the base DT. Adding enable-active-high > here would make the DTO unable to operate this signal as active-low . But why DTO need update regulator-panel-vcc's gpio informaiton. I suppose it is fixed when board design. Does this regulator place at additional boards? Frank > > > > > > > + tas2552: audio-codec@40 { > > > > > > + compatible = "ti,tas2552"; > > > > > > + reg = <0x40>; > > > > > > + #sound-dai-cells = <0>; > > > > > > + avdd-supply = <®_1p8v>; > > > > > > + iovdd-supply = <®_3p3v>; > > > > > > + vbat-supply = <®_5p0v>; > > > > > > + enable-gpio = <&i2c2_gpio_expander_20 23 GPIO_ACTIVE_HIGH>; > > > > > > > > > > [Severity: Low] > > > > > This isn't a bug, but should tas2552 be using the enable-gpios property name > > > > > instead of the deprecated enable-gpio? The patch changelog mentions replacing > > > > > gpio with gpios DT properties. > > > > > > > > Please fix this one. > > > > > > No, this is correct, see > > > > > > Documentation/devicetree/bindings/sound/ti,tas2552.yaml: enable-gpio: > > > > It is fine now, I suggest update bindings to allow both. which convert > > by Rob at Jan 2026. I think Rob may miss it. > > > > kernel hack code covert -gpio to -gpios > I'll add that into my todo, but that is a separate fix from this DT. ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v4 3/3] arm64: dts: imx95: Add support for Data Modul i.MX95 eDM SBC 2026-09-18 13:58 ` Frank Li @ 2026-09-20 17:05 ` Marek Vasut 2026-09-21 16:24 ` Frank Li 0 siblings, 1 reply; 19+ messages in thread From: Marek Vasut @ 2026-09-20 17:05 UTC (permalink / raw) To: Frank Li Cc: Marc Kleine-Budde, robh, Frank.Li, imx, conor+dt, Oliver Hartkopp, Oleksij Rempel, linux-can, Vincent Mailhol, devicetree On 9/18/26 3:58 PM, Frank Li wrote: Hello Frank, >>>>>>> + reg_panel_vcc: regulator-panel-vcc { >>>>>>> + compatible = "regulator-fixed"; >>>>>>> + regulator-min-microvolt = <3300000>; >>>>>>> + regulator-max-microvolt = <3300000>; >>>>>>> + regulator-name = "PANEL_VCC"; >>>>>>> + gpios = <&i2c2_gpio_expander_20 17 0>; >>>>> >>>>> gpio third arg 0, means GPIO_ACTIVE_HIGH >>>>> >>>>> so need enable-active-high >>>>> >>>>> if your boards have invertor should use GPIO_ACTIVE_LOW >>>> >>>> I already went through all that, please see "Re: [PATCH 3/3] arm64: dts: >>>> imx95: Add support for Data Modul i.MX95 eDM SBC" . >>> >>> at https://lore.kernel.org/imx/f4dbeaac-ab10-4980-9fc5-533907be223c@nabladev.com/ >>> >>> <&i2c2_gpio_expander_20 17 0>; >>> ^ >>> >>> 0 should use predefine MACRO, after I check 0 means GPIO_ACTIVE_HIGH. >>> >>> so need enable-active-high for regulator. >> >> This is extended via a DTO, so no, I must not use a macro because I do not >> know the polarity of this signal, that is why there is 0 here. >> >> The enable-active-high DT property must explicitly NOT be here, because the >> DTO can not remove properties from the base DT. Adding enable-active-high >> here would make the DTO unable to operate this signal as active-low . > > > But why DTO need update regulator-panel-vcc's gpio informaiton. I suppose > it is fixed when board design. It is just a GPIO, it can have either polarity depending on the regulator that it controls. -- Best regards, Marek Vasut ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v4 3/3] arm64: dts: imx95: Add support for Data Modul i.MX95 eDM SBC 2026-09-20 17:05 ` Marek Vasut @ 2026-09-21 16:24 ` Frank Li 2026-09-21 16:37 ` Marek Vasut 0 siblings, 1 reply; 19+ messages in thread From: Frank Li @ 2026-09-21 16:24 UTC (permalink / raw) To: Marek Vasut Cc: Marc Kleine-Budde, robh, Frank.Li, imx, conor+dt, Oliver Hartkopp, Oleksij Rempel, linux-can, Vincent Mailhol, devicetree On Sun, Sep 20, 2026 at 07:05:58PM +0200, Marek Vasut wrote: > On 9/18/26 3:58 PM, Frank Li wrote: > > Hello Frank, > > > > > > > > > + reg_panel_vcc: regulator-panel-vcc { > > > > > > > > + compatible = "regulator-fixed"; > > > > > > > > + regulator-min-microvolt = <3300000>; > > > > > > > > + regulator-max-microvolt = <3300000>; > > > > > > > > + regulator-name = "PANEL_VCC"; > > > > > > > > + gpios = <&i2c2_gpio_expander_20 17 0>; > > > > > > > > > > > > gpio third arg 0, means GPIO_ACTIVE_HIGH > > > > > > > > > > > > so need enable-active-high > > > > > > > > > > > > if your boards have invertor should use GPIO_ACTIVE_LOW > > > > > > > > > > I already went through all that, please see "Re: [PATCH 3/3] arm64: dts: > > > > > imx95: Add support for Data Modul i.MX95 eDM SBC" . > > > > > > > > at https://lore.kernel.org/imx/f4dbeaac-ab10-4980-9fc5-533907be223c@nabladev.com/ > > > > > > > > <&i2c2_gpio_expander_20 17 0>; > > > > ^ > > > > > > > > 0 should use predefine MACRO, after I check 0 means GPIO_ACTIVE_HIGH. > > > > > > > > so need enable-active-high for regulator. > > > > > > This is extended via a DTO, so no, I must not use a macro because I do not > > > know the polarity of this signal, that is why there is 0 here. > > > > > > The enable-active-high DT property must explicitly NOT be here, because the > > > DTO can not remove properties from the base DT. Adding enable-active-high > > > here would make the DTO unable to operate this signal as active-low . > > > > > > But why DTO need update regulator-panel-vcc's gpio informaiton. I suppose > > it is fixed when board design. > > It is just a GPIO, it can have either polarity depending on the regulator > that it controls. Understand, But the problem is why polarity change after board design? If reg_panel_vcc is on added on boards, should it be in dtso file also to match your hardware design correctly? Frank > > -- > Best regards, > Marek Vasut ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v4 3/3] arm64: dts: imx95: Add support for Data Modul i.MX95 eDM SBC 2026-09-21 16:24 ` Frank Li @ 2026-09-21 16:37 ` Marek Vasut 2026-09-21 17:11 ` Frank Li 0 siblings, 1 reply; 19+ messages in thread From: Marek Vasut @ 2026-09-21 16:37 UTC (permalink / raw) To: Frank Li Cc: Marc Kleine-Budde, robh, Frank.Li, imx, conor+dt, Oliver Hartkopp, Oleksij Rempel, linux-can, Vincent Mailhol, devicetree On 9/21/26 6:24 PM, Frank Li wrote: Hello Frank, >>> But why DTO need update regulator-panel-vcc's gpio informaiton. I suppose >>> it is fixed when board design. >> >> It is just a GPIO, it can have either polarity depending on the regulator >> that it controls. > > Understand, But the problem is why polarity change after board design? > > If reg_panel_vcc is on added on boards, should it be in dtso file also to > match your hardware design correctly? We want to avoid duplication in the DTOs files, do we not ? Hence, base common stuff in the base DT, stuff that changes in the DTOs. ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v4 3/3] arm64: dts: imx95: Add support for Data Modul i.MX95 eDM SBC 2026-09-21 16:37 ` Marek Vasut @ 2026-09-21 17:11 ` Frank Li 2026-09-21 18:43 ` Marek Vasut 0 siblings, 1 reply; 19+ messages in thread From: Frank Li @ 2026-09-21 17:11 UTC (permalink / raw) To: Marek Vasut Cc: Marc Kleine-Budde, robh, Frank.Li, imx, conor+dt, Oliver Hartkopp, Oleksij Rempel, linux-can, Vincent Mailhol, devicetree On Mon, Sep 21, 2026 at 06:37:26PM +0200, Marek Vasut wrote: > On 9/21/26 6:24 PM, Frank Li wrote: > > Hello Frank, > > > > > But why DTO need update regulator-panel-vcc's gpio informaiton. I suppose > > > > it is fixed when board design. > > > > > > It is just a GPIO, it can have either polarity depending on the regulator > > > that it controls. > > > > Understand, But the problem is why polarity change after board design? > > > > If reg_panel_vcc is on added on boards, should it be in dtso file also to > > match your hardware design correctly? > > We want to avoid duplication in the DTOs files, do we not ? Yes, but there are not dtso file yet, I don't know how to share it yet. > > Hence, base common stuff in the base DT, stuff that changes in the DTOs. Idea is good, but avoid hack stuff. Can you show me what's plan use reg_panel_vcc in dtso and how to share it. Frank ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v4 3/3] arm64: dts: imx95: Add support for Data Modul i.MX95 eDM SBC 2026-09-21 17:11 ` Frank Li @ 2026-09-21 18:43 ` Marek Vasut 2026-09-21 19:23 ` Frank Li 0 siblings, 1 reply; 19+ messages in thread From: Marek Vasut @ 2026-09-21 18:43 UTC (permalink / raw) To: Frank Li Cc: Marc Kleine-Budde, robh, Frank.Li, imx, conor+dt, Oliver Hartkopp, Oleksij Rempel, linux-can, Vincent Mailhol, devicetree On 9/21/26 7:11 PM, Frank Li wrote: Hello Frank, >>>>> But why DTO need update regulator-panel-vcc's gpio informaiton. I suppose >>>>> it is fixed when board design. >>>> >>>> It is just a GPIO, it can have either polarity depending on the regulator >>>> that it controls. >>> >>> Understand, But the problem is why polarity change after board design? >>> >>> If reg_panel_vcc is on added on boards, should it be in dtso file also to >>> match your hardware design correctly? >> >> We want to avoid duplication in the DTOs files, do we not ? > > Yes, but there are not dtso file yet, I don't know how to share it yet. Yes, there is no DTSO, because there is no DPU support for MX95, so display support in upstream is missing (check with Victor Liu, they might know more about the current state). >> Hence, base common stuff in the base DT, stuff that changes in the DTOs. > > Idea is good, but avoid hack stuff. Can you show me what's plan use > reg_panel_vcc in dtso and how to share it. See above, currently I cannot really use the regulator, because of the missing DPU support. The only DTO I temporarily have in tree (used with my DPU patchset) is for the RPi 7" display 2, which does not use this regulator. The plan is to use it the same way as on the MX8MM/MX8MP eDM SBC in the DTO: ®_panel_vcc { gpios = <&i2c2_gpio_expander_20 17 GPIO_ACTIVE_HIGH>; enable-active-high; status = "okay"; }; or ®_panel_vcc { gpios = <&i2c2_gpio_expander_20 17 GPIO_ACTIVE_LOW>; status = "okay"; }; ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v4 3/3] arm64: dts: imx95: Add support for Data Modul i.MX95 eDM SBC 2026-09-21 18:43 ` Marek Vasut @ 2026-09-21 19:23 ` Frank Li 2026-09-21 21:46 ` Marek Vasut 0 siblings, 1 reply; 19+ messages in thread From: Frank Li @ 2026-09-21 19:23 UTC (permalink / raw) To: Marek Vasut Cc: Marc Kleine-Budde, robh, Frank.Li, imx, conor+dt, Oliver Hartkopp, Oleksij Rempel, linux-can, Vincent Mailhol, devicetree On Mon, Sep 21, 2026 at 08:43:35PM +0200, Marek Vasut wrote: > On 9/21/26 7:11 PM, Frank Li wrote: > > Hello Frank, > > > > > > > But why DTO need update regulator-panel-vcc's gpio informaiton. I suppose > > > > > > it is fixed when board design. > > > > > > > > > > It is just a GPIO, it can have either polarity depending on the regulator > > > > > that it controls. > > > > > > > > Understand, But the problem is why polarity change after board design? > > > > > > > > If reg_panel_vcc is on added on boards, should it be in dtso file also to > > > > match your hardware design correctly? > > > > > > We want to avoid duplication in the DTOs files, do we not ? > > > > Yes, but there are not dtso file yet, I don't know how to share it yet. > > Yes, there is no DTSO, because there is no DPU support for MX95, so display > support in upstream is missing (check with Victor Liu, they might know more > about the current state). > > > > Hence, base common stuff in the base DT, stuff that changes in the DTOs. > > > > Idea is good, but avoid hack stuff. Can you show me what's plan use > > reg_panel_vcc in dtso and how to share it. > See above, currently I cannot really use the regulator, because of the > missing DPU support. I suggest add it when it will be used. Or Remove gpios = <&i2c2_gpio_expander_20 17 0>; Suppose it will be overwrited by dtso future. > The only DTO I temporarily have in tree (used with my > DPU patchset) is for the RPi 7" display 2, which does not use this > regulator. > > The plan is to use it the same way as on the MX8MM/MX8MP eDM SBC in the DTO: > > ®_panel_vcc { > gpios = <&i2c2_gpio_expander_20 17 GPIO_ACTIVE_HIGH>; > enable-active-high; > status = "okay"; > }; > > or > > ®_panel_vcc { > gpios = <&i2c2_gpio_expander_20 17 GPIO_ACTIVE_LOW>; > status = "okay"; > }; In future, it should be nexus node for it and put reg_panel_vcc into dtso files, and looks like you use gpio controller add-on boards's regulator. Frank ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v4 3/3] arm64: dts: imx95: Add support for Data Modul i.MX95 eDM SBC 2026-09-21 19:23 ` Frank Li @ 2026-09-21 21:46 ` Marek Vasut 0 siblings, 0 replies; 19+ messages in thread From: Marek Vasut @ 2026-09-21 21:46 UTC (permalink / raw) To: Frank Li Cc: Marc Kleine-Budde, robh, Frank.Li, imx, conor+dt, Oliver Hartkopp, Oleksij Rempel, linux-can, Vincent Mailhol, devicetree On 9/21/26 9:23 PM, Frank Li wrote: [...] >>>> Hence, base common stuff in the base DT, stuff that changes in the DTOs. >>> >>> Idea is good, but avoid hack stuff. Can you show me what's plan use >>> reg_panel_vcc in dtso and how to share it. >> See above, currently I cannot really use the regulator, because of the >> missing DPU support. > > I suggest add it when it will be used. The users can already use it with additional downstream patches, so having the base node in the DT is helpful to the users. > Or Remove gpios = <&i2c2_gpio_expander_20 17 0>; Having the GPIO described here is also helpful to the users, since they won't have to look up which GPIO is controlling this regulator in the schematic, and won't make mistakes. > Suppose it will be overwrited by dtso future. Only the polarity. >> The only DTO I temporarily have in tree (used with my >> DPU patchset) is for the RPi 7" display 2, which does not use this >> regulator. >> >> The plan is to use it the same way as on the MX8MM/MX8MP eDM SBC in the DTO: >> >> ®_panel_vcc { >> gpios = <&i2c2_gpio_expander_20 17 GPIO_ACTIVE_HIGH>; >> enable-active-high; >> status = "okay"; >> }; >> >> or >> >> ®_panel_vcc { >> gpios = <&i2c2_gpio_expander_20 17 GPIO_ACTIVE_LOW>; >> status = "okay"; >> }; > > In future, it should be nexus node for it and put reg_panel_vcc into dtso > files, and looks like you use gpio controller add-on boards's regulator. There is really no need for a nexus node, only for a polarity setting. ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v4 1/3] dt-bindings: phy: ti,tcan104x-can: Document Microchip ATA6563 2026-09-17 6:25 [PATCH v4 1/3] dt-bindings: phy: ti,tcan104x-can: Document Microchip ATA6563 Marek Vasut 2026-09-17 6:25 ` [PATCH v4 2/3] dt-bindings: arm: fsl: Document Data Modul i.MX95 eDM SBC Marek Vasut 2026-09-17 6:25 ` [PATCH v4 3/3] arm64: dts: imx95: Add support for " Marek Vasut @ 2026-09-17 6:31 ` sashiko-bot 2026-09-18 10:58 ` Krzysztof Kozlowski 3 siblings, 0 replies; 19+ messages in thread From: sashiko-bot @ 2026-09-17 6:31 UTC (permalink / raw) To: Marek Vasut Cc: conor+dt, Vincent Mailhol, Marc Kleine-Budde, linux-can, Oleksij Rempel, robh, Frank.Li, imx, Oliver Hartkopp, devicetree Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Medium] dt-bindings: phy: incomplete schema validation for microchip,ata6563 -- commit e1e7d148b2a5e6742f485d13055f3692d10dbf6a Author: Marek Vasut <marex@nabladev.com> dt-bindings: phy: ti,tcan104x-can: Document Microchip ATA6563 Microchip ATA6563 is High-Speed CAN Transceiver with Standby Mode. It is pin-compatible with TI TCAN1042 and has a compatible programming model, therefore use ti,tcan1042 as fallback compatible. > diff --git a/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml b/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml > index 9f5c37ca6496a..75c276548e122 100644 > --- a/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml > +++ b/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml > @@ -18,6 +18,7 @@ properties: > - items: > - enum: > - microchip,ata6561 > + - microchip,ata6563 > - ti,tcan1051 > - const: ti,tcan1042 [Severity: Medium] Will this compatible string bypass the constraints enforced in the allOf block below? Since microchip,ata6563 is defined as an array item here, the compatible property will be an array at runtime (e.g. ["microchip,ata6563", "ti,tcan1042"]). Looking at the allOf conditional block for ti,tcan1042: allOf: - if: properties: compatible: enum: - nxp,tjr1443 - ti,tcan1042 - ti,tcan1043 This block uses an exact enum match. In JSON Schema, an array value will not match this enum of single strings. Does this need to use contains: enum or contains: const to properly apply constraints (like #phy-cells: const: 0) when a fallback array is used? -- Sashiko AI review · https://sashiko.dev/#/patchset/20260917062543.534416-1-marex@nabladev.com?part=1 ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v4 1/3] dt-bindings: phy: ti,tcan104x-can: Document Microchip ATA6563 2026-09-17 6:25 [PATCH v4 1/3] dt-bindings: phy: ti,tcan104x-can: Document Microchip ATA6563 Marek Vasut ` (2 preceding siblings ...) 2026-09-17 6:31 ` [PATCH v4 1/3] dt-bindings: phy: ti,tcan104x-can: Document Microchip ATA6563 sashiko-bot @ 2026-09-18 10:58 ` Krzysztof Kozlowski 3 siblings, 0 replies; 19+ messages in thread From: Krzysztof Kozlowski @ 2026-09-18 10:58 UTC (permalink / raw) To: Marek Vasut Cc: linux-arm-kernel, Aswath Govindraju, Conor Dooley, Fabio Estevam, Frank Li, Krzysztof Kozlowski, Marc Kleine-Budde, Rob Herring, devicetree, imx, linux-can, linux-kernel On Thu, Sep 17, 2026 at 08:25:26AM +0200, Marek Vasut wrote: > Microchip ATA6563 is High-Speed CAN Transceiver with Standby Mode. > It is pin-compatible with TI TCAN1042 and has a compatible programming > model, therefore use ti,tcan1042 as fallback compatible. > > Signed-off-by: Marek Vasut <marex@nabladev.com> I'll fix up the binding constraints. Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Best regards, Krzysztof ^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2026-09-21 21:46 UTC | newest] Thread overview: 19+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-09-17 6:25 [PATCH v4 1/3] dt-bindings: phy: ti,tcan104x-can: Document Microchip ATA6563 Marek Vasut 2026-09-17 6:25 ` [PATCH v4 2/3] dt-bindings: arm: fsl: Document Data Modul i.MX95 eDM SBC Marek Vasut 2026-09-18 11:01 ` Krzysztof Kozlowski 2026-09-17 6:25 ` [PATCH v4 3/3] arm64: dts: imx95: Add support for " Marek Vasut 2026-09-17 6:35 ` sashiko-bot 2026-09-17 16:53 ` Frank Li 2026-09-17 17:19 ` Marek Vasut 2026-09-17 18:46 ` Frank Li 2026-09-17 18:55 ` Marek Vasut 2026-09-18 13:58 ` Frank Li 2026-09-20 17:05 ` Marek Vasut 2026-09-21 16:24 ` Frank Li 2026-09-21 16:37 ` Marek Vasut 2026-09-21 17:11 ` Frank Li 2026-09-21 18:43 ` Marek Vasut 2026-09-21 19:23 ` Frank Li 2026-09-21 21:46 ` Marek Vasut 2026-09-17 6:31 ` [PATCH v4 1/3] dt-bindings: phy: ti,tcan104x-can: Document Microchip ATA6563 sashiko-bot 2026-09-18 10:58 ` Krzysztof Kozlowski
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox