]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
arm64: dts: freescale: add i.MX95 19x19 FRDM PRO board dts
authorJoseph Guo <qijian.guo@nxp.com>
Tue, 2 Jun 2026 03:45:16 +0000 (12:45 +0900)
committerFrank Li <Frank.Li@nxp.com>
Fri, 5 Jun 2026 17:20:42 +0000 (13:20 -0400)
NXP i.MX95 19x19 FRDM PRO is cost-effective with extensive
expansion capabilities based on the i.MX95 19x19 SoC.
It is designed for AI and robotic situation.
Difference with i.MX95 15x15 FRDM:
- Use i.MX95 19x19 package
- Support 2 KEY-M M.2 PCIE
- 10G ETH interface
- Secure Element interface

Add device tree for this board. Including:
- LPUART1 and LPUART5
- NETC
- USB
- 2 M-Key M.2 PCIe
- uSDHC1, uSDHC2 and uSDHC3
- FlexCAN1 and FlexCAN3 (CAN1 is reserved by M7)
- LPI2C3, LPI2C4 and their child nodes
- Watchdog3
- SAI, MQS, MICFIL

Signed-off-by: Joseph Guo <qijian.guo@nxp.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
arch/arm64/boot/dts/freescale/Makefile
arch/arm64/boot/dts/freescale/imx95-19x19-frdm-pro.dts [new file with mode: 0644]

