RE: Re: [PATCH v5 6/9] arm64: dts: freescale: add i.MX91 11x11 EVK basic support
From: Joy Zou <hidden>
Date: 2025-06-16 07:42:54
Also in:
imx, linux-arm-kernel, linux-devicetree, linux-pm, lkml
-----Original Message----- From: Stefan Wahren <wahrenst@gmx.net> Sent: 2025年6月15日 16:55 To: Joy Zou <redacted>; robh@kernel.org; krzk+dt@kernel.org; conor+dt@kernel.org; shawnguo@kernel.org; s.hauer@pengutronix.de; catalin.marinas@arm.com; will@kernel.org; andrew+netdev@lunn.ch; davem@davemloft.net; edumazet@google.com; kuba@kernel.org; pabeni@redhat.com; mcoquelin.stm32@gmail.com; alexandre.torgue@foss.st.com; ulf.hansson@linaro.org; richardcochran@gmail.com; kernel@pengutronix.de; festevam@gmail.com Cc: devicetree@vger.kernel.org; linux-kernel@vger.kernel.org; imx@lists.linux.dev; linux-arm-kernel@lists.infradead.org; netdev@vger.kernel.org; linux-stm32@st-md-mailman.stormreply.com; linux-pm@vger.kernel.org; Frank Li [off-list ref]; Ye Li [off-list ref]; Jacky Bai [off-list ref]; Peng Fan [off-list ref]; Aisheng Dong [off-list ref]; Clark Wang [off-list ref] Subject: Re: [PATCH v5 6/9] arm64: dts: freescale: add i.MX91 11x11 EVK basic support Hello Joy, Am 13.06.25 um 12:02 schrieb Joy Zou:quoted
Add i.MX91 11x11 EVK board support. - Enable ADC1. - Enable lpuart1 and lpuart5. - Enable network eqos and fec. - Enable I2C bus and children nodes under I2C bus. - Enable USB and related nodes. - Enable uSDHC1 and uSDHC2. - Enable Watchdog3. Signed-off-by: Pengfei Li <redacted> Signed-off-by: Joy Zou <redacted> --- arch/arm64/boot/dts/freescale/Makefile | 1 + .../boot/dts/freescale/imx91-11x11-evk.dts | 878++++++++++++++++++quoted
2 files changed, 879 insertions(+) create mode 100644arch/arm64/boot/dts/freescale/imx91-11x11-evk.dtsquoted
diff --git a/arch/arm64/boot/dts/freescale/Makefileb/arch/arm64/boot/dts/freescale/Makefile index 0b473a23d120..fbedb3493c09 100644--- a/arch/arm64/boot/dts/freescale/Makefile +++ b/arch/arm64/boot/dts/freescale/Makefile@@ -315,6 +315,7 @@ dtb-$(CONFIG_ARCH_MXC) +=imx8qxp-tqma8xqp-mba8xx.dtbquoted
dtb-$(CONFIG_ARCH_MXC) += imx8qxp-tqma8xqps-mb-smarc-2.dtb dtb-$(CONFIG_ARCH_MXC) += imx8ulp-evk.dtb dtb-$(CONFIG_ARCH_MXC) += imx93-9x9-qsb.dtb +dtb-$(CONFIG_ARCH_MXC) += imx91-11x11-evk.dtb imx93-9x9-qsb-i3c-dtbs += imx93-9x9-qsb.dtb imx93-9x9-qsb-i3c.dtbo dtb-$(CONFIG_ARCH_MXC) += imx93-9x9-qsb-i3c.dtb diff --git a/arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts b/arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts new file mode 100644 index 000000000000..7ce76b207eae--- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts@@ -0,0 +1,878 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright 2025 NXP + */ + +/dts-v1/; + +#include <dt-bindings/usb/pd.h> +#include "imx91.dtsi" + +/ { + compatible = "fsl,imx91-11x11-evk", "fsl,imx91"; + model = "NXP i.MX91 11X11 EVK board"; + + aliases { + ethernet0 = &fec; + ethernet1 = &eqos; + rtc0 = &bbnsm_rtc; + }; + + chosen { + stdout-path = &lpuart1; + }; + + reg_vref_1v8: regulator-adc-vref { + compatible = "regulator-fixed"; + regulator-max-microvolt = <1800000>; + regulator-min-microvolt = <1800000>; + regulator-name = "vref_1v8"; + }; + + reg_audio_pwr: regulator-audio-pwr { + compatible = "regulator-fixed"; + regulator-always-on; + regulator-max-microvolt = <3300000>; + regulator-min-microvolt = <3300000>; + regulator-name = "audio-pwr"; + gpio = <&adp5585 1 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + reg_usdhc2_vmmc: regulator-usdhc2 { + compatible = "regulator-fixed"; + off-on-delay-us = <12000>; + pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>; + pinctrl-names = "default"; + regulator-max-microvolt = <3300000>; + regulator-min-microvolt = <3300000>; + regulator-name = "VSD_3V3"; + gpio = <&gpio3 7 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + reg_usdhc3_vmmc: regulator-usdhc3 { + compatible = "regulator-fixed"; + regulator-max-microvolt = <3300000>; + regulator-min-microvolt = <3300000>; + regulator-name = "WLAN_EN"; + gpio = <&pcal6524 20 GPIO_ACTIVE_HIGH>; + enable-active-high; + /* + * IW612 wifi chip needs more delay than other wifi chips tocompletequoted
+ * the host interface initialization after power up, otherwisethequoted
+ * internal state of IW612 may be unstable, resulting in thefailure ofquoted
+ * the SDIO3.0 switch voltage. + */ + startup-delay-us = <20000>; + };There is a regulator and pinctrl settings for usdhc3, but it's never used. Why?
Thanks for your comments! Will remove usdhc3 regulator and pinctrl settings. Will check and remove all unused regulator and pinctrl settings.
quoted
+ + reg_vdd_12v: regulator-vdd-12v { + compatible = "regulator-fixed"; + regulator-max-microvolt = <12000000>; + regulator-min-microvolt = <12000000>; + regulator-name = "reg_vdd_12v"; + gpio = <&pcal6524 14 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + reg_vrpi_3v3: regulator-vrpi-3v3 { + compatible = "regulator-fixed"; + regulator-max-microvolt = <3300000>; + regulator-min-microvolt = <3300000>; + regulator-name = "VRPI_3V3"; + vin-supply = <&buck4>; + gpio = <&pcal6524 2 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + reg_vrpi_5v: regulator-vrpi-5v { + compatible = "regulator-fixed"; + regulator-max-microvolt = <5000000>; + regulator-min-microvolt = <5000000>; + regulator-name = "VRPI_5V"; + gpio = <&pcal6524 8 GPIO_ACTIVE_HIGH>; + enable-active-high; + };These regulators doesn't seem to be used. Are they intended for overlays?
Will remove these unused regulators.
quoted
+ + reserved-memory { + ranges; + #address-cells = <2>; + #size-cells = <2>; + + linux,cma { + compatible = "shared-dma-pool"; + alloc-ranges = <0 0x80000000 0 0x40000000>; + reusable; + size = <0 0x10000000>; + linux,cma-default; + }; + }; +}; + +&adc1 { + vref-supply = <®_vref_1v8>; + status = "okay"; +}; + +&eqos { + phy-handle = <ðphy1>; + phy-mode = "rgmii-id"; + pinctrl-0 = <&pinctrl_eqos>; + pinctrl-1 = <&pinctrl_eqos_sleep>; + pinctrl-names = "default", "sleep"; + status = "okay"; + + mdio { + compatible = "snps,dwmac-mdio"; + #address-cells = <1>; + #size-cells = <0>; + clock-frequency = <5000000>; + + ethphy1: ethernet-phy@1 { + reg = <1>; + realtek,clkout-disable; + }; + }; +}; + +&fec { + phy-handle = <ðphy2>; + phy-mode = "rgmii-id"; + pinctrl-0 = <&pinctrl_fec>; + pinctrl-1 = <&pinctrl_fec_sleep>; + pinctrl-names = "default", "sleep"; + fsl,magic-packet; + status = "okay"; + + mdio { + #address-cells = <1>; + #size-cells = <0>; + clock-frequency = <5000000>; + + ethphy2: ethernet-phy@2 { + reg = <2>; + eee-broken-1000t; + realtek,clkout-disable; + }; + }; +}; + +/* + * When add, delete or change any target device setting in &lpi2c1, + * please synchronize the changes to the &i3c1 bus inimx91-11x11-evk-i3c.dts.quoted
+ */ +&lpi2c1 { + clock-frequency = <400000>; + pinctrl-0 = <&pinctrl_lpi2c1>; + pinctrl-names = "default"; + status = "okay"; + + audio_codec: wm8962@1a { + compatible = "wlf,wm8962"; + reg = <0x1a>; + clocks = <&clk IMX93_CLK_SAI3_GATE>; + AVDD-supply = <®_audio_pwr>; + CPVDD-supply = <®_audio_pwr>; + DBVDD-supply = <®_audio_pwr>; + DCVDD-supply = <®_audio_pwr>; + MICVDD-supply = <®_audio_pwr>; + PLLVDD-supply = <®_audio_pwr>; + SPKVDD1-supply = <®_audio_pwr>; + SPKVDD2-supply = <®_audio_pwr>; + gpio-cfg = < + 0x0000 /* 0:Default */ + 0x0000 /* 1:Default */ + 0x0000 /* 2:FN_DMICCLK */ + 0x0000 /* 3:Default */ + 0x0000 /* 4:FN_DMICCDAT */ + 0x0000 /* 5:Default */ + >; + }; + + inertial-meter@6a { + compatible = "st,lsm6dso"; + reg = <0x6a>; + }; +}; + +&lpi2c2 { + #address-cells = <1>; + #size-cells = <0>; + clock-frequency = <400000>; + pinctrl-0 = <&pinctrl_lpi2c2>; + pinctrl-names = "default"; + status = "okay"; + + pcal6524: gpio@22 { + compatible = "nxp,pcal6524"; + reg = <0x22>; + #interrupt-cells = <2>; + interrupt-controller; + interrupts = <27 IRQ_TYPE_LEVEL_LOW>; + #gpio-cells = <2>; + gpio-controller; + interrupt-parent = <&gpio3>; + pinctrl-0 = <&pinctrl_pcal6524>; + pinctrl-names = "default"; + }; + + pmic@25 { + compatible = "nxp,pca9451a"; + reg = <0x25>; + interrupts = <11 IRQ_TYPE_EDGE_FALLING>; + interrupt-parent = <&pcal6524>; + + regulators { + buck1: BUCK1 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <2237500>; + regulator-min-microvolt = <650000>; + regulator-name = "BUCK1"; + regulator-ramp-delay = <3125>; + }; + + buck2: BUCK2 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <2187500>; + regulator-min-microvolt = <600000>; + regulator-name = "BUCK2"; + regulator-ramp-delay = <3125>; + }; + + buck4: BUCK4 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <3400000>; + regulator-min-microvolt = <600000>; + regulator-name = "BUCK4"; + }; + + buck5: BUCK5 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <3400000>; + regulator-min-microvolt = <600000>; + regulator-name = "BUCK5"; + }; + + buck6: BUCK6 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <3400000>; + regulator-min-microvolt = <600000>; + regulator-name = "BUCK6"; + }; + + ldo1: LDO1 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <3300000>; + regulator-min-microvolt = <1600000>; + regulator-name = "LDO1"; + }; + + ldo4: LDO4 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <3300000>; + regulator-min-microvolt = <800000>; + regulator-name = "LDO4"; + }; + + ldo5: LDO5 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <3300000>; + regulator-min-microvolt = <1800000>; + regulator-name = "LDO5"; + }; + }; + }; + + adp5585: io-expander@34 { + compatible = "adi,adp5585-00", "adi,adp5585"; + reg = <0x34>; + #gpio-cells = <2>; + gpio-controller; + #pwm-cells = <3>; + gpio-reserved-ranges = <5 1>; + + exp-sel-hog { + gpio-hog; + gpios = <4 GPIO_ACTIVE_HIGH>; + output-low; + }; + }; +}; + +&lpi2c3 { + #address-cells = <1>; + #size-cells = <0>; + clock-frequency = <400000>; + pinctrl-0 = <&pinctrl_lpi2c3>; + pinctrl-names = "default"; + status = "okay"; + + ptn5110: tcpc@50 { + compatible = "nxp,ptn5110", "tcpci"; + reg = <0x50>; + interrupts = <27 IRQ_TYPE_LEVEL_LOW>; + interrupt-parent = <&gpio3>; + + typec1_con: connector { + compatible = "usb-c-connector"; + data-role = "dual"; + label = "USB-C"; + op-sink-microwatt = <15000000>; + power-role = "dual"; + self-powered; + sink-pdos = <PDO_FIXED(5000, 3000,PDO_FIXED_USB_COMM)quoted
+ PDO_VAR(5000, 20000, 3000)>; + source-pdos = <PDO_FIXED(5000, 3000,PDO_FIXED_USB_COMM)>;quoted
+ try-power-role = "sink"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + typec1_dr_sw: endpoint { + remote-endpoint =<&usb1_drd_sw>;quoted
+ }; + }; + }; + }; + }; + + ptn5110_2: tcpc@51 { + compatible = "nxp,ptn5110", "tcpci"; + reg = <0x51>; + interrupts = <27 IRQ_TYPE_LEVEL_LOW>; + interrupt-parent = <&gpio3>; + status = "okay"; + + typec2_con: connector { + compatible = "usb-c-connector"; + data-role = "dual"; + label = "USB-C"; + op-sink-microwatt = <15000000>; + power-role = "dual"; + self-powered; + sink-pdos = <PDO_FIXED(5000, 3000,PDO_FIXED_USB_COMM)quoted
+ PDO_VAR(5000, 20000, 3000)>; + source-pdos = <PDO_FIXED(5000, 3000,PDO_FIXED_USB_COMM)>;quoted
+ try-power-role = "sink"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + typec2_dr_sw: endpoint { + remote-endpoint =<&usb2_drd_sw>;quoted
+ }; + }; + }; + }; + }; + + pcf2131: rtc@53 { + compatible = "nxp,pcf2131"; + reg = <0x53>; + interrupts = <1 IRQ_TYPE_EDGE_FALLING>; + interrupt-parent = <&pcal6524>; + status = "okay"; + }; +}; + +&lpuart1 { + pinctrl-0 = <&pinctrl_uart1>; + pinctrl-names = "default"; + status = "okay"; +}; + +&lpuart5 { + pinctrl-0 = <&pinctrl_uart5>; + pinctrl-names = "default"; + status = "okay"; + + bluetooth { + compatible = "nxp,88w8987-bt"; + }; +}; + +&usbotg1 { + adp-disable; + disable-over-current; + dr_mode = "otg"; + hnp-disable; + srp-disable; + usb-role-switch; + samsung,picophy-dc-vol-level-adjust = <7>; + samsung,picophy-pre-emp-curr-control = <3>; + status = "okay"; + + port { + usb1_drd_sw: endpoint { + remote-endpoint = <&typec1_dr_sw>; + }; + }; +}; + +&usbotg2 { + adp-disable; + disable-over-current; + dr_mode = "otg"; + hnp-disable; + srp-disable; + usb-role-switch; + samsung,picophy-dc-vol-level-adjust = <7>; + samsung,picophy-pre-emp-curr-control = <3>; + status = "okay"; + + port { + usb2_drd_sw: endpoint { + remote-endpoint = <&typec2_dr_sw>; + }; + }; +}; + +&usdhc1 { + bus-width = <8>; + non-removable; + pinctrl-0 = <&pinctrl_usdhc1>; + pinctrl-1 = <&pinctrl_usdhc1_100mhz>; + pinctrl-2 = <&pinctrl_usdhc1_200mhz>; + pinctrl-names = "default", "state_100mhz", "state_200mhz"; + status = "okay"; +}; + +&usdhc2 { + bus-width = <4>; + cd-gpios = <&gpio3 00 GPIO_ACTIVE_LOW>; + no-mmc; + no-sdio; + pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>; + pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>; + pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>; + pinctrl-3 = <&pinctrl_usdhc2_sleep>, <&pinctrl_usdhc2_gpio_sleep>; + pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep"; + vmmc-supply = <®_usdhc2_vmmc>; + status = "okay"; +}; + +&wdog3 { + fsl,ext-reset-output; + status = "okay"; +}; + +&iomuxc { + pinctrl_eqos: eqosgrp { + fsl,pins = < + MX91_PAD_ENET1_MDC__ENET1_MDC0x57equoted
+ MX91_PAD_ENET1_MDIO__ENET_QOS_MDIO0x57equoted
+ MX91_PAD_ENET1_RD0__ENET_QOS_RGMII_RD00x57equoted
+ MX91_PAD_ENET1_RD1__ENET_QOS_RGMII_RD10x57equoted
+ MX91_PAD_ENET1_RD2__ENET_QOS_RGMII_RD20x57equoted
+ MX91_PAD_ENET1_RD3__ENET_QOS_RGMII_RD30x57equoted
+ MX91_PAD_ENET1_RXC__ENET_QOS_RGMII_RXC0x5fequoted
+MX91_PAD_ENET1_RX_CTL__ENET_QOS_RGMII_RX_CTL 0x57equoted
+ MX91_PAD_ENET1_TD0__ENET_QOS_RGMII_TD00x57equoted
+ MX91_PAD_ENET1_TD1__ENET1_RGMII_TD10x57equoted
+ MX91_PAD_ENET1_TD2__ENET_QOS_RGMII_TD20x57equoted
+ MX91_PAD_ENET1_TD3__ENET_QOS_RGMII_TD30x57equoted
+MX91_PAD_ENET1_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK 0x5fequoted
+MX91_PAD_ENET1_TX_CTL__ENET_QOS_RGMII_TX_CTL 0x57equoted
+ >; + }; + + pinctrl_eqos_sleep: eqossleepgrp { + fsl,pins = < + MX91_PAD_ENET1_MDC__GPIO4_IO00x31equoted
+ MX91_PAD_ENET1_MDIO__GPIO4_IO10x31equoted
+ MX91_PAD_ENET1_RD0__GPIO4_IO100x31equoted
+ MX91_PAD_ENET1_RD1__GPIO4_IO110x31equoted
+ MX91_PAD_ENET1_RD2__GPIO4_IO120x31equoted
+ MX91_PAD_ENET1_RD3__GPIO4_IO130x31equoted
+ MX91_PAD_ENET1_RXC__GPIO4_IO90x31equoted
+ MX91_PAD_ENET1_RX_CTL__GPIO4_IO80x31equoted
+ MX91_PAD_ENET1_TD0__GPIO4_IO50x31equoted
+ MX91_PAD_ENET1_TD1__GPIO4_IO40x31equoted
+ MX91_PAD_ENET1_TD2__GPIO4_IO30x31equoted
+ MX91_PAD_ENET1_TD3__GPIO4_IO20x31equoted
+ MX91_PAD_ENET1_TXC__GPIO4_IO70x31equoted
+ MX91_PAD_ENET1_TX_CTL__GPIO4_IO60x31equoted
+ >; + }; + + pinctrl_fec: fecgrp { + fsl,pins = < + MX91_PAD_ENET2_MDC__ENET2_MDC0x57equoted
+ MX91_PAD_ENET2_MDIO__ENET2_MDIO0x57equoted
+ MX91_PAD_ENET2_RD0__ENET2_RGMII_RD00x57equoted
+ MX91_PAD_ENET2_RD1__ENET2_RGMII_RD10x57equoted
+ MX91_PAD_ENET2_RD2__ENET2_RGMII_RD20x57equoted
+ MX91_PAD_ENET2_RD3__ENET2_RGMII_RD30x57equoted
+ MX91_PAD_ENET2_RXC__ENET2_RGMII_RXC0x5fequoted
+MX91_PAD_ENET2_RX_CTL__ENET2_RGMII_RX_CTL 0x57equoted
+ MX91_PAD_ENET2_TD0__ENET2_RGMII_TD00x57equoted
+ MX91_PAD_ENET2_TD1__ENET2_RGMII_TD10x57equoted
+ MX91_PAD_ENET2_TD2__ENET2_RGMII_TD20x57equoted
+ MX91_PAD_ENET2_TD3__ENET2_RGMII_TD30x57equoted
+ MX91_PAD_ENET2_TXC__ENET2_RGMII_TXC0x5fequoted
+MX91_PAD_ENET2_TX_CTL__ENET2_RGMII_TX_CTL 0x57equoted
+ >; + }; + + pinctrl_fec_sleep: fecsleepgrp { + fsl,pins = < + MX91_PAD_ENET2_MDC__GPIO4_IO140x51equoted
+ MX91_PAD_ENET2_MDIO__GPIO4_IO150x51equoted
+ MX91_PAD_ENET2_RD0__GPIO4_IO240x51equoted
+ MX91_PAD_ENET2_RD1__GPIO4_IO250x51equoted
+ MX91_PAD_ENET2_RD2__GPIO4_IO260x51equoted
+ MX91_PAD_ENET2_RD3__GPIO4_IO270x51equoted
+ MX91_PAD_ENET2_RXC__GPIO4_IO230x51equoted
+ MX91_PAD_ENET2_RX_CTL__GPIO4_IO220x51equoted
+ MX91_PAD_ENET2_TD0__GPIO4_IO190x51equoted
+ MX91_PAD_ENET2_TD1__GPIO4_IO180x51equoted
+ MX91_PAD_ENET2_TD2__GPIO4_IO170x51equoted
+ MX91_PAD_ENET2_TD3__GPIO4_IO160x51equoted
+ MX91_PAD_ENET2_TXC__GPIO4_IO210x51equoted
+ MX91_PAD_ENET2_TX_CTL__GPIO4_IO200x51equoted
+ >; + }; + + pinctrl_flexcan2: flexcan2grp { + fsl,pins = < + MX91_PAD_GPIO_IO25__CAN2_TX 0x139e + MX91_PAD_GPIO_IO27__CAN2_RX 0x139e + >; + }; + + pinctrl_flexcan2_sleep: flexcan2sleepgrp { + fsl,pins = < + MX91_PAD_GPIO_IO25__GPIO2_IO25 0x31e + MX91_PAD_GPIO_IO27__GPIO2_IO27 0x31e + >; + };Is CAN used somewhere?
Will remove the unused flexcan pinctrl settings. BR Joy Zou
Best regards