index 8473ebb445376cb2abafe4957a0d480b4169562f..b975cf82d82dc052ab3ebb417fa6e64f3478ab5b 100644 (file)
@@ -636,6 +636,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx95-15x15-evk.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx95-15x15-frdm.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx95-19x19-evk.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx95-19x19-evk-sof.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx95-19x19-frdm-pro.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx95-toradex-smarc-dev.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx95-tqma9596sa-mb-smarc-2.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx95-var-dart-sonata.dtb
diff --git a/arch/arm64/boot/dts/freescale/imx95-19x19-frdm-pro.dts b/arch/arm64/boot/dts/freescale/imx95-19x19-frdm-pro.dts
new file mode 100644 (file)
index 0000000..b87a26b
--- /dev/null
@@ -0,0 +1,1021 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2026 NXP
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/pwm/pwm.h>
+#include <dt-bindings/usb/pd.h>
+#include "imx95.dtsi"
+
+#define FALLING_EDGE           1
+#define RISING_EDGE            2
+
+#define BRD_SM_CTRL_SD3_WAKE           0x8000  /*!< PCAL6408A-0 */
+#define BRD_SM_CTRL_PCIE1_WAKE         0x8001  /*!< PCAL6408A-4 */
+#define BRD_SM_CTRL_BT_WAKE            0x8002  /*!< PCAL6408A-5 */
+#define BRD_SM_CTRL_PCIE2_WAKE         0x8003  /*!< PCAL6408A-6 */
+#define BRD_SM_CTRL_BUTTON             0x8004  /*!< PCAL6408A-7 */
+
+/ {
+       model = "NXP FRDM-IMX95-PRO";
+       compatible = "fsl,imx95-19x19-frdm-pro", "fsl,imx95";
+
+       aliases {
+               ethernet0 = &enetc_port0;
+               ethernet1 = &enetc_port1;
+               gpio0 = &gpio1;
+               gpio1 = &gpio2;
+               gpio2 = &gpio3;
+               gpio3 = &gpio4;
+               gpio4 = &gpio5;
+               i2c0 = &lpi2c1;
+               i2c1 = &lpi2c2;
+               i2c2 = &lpi2c3;
+               i2c3 = &lpi2c4;
+               mmc0 = &usdhc1;
+               mmc1 = &usdhc2;
+               serial0 = &lpuart1;
+               serial4 = &lpuart5;
+       };
+
+       bt_sco_codec: bt-sco-codec {
+               compatible = "linux,bt-sco";
+               #sound-dai-cells = <1>;
+       };
+
+       flexcan1_phy: can-phy0 {
+               compatible = "nxp,tja1057";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               silent-gpios = <&i2c4_gpio_expander_22 11 GPIO_ACTIVE_HIGH>;
+       };
+
+       flexcan3_phy: can-phy2 {
+               compatible = "nxp,tja1057";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               silent-gpios = <&i2c4_gpio_expander_22 13 GPIO_ACTIVE_HIGH>;
+       };
+
+       chosen {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               stdout-path = &lpuart1;
+       };
+
+       reg_vref_1v8: regulator-1p8v {
+               compatible = "regulator-fixed";
+               regulator-name = "+V1.8_SW";
+               regulator-max-microvolt = <1800000>;
+               regulator-min-microvolt = <1800000>;
+       };
+
+       reg_3p3v: regulator-3p3v {
+               compatible = "regulator-fixed";
+               regulator-name = "+V3.3_SW";
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+       };
+
+       reg_dcdc_3v3: regulator-dcdc-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "DCDC_3V3";
+               regulator-always-on;
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               vin-supply = <&reg_dcdc_5v>;
+               gpio = <&i2c4_gpio_expander_22 18 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_dcdc_5v: regulator-dcdc-5v {
+               compatible = "regulator-fixed";
+               regulator-name = "DCDC_5V";
+               regulator-always-on;
+               regulator-max-microvolt = <5000000>;
+               regulator-min-microvolt = <5000000>;
+               gpio = <&i2c4_gpio_expander_22 1 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_exp_1v8: regulator-exp-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "EXP_1V8";
+               regulator-max-microvolt = <1800000>;
+               regulator-min-microvolt = <1800000>;
+               gpio = <&i2c4_gpio_expander_22 10 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_exp_3v3: regulator-exp-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "EXP_3V3";
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               vin-supply = <&reg_dcdc_3v3>;
+               gpio = <&i2c4_gpio_expander_22 6 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_exp_5v: regulator-exp-5v {
+               compatible = "regulator-fixed";
+               regulator-name = "EXP_5V";
+               regulator-always-on;
+               regulator-max-microvolt = <5000000>;
+               regulator-min-microvolt = <5000000>;
+               vin-supply = <&reg_dcdc_5v>;
+               gpio = <&i2c4_gpio_expander_22 5 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_exp_12v: regulator-exp-12v {
+               compatible = "regulator-fixed";
+               regulator-name = "VCCEXP_12V";
+               regulator-always-on;
+               regulator-max-microvolt = <12000000>;
+               regulator-min-microvolt = <12000000>;
+               gpio = <&i2c4_gpio_expander_22 17 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_m2_mkey_1_pwr: regulator-m2-mkey-1-pwr {
+               compatible = "regulator-fixed";
+               regulator-name = "M.2-power-mkey-1";
+               regulator-always-on;
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               gpio = <&i2c3_gpio_expander_20 4 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_m2_mkey_2_pwr: regulator-m2-mkey-2-pwr {
+               compatible = "regulator-fixed";
+               regulator-name = "M.2-power-mkey-2";
+               regulator-always-on;
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               gpio = <&i2c3_gpio_expander_20 6 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_m2_ekey_pwr: regulator-m2-pwr {
+               compatible = "regulator-fixed";
+               regulator-name = "M.2-power-ekey";
+               regulator-always-on;
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               gpio = <&i2c4_gpio_expander_22 7 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_usdhc2_vmmc: regulator-usdhc2 {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_SD2_3V3";
+               off-on-delay-us = <12000>;
+               pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
+               pinctrl-names = "default";
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               gpio = <&gpio3 7 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_usdhc3_vmmc: regulator-usdhc3 {
+               compatible = "regulator-fixed";
+               regulator-name = "WLAN_EN";
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               vin-supply = <&reg_m2_ekey_pwr>;
+               gpio = <&i2c4_gpio_expander_22 8 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               /*
+                * IW612 wifi chip needs more delay than other wifi chips to complete
+                * the host interface initialization after power up, otherwise the
+                * internal state of IW612 may be unstable, resulting in the failure of
+                * the SDIO3.0 switch voltage.
+                */
+               startup-delay-us = <20000>;
+       };
+
+       reg_usb_vbus: regulator-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "USB_VBUS";
+               regulator-max-microvolt = <5000000>;
+               regulator-min-microvolt = <5000000>;
+               gpio = <&i2c4_gpio_expander_22 0 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reserved-memory {
+               ranges;
+               #address-cells = <2>;
+               #size-cells = <2>;
+
+               linux_cma: linux,cma {
+                       compatible = "shared-dma-pool";
+                       alloc-ranges = <0 0x80000000 0 0x7F000000>;
+                       reusable;
+                       size = <0 0x3c000000>;
+                       linux,cma-default;
+               };
+       };
+
+       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 {
+                       format = "i2s";
+                       link-name = "micfil hifi";
+
+                       cpu {
+                               sound-dai = <&micfil>;
+                       };
+               };
+       };
+
+       sound-mqs {
+               compatible = "audio-graph-card2";
+               links = <&sai1_port1>;
+               label = "mqs-audio";
+       };
+
+       usdhc3_pwrseq: usdhc3-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               reset-gpios = <&i2c4_gpio_expander_22 9 GPIO_ACTIVE_LOW>;
+       };
+
+       memory@80000000 {
+               reg = <0x0 0x80000000 0 0x80000000>;
+               device_type = "memory";
+       };
+};
+
+&adc1 {
+       vref-supply = <&reg_vref_1v8>;
+       status = "okay";
+};
+
+&enetc_port0 {
+       phy-handle = <&ethphy0>;
+       phy-mode = "rgmii-id";
+       pinctrl-0 = <&pinctrl_enetc0>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&enetc_port1 {
+       phy-handle = <&ethphy1>;
+       phy-mode = "rgmii-id";
+       pinctrl-0 = <&pinctrl_enetc1>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&flexcan1 {
+       phys = <&flexcan1_phy>;
+       pinctrl-0 = <&pinctrl_flexcan1>;
+       pinctrl-names = "default";
+       status = "reserved";
+};
+
+&flexcan3 {
+       phys = <&flexcan3_phy>;
+       pinctrl-0 = <&pinctrl_flexcan3>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&lpi2c3 {
+       clock-frequency = <400000>;
+       pinctrl-0 = <&pinctrl_lpi2c3>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       i2c3_gpio_expander_20: i2c3-gpio-expander@20 {
+               compatible = "nxp,pcal6416";
+               reg = <0x20>;
+               #interrupt-cells = <2>;
+               interrupt-controller;
+               interrupt-parent = <&gpio5>;
+               interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
+               #gpio-cells = <2>;
+               gpio-controller;
+               pinctrl-0 = <&pinctrl_pcal6416>;
+               pinctrl-names = "default";
+       };
+
+       ptn5110: tcpc@50 {
+               compatible = "nxp,ptn5110", "tcpci";
+               reg = <0x50>;
+               interrupt-parent = <&gpio5>;
+               interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-0 = <&pinctrl_ptn5110>;
+               pinctrl-names = "default";
+
+               typec_con: connector {
+                       compatible = "usb-c-connector";
+                       data-role = "dual";
+                       label = "USB-C";
+                       op-sink-microwatt = <0>;
+                       power-role = "dual";
+                       self-powered;
+                       sink-pdos = <PDO_FIXED(5000, 0, PDO_FIXED_USB_COMM)>;
+                       source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+                       try-power-role = "sink";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       typec_con_hs: endpoint {
+                                               remote-endpoint = <&usb3_data_hs>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       typec_con_ss: endpoint {
+                                               remote-endpoint = <&usb3_data_ss>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
+&lpi2c4 {
+       clock-frequency = <400000>;
+       pinctrl-0 = <&pinctrl_lpi2c4>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       i2c4_gpio_expander_22: i2c4-gpio-expander@22 {
+               compatible = "nxp,pcal6524";
+               reg = <0x22>;
+               #gpio-cells = <2>;
+               gpio-controller;
+               gpio-line-names = "USB2 Power Enable",
+                                 "DCDC5V Enable",
+                                 "",
+                                 "SE Enable",
+                                 "",
+                                 "EXP 5V Enable",
+                                 "EXP 3V3 Enable",
+                                 "WIFI Power Enable",
+                                 "M2 DIS1 B",
+                                 "WIFI SD3 Reset",
+                                 "EXP 1V8 Enable",
+                                 "CAN1 Standby",
+                                 "M2 DIS2",
+                                 "CAN2 Standby",
+                                 "ETH 10G IO4",
+                                 "ETH 10G IO3",
+                                 "SPI3/GPIO select",
+                                 "EXP 12V Enable",
+                                 "DCDC 3V3 Enable",
+                                 "PCIE1 Reset",
+                                 "",
+                                 "ETH 10G CLK Enable",
+                                 "LVDS to HDMI converter IT6263 reset",
+                                 "";
+
+               /* When high, select lpspi; When low, select gpio. */
+               lpspi-gpio-sel-hog {
+                       gpios = <16 GPIO_ACTIVE_HIGH>;
+                       gpio-hog;
+                       output-high;
+               };
+       };
+};
+
+&lpuart1 {
+       /* console */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       status = "okay";
+};
+
+&lpuart5 {
+       /* BT */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart5>;
+       status = "okay";
+
+       bluetooth {
+               compatible = "nxp,88w8987-bt";
+       };
+};
+
+&micfil {
+       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>;
+       #sound-dai-cells = <0>;
+       pinctrl-0 = <&pinctrl_pdm>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&mqs1 {
+       clocks = <&scmi_clk IMX95_CLK_SAI1>;
+       clock-names = "mclk";
+       pinctrl-0 = <&pinctrl_mqs1>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       mqs1_port: port {
+               mqs1_ep: endpoint {
+                       dai-format = "left_j";
+                       remote-endpoint = <&sai1_port1_ep>;
+               };
+       };
+};
+
+&netc_blk_ctrl {
+       status = "okay";
+};
+
+&netc_emdio {
+       pinctrl-0 = <&pinctrl_emdio>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       ethphy0: ethernet-phy@1 {
+               reg = <1>;
+               reset-assert-us = <10000>;
+               reset-deassert-us = <80000>;
+               reset-gpios = <&i2c3_gpio_expander_20 1 GPIO_ACTIVE_LOW>;
+       };
+
+       ethphy1: ethernet-phy@2 {
+               reg = <2>;
+               reset-assert-us = <10000>;
+               reset-deassert-us = <80000>;
+               reset-gpios = <&i2c3_gpio_expander_20 2 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&netc_timer {
+       status = "okay";
+};
+
+&netcmix_blk_ctrl {
+       status = "okay";
+};
+
+&pcie0 {
+       pinctrl-0 = <&pinctrl_pcie0>;
+       pinctrl-names = "default";
+       reset-gpio = <&i2c4_gpio_expander_22 19 GPIO_ACTIVE_LOW>;
+       vpcie-supply = <&reg_m2_mkey_1_pwr>;
+       status = "okay";
+};
+
+&pcie1 {
+       pinctrl-0 = <&pinctrl_pcie1>;
+       pinctrl-names = "default";
+       reset-gpio = <&i2c3_gpio_expander_20 9 GPIO_ACTIVE_LOW>;
+       vpcie-supply = <&reg_m2_mkey_2_pwr>;
+       status = "okay";
+};
+
+&sai1 {
+       clocks = <&scmi_clk IMX95_CLK_BUSAON>, <&dummy>,
+                <&scmi_clk IMX95_CLK_SAI1>, <&dummy>,
+                <&dummy>, <&scmi_clk IMX95_CLK_AUDIOPLL1>,
+                <&scmi_clk IMX95_CLK_AUDIOPLL2>;
+       clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k", "pll11k";
+       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_SAI1>;
+       assigned-clock-parents = <0>, <0>, <0>, <0>,
+                                <&scmi_clk IMX95_CLK_AUDIOPLL1>;
+       assigned-clock-rates = <3932160000>,
+                              <3612672000>, <393216000>,
+                              <361267200>, <24576000>;
+       #sound-dai-cells = <0>;
+       fsl,sai-mclk-direction-output;
+       status = "okay";
+
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               /* leave unconnected - no RX in the context of MQS */
+               port@0 {
+                       reg = <0>;
+
+                       endpoint {
+                       };
+               };
+
+               sai1_port1: port@1 {
+                       reg = <1>;
+                       mclk-fs = <512>;
+
+                       sai1_port1_ep: endpoint {
+                               dai-format = "left_j";
+                               system-clock-direction-out;
+                               bitclock-master;
+                               frame-master;
+                               remote-endpoint = <&mqs1_ep>;
+                       };
+               };
+       };
+};
+
+&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";
+};
+
+&scmi_iomuxc {
+       pinctrl-0 = <&pinctrl_hog>;
+       pinctrl-names = "default";
+
+       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_TD3__NETCMIX_TOP_ETH0_RGMII_TD3         0x50e
+                       IMX95_PAD_ENET1_TD2__NETCMIX_TOP_ETH0_RGMII_TD2         0x50e
+                       IMX95_PAD_ENET1_TD1__NETCMIX_TOP_ETH0_RGMII_TD1         0x50e
+                       IMX95_PAD_ENET1_TD0__NETCMIX_TOP_ETH0_RGMII_TD0         0x50e
+                       IMX95_PAD_ENET1_TX_CTL__NETCMIX_TOP_ETH0_RGMII_TX_CTL   0x57e
+                       IMX95_PAD_ENET1_TXC__NETCMIX_TOP_ETH0_RGMII_TX_CLK      0x58e
+                       IMX95_PAD_ENET1_RX_CTL__NETCMIX_TOP_ETH0_RGMII_RX_CTL   0x57e
+                       IMX95_PAD_ENET1_RXC__NETCMIX_TOP_ETH0_RGMII_RX_CLK      0x58e
+                       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
+               >;
+       };
+
+       pinctrl_enetc1: enetc1grp {
+               fsl,pins = <
+                       IMX95_PAD_ENET2_TD3__NETCMIX_TOP_ETH1_RGMII_TD3         0x50e
+                       IMX95_PAD_ENET2_TD2__NETCMIX_TOP_ETH1_RGMII_TD2         0x50e
+                       IMX95_PAD_ENET2_TD1__NETCMIX_TOP_ETH1_RGMII_TD1         0x50e
+                       IMX95_PAD_ENET2_TD0__NETCMIX_TOP_ETH1_RGMII_TD0         0x50e
+                       IMX95_PAD_ENET2_TX_CTL__NETCMIX_TOP_ETH1_RGMII_TX_CTL   0x57e
+                       IMX95_PAD_ENET2_TXC__NETCMIX_TOP_ETH1_RGMII_TX_CLK      0x58e
+                       IMX95_PAD_ENET2_RX_CTL__NETCMIX_TOP_ETH1_RGMII_RX_CTL   0x57e
+                       IMX95_PAD_ENET2_RXC__NETCMIX_TOP_ETH1_RGMII_RX_CLK      0x58e
+                       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
+               >;
+       };
+
+       pinctrl_flexcan1: flexcan1grp {
+               fsl,pins = <
+                       IMX95_PAD_SAI1_TXD0__AONMIX_TOP_CAN1_TX                 0x39e
+                       IMX95_PAD_SAI1_TXC__AONMIX_TOP_CAN1_RX                  0x39e
+               >;
+       };
+
+       pinctrl_flexcan3: flexcan3grp {
+               fsl,pins = <
+                       IMX95_PAD_CCM_CLKO3__CAN3_TX                            0x39e
+                       IMX95_PAD_CCM_CLKO4__CAN3_RX                            0x39e
+               >;
+       };
+
+       pinctrl_hog: hoggrp {
+               fsl,pins = <
+                       IMX95_PAD_XSPI1_SS1_B__GPIO5_IO_BIT11                   0x31e
+               >;
+       };
+
+       pinctrl_lpi2c3: lpi2c3grp {
+               fsl,pins = <
+                       IMX95_PAD_GPIO_IO28__LPI2C3_SDA                         0x40000b9e
+                       IMX95_PAD_GPIO_IO29__LPI2C3_SCL                         0x40000b9e
+               >;
+       };
+
+       pinctrl_lpi2c4: lpi2c4grp {
+               fsl,pins = <
+                       IMX95_PAD_GPIO_IO30__LPI2C4_SDA                         0x40000b9e
+                       IMX95_PAD_GPIO_IO31__LPI2C4_SCL                         0x40000b9e
+               >;
+       };
+
+       pinctrl_mqs1: mqs1grp {
+               fsl,pins = <
+                       IMX95_PAD_SAI1_TXFS__AONMIX_TOP_MQS1_LEFT               0x31e
+                       IMX95_PAD_SAI1_RXD0__AONMIX_TOP_MQS1_RIGHT              0x31e
+               >;
+       };
+
+       pinctrl_pcal6416: pcal6416grp {
+               fsl,pins = <
+                       IMX95_PAD_GPIO_IO34__GPIO5_IO_BIT14                     0x31e
+               >;
+       };
+
+       pinctrl_pcie0: pcie0grp {
+               fsl,pins = <
+                       IMX95_PAD_GPIO_IO32__HSIOMIX_TOP_PCIE1_CLKREQ_B         0x4000031e
+               >;
+       };
+
+       pinctrl_pcie1: pcie1grp {
+               fsl,pins = <
+                       IMX95_PAD_GPIO_IO35__HSIOMIX_TOP_PCIE2_CLKREQ_B         0x4000031e
+               >;
+       };
+
+       pinctrl_pdm: pdmgrp {
+               fsl,pins = <
+                       IMX95_PAD_PDM_CLK__AONMIX_TOP_PDM_CLK                           0x31e
+                       IMX95_PAD_PDM_BIT_STREAM0__AONMIX_TOP_PDM_BIT_STREAM_BIT0       0x31e
+               >;
+       };
+
+       pinctrl_ptn5110: ptn5110grp {
+               fsl,pins = <
+                       IMX95_PAD_XSPI1_DQS__GPIO5_IO_BIT8                      0x31e
+               >;
+       };
+
+       pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
+               fsl,pins = <
+                       IMX95_PAD_SD2_RESET_B__GPIO3_IO_BIT7                    0x31e
+               >;
+       };
+
+       pinctrl_sai5: sai5grp {
+               fsl,pins = <
+                       IMX95_PAD_XSPI1_DATA7__SAI5_RX_DATA_BIT0                0x31e
+                       IMX95_PAD_XSPI1_DATA6__SAI5_TX_BCLK                     0x31e
+                       IMX95_PAD_XSPI1_DATA5__SAI5_TX_SYNC                     0x31e
+                       IMX95_PAD_XSPI1_DATA4__SAI5_TX_DATA_BIT0                0x31e
+               >;
+       };
+
+       pinctrl_uart1: uart1grp {
+               fsl,pins = <
+                       IMX95_PAD_UART1_RXD__AONMIX_TOP_LPUART1_RX              0x31e
+                       IMX95_PAD_UART1_TXD__AONMIX_TOP_LPUART1_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_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_gpio: usdhc2gpiogrp {
+               fsl,pins = <
+                       IMX95_PAD_SD2_CD_B__GPIO3_IO_BIT0                       0x31e
+               >;
+       };
+
+       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
+               >;
+       };
+
+       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
+               >;
+       };
+
+       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
+               >;
+       };
+
+       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                           0x15fe
+                       IMX95_PAD_SD3_CMD__USDHC3_CMD                           0x13fe
+                       IMX95_PAD_SD3_DATA0__USDHC3_DATA0                       0x13fe
+                       IMX95_PAD_SD3_DATA1__USDHC3_DATA1                       0x13fe
+                       IMX95_PAD_SD3_DATA2__USDHC3_DATA2                       0x13fe
+                       IMX95_PAD_SD3_DATA3__USDHC3_DATA3                       0x13fe
+               >;
+       };
+};
+
+&scmi_misc {
+       nxp,ctrl-ids = <BRD_SM_CTRL_SD3_WAKE    FALLING_EDGE
+                       BRD_SM_CTRL_PCIE1_WAKE  FALLING_EDGE
+                       BRD_SM_CTRL_BT_WAKE     FALLING_EDGE
+                       BRD_SM_CTRL_PCIE2_WAKE  FALLING_EDGE
+                       BRD_SM_CTRL_BUTTON      FALLING_EDGE>;
+};
+
+&thermal_zones {
+       pf09-thermal {
+               polling-delay = <2000>;
+               polling-delay-passive = <250>;
+               thermal-sensors = <&scmi_sensor 2>;
+
+               trips {
+                       pf09_alert: trip0 {
+                               hysteresis = <2000>;
+                               temperature = <140000>;
+                               type = "passive";
+                       };
+
+                       pf09_crit: trip1 {
+                               hysteresis = <2000>;
+                               temperature = <155000>;
+                               type = "critical";
+                       };
+               };
+       };
+
+       pf53arm-thermal {
+               polling-delay = <2000>;
+               polling-delay-passive = <250>;
+               thermal-sensors = <&scmi_sensor 4>;
+
+               cooling-maps {
+                       map0 {
+                               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>;
+                               trip = <&pf5301_alert>;
+                       };
+               };
+
+               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";
+                       };
+               };
+       };
+};
+
+&usb2 {
+       disable-over-current;
+       dr_mode = "host";
+       vbus-supply = <&reg_usb_vbus>;
+       status = "okay";
+};
+
+&usb3 {
+       status = "okay";
+};
+
+&usb3_dwc3 {
+       adp-disable;
+       dr_mode = "otg";
+       hnp-disable;
+       role-switch-default-mode = "peripheral";
+       srp-disable;
+       usb-role-switch;
+       snps,dis-u1-entry-quirk;
+       snps,dis-u2-entry-quirk;
+       status = "okay";
+
+       port {
+               usb3_data_hs: endpoint {
+                       remote-endpoint = <&typec_con_hs>;
+               };
+       };
+};
+
+&usb3_phy {
+       orientation-switch;
+       fsl,phy-pcs-tx-deemph-3p5db-attenuation-db = <17>;
+       fsl,phy-pcs-tx-swing-full-percent = <100>;
+       fsl,phy-tx-preemp-amp-tune-microamp = <600>;
+       fsl,phy-tx-vboost-level-microvolt = <1156>;
+       fsl,phy-tx-vref-tune-percent = <100>;
+       status = "okay";
+
+       port {
+               usb3_data_ss: endpoint {
+                       remote-endpoint = <&typec_con_ss>;
+               };
+       };
+};
+
+&usdhc1 {
+       bus-width = <8>;
+       non-removable;
+       no-sd;
+       no-sdio;
+       pinctrl-0 = <&pinctrl_usdhc1>;
+       pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
+       pinctrl-3 = <&pinctrl_usdhc1>;
+       pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
+       status = "okay";
+};
+
+&usdhc2 {
+       bus-width = <4>;
+       cd-gpios = <&gpio3 00 GPIO_ACTIVE_LOW>;
+       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>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
+       vmmc-supply = <&reg_usdhc2_vmmc>;
+       status = "okay";
+};
+
+&usdhc3 {
+       bus-width = <4>;
+       keep-power-in-suspend;
+       mmc-pwrseq = <&usdhc3_pwrseq>;
+       non-removable;
+       pinctrl-0 = <&pinctrl_usdhc3>;
+       pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+       pinctrl-3 = <&pinctrl_usdhc3>;
+       pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
+       vmmc-supply = <&reg_usdhc3_vmmc>;
+       wakeup-source;
+       status = "okay";
+};
+
+&wdog3 {
+       status = "okay";
+};