This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit d45dfb8a9e717531c243870a3936404358c5d15f
Author: lipengfei28 <lipengfe...@xiaomi.com>
AuthorDate: Mon Aug 4 12:00:00 2025 +0800

    arch/arm64: porting config iomux use scmi form arm imx95
    
    pinctrl use same format scmi and config regs
    
    Signed-off-by: lipengfei28 <lipengfe...@xiaomi.com>
---
 arch/arm64/src/imx9/Kconfig                       |   4 +
 arch/arm64/src/imx9/Make.defs                     |   3 +-
 arch/arm64/src/imx9/hardware/imx95/imx95_iomuxc.h | 815 ++++++++++++++++++++++
 arch/arm64/src/imx9/hardware/imx9_iomuxc.h        |   3 +-
 arch/arm64/src/imx9/imx9_iomuxc.c                 |  95 +++
 arch/arm64/src/imx9/imx9_iomuxc.h                 |   1 +
 arch/arm64/src/imx9/imx9_scmi.h                   |   1 +
 7 files changed, 919 insertions(+), 3 deletions(-)

diff --git a/arch/arm64/src/imx9/Kconfig b/arch/arm64/src/imx9/Kconfig
index 953bb73f10a..5e0a37e5d9e 100644
--- a/arch/arm64/src/imx9/Kconfig
+++ b/arch/arm64/src/imx9/Kconfig
@@ -531,6 +531,10 @@ config IMX9_CLK_OVER_SCMI
        bool "Configure CLK over SCMI"
        default y
 
+config IMX9_IOMUX_OVER_SCMI
+       bool "Configure IOMUX over SCMI"
+       default y
+
 endif
 
 menu "LPI2C Peripherals"
diff --git a/arch/arm64/src/imx9/Make.defs b/arch/arm64/src/imx9/Make.defs
index a101975f1ff..905fb00e0f6 100644
--- a/arch/arm64/src/imx9/Make.defs
+++ b/arch/arm64/src/imx9/Make.defs
@@ -31,10 +31,11 @@ endif
 CHIP_CSRCS  = imx9_boot.c imx9_timer.c
 
 ifeq ($(CONFIG_ARCH_CHIP_IMX93),y)
-CHIP_CSRCS  += imx9_ccm.c imx9_gpio.c imx9_iomuxc.c
+CHIP_CSRCS  += imx9_ccm.c imx9_gpio.c
 endif
 
 CHIP_CSRCS += imx9_lpuart.c imx9_lowputc.c imx9_clockconfig.c
+CHIP_CSRCS += imx9_iomuxc.c
 
 ifeq ($(CONFIG_IMX9_GPIO_IRQ),y)
   CHIP_CSRCS += imx9_gpioirq.c
diff --git a/arch/arm64/src/imx9/hardware/imx95/imx95_iomuxc.h 
b/arch/arm64/src/imx9/hardware/imx95/imx95_iomuxc.h
new file mode 100644
index 00000000000..af6cc4db922
--- /dev/null
+++ b/arch/arm64/src/imx9/hardware/imx95/imx95_iomuxc.h
@@ -0,0 +1,815 @@
+/****************************************************************************
+ * arch/arm64/src/imx9/hardware/imx95/imx95_iomuxc.h
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * SPDX-FileCopyrightText: 2024 NXP
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+#ifndef __ARCH_ARM64_IMX9_IMX95_IOMUXC_H
+#define __ARCH_ARM64_IMX9_IMX95_IOMUXC_H
+
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+
+#define IOMUXC_MUX_CTL_DAP_TDI_OFFSET          (0x0000)
+#define IOMUXC_MUX_CTL_DAP_TMS_SWDIO_OFFSET    (0x0004)
+#define IOMUXC_MUX_CTL_DAP_TCLK_SWCLK_OFFSET   (0x0008)
+#define IOMUXC_MUX_CTL_DAP_TDO_TRACESWO_OFFSET (0x000c)
+#define IOMUXC_MUX_CTL_GPIO_IO00_OFFSET        (0x0010)
+#define IOMUXC_MUX_CTL_GPIO_IO01_OFFSET        (0x0014)
+#define IOMUXC_MUX_CTL_GPIO_IO02_OFFSET        (0x0018)
+#define IOMUXC_MUX_CTL_GPIO_IO03_OFFSET        (0x001c)
+#define IOMUXC_MUX_CTL_GPIO_IO04_OFFSET        (0x0020)
+#define IOMUXC_MUX_CTL_GPIO_IO05_OFFSET        (0x0024)
+#define IOMUXC_MUX_CTL_GPIO_IO06_OFFSET        (0x0028)
+#define IOMUXC_MUX_CTL_GPIO_IO07_OFFSET        (0x002c)
+#define IOMUXC_MUX_CTL_GPIO_IO08_OFFSET        (0x0030)
+#define IOMUXC_MUX_CTL_GPIO_IO09_OFFSET        (0x0034)
+#define IOMUXC_MUX_CTL_GPIO_IO10_OFFSET        (0x0038)
+#define IOMUXC_MUX_CTL_GPIO_IO11_OFFSET        (0x003c)
+#define IOMUXC_MUX_CTL_GPIO_IO12_OFFSET        (0x0040)
+#define IOMUXC_MUX_CTL_GPIO_IO13_OFFSET        (0x0044)
+#define IOMUXC_MUX_CTL_GPIO_IO14_OFFSET        (0x0048)
+#define IOMUXC_MUX_CTL_GPIO_IO15_OFFSET        (0x004c)
+#define IOMUXC_MUX_CTL_GPIO_IO16_OFFSET        (0x0050)
+#define IOMUXC_MUX_CTL_GPIO_IO17_OFFSET        (0x0054)
+#define IOMUXC_MUX_CTL_GPIO_IO18_OFFSET        (0x0058)
+#define IOMUXC_MUX_CTL_GPIO_IO19_OFFSET        (0x005c)
+#define IOMUXC_MUX_CTL_GPIO_IO20_OFFSET        (0x0060)
+#define IOMUXC_MUX_CTL_GPIO_IO21_OFFSET        (0x0064)
+#define IOMUXC_MUX_CTL_GPIO_IO22_OFFSET        (0x0068)
+#define IOMUXC_MUX_CTL_GPIO_IO23_OFFSET        (0x006c)
+#define IOMUXC_MUX_CTL_GPIO_IO24_OFFSET        (0x0070)
+#define IOMUXC_MUX_CTL_GPIO_IO25_OFFSET        (0x0074)
+#define IOMUXC_MUX_CTL_GPIO_IO26_OFFSET        (0x0078)
+#define IOMUXC_MUX_CTL_GPIO_IO27_OFFSET        (0x007c)
+#define IOMUXC_MUX_CTL_GPIO_IO28_OFFSET        (0x0080)
+#define IOMUXC_MUX_CTL_GPIO_IO29_OFFSET        (0x0084)
+#define IOMUXC_MUX_CTL_GPIO_IO30_OFFSET        (0x0088)
+#define IOMUXC_MUX_CTL_GPIO_IO31_OFFSET        (0x008c)
+#define IOMUXC_MUX_CTL_GPIO_IO32_OFFSET        (0x0090)
+#define IOMUXC_MUX_CTL_GPIO_IO33_OFFSET        (0x0094)
+#define IOMUXC_MUX_CTL_GPIO_IO34_OFFSET        (0x0098)
+#define IOMUXC_MUX_CTL_GPIO_IO35_OFFSET        (0x009c)
+#define IOMUXC_MUX_CTL_GPIO_IO36_OFFSET        (0x00a0)
+#define IOMUXC_MUX_CTL_GPIO_IO37_OFFSET        (0x00a4)
+#define IOMUXC_MUX_CTL_CCM_CLKO1_OFFSET        (0x00a8)
+#define IOMUXC_MUX_CTL_CCM_CLKO2_OFFSET        (0x00ac)
+#define IOMUXC_MUX_CTL_CCM_CLKO3_OFFSET        (0x00b0)
+#define IOMUXC_MUX_CTL_CCM_CLKO4_OFFSET        (0x00b4)
+#define IOMUXC_MUX_CTL_ENET1_MDC_OFFSET        (0x00b8)
+#define IOMUXC_MUX_CTL_ENET1_MDIO_OFFSET       (0x00bc)
+#define IOMUXC_MUX_CTL_ENET1_TD3_OFFSET        (0x00c0)
+#define IOMUXC_MUX_CTL_ENET1_TD2_OFFSET        (0x00c4)
+#define IOMUXC_MUX_CTL_ENET1_TD1_OFFSET        (0x00c8)
+#define IOMUXC_MUX_CTL_ENET1_TD0_OFFSET        (0x00cc)
+#define IOMUXC_MUX_CTL_ENET1_TX_CTL_OFFSET     (0x00d0)
+#define IOMUXC_MUX_CTL_ENET1_TXC_OFFSET        (0x00d4)
+#define IOMUXC_MUX_CTL_ENET1_RX_CTL_OFFSET     (0x00d8)
+#define IOMUXC_MUX_CTL_ENET1_RXC_OFFSET        (0x00dc)
+#define IOMUXC_MUX_CTL_ENET1_RD0_OFFSET        (0x00e0)
+#define IOMUXC_MUX_CTL_ENET1_RD1_OFFSET        (0x00e4)
+#define IOMUXC_MUX_CTL_ENET1_RD2_OFFSET        (0x00e8)
+#define IOMUXC_MUX_CTL_ENET1_RD3_OFFSET        (0x00ec)
+#define IOMUXC_MUX_CTL_ENET2_MDC_OFFSET        (0x00f0)
+#define IOMUXC_MUX_CTL_ENET2_MDIO_OFFSET       (0x00f4)
+#define IOMUXC_MUX_CTL_ENET2_TD3_OFFSET        (0x00f8)
+#define IOMUXC_MUX_CTL_ENET2_TD2_OFFSET        (0x00fc)
+#define IOMUXC_MUX_CTL_ENET2_TD1_OFFSET        (0x0100)
+#define IOMUXC_MUX_CTL_ENET2_TD0_OFFSET        (0x0104)
+#define IOMUXC_MUX_CTL_ENET2_TX_CTL_OFFSET     (0x0108)
+#define IOMUXC_MUX_CTL_ENET2_TXC_OFFSET        (0x010c)
+#define IOMUXC_MUX_CTL_ENET2_RX_CTL_OFFSET     (0x0110)
+#define IOMUXC_MUX_CTL_ENET2_RXC_OFFSET        (0x0114)
+#define IOMUXC_MUX_CTL_ENET2_RD0_OFFSET        (0x0118)
+#define IOMUXC_MUX_CTL_ENET2_RD1_OFFSET        (0x011c)
+#define IOMUXC_MUX_CTL_ENET2_RD2_OFFSET        (0x0120)
+#define IOMUXC_MUX_CTL_ENET2_RD3_OFFSET        (0x0124)
+#define IOMUXC_MUX_CTL_SD1_CLK_OFFSET          (0x0128)
+#define IOMUXC_MUX_CTL_SD1_CMD_OFFSET          (0x012c)
+#define IOMUXC_MUX_CTL_SD1_DATA0_OFFSET        (0x0130)
+#define IOMUXC_MUX_CTL_SD1_DATA1_OFFSET        (0x0134)
+#define IOMUXC_MUX_CTL_SD1_DATA2_OFFSET        (0x0138)
+#define IOMUXC_MUX_CTL_SD1_DATA3_OFFSET        (0x013c)
+#define IOMUXC_MUX_CTL_SD1_DATA4_OFFSET        (0x0140)
+#define IOMUXC_MUX_CTL_SD1_DATA5_OFFSET        (0x0144)
+#define IOMUXC_MUX_CTL_SD1_DATA6_OFFSET        (0x0148)
+#define IOMUXC_MUX_CTL_SD1_DATA7_OFFSET        (0x014c)
+#define IOMUXC_MUX_CTL_SD1_STROBE_OFFSET       (0x0150)
+#define IOMUXC_MUX_CTL_SD2_VSELECT_OFFSET      (0x0154)
+#define IOMUXC_MUX_CTL_SD3_CLK_OFFSET          (0x0158)
+#define IOMUXC_MUX_CTL_SD3_CMD_OFFSET          (0x015c)
+#define IOMUXC_MUX_CTL_SD3_DATA0_OFFSET        (0x0160)
+#define IOMUXC_MUX_CTL_SD3_DATA1_OFFSET        (0x0164)
+#define IOMUXC_MUX_CTL_SD3_DATA2_OFFSET        (0x0168)
+#define IOMUXC_MUX_CTL_SD3_DATA3_OFFSET        (0x016c)
+#define IOMUXC_MUX_CTL_XSPI1_DATA0_OFFSET      (0x0170)
+#define IOMUXC_MUX_CTL_XSPI1_DATA1_OFFSET      (0x0174)
+#define IOMUXC_MUX_CTL_XSPI1_DATA2_OFFSET      (0x0178)
+#define IOMUXC_MUX_CTL_XSPI1_DATA3_OFFSET      (0x017c)
+#define IOMUXC_MUX_CTL_XSPI1_DATA4_OFFSET      (0x0180)
+#define IOMUXC_MUX_CTL_XSPI1_DATA5_OFFSET      (0x0184)
+#define IOMUXC_MUX_CTL_XSPI1_DATA6_OFFSET      (0x0188)
+#define IOMUXC_MUX_CTL_XSPI1_DATA7_OFFSET      (0x018c)
+#define IOMUXC_MUX_CTL_XSPI1_DQS_OFFSET        (0x0190)
+#define IOMUXC_MUX_CTL_XSPI1_SCLK_OFFSET       (0x0194)
+#define IOMUXC_MUX_CTL_XSPI1_SS0_B_OFFSET      (0x0198)
+#define IOMUXC_MUX_CTL_XSPI1_SS1_B_OFFSET      (0x019c)
+#define IOMUXC_MUX_CTL_SD2_CD_B_OFFSET         (0x01a0)
+#define IOMUXC_MUX_CTL_SD2_CLK_OFFSET          (0x01a4)
+#define IOMUXC_MUX_CTL_SD2_CMD_OFFSET          (0x01a8)
+#define IOMUXC_MUX_CTL_SD2_DATA0_OFFSET        (0x01ac)
+#define IOMUXC_MUX_CTL_SD2_DATA1_OFFSET        (0x01b0)
+#define IOMUXC_MUX_CTL_SD2_DATA2_OFFSET        (0x01b4)
+#define IOMUXC_MUX_CTL_SD2_DATA3_OFFSET        (0x01b8)
+#define IOMUXC_MUX_CTL_SD2_RESET_B_OFFSET      (0x01bc)
+#define IOMUXC_MUX_CTL_I2C1_SCL_OFFSET         (0x01c0)
+#define IOMUXC_MUX_CTL_I2C1_SDA_OFFSET         (0x01c4)
+#define IOMUXC_MUX_CTL_I2C2_SCL_OFFSET         (0x01c8)
+#define IOMUXC_MUX_CTL_I2C2_SDA_OFFSET         (0x01cc)
+#define IOMUXC_MUX_CTL_UART1_RXD_OFFSET        (0x01d0)
+#define IOMUXC_MUX_CTL_UART1_TXD_OFFSET        (0x01d4)
+#define IOMUXC_MUX_CTL_UART2_RXD_OFFSET        (0x01d8)
+#define IOMUXC_MUX_CTL_UART2_TXD_OFFSET        (0x01dc)
+#define IOMUXC_MUX_CTL_PDM_CLK_OFFSET          (0x01e0)
+#define IOMUXC_MUX_CTL_PDM_BIT_STREAM0_OFFSET  (0x01e4)
+#define IOMUXC_MUX_CTL_PDM_BIT_STREAM1_OFFSET  (0x01e8)
+#define IOMUXC_MUX_CTL_SAI1_TXFS_OFFSET        (0x01ec)
+#define IOMUXC_MUX_CTL_SAI1_TXC_OFFSET         (0x01f0)
+#define IOMUXC_MUX_CTL_SAI1_TXD0_OFFSET        (0x01f4)
+#define IOMUXC_MUX_CTL_SAI1_RXD0_OFFSET        (0x01f8)
+#define IOMUXC_MUX_CTL_WDOG_ANY_OFFSET         (0x01fc)
+
+#define IOMUXC_PAD_CTL_DAP_TDI_OFFSET          (0x0204)
+#define IOMUXC_PAD_CTL_DAP_TMS_SWDIO_OFFSET    (0x0208)
+#define IOMUXC_PAD_CTL_DAP_TCLK_SWCLK_OFFSET   (0x020c)
+#define IOMUXC_PAD_CTL_DAP_TDO_TRACESWO_OFFSET (0x0210)
+#define IOMUXC_PAD_CTL_GPIO_IO00_OFFSET        (0x0214)
+#define IOMUXC_PAD_CTL_GPIO_IO01_OFFSET        (0x0218)
+#define IOMUXC_PAD_CTL_GPIO_IO02_OFFSET        (0x021c)
+#define IOMUXC_PAD_CTL_GPIO_IO03_OFFSET        (0x0220)
+#define IOMUXC_PAD_CTL_GPIO_IO04_OFFSET        (0x0224)
+#define IOMUXC_PAD_CTL_GPIO_IO05_OFFSET        (0x0228)
+#define IOMUXC_PAD_CTL_GPIO_IO06_OFFSET        (0x022c)
+#define IOMUXC_PAD_CTL_GPIO_IO07_OFFSET        (0x0230)
+#define IOMUXC_PAD_CTL_GPIO_IO08_OFFSET        (0x0234)
+#define IOMUXC_PAD_CTL_GPIO_IO09_OFFSET        (0x0238)
+#define IOMUXC_PAD_CTL_GPIO_IO10_OFFSET        (0x023c)
+#define IOMUXC_PAD_CTL_GPIO_IO11_OFFSET        (0x0240)
+#define IOMUXC_PAD_CTL_GPIO_IO12_OFFSET        (0x0244)
+#define IOMUXC_PAD_CTL_GPIO_IO13_OFFSET        (0x0248)
+#define IOMUXC_PAD_CTL_GPIO_IO14_OFFSET        (0x024c)
+#define IOMUXC_PAD_CTL_GPIO_IO15_OFFSET        (0x0250)
+#define IOMUXC_PAD_CTL_GPIO_IO16_OFFSET        (0x0254)
+#define IOMUXC_PAD_CTL_GPIO_IO17_OFFSET        (0x0258)
+#define IOMUXC_PAD_CTL_GPIO_IO18_OFFSET        (0x025c)
+#define IOMUXC_PAD_CTL_GPIO_IO19_OFFSET        (0x0260)
+#define IOMUXC_PAD_CTL_GPIO_IO20_OFFSET        (0x0264)
+#define IOMUXC_PAD_CTL_GPIO_IO21_OFFSET        (0x0268)
+#define IOMUXC_PAD_CTL_GPIO_IO22_OFFSET        (0x026c)
+#define IOMUXC_PAD_CTL_GPIO_IO23_OFFSET        (0x0270)
+#define IOMUXC_PAD_CTL_GPIO_IO24_OFFSET        (0x0274)
+#define IOMUXC_PAD_CTL_GPIO_IO25_OFFSET        (0x0278)
+#define IOMUXC_PAD_CTL_GPIO_IO26_OFFSET        (0x027c)
+#define IOMUXC_PAD_CTL_GPIO_IO27_OFFSET        (0x0280)
+#define IOMUXC_PAD_CTL_GPIO_IO28_OFFSET        (0x0284)
+#define IOMUXC_PAD_CTL_GPIO_IO29_OFFSET        (0x0288)
+#define IOMUXC_PAD_CTL_GPIO_IO30_OFFSET        (0x028c)
+#define IOMUXC_PAD_CTL_GPIO_IO31_OFFSET        (0x0290)
+#define IOMUXC_PAD_CTL_GPIO_IO32_OFFSET        (0x0294)
+#define IOMUXC_PAD_CTL_GPIO_IO33_OFFSET        (0x0298)
+#define IOMUXC_PAD_CTL_GPIO_IO34_OFFSET        (0x029c)
+#define IOMUXC_PAD_CTL_GPIO_IO35_OFFSET        (0x02a0)
+#define IOMUXC_PAD_CTL_GPIO_IO36_OFFSET        (0x02a4)
+#define IOMUXC_PAD_CTL_GPIO_IO37_OFFSET        (0x02a8)
+#define IOMUXC_PAD_CTL_CCM_CLKO1_OFFSET        (0x02ac)
+#define IOMUXC_PAD_CTL_CCM_CLKO2_OFFSET        (0x02b0)
+#define IOMUXC_PAD_CTL_CCM_CLKO3_OFFSET        (0x02b4)
+#define IOMUXC_PAD_CTL_CCM_CLKO4_OFFSET        (0x02b8)
+#define IOMUXC_PAD_CTL_ENET1_MDC_OFFSET        (0x02bc)
+#define IOMUXC_PAD_CTL_ENET1_MDIO_OFFSET       (0x02c0)
+#define IOMUXC_PAD_CTL_ENET1_TD3_OFFSET        (0x02c4)
+#define IOMUXC_PAD_CTL_ENET1_TD2_OFFSET        (0x02c8)
+#define IOMUXC_PAD_CTL_ENET1_TD1_OFFSET        (0x02cc)
+#define IOMUXC_PAD_CTL_ENET1_TD0_OFFSET        (0x02d0)
+#define IOMUXC_PAD_CTL_ENET1_TX_CTL_OFFSET     (0x02d4)
+#define IOMUXC_PAD_CTL_ENET1_TXC_OFFSET        (0x02d8)
+#define IOMUXC_PAD_CTL_ENET1_RX_CTL_OFFSET     (0x02dc)
+#define IOMUXC_PAD_CTL_ENET1_RXC_OFFSET        (0x02e0)
+#define IOMUXC_PAD_CTL_ENET1_RD0_OFFSET        (0x02e4)
+#define IOMUXC_PAD_CTL_ENET1_RD1_OFFSET        (0x02e8)
+#define IOMUXC_PAD_CTL_ENET1_RD2_OFFSET        (0x02ec)
+#define IOMUXC_PAD_CTL_ENET1_RD3_OFFSET        (0x02f0)
+#define IOMUXC_PAD_CTL_ENET2_MDC_OFFSET        (0x02f4)
+#define IOMUXC_PAD_CTL_ENET2_MDIO_OFFSET       (0x02f8)
+#define IOMUXC_PAD_CTL_ENET2_TD3_OFFSET        (0x02fc)
+#define IOMUXC_PAD_CTL_ENET2_TD2_OFFSET        (0x0300)
+#define IOMUXC_PAD_CTL_ENET2_TD1_OFFSET        (0x0304)
+#define IOMUXC_PAD_CTL_ENET2_TD0_OFFSET        (0x0308)
+#define IOMUXC_PAD_CTL_ENET2_TX_CTL_OFFSET     (0x030c)
+#define IOMUXC_PAD_CTL_ENET2_TXC_OFFSET        (0x0310)
+#define IOMUXC_PAD_CTL_ENET2_RX_CTL_OFFSET     (0x0314)
+#define IOMUXC_PAD_CTL_ENET2_RXC_OFFSET        (0x0318)
+#define IOMUXC_PAD_CTL_ENET2_RD0_OFFSET        (0x031c)
+#define IOMUXC_PAD_CTL_ENET2_RD1_OFFSET        (0x0320)
+#define IOMUXC_PAD_CTL_ENET2_RD2_OFFSET        (0x0324)
+#define IOMUXC_PAD_CTL_ENET2_RD3_OFFSET        (0x0328)
+#define IOMUXC_PAD_CTL_SD1_CLK_OFFSET          (0x032c)
+#define IOMUXC_PAD_CTL_SD1_CMD_OFFSET          (0x0330)
+#define IOMUXC_PAD_CTL_SD1_DATA0_OFFSET        (0x0334)
+#define IOMUXC_PAD_CTL_SD1_DATA1_OFFSET        (0x0338)
+#define IOMUXC_PAD_CTL_SD1_DATA2_OFFSET        (0x033c)
+#define IOMUXC_PAD_CTL_SD1_DATA3_OFFSET        (0x0340)
+#define IOMUXC_PAD_CTL_SD1_DATA4_OFFSET        (0x0344)
+#define IOMUXC_PAD_CTL_SD1_DATA5_OFFSET        (0x0348)
+#define IOMUXC_PAD_CTL_SD1_DATA6_OFFSET        (0x034c)
+#define IOMUXC_PAD_CTL_SD1_DATA7_OFFSET        (0x0350)
+#define IOMUXC_PAD_CTL_SD1_STROBE_OFFSET       (0x0354)
+#define IOMUXC_PAD_CTL_SD2_VSELECT_OFFSET      (0x0358)
+#define IOMUXC_PAD_CTL_SD3_CLK_OFFSET          (0x035c)
+#define IOMUXC_PAD_CTL_SD3_CMD_OFFSET          (0x0360)
+#define IOMUXC_PAD_CTL_SD3_DATA0_OFFSET        (0x0364)
+#define IOMUXC_PAD_CTL_SD3_DATA1_OFFSET        (0x0368)
+#define IOMUXC_PAD_CTL_SD3_DATA2_OFFSET        (0x036c)
+#define IOMUXC_PAD_CTL_SD3_DATA3_OFFSET        (0x0370)
+#define IOMUXC_PAD_CTL_XSPI1_DATA0_OFFSET      (0x0374)
+#define IOMUXC_PAD_CTL_XSPI1_DATA1_OFFSET      (0x0378)
+#define IOMUXC_PAD_CTL_XSPI1_DATA2_OFFSET      (0x037c)
+#define IOMUXC_PAD_CTL_XSPI1_DATA3_OFFSET      (0x0380)
+#define IOMUXC_PAD_CTL_XSPI1_DATA4_OFFSET      (0x0384)
+#define IOMUXC_PAD_CTL_XSPI1_DATA5_OFFSET      (0x0388)
+#define IOMUXC_PAD_CTL_XSPI1_DATA6_OFFSET      (0x038c)
+#define IOMUXC_PAD_CTL_XSPI1_DATA7_OFFSET      (0x0390)
+#define IOMUXC_PAD_CTL_XSPI1_DQS_OFFSET        (0x0394)
+#define IOMUXC_PAD_CTL_XSPI1_SCLK_OFFSET       (0x0398)
+#define IOMUXC_PAD_CTL_XSPI1_SS0_B_OFFSET      (0x039c)
+#define IOMUXC_PAD_CTL_XSPI1_SS1_B_OFFSET      (0x03a0)
+#define IOMUXC_PAD_CTL_SD2_CD_B_OFFSET         (0x03a4)
+#define IOMUXC_PAD_CTL_SD2_CLK_OFFSET          (0x03a8)
+#define IOMUXC_PAD_CTL_SD2_CMD_OFFSET          (0x03ac)
+#define IOMUXC_PAD_CTL_SD2_DATA0_OFFSET        (0x03b0)
+#define IOMUXC_PAD_CTL_SD2_DATA1_OFFSET        (0x03b4)
+#define IOMUXC_PAD_CTL_SD2_DATA2_OFFSET        (0x03b8)
+#define IOMUXC_PAD_CTL_SD2_DATA3_OFFSET        (0x03bc)
+#define IOMUXC_PAD_CTL_SD2_RESET_B_OFFSET      (0x03c0)
+#define IOMUXC_PAD_CTL_I2C1_SCL_OFFSET         (0x03c4)
+#define IOMUXC_PAD_CTL_I2C1_SDA_OFFSET         (0x03c8)
+#define IOMUXC_PAD_CTL_I2C2_SCL_OFFSET         (0x03cc)
+#define IOMUXC_PAD_CTL_I2C2_SDA_OFFSET         (0x03d0)
+#define IOMUXC_PAD_CTL_UART1_RXD_OFFSET        (0x03d4)
+#define IOMUXC_PAD_CTL_UART1_TXD_OFFSET        (0x03d8)
+#define IOMUXC_PAD_CTL_UART2_RXD_OFFSET        (0x03dc)
+#define IOMUXC_PAD_CTL_UART2_TXD_OFFSET        (0x03e0)
+#define IOMUXC_PAD_CTL_PDM_CLK_OFFSET          (0x03e4)
+#define IOMUXC_PAD_CTL_PDM_BIT_STREAM0_OFFSET  (0x03e8)
+#define IOMUXC_PAD_CTL_PDM_BIT_STREAM1_OFFSET  (0x03ec)
+#define IOMUXC_PAD_CTL_SAI1_TXFS_OFFSET        (0x03f0)
+#define IOMUXC_PAD_CTL_SAI1_TXC_OFFSET         (0x03f4)
+#define IOMUXC_PAD_CTL_SAI1_TXD0_OFFSET        (0x03f8)
+#define IOMUXC_PAD_CTL_SAI1_RXD0_OFFSET        (0x03fc)
+#define IOMUXC_PAD_CTL_WDOG_ANY_OFFSET         (0x0400)
+#define IOMUXC_PAD_CTL_FCCU_ERR0_OFFSET        (0x0404)
+
+#define IOMUXC_CAN1_IPP_IND_CANRX_SELECT_INPUT_OFFSET              (0x0408)
+#define IOMUXC_PDM_IPP_IND_MIC_PDM_BITSTREAM_SELECT_INPUT_0_OFFSET (0x040c)
+#define IOMUXC_PDM_IPP_IND_MIC_PDM_BITSTREAM_SELECT_INPUT_1_OFFSET (0x0410)
+#define IOMUXC_PDM_IPP_IND_MIC_PDM_BITSTREAM_SELECT_INPUT_2_OFFSET (0x0414)
+#define IOMUXC_PDM_IPP_IND_MIC_PDM_BITSTREAM_SELECT_INPUT_3_OFFSET (0x0418)
+#define IOMUXC_SAI1_IPP_IND_SAI_MCLK_SELECT_INPUT_OFFSET           (0x041c)
+#define IOMUXC_EXT1_CLK_SELECT_INPUT_OFFSET                        (0x0420)
+#define IOMUXC_NETC_CMPLX_EMDC_IN_SELECT_INPUT_OFFSET              (0x0424)
+#define IOMUXC_NETC_CMPLX_EMDIO_IN_SELECT_INPUT_OFFSET             (0x0428)
+#define IOMUXC_NETC_CMPLX_ETH0_RMII_RX_ER_SELECT_INPUT_OFFSET      (0x042c)
+#define IOMUXC_NETC_CMPLX_ETH1_RMII_RX_ER_SELECT_INPUT_OFFSET      (0x0430)
+#define IOMUXC_NETC_CMPLX_TMR_1588_TRIG1_SELECT_INPUT_OFFSET       (0x0434)
+#define IOMUXC_NETC_CMPLX_TMR_1588_TRIG2_SELECT_INPUT_OFFSET       (0x0438)
+#define IOMUXC_SAI2_IPP_IND_SAI_RXDATA_SELECT_INPUT_6_OFFSET       (0x043c)
+#define IOMUXC_SAI2_IPP_IND_SAI_RXDATA_SELECT_INPUT_7_OFFSET       (0x0440)
+#define IOMUXC_CAN2_IPP_IND_CANRX_SELECT_INPUT_OFFSET              (0x0444)
+#define IOMUXC_CAN3_IPP_IND_CANRX_SELECT_INPUT_OFFSET              (0x0448)
+#define IOMUXC_CAN4_IPP_IND_CANRX_SELECT_INPUT_OFFSET              (0x044c)
+#define IOMUXC_CAN5_IPP_IND_CANRX_SELECT_INPUT_OFFSET              (0x0450)
+#define IOMUXC_EARC_PHY_SPDIF_IN_SELECT_INPUT_OFFSET               (0x0454)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_26_OFFSET       (0x0458)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_27_OFFSET       (0x045c)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_30_OFFSET       (0x0460)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_31_OFFSET       (0x0464)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_0_OFFSET        (0x0468)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_1_OFFSET        (0x046c)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_2_OFFSET        (0x0470)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_3_OFFSET        (0x0474)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_4_OFFSET        (0x0478)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_5_OFFSET        (0x047c)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_6_OFFSET        (0x0480)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_7_OFFSET        (0x0484)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_8_OFFSET        (0x0488)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_9_OFFSET        (0x048c)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_10_OFFSET       (0x0490)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_11_OFFSET       (0x0494)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_12_OFFSET       (0x0498)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_13_OFFSET       (0x049c)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_14_OFFSET       (0x04a0)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_15_OFFSET       (0x04a4)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_16_OFFSET       (0x04a8)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_17_OFFSET       (0x04ac)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_18_OFFSET       (0x04b0)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_19_OFFSET       (0x04b4)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_20_OFFSET       (0x04b8)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_21_OFFSET       (0x04bc)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_22_OFFSET       (0x04c0)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_23_OFFSET       (0x04c4)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_24_OFFSET       (0x04c8)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_25_OFFSET       (0x04cc)
+#define IOMUXC_FLEXSPI1_I_IPP_IND_DQS_FA_SELECT_INPUT_OFFSET       (0x04d0)
+#define IOMUXC_FLEXSPI1_I_IPP_IND_IO_FA_SELECT_INPUT_0_OFFSET      (0x04d4)
+#define IOMUXC_FLEXSPI1_I_IPP_IND_IO_FA_SELECT_INPUT_1_OFFSET      (0x04d8)
+#define IOMUXC_FLEXSPI1_I_IPP_IND_IO_FA_SELECT_INPUT_2_OFFSET      (0x04dc)
+#define IOMUXC_FLEXSPI1_I_IPP_IND_IO_FA_SELECT_INPUT_3_OFFSET      (0x04e0)
+#define IOMUXC_FLEXSPI1_I_IPP_IND_IO_FA_SELECT_INPUT_4_OFFSET      (0x04e4)
+#define IOMUXC_FLEXSPI1_I_IPP_IND_IO_FA_SELECT_INPUT_5_OFFSET      (0x04e8)
+#define IOMUXC_FLEXSPI1_I_IPP_IND_IO_FA_SELECT_INPUT_6_OFFSET      (0x04ec)
+#define IOMUXC_FLEXSPI1_I_IPP_IND_IO_FA_SELECT_INPUT_7_OFFSET      (0x04f0)
+#define IOMUXC_FLEXSPI1_I_IPP_IND_SCK_FA_SELECT_INPUT_OFFSET       (0x04f4)
+#define IOMUXC_I3C2_PIN_SCL_IN_SELECT_INPUT_OFFSET                 (0x04f8)
+#define IOMUXC_I3C2_PIN_SDA_IN_SELECT_INPUT_OFFSET                 (0x04fc)
+#define IOMUXC_LPI2C3_IPP_IND_LPI2C_SCL_SELECT_INPUT_OFFSET        (0x0500)
+#define IOMUXC_LPI2C3_IPP_IND_LPI2C_SDA_SELECT_INPUT_OFFSET        (0x0504)
+#define IOMUXC_LPI2C4_IPP_IND_LPI2C_SCL_SELECT_INPUT_OFFSET        (0x0508)
+#define IOMUXC_LPI2C4_IPP_IND_LPI2C_SDA_SELECT_INPUT_OFFSET        (0x050c)
+#define IOMUXC_LPI2C5_IPP_IND_LPI2C_SCL_SELECT_INPUT_OFFSET        (0x0510)
+#define IOMUXC_LPI2C5_IPP_IND_LPI2C_SDA_SELECT_INPUT_OFFSET        (0x0514)
+#define IOMUXC_LPI2C6_IPP_IND_LPI2C_SCL_SELECT_INPUT_OFFSET        (0x0518)
+#define IOMUXC_LPI2C6_IPP_IND_LPI2C_SDA_SELECT_INPUT_OFFSET        (0x051c)
+#define IOMUXC_LPI2C7_IPP_IND_LPI2C_SCL_SELECT_INPUT_OFFSET        (0x0520)
+#define IOMUXC_LPI2C7_IPP_IND_LPI2C_SDA_SELECT_INPUT_OFFSET        (0x0524)
+#define IOMUXC_LPI2C8_IPP_IND_LPI2C_SCL_SELECT_INPUT_OFFSET        (0x0528)
+#define IOMUXC_LPI2C8_IPP_IND_LPI2C_SDA_SELECT_INPUT_OFFSET        (0x052c)
+#define IOMUXC_LPSPI4_IPP_IND_LPSPI_PCS_SELECT_INPUT_0_OFFSET      (0x0530)
+#define IOMUXC_LPSPI4_IPP_IND_LPSPI_PCS_SELECT_INPUT_1_OFFSET      (0x0534)
+#define IOMUXC_LPSPI4_IPP_IND_LPSPI_PCS_SELECT_INPUT_2_OFFSET      (0x0538)
+#define IOMUXC_LPSPI4_IPP_IND_LPSPI_SCK_SELECT_INPUT_OFFSET        (0x053c)
+#define IOMUXC_LPSPI4_IPP_IND_LPSPI_SDI_SELECT_INPUT_OFFSET        (0x0540)
+#define IOMUXC_LPSPI4_IPP_IND_LPSPI_SDO_SELECT_INPUT_OFFSET        (0x0544)
+#define IOMUXC_LPTMR2_IPP_IND_LPTIMER_SELECT_INPUT_0_OFFSET        (0x0548)
+#define IOMUXC_LPTMR2_IPP_IND_LPTIMER_SELECT_INPUT_1_OFFSET        (0x054c)
+#define IOMUXC_LPTMR2_IPP_IND_LPTIMER_SELECT_INPUT_2_OFFSET        (0x0550)
+#define IOMUXC_LPUART3_IPP_IND_LPUART_CTS_N_SELECT_INPUT_OFFSET    (0x0554)
+#define IOMUXC_LPUART3_IPP_IND_LPUART_RXD_SELECT_INPUT_OFFSET      (0x0558)
+#define IOMUXC_LPUART3_IPP_IND_LPUART_TXD_SELECT_INPUT_OFFSET      (0x055c)
+#define IOMUXC_LPUART4_IPP_IND_LPUART_CTS_N_SELECT_INPUT_OFFSET    (0x0560)
+#define IOMUXC_LPUART4_IPP_IND_LPUART_RXD_SELECT_INPUT_OFFSET      (0x0564)
+#define IOMUXC_LPUART4_IPP_IND_LPUART_TXD_SELECT_INPUT_OFFSET      (0x0568)
+#define IOMUXC_LPUART5_IPP_IND_LPUART_CTS_N_SELECT_INPUT_OFFSET    (0x056c)
+#define IOMUXC_LPUART5_IPP_IND_LPUART_RXD_SELECT_INPUT_OFFSET      (0x0570)
+#define IOMUXC_LPUART5_IPP_IND_LPUART_TXD_SELECT_INPUT_OFFSET      (0x0574)
+#define IOMUXC_LPUART6_IPP_IND_LPUART_CTS_N_SELECT_INPUT_OFFSET    (0x0578)
+#define IOMUXC_LPUART6_IPP_IND_LPUART_RXD_SELECT_INPUT_OFFSET      (0x057c)
+#define IOMUXC_LPUART6_IPP_IND_LPUART_TXD_SELECT_INPUT_OFFSET      (0x0580)
+#define IOMUXC_LPUART7_IPP_IND_LPUART_RXD_SELECT_INPUT_OFFSET      (0x0584)
+#define IOMUXC_LPUART7_IPP_IND_LPUART_TXD_SELECT_INPUT_OFFSET      (0x0588)
+#define IOMUXC_SAI3_IPP_IND_SAI_RXBCLK_SELECT_INPUT_OFFSET         (0x058c)
+#define IOMUXC_SAI3_IPP_IND_SAI_RXSYNC_SELECT_INPUT_OFFSET         (0x0590)
+#define IOMUXC_SAI4_IPP_IND_SAI_RXBCLK_SELECT_INPUT_OFFSET         (0x0594)
+#define IOMUXC_SAI4_IPP_IND_SAI_RXDATA_SELECT_INPUT_0_OFFSET       (0x0598)
+#define IOMUXC_SAI4_IPP_IND_SAI_RXSYNC_SELECT_INPUT_OFFSET         (0x059c)
+#define IOMUXC_SAI4_IPP_IND_SAI_TXBCLK_SELECT_INPUT_OFFSET         (0x05a0)
+#define IOMUXC_SAI4_IPP_IND_SAI_TXSYNC_SELECT_INPUT_OFFSET         (0x05a4)
+#define IOMUXC_SAI5_IPP_IND_SAI_RXBCLK_SELECT_INPUT_OFFSET         (0x05a8)
+#define IOMUXC_SAI5_IPP_IND_SAI_RXDATA_SELECT_INPUT_0_OFFSET       (0x05ac)
+#define IOMUXC_SAI5_IPP_IND_SAI_RXDATA_SELECT_INPUT_1_OFFSET       (0x05b0)
+#define IOMUXC_SAI5_IPP_IND_SAI_RXDATA_SELECT_INPUT_2_OFFSET       (0x05b4)
+#define IOMUXC_SAI5_IPP_IND_SAI_RXDATA_SELECT_INPUT_3_OFFSET       (0x05b8)
+#define IOMUXC_SAI5_IPP_IND_SAI_RXSYNC_SELECT_INPUT_OFFSET         (0x05bc)
+#define IOMUXC_SAI5_IPP_IND_SAI_TXBCLK_SELECT_INPUT_OFFSET         (0x05c0)
+#define IOMUXC_SAI5_IPP_IND_SAI_TXSYNC_SELECT_INPUT_OFFSET         (0x05c4)
+#define IOMUXC_USDHC3_IPP_CARD_CLK_IN_SELECT_INPUT_OFFSET          (0x05c8)
+#define IOMUXC_USDHC3_IPP_CMD_IN_SELECT_INPUT_OFFSET               (0x05cc)
+#define IOMUXC_USDHC3_IPP_DAT0_IN_SELECT_INPUT_OFFSET              (0x05d0)
+#define IOMUXC_USDHC3_IPP_DAT1_IN_SELECT_INPUT_OFFSET              (0x05d4)
+#define IOMUXC_USDHC3_IPP_DAT2_IN_SELECT_INPUT_OFFSET              (0x05d8)
+#define IOMUXC_USDHC3_IPP_DAT3_IN_SELECT_INPUT_OFFSET              (0x05dc)
+#define IOMUXC_XSPI_IPP_IND_CS_SELECT_INPUT_OFFSET                 (0x05e0)
+#define IOMUXC_XSPI_IPP_IND_DQS_SELECT_INPUT_OFFSET                (0x05e4)
+#define IOMUXC_XSPI_IPP_IND_SCK_SELECT_INPUT_OFFSET                (0x05e8)
+#define IOMUXC_XSPI_SLV_IPP_IND_IO_SELECT_INPUT_0_OFFSET           (0x05ec)
+#define IOMUXC_XSPI_SLV_IPP_IND_IO_SELECT_INPUT_1_OFFSET           (0x05f0)
+#define IOMUXC_XSPI_SLV_IPP_IND_IO_SELECT_INPUT_2_OFFSET           (0x05f4)
+#define IOMUXC_XSPI_SLV_IPP_IND_IO_SELECT_INPUT_3_OFFSET           (0x05f8)
+#define IOMUXC_XSPI_SLV_IPP_IND_IO_SELECT_INPUT_4_OFFSET           (0x05fc)
+#define IOMUXC_XSPI_SLV_IPP_IND_IO_SELECT_INPUT_5_OFFSET           (0x0600)
+#define IOMUXC_XSPI_SLV_IPP_IND_IO_SELECT_INPUT_6_OFFSET           (0x0604)
+#define IOMUXC_XSPI_SLV_IPP_IND_IO_SELECT_INPUT_7_OFFSET           (0x0608)
+#define IOMUXC_JTAG_MUX_TCK_SELECT_INPUT_OFFSET                    (0x060c)
+#define IOMUXC_JTAG_MUX_TDI_SELECT_INPUT_OFFSET                    (0x0610)
+#define IOMUXC_JTAG_MUX_TMS_SELECT_INPUT_OFFSET                    (0x0614)
+
+#define IOMUXC_MUX_CTL_DAP_TDI          (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_DAP_TDI_OFFSET)
+#define IOMUXC_MUX_CTL_DAP_TMS_SWDIO    (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_DAP_TMS_SWDIO_OFFSET)
+#define IOMUXC_MUX_CTL_DAP_TCLK_SWCLK   (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_DAP_TCLK_SWCLK_OFFSET)
+#define IOMUXC_MUX_CTL_DAP_TDO_TRACESWO (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_DAP_TDO_TRACESWO_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO00        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO00_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO01        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO01_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO02        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO02_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO03        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO03_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO04        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO04_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO05        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO05_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO06        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO06_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO07        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO07_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO08        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO08_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO09        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO09_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO10        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO10_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO11        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO11_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO12        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO12_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO13        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO13_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO14        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO14_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO15        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO15_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO16        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO16_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO17        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO17_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO18        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO18_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO19        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO19_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO20        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO20_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO21        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO21_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO22        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO22_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO23        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO23_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO24        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO24_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO25        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO25_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO26        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO26_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO27        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO27_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO28        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO28_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO29        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO29_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO30        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO30_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO31        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO31_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO32        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO32_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO33        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO33_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO34        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO34_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO35        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO35_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO36        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO36_OFFSET)
+#define IOMUXC_MUX_CTL_GPIO_IO37        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_GPIO_IO37_OFFSET)
+#define IOMUXC_MUX_CTL_CCM_CLKO1        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_CCM_CLKO1_OFFSET)
+#define IOMUXC_MUX_CTL_CCM_CLKO2        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_CCM_CLKO2_OFFSET)
+#define IOMUXC_MUX_CTL_CCM_CLKO3        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_CCM_CLKO3_OFFSET)
+#define IOMUXC_MUX_CTL_CCM_CLKO4        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_CCM_CLKO4_OFFSET)
+#define IOMUXC_MUX_CTL_ENET1_MDC        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_ENET1_MDC_OFFSET)
+#define IOMUXC_MUX_CTL_ENET1_MDIO       (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_ENET1_MDIO_OFFSET)
+#define IOMUXC_MUX_CTL_ENET1_TD3        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_ENET1_TD3_OFFSET)
+#define IOMUXC_MUX_CTL_ENET1_TD2        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_ENET1_TD2_OFFSET)
+#define IOMUXC_MUX_CTL_ENET1_TD1        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_ENET1_TD1_OFFSET)
+#define IOMUXC_MUX_CTL_ENET1_TD0        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_ENET1_TD0_OFFSET)
+#define IOMUXC_MUX_CTL_ENET1_TX_CTL     (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_ENET1_TX_CTL_OFFSET)
+#define IOMUXC_MUX_CTL_ENET1_TXC        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_ENET1_TXC_OFFSET)
+#define IOMUXC_MUX_CTL_ENET1_RX_CTL     (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_ENET1_RX_CTL_OFFSET)
+#define IOMUXC_MUX_CTL_ENET1_RXC        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_ENET1_RXC_OFFSET)
+#define IOMUXC_MUX_CTL_ENET1_RD0        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_ENET1_RD0_OFFSET)
+#define IOMUXC_MUX_CTL_ENET1_RD1        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_ENET1_RD1_OFFSET)
+#define IOMUXC_MUX_CTL_ENET1_RD2        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_ENET1_RD2_OFFSET)
+#define IOMUXC_MUX_CTL_ENET1_RD3        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_ENET1_RD3_OFFSET)
+#define IOMUXC_MUX_CTL_ENET2_MDC        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_ENET2_MDC_OFFSET)
+#define IOMUXC_MUX_CTL_ENET2_MDIO       (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_ENET2_MDIO_OFFSET)
+#define IOMUXC_MUX_CTL_ENET2_TD3        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_ENET2_TD3_OFFSET)
+#define IOMUXC_MUX_CTL_ENET2_TD2        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_ENET2_TD2_OFFSET)
+#define IOMUXC_MUX_CTL_ENET2_TD1        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_ENET2_TD1_OFFSET)
+#define IOMUXC_MUX_CTL_ENET2_TD0        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_ENET2_TD0_OFFSET)
+#define IOMUXC_MUX_CTL_ENET2_TX_CTL     (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_ENET2_TX_CTL_OFFSET)
+#define IOMUXC_MUX_CTL_ENET2_TXC        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_ENET2_TXC_OFFSET)
+#define IOMUXC_MUX_CTL_ENET2_RX_CTL     (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_ENET2_RX_CTL_OFFSET)
+#define IOMUXC_MUX_CTL_ENET2_RXC        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_ENET2_RXC_OFFSET)
+#define IOMUXC_MUX_CTL_ENET2_RD0        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_ENET2_RD0_OFFSET)
+#define IOMUXC_MUX_CTL_ENET2_RD1        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_ENET2_RD1_OFFSET)
+#define IOMUXC_MUX_CTL_ENET2_RD2        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_ENET2_RD2_OFFSET)
+#define IOMUXC_MUX_CTL_ENET2_RD3        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_ENET2_RD3_OFFSET)
+#define IOMUXC_MUX_CTL_SD1_CLK          (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SD1_CLK_OFFSET)
+#define IOMUXC_MUX_CTL_SD1_CMD          (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SD1_CMD_OFFSET)
+#define IOMUXC_MUX_CTL_SD1_DATA0        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SD1_DATA0_OFFSET)
+#define IOMUXC_MUX_CTL_SD1_DATA1        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SD1_DATA1_OFFSET)
+#define IOMUXC_MUX_CTL_SD1_DATA2        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SD1_DATA2_OFFSET)
+#define IOMUXC_MUX_CTL_SD1_DATA3        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SD1_DATA3_OFFSET)
+#define IOMUXC_MUX_CTL_SD1_DATA4        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SD1_DATA4_OFFSET)
+#define IOMUXC_MUX_CTL_SD1_DATA5        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SD1_DATA5_OFFSET)
+#define IOMUXC_MUX_CTL_SD1_DATA6        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SD1_DATA6_OFFSET)
+#define IOMUXC_MUX_CTL_SD1_DATA7        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SD1_DATA7_OFFSET)
+#define IOMUXC_MUX_CTL_SD1_STROBE       (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SD1_STROBE_OFFSET)
+#define IOMUXC_MUX_CTL_SD2_VSELECT      (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SD2_VSELECT_OFFSET)
+#define IOMUXC_MUX_CTL_SD3_CLK          (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SD3_CLK_OFFSET)
+#define IOMUXC_MUX_CTL_SD3_CMD          (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SD3_CMD_OFFSET)
+#define IOMUXC_MUX_CTL_SD3_DATA0        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SD3_DATA0_OFFSET)
+#define IOMUXC_MUX_CTL_SD3_DATA1        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SD3_DATA1_OFFSET)
+#define IOMUXC_MUX_CTL_SD3_DATA2        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SD3_DATA2_OFFSET)
+#define IOMUXC_MUX_CTL_SD3_DATA3        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SD3_DATA3_OFFSET)
+#define IOMUXC_MUX_CTL_XSPI1_DATA0      (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_XSPI1_DATA0_OFFSET)
+#define IOMUXC_MUX_CTL_XSPI1_DATA1      (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_XSPI1_DATA1_OFFSET)
+#define IOMUXC_MUX_CTL_XSPI1_DATA2      (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_XSPI1_DATA2_OFFSET)
+#define IOMUXC_MUX_CTL_XSPI1_DATA3      (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_XSPI1_DATA3_OFFSET)
+#define IOMUXC_MUX_CTL_XSPI1_DATA4      (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_XSPI1_DATA4_OFFSET)
+#define IOMUXC_MUX_CTL_XSPI1_DATA5      (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_XSPI1_DATA5_OFFSET)
+#define IOMUXC_MUX_CTL_XSPI1_DATA6      (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_XSPI1_DATA6_OFFSET)
+#define IOMUXC_MUX_CTL_XSPI1_DATA7      (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_XSPI1_DATA7_OFFSET)
+#define IOMUXC_MUX_CTL_XSPI1_DQS        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_XSPI1_DQS_OFFSET)
+#define IOMUXC_MUX_CTL_XSPI1_SCLK       (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_XSPI1_SCLK_OFFSET)
+#define IOMUXC_MUX_CTL_XSPI1_SS0_B      (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_XSPI1_SS0_B_OFFSET)
+#define IOMUXC_MUX_CTL_XSPI1_SS1_B      (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_XSPI1_SS1_B_OFFSET)
+#define IOMUXC_MUX_CTL_SD2_CD_B         (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SD2_CD_B_OFFSET)
+#define IOMUXC_MUX_CTL_SD2_CLK          (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SD2_CLK_OFFSET)
+#define IOMUXC_MUX_CTL_SD2_CMD          (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SD2_CMD_OFFSET)
+#define IOMUXC_MUX_CTL_SD2_DATA0        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SD2_DATA0_OFFSET)
+#define IOMUXC_MUX_CTL_SD2_DATA1        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SD2_DATA1_OFFSET)
+#define IOMUXC_MUX_CTL_SD2_DATA2        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SD2_DATA2_OFFSET)
+#define IOMUXC_MUX_CTL_SD2_DATA3        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SD2_DATA3_OFFSET)
+#define IOMUXC_MUX_CTL_SD2_RESET_B      (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SD2_RESET_B_OFFSET)
+#define IOMUXC_MUX_CTL_I2C1_SCL         (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_I2C1_SCL_OFFSET)
+#define IOMUXC_MUX_CTL_I2C1_SDA         (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_I2C1_SDA_OFFSET)
+#define IOMUXC_MUX_CTL_I2C2_SCL         (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_I2C2_SCL_OFFSET)
+#define IOMUXC_MUX_CTL_I2C2_SDA         (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_I2C2_SDA_OFFSET)
+#define IOMUXC_MUX_CTL_UART1_RXD        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_UART1_RXD_OFFSET)
+#define IOMUXC_MUX_CTL_UART1_TXD        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_UART1_TXD_OFFSET)
+#define IOMUXC_MUX_CTL_UART2_RXD        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_UART2_RXD_OFFSET)
+#define IOMUXC_MUX_CTL_UART2_TXD        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_UART2_TXD_OFFSET)
+#define IOMUXC_MUX_CTL_PDM_CLK          (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_PDM_CLK_OFFSET)
+#define IOMUXC_MUX_CTL_PDM_BIT_STREAM0  (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_PDM_BIT_STREAM0_OFFSET)
+#define IOMUXC_MUX_CTL_PDM_BIT_STREAM1  (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_PDM_BIT_STREAM1_OFFSET)
+#define IOMUXC_MUX_CTL_SAI1_TXFS        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SAI1_TXFS_OFFSET)
+#define IOMUXC_MUX_CTL_SAI1_TXC         (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SAI1_TXC_OFFSET)
+#define IOMUXC_MUX_CTL_SAI1_TXD0        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SAI1_TXD0_OFFSET)
+#define IOMUXC_MUX_CTL_SAI1_RXD0        (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_SAI1_RXD0_OFFSET)
+#define IOMUXC_MUX_CTL_WDOG_ANY         (IMX9_IOMUXC1_BASE + 
IOMUXC_MUX_CTL_WDOG_ANY_OFFSET)
+
+#define IOMUXC_PAD_CTL_DAP_TDI          (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_DAP_TDI_OFFSET)
+#define IOMUXC_PAD_CTL_DAP_TMS_SWDIO    (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_DAP_TMS_SWDIO_OFFSET)
+#define IOMUXC_PAD_CTL_DAP_TCLK_SWCLK   (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_DAP_TCLK_SWCLK_OFFSET)
+#define IOMUXC_PAD_CTL_DAP_TDO_TRACESWO (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_DAP_TDO_TRACESWO_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO00        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO00_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO01        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO01_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO02        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO02_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO03        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO03_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO04        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO04_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO05        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO05_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO06        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO06_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO07        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO07_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO08        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO08_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO09        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO09_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO10        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO10_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO11        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO11_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO12        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO12_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO13        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO13_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO14        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO14_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO15        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO15_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO16        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO16_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO17        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO17_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO18        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO18_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO19        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO19_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO20        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO20_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO21        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO21_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO22        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO22_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO23        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO23_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO24        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO24_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO25        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO25_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO26        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO26_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO27        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO27_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO28        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO28_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO29        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO29_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO30        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO30_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO31        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO31_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO32        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO32_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO33        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO33_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO34        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO34_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO35        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO35_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO36        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO36_OFFSET)
+#define IOMUXC_PAD_CTL_GPIO_IO37        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_GPIO_IO37_OFFSET)
+#define IOMUXC_PAD_CTL_CCM_CLKO1        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_CCM_CLKO1_OFFSET)
+#define IOMUXC_PAD_CTL_CCM_CLKO2        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_CCM_CLKO2_OFFSET)
+#define IOMUXC_PAD_CTL_CCM_CLKO3        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_CCM_CLKO3_OFFSET)
+#define IOMUXC_PAD_CTL_CCM_CLKO4        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_CCM_CLKO4_OFFSET)
+#define IOMUXC_PAD_CTL_ENET1_MDC        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_ENET1_MDC_OFFSET)
+#define IOMUXC_PAD_CTL_ENET1_MDIO       (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_ENET1_MDIO_OFFSET)
+#define IOMUXC_PAD_CTL_ENET1_TD3        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_ENET1_TD3_OFFSET)
+#define IOMUXC_PAD_CTL_ENET1_TD2        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_ENET1_TD2_OFFSET)
+#define IOMUXC_PAD_CTL_ENET1_TD1        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_ENET1_TD1_OFFSET)
+#define IOMUXC_PAD_CTL_ENET1_TD0        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_ENET1_TD0_OFFSET)
+#define IOMUXC_PAD_CTL_ENET1_TX_CTL     (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_ENET1_TX_CTL_OFFSET)
+#define IOMUXC_PAD_CTL_ENET1_TXC        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_ENET1_TXC_OFFSET)
+#define IOMUXC_PAD_CTL_ENET1_RX_CTL     (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_ENET1_RX_CTL_OFFSET)
+#define IOMUXC_PAD_CTL_ENET1_RXC        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_ENET1_RXC_OFFSET)
+#define IOMUXC_PAD_CTL_ENET1_RD0        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_ENET1_RD0_OFFSET)
+#define IOMUXC_PAD_CTL_ENET1_RD1        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_ENET1_RD1_OFFSET)
+#define IOMUXC_PAD_CTL_ENET1_RD2        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_ENET1_RD2_OFFSET)
+#define IOMUXC_PAD_CTL_ENET1_RD3        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_ENET1_RD3_OFFSET)
+#define IOMUXC_PAD_CTL_ENET2_MDC        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_ENET2_MDC_OFFSET)
+#define IOMUXC_PAD_CTL_ENET2_MDIO       (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_ENET2_MDIO_OFFSET)
+#define IOMUXC_PAD_CTL_ENET2_TD3        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_ENET2_TD3_OFFSET)
+#define IOMUXC_PAD_CTL_ENET2_TD2        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_ENET2_TD2_OFFSET)
+#define IOMUXC_PAD_CTL_ENET2_TD1        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_ENET2_TD1_OFFSET)
+#define IOMUXC_PAD_CTL_ENET2_TD0        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_ENET2_TD0_OFFSET)
+#define IOMUXC_PAD_CTL_ENET2_TX_CTL     (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_ENET2_TX_CTL_OFFSET)
+#define IOMUXC_PAD_CTL_ENET2_TXC        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_ENET2_TXC_OFFSET)
+#define IOMUXC_PAD_CTL_ENET2_RX_CTL     (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_ENET2_RX_CTL_OFFSET)
+#define IOMUXC_PAD_CTL_ENET2_RXC        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_ENET2_RXC_OFFSET)
+#define IOMUXC_PAD_CTL_ENET2_RD0        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_ENET2_RD0_OFFSET)
+#define IOMUXC_PAD_CTL_ENET2_RD1        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_ENET2_RD1_OFFSET)
+#define IOMUXC_PAD_CTL_ENET2_RD2        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_ENET2_RD2_OFFSET)
+#define IOMUXC_PAD_CTL_ENET2_RD3        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_ENET2_RD3_OFFSET)
+#define IOMUXC_PAD_CTL_SD1_CLK          (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SD1_CLK_OFFSET)
+#define IOMUXC_PAD_CTL_SD1_CMD          (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SD1_CMD_OFFSET)
+#define IOMUXC_PAD_CTL_SD1_DATA0        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SD1_DATA0_OFFSET)
+#define IOMUXC_PAD_CTL_SD1_DATA1        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SD1_DATA1_OFFSET)
+#define IOMUXC_PAD_CTL_SD1_DATA2        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SD1_DATA2_OFFSET)
+#define IOMUXC_PAD_CTL_SD1_DATA3        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SD1_DATA3_OFFSET)
+#define IOMUXC_PAD_CTL_SD1_DATA4        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SD1_DATA4_OFFSET)
+#define IOMUXC_PAD_CTL_SD1_DATA5        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SD1_DATA5_OFFSET)
+#define IOMUXC_PAD_CTL_SD1_DATA6        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SD1_DATA6_OFFSET)
+#define IOMUXC_PAD_CTL_SD1_DATA7        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SD1_DATA7_OFFSET)
+#define IOMUXC_PAD_CTL_SD1_STROBE       (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SD1_STROBE_OFFSET)
+#define IOMUXC_PAD_CTL_SD2_VSELECT      (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SD2_VSELECT_OFFSET)
+#define IOMUXC_PAD_CTL_SD3_CLK          (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SD3_CLK_OFFSET)
+#define IOMUXC_PAD_CTL_SD3_CMD          (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SD3_CMD_OFFSET)
+#define IOMUXC_PAD_CTL_SD3_DATA0        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SD3_DATA0_OFFSET)
+#define IOMUXC_PAD_CTL_SD3_DATA1        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SD3_DATA1_OFFSET)
+#define IOMUXC_PAD_CTL_SD3_DATA2        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SD3_DATA2_OFFSET)
+#define IOMUXC_PAD_CTL_SD3_DATA3        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SD3_DATA3_OFFSET)
+#define IOMUXC_PAD_CTL_XSPI1_DATA0      (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_XSPI1_DATA0_OFFSET)
+#define IOMUXC_PAD_CTL_XSPI1_DATA1      (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_XSPI1_DATA1_OFFSET)
+#define IOMUXC_PAD_CTL_XSPI1_DATA2      (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_XSPI1_DATA2_OFFSET)
+#define IOMUXC_PAD_CTL_XSPI1_DATA3      (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_XSPI1_DATA3_OFFSET)
+#define IOMUXC_PAD_CTL_XSPI1_DATA4      (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_XSPI1_DATA4_OFFSET)
+#define IOMUXC_PAD_CTL_XSPI1_DATA5      (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_XSPI1_DATA5_OFFSET)
+#define IOMUXC_PAD_CTL_XSPI1_DATA6      (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_XSPI1_DATA6_OFFSET)
+#define IOMUXC_PAD_CTL_XSPI1_DATA7      (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_XSPI1_DATA7_OFFSET)
+#define IOMUXC_PAD_CTL_XSPI1_DQS        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_XSPI1_DQS_OFFSET)
+#define IOMUXC_PAD_CTL_XSPI1_SCLK       (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_XSPI1_SCLK_OFFSET)
+#define IOMUXC_PAD_CTL_XSPI1_SS0_B      (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_XSPI1_SS0_B_OFFSET)
+#define IOMUXC_PAD_CTL_XSPI1_SS1_B      (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_XSPI1_SS1_B_OFFSET)
+#define IOMUXC_PAD_CTL_SD2_CD_B         (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SD2_CD_B_OFFSET)
+#define IOMUXC_PAD_CTL_SD2_CLK          (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SD2_CLK_OFFSET)
+#define IOMUXC_PAD_CTL_SD2_CMD          (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SD2_CMD_OFFSET)
+#define IOMUXC_PAD_CTL_SD2_DATA0        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SD2_DATA0_OFFSET)
+#define IOMUXC_PAD_CTL_SD2_DATA1        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SD2_DATA1_OFFSET)
+#define IOMUXC_PAD_CTL_SD2_DATA2        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SD2_DATA2_OFFSET)
+#define IOMUXC_PAD_CTL_SD2_DATA3        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SD2_DATA3_OFFSET)
+#define IOMUXC_PAD_CTL_SD2_RESET_B      (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SD2_RESET_B_OFFSET)
+#define IOMUXC_PAD_CTL_I2C1_SCL         (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_I2C1_SCL_OFFSET)
+#define IOMUXC_PAD_CTL_I2C1_SDA         (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_I2C1_SDA_OFFSET)
+#define IOMUXC_PAD_CTL_I2C2_SCL         (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_I2C2_SCL_OFFSET)
+#define IOMUXC_PAD_CTL_I2C2_SDA         (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_I2C2_SDA_OFFSET)
+#define IOMUXC_PAD_CTL_UART1_RXD        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_UART1_RXD_OFFSET)
+#define IOMUXC_PAD_CTL_UART1_TXD        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_UART1_TXD_OFFSET)
+#define IOMUXC_PAD_CTL_UART2_RXD        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_UART2_RXD_OFFSET)
+#define IOMUXC_PAD_CTL_UART2_TXD        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_UART2_TXD_OFFSET)
+#define IOMUXC_PAD_CTL_PDM_CLK          (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_PDM_CLK_OFFSET)
+#define IOMUXC_PAD_CTL_PDM_BIT_STREAM0  (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_PDM_BIT_STREAM0_OFFSET)
+#define IOMUXC_PAD_CTL_PDM_BIT_STREAM1  (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_PDM_BIT_STREAM1_OFFSET)
+#define IOMUXC_PAD_CTL_SAI1_TXFS        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SAI1_TXFS_OFFSET)
+#define IOMUXC_PAD_CTL_SAI1_TXC         (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SAI1_TXC_OFFSET)
+#define IOMUXC_PAD_CTL_SAI1_TXD0        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SAI1_TXD0_OFFSET)
+#define IOMUXC_PAD_CTL_SAI1_RXD0        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_SAI1_RXD0_OFFSET)
+#define IOMUXC_PAD_CTL_WDOG_ANY         (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_WDOG_ANY_OFFSET)
+#define IOMUXC_PAD_CTL_FCCU_ERR0        (IMX9_IOMUXC1_BASE + 
IOMUXC_PAD_CTL_FCCU_ERR0_OFFSET)
+
+#define IOMUXC_CAN1_IPP_IND_CANRX_SELECT_INPUT              (IMX9_IOMUXC1_BASE 
+ IOMUXC_CAN1_IPP_IND_CANRX_SELECT_INPUT_OFFSET)
+#define IOMUXC_PDM_IPP_IND_MIC_PDM_BITSTREAM_SELECT_INPUT_0 (IMX9_IOMUXC1_BASE 
+ IOMUXC_PDM_IPP_IND_MIC_PDM_BITSTREAM_SELECT_INPUT_0_OFFSET)
+#define IOMUXC_PDM_IPP_IND_MIC_PDM_BITSTREAM_SELECT_INPUT_1 (IMX9_IOMUXC1_BASE 
+ IOMUXC_PDM_IPP_IND_MIC_PDM_BITSTREAM_SELECT_INPUT_1_OFFSET)
+#define IOMUXC_PDM_IPP_IND_MIC_PDM_BITSTREAM_SELECT_INPUT_2 (IMX9_IOMUXC1_BASE 
+ IOMUXC_PDM_IPP_IND_MIC_PDM_BITSTREAM_SELECT_INPUT_2_OFFSET)
+#define IOMUXC_PDM_IPP_IND_MIC_PDM_BITSTREAM_SELECT_INPUT_3 (IMX9_IOMUXC1_BASE 
+ IOMUXC_PDM_IPP_IND_MIC_PDM_BITSTREAM_SELECT_INPUT_3_OFFSET)
+#define IOMUXC_SAI1_IPP_IND_SAI_MCLK_SELECT_INPUT           (IMX9_IOMUXC1_BASE 
+ IOMUXC_SAI1_IPP_IND_SAI_MCLK_SELECT_INPUT_OFFSET)
+#define IOMUXC_EXT1_CLK_SELECT_INPUT                        (IMX9_IOMUXC1_BASE 
+ IOMUXC_EXT1_CLK_SELECT_INPUT_OFFSET)
+#define IOMUXC_NETC_CMPLX_EMDC_IN_SELECT_INPUT              (IMX9_IOMUXC1_BASE 
+ IOMUXC_NETC_CMPLX_EMDC_IN_SELECT_INPUT_OFFSET)
+#define IOMUXC_NETC_CMPLX_EMDIO_IN_SELECT_INPUT             (IMX9_IOMUXC1_BASE 
+ IOMUXC_NETC_CMPLX_EMDIO_IN_SELECT_INPUT_OFFSET)
+#define IOMUXC_NETC_CMPLX_ETH0_RMII_RX_ER_SELECT_INPUT      (IMX9_IOMUXC1_BASE 
+ IOMUXC_NETC_CMPLX_ETH0_RMII_RX_ER_SELECT_INPUT_OFFSET)
+#define IOMUXC_NETC_CMPLX_ETH1_RMII_RX_ER_SELECT_INPUT      (IMX9_IOMUXC1_BASE 
+ IOMUXC_NETC_CMPLX_ETH1_RMII_RX_ER_SELECT_INPUT_OFFSET)
+#define IOMUXC_NETC_CMPLX_TMR_1588_TRIG1_SELECT_INPUT       (IMX9_IOMUXC1_BASE 
+ IOMUXC_NETC_CMPLX_TMR_1588_TRIG1_SELECT_INPUT_OFFSET)
+#define IOMUXC_NETC_CMPLX_TMR_1588_TRIG2_SELECT_INPUT       (IMX9_IOMUXC1_BASE 
+ IOMUXC_NETC_CMPLX_TMR_1588_TRIG2_SELECT_INPUT_OFFSET)
+#define IOMUXC_SAI2_IPP_IND_SAI_RXDATA_SELECT_INPUT_6       (IMX9_IOMUXC1_BASE 
+ IOMUXC_SAI2_IPP_IND_SAI_RXDATA_SELECT_INPUT_6_OFFSET)
+#define IOMUXC_SAI2_IPP_IND_SAI_RXDATA_SELECT_INPUT_7       (IMX9_IOMUXC1_BASE 
+ IOMUXC_SAI2_IPP_IND_SAI_RXDATA_SELECT_INPUT_7_OFFSET)
+#define IOMUXC_CAN2_IPP_IND_CANRX_SELECT_INPUT              (IMX9_IOMUXC1_BASE 
+ IOMUXC_CAN2_IPP_IND_CANRX_SELECT_INPUT_OFFSET)
+#define IOMUXC_CAN3_IPP_IND_CANRX_SELECT_INPUT              (IMX9_IOMUXC1_BASE 
+ IOMUXC_CAN3_IPP_IND_CANRX_SELECT_INPUT_OFFSET)
+#define IOMUXC_CAN4_IPP_IND_CANRX_SELECT_INPUT              (IMX9_IOMUXC1_BASE 
+ IOMUXC_CAN4_IPP_IND_CANRX_SELECT_INPUT_OFFSET)
+#define IOMUXC_CAN5_IPP_IND_CANRX_SELECT_INPUT              (IMX9_IOMUXC1_BASE 
+ IOMUXC_CAN5_IPP_IND_CANRX_SELECT_INPUT_OFFSET)
+#define IOMUXC_EARC_PHY_SPDIF_IN_SELECT_INPUT               (IMX9_IOMUXC1_BASE 
+ IOMUXC_EARC_PHY_SPDIF_IN_SELECT_INPUT_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_26       (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_26_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_27       (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_27_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_30       (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_30_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_31       (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_31_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_0        (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_0_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_1        (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_1_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_2        (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_2_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_3        (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_3_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_4        (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_4_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_5        (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_5_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_6        (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_6_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_7        (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_7_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_8        (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_8_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_9        (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_9_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_10       (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_10_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_11       (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_11_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_12       (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_12_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_13       (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_13_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_14       (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_14_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_15       (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_15_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_16       (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_16_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_17       (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_17_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_18       (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_18_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_19       (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_19_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_20       (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_20_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_21       (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_21_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_22       (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_22_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_23       (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_23_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_24       (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_24_OFFSET)
+#define IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_25       (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXIO1_IPP_IND_FLEXIO_SELECT_INPUT_25_OFFSET)
+#define IOMUXC_FLEXSPI1_I_IPP_IND_DQS_FA_SELECT_INPUT       (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXSPI1_I_IPP_IND_DQS_FA_SELECT_INPUT_OFFSET)
+#define IOMUXC_FLEXSPI1_I_IPP_IND_IO_FA_SELECT_INPUT_0      (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXSPI1_I_IPP_IND_IO_FA_SELECT_INPUT_0_OFFSET)
+#define IOMUXC_FLEXSPI1_I_IPP_IND_IO_FA_SELECT_INPUT_1      (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXSPI1_I_IPP_IND_IO_FA_SELECT_INPUT_1_OFFSET)
+#define IOMUXC_FLEXSPI1_I_IPP_IND_IO_FA_SELECT_INPUT_2      (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXSPI1_I_IPP_IND_IO_FA_SELECT_INPUT_2_OFFSET)
+#define IOMUXC_FLEXSPI1_I_IPP_IND_IO_FA_SELECT_INPUT_3      (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXSPI1_I_IPP_IND_IO_FA_SELECT_INPUT_3_OFFSET)
+#define IOMUXC_FLEXSPI1_I_IPP_IND_IO_FA_SELECT_INPUT_4      (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXSPI1_I_IPP_IND_IO_FA_SELECT_INPUT_4_OFFSET)
+#define IOMUXC_FLEXSPI1_I_IPP_IND_IO_FA_SELECT_INPUT_5      (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXSPI1_I_IPP_IND_IO_FA_SELECT_INPUT_5_OFFSET)
+#define IOMUXC_FLEXSPI1_I_IPP_IND_IO_FA_SELECT_INPUT_6      (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXSPI1_I_IPP_IND_IO_FA_SELECT_INPUT_6_OFFSET)
+#define IOMUXC_FLEXSPI1_I_IPP_IND_IO_FA_SELECT_INPUT_7      (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXSPI1_I_IPP_IND_IO_FA_SELECT_INPUT_7_OFFSET)
+#define IOMUXC_FLEXSPI1_I_IPP_IND_SCK_FA_SELECT_INPUT       (IMX9_IOMUXC1_BASE 
+ IOMUXC_FLEXSPI1_I_IPP_IND_SCK_FA_SELECT_INPUT_OFFSET)
+#define IOMUXC_I3C2_PIN_SCL_IN_SELECT_INPUT                 (IMX9_IOMUXC1_BASE 
+ IOMUXC_I3C2_PIN_SCL_IN_SELECT_INPUT_OFFSET)
+#define IOMUXC_I3C2_PIN_SDA_IN_SELECT_INPUT                 (IMX9_IOMUXC1_BASE 
+ IOMUXC_I3C2_PIN_SDA_IN_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPI2C3_IPP_IND_LPI2C_SCL_SELECT_INPUT        (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPI2C3_IPP_IND_LPI2C_SCL_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPI2C3_IPP_IND_LPI2C_SDA_SELECT_INPUT        (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPI2C3_IPP_IND_LPI2C_SDA_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPI2C4_IPP_IND_LPI2C_SCL_SELECT_INPUT        (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPI2C4_IPP_IND_LPI2C_SCL_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPI2C4_IPP_IND_LPI2C_SDA_SELECT_INPUT        (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPI2C4_IPP_IND_LPI2C_SDA_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPI2C5_IPP_IND_LPI2C_SCL_SELECT_INPUT        (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPI2C5_IPP_IND_LPI2C_SCL_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPI2C5_IPP_IND_LPI2C_SDA_SELECT_INPUT        (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPI2C5_IPP_IND_LPI2C_SDA_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPI2C6_IPP_IND_LPI2C_SCL_SELECT_INPUT        (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPI2C6_IPP_IND_LPI2C_SCL_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPI2C6_IPP_IND_LPI2C_SDA_SELECT_INPUT        (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPI2C6_IPP_IND_LPI2C_SDA_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPI2C7_IPP_IND_LPI2C_SCL_SELECT_INPUT        (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPI2C7_IPP_IND_LPI2C_SCL_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPI2C7_IPP_IND_LPI2C_SDA_SELECT_INPUT        (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPI2C7_IPP_IND_LPI2C_SDA_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPI2C8_IPP_IND_LPI2C_SCL_SELECT_INPUT        (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPI2C8_IPP_IND_LPI2C_SCL_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPI2C8_IPP_IND_LPI2C_SDA_SELECT_INPUT        (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPI2C8_IPP_IND_LPI2C_SDA_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPSPI4_IPP_IND_LPSPI_PCS_SELECT_INPUT_0      (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPSPI4_IPP_IND_LPSPI_PCS_SELECT_INPUT_0_OFFSET)
+#define IOMUXC_LPSPI4_IPP_IND_LPSPI_PCS_SELECT_INPUT_1      (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPSPI4_IPP_IND_LPSPI_PCS_SELECT_INPUT_1_OFFSET)
+#define IOMUXC_LPSPI4_IPP_IND_LPSPI_PCS_SELECT_INPUT_2      (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPSPI4_IPP_IND_LPSPI_PCS_SELECT_INPUT_2_OFFSET)
+#define IOMUXC_LPSPI4_IPP_IND_LPSPI_SCK_SELECT_INPUT        (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPSPI4_IPP_IND_LPSPI_SCK_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPSPI4_IPP_IND_LPSPI_SDI_SELECT_INPUT        (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPSPI4_IPP_IND_LPSPI_SDI_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPSPI4_IPP_IND_LPSPI_SDO_SELECT_INPUT        (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPSPI4_IPP_IND_LPSPI_SDO_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPTMR2_IPP_IND_LPTIMER_SELECT_INPUT_0        (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPTMR2_IPP_IND_LPTIMER_SELECT_INPUT_0_OFFSET)
+#define IOMUXC_LPTMR2_IPP_IND_LPTIMER_SELECT_INPUT_1        (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPTMR2_IPP_IND_LPTIMER_SELECT_INPUT_1_OFFSET)
+#define IOMUXC_LPTMR2_IPP_IND_LPTIMER_SELECT_INPUT_2        (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPTMR2_IPP_IND_LPTIMER_SELECT_INPUT_2_OFFSET)
+#define IOMUXC_LPUART3_IPP_IND_LPUART_CTS_N_SELECT_INPUT    (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPUART3_IPP_IND_LPUART_CTS_N_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPUART3_IPP_IND_LPUART_RXD_SELECT_INPUT      (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPUART3_IPP_IND_LPUART_RXD_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPUART3_IPP_IND_LPUART_TXD_SELECT_INPUT      (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPUART3_IPP_IND_LPUART_TXD_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPUART4_IPP_IND_LPUART_CTS_N_SELECT_INPUT    (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPUART4_IPP_IND_LPUART_CTS_N_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPUART4_IPP_IND_LPUART_RXD_SELECT_INPUT      (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPUART4_IPP_IND_LPUART_RXD_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPUART4_IPP_IND_LPUART_TXD_SELECT_INPUT      (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPUART4_IPP_IND_LPUART_TXD_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPUART5_IPP_IND_LPUART_CTS_N_SELECT_INPUT    (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPUART5_IPP_IND_LPUART_CTS_N_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPUART5_IPP_IND_LPUART_RXD_SELECT_INPUT      (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPUART5_IPP_IND_LPUART_RXD_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPUART5_IPP_IND_LPUART_TXD_SELECT_INPUT      (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPUART5_IPP_IND_LPUART_TXD_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPUART6_IPP_IND_LPUART_CTS_N_SELECT_INPUT    (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPUART6_IPP_IND_LPUART_CTS_N_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPUART6_IPP_IND_LPUART_RXD_SELECT_INPUT      (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPUART6_IPP_IND_LPUART_RXD_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPUART6_IPP_IND_LPUART_TXD_SELECT_INPUT      (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPUART6_IPP_IND_LPUART_TXD_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPUART7_IPP_IND_LPUART_RXD_SELECT_INPUT      (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPUART7_IPP_IND_LPUART_RXD_SELECT_INPUT_OFFSET)
+#define IOMUXC_LPUART7_IPP_IND_LPUART_TXD_SELECT_INPUT      (IMX9_IOMUXC1_BASE 
+ IOMUXC_LPUART7_IPP_IND_LPUART_TXD_SELECT_INPUT_OFFSET)
+#define IOMUXC_SAI3_IPP_IND_SAI_RXBCLK_SELECT_INPUT         (IMX9_IOMUXC1_BASE 
+ IOMUXC_SAI3_IPP_IND_SAI_RXBCLK_SELECT_INPUT_OFFSET)
+#define IOMUXC_SAI3_IPP_IND_SAI_RXSYNC_SELECT_INPUT         (IMX9_IOMUXC1_BASE 
+ IOMUXC_SAI3_IPP_IND_SAI_RXSYNC_SELECT_INPUT_OFFSET)
+#define IOMUXC_SAI4_IPP_IND_SAI_RXBCLK_SELECT_INPUT         (IMX9_IOMUXC1_BASE 
+ IOMUXC_SAI4_IPP_IND_SAI_RXBCLK_SELECT_INPUT_OFFSET)
+#define IOMUXC_SAI4_IPP_IND_SAI_RXDATA_SELECT_INPUT_0       (IMX9_IOMUXC1_BASE 
+ IOMUXC_SAI4_IPP_IND_SAI_RXDATA_SELECT_INPUT_0_OFFSET)
+#define IOMUXC_SAI4_IPP_IND_SAI_RXSYNC_SELECT_INPUT         (IMX9_IOMUXC1_BASE 
+ IOMUXC_SAI4_IPP_IND_SAI_RXSYNC_SELECT_INPUT_OFFSET)
+#define IOMUXC_SAI4_IPP_IND_SAI_TXBCLK_SELECT_INPUT         (IMX9_IOMUXC1_BASE 
+ IOMUXC_SAI4_IPP_IND_SAI_TXBCLK_SELECT_INPUT_OFFSET)
+#define IOMUXC_SAI4_IPP_IND_SAI_TXSYNC_SELECT_INPUT         (IMX9_IOMUXC1_BASE 
+ IOMUXC_SAI4_IPP_IND_SAI_TXSYNC_SELECT_INPUT_OFFSET)
+#define IOMUXC_SAI5_IPP_IND_SAI_RXBCLK_SELECT_INPUT         (IMX9_IOMUXC1_BASE 
+ IOMUXC_SAI5_IPP_IND_SAI_RXBCLK_SELECT_INPUT_OFFSET)
+#define IOMUXC_SAI5_IPP_IND_SAI_RXDATA_SELECT_INPUT_0       (IMX9_IOMUXC1_BASE 
+ IOMUXC_SAI5_IPP_IND_SAI_RXDATA_SELECT_INPUT_0_OFFSET)
+#define IOMUXC_SAI5_IPP_IND_SAI_RXDATA_SELECT_INPUT_1       (IMX9_IOMUXC1_BASE 
+ IOMUXC_SAI5_IPP_IND_SAI_RXDATA_SELECT_INPUT_1_OFFSET)
+#define IOMUXC_SAI5_IPP_IND_SAI_RXDATA_SELECT_INPUT_2       (IMX9_IOMUXC1_BASE 
+ IOMUXC_SAI5_IPP_IND_SAI_RXDATA_SELECT_INPUT_2_OFFSET)
+#define IOMUXC_SAI5_IPP_IND_SAI_RXDATA_SELECT_INPUT_3       (IMX9_IOMUXC1_BASE 
+ IOMUXC_SAI5_IPP_IND_SAI_RXDATA_SELECT_INPUT_3_OFFSET)
+#define IOMUXC_SAI5_IPP_IND_SAI_RXSYNC_SELECT_INPUT         (IMX9_IOMUXC1_BASE 
+ IOMUXC_SAI5_IPP_IND_SAI_RXSYNC_SELECT_INPUT_OFFSET)
+#define IOMUXC_SAI5_IPP_IND_SAI_TXBCLK_SELECT_INPUT         (IMX9_IOMUXC1_BASE 
+ IOMUXC_SAI5_IPP_IND_SAI_TXBCLK_SELECT_INPUT_OFFSET)
+#define IOMUXC_SAI5_IPP_IND_SAI_TXSYNC_SELECT_INPUT         (IMX9_IOMUXC1_BASE 
+ IOMUXC_SAI5_IPP_IND_SAI_TXSYNC_SELECT_INPUT_OFFSET)
+#define IOMUXC_USDHC3_IPP_CARD_CLK_IN_SELECT_INPUT          (IMX9_IOMUXC1_BASE 
+ IOMUXC_USDHC3_IPP_CARD_CLK_IN_SELECT_INPUT_OFFSET)
+#define IOMUXC_USDHC3_IPP_CMD_IN_SELECT_INPUT               (IMX9_IOMUXC1_BASE 
+ IOMUXC_USDHC3_IPP_CMD_IN_SELECT_INPUT_OFFSET)
+#define IOMUXC_USDHC3_IPP_DAT0_IN_SELECT_INPUT              (IMX9_IOMUXC1_BASE 
+ IOMUXC_USDHC3_IPP_DAT0_IN_SELECT_INPUT_OFFSET)
+#define IOMUXC_USDHC3_IPP_DAT1_IN_SELECT_INPUT              (IMX9_IOMUXC1_BASE 
+ IOMUXC_USDHC3_IPP_DAT1_IN_SELECT_INPUT_OFFSET)
+#define IOMUXC_USDHC3_IPP_DAT2_IN_SELECT_INPUT              (IMX9_IOMUXC1_BASE 
+ IOMUXC_USDHC3_IPP_DAT2_IN_SELECT_INPUT_OFFSET)
+#define IOMUXC_USDHC3_IPP_DAT3_IN_SELECT_INPUT              (IMX9_IOMUXC1_BASE 
+ IOMUXC_USDHC3_IPP_DAT3_IN_SELECT_INPUT_OFFSET)
+#define IOMUXC_XSPI_IPP_IND_CS_SELECT_INPUT                 (IMX9_IOMUXC1_BASE 
+ IOMUXC_XSPI_IPP_IND_CS_SELECT_INPUT_OFFSET)
+#define IOMUXC_XSPI_IPP_IND_DQS_SELECT_INPUT                (IMX9_IOMUXC1_BASE 
+ IOMUXC_XSPI_IPP_IND_DQS_SELECT_INPUT_OFFSET)
+#define IOMUXC_XSPI_IPP_IND_SCK_SELECT_INPUT                (IMX9_IOMUXC1_BASE 
+ IOMUXC_XSPI_IPP_IND_SCK_SELECT_INPUT_OFFSET)
+#define IOMUXC_XSPI_SLV_IPP_IND_IO_SELECT_INPUT_0           (IMX9_IOMUXC1_BASE 
+ IOMUXC_XSPI_SLV_IPP_IND_IO_SELECT_INPUT_0_OFFSET)
+#define IOMUXC_XSPI_SLV_IPP_IND_IO_SELECT_INPUT_1           (IMX9_IOMUXC1_BASE 
+ IOMUXC_XSPI_SLV_IPP_IND_IO_SELECT_INPUT_1_OFFSET)
+#define IOMUXC_XSPI_SLV_IPP_IND_IO_SELECT_INPUT_2           (IMX9_IOMUXC1_BASE 
+ IOMUXC_XSPI_SLV_IPP_IND_IO_SELECT_INPUT_2_OFFSET)
+#define IOMUXC_XSPI_SLV_IPP_IND_IO_SELECT_INPUT_3           (IMX9_IOMUXC1_BASE 
+ IOMUXC_XSPI_SLV_IPP_IND_IO_SELECT_INPUT_3_OFFSET)
+#define IOMUXC_XSPI_SLV_IPP_IND_IO_SELECT_INPUT_4           (IMX9_IOMUXC1_BASE 
+ IOMUXC_XSPI_SLV_IPP_IND_IO_SELECT_INPUT_4_OFFSET)
+#define IOMUXC_XSPI_SLV_IPP_IND_IO_SELECT_INPUT_5           (IMX9_IOMUXC1_BASE 
+ IOMUXC_XSPI_SLV_IPP_IND_IO_SELECT_INPUT_5_OFFSET)
+#define IOMUXC_XSPI_SLV_IPP_IND_IO_SELECT_INPUT_6           (IMX9_IOMUXC1_BASE 
+ IOMUXC_XSPI_SLV_IPP_IND_IO_SELECT_INPUT_6_OFFSET)
+#define IOMUXC_XSPI_SLV_IPP_IND_IO_SELECT_INPUT_7           (IMX9_IOMUXC1_BASE 
+ IOMUXC_XSPI_SLV_IPP_IND_IO_SELECT_INPUT_7_OFFSET)
+#define IOMUXC_JTAG_MUX_TCK_SELECT_INPUT                    (IMX9_IOMUXC1_BASE 
+ IOMUXC_JTAG_MUX_TCK_SELECT_INPUT_OFFSET)
+#define IOMUXC_JTAG_MUX_TDI_SELECT_INPUT                    (IMX9_IOMUXC1_BASE 
+ IOMUXC_JTAG_MUX_TDI_SELECT_INPUT_OFFSET)
+#define IOMUXC_JTAG_MUX_TMS_SELECT_INPUT                    (IMX9_IOMUXC1_BASE 
+ IOMUXC_JTAG_MUX_TMS_SELECT_INPUT_OFFSET)
+
+#endif /* __ARCH_ARM64_IMX9_IMX95_IOMUXC_H*/
diff --git a/arch/arm64/src/imx9/hardware/imx9_iomuxc.h 
b/arch/arm64/src/imx9/hardware/imx9_iomuxc.h
index 6b13bfb29a1..77819291bcf 100644
--- a/arch/arm64/src/imx9/hardware/imx9_iomuxc.h
+++ b/arch/arm64/src/imx9/hardware/imx9_iomuxc.h
@@ -32,8 +32,7 @@
 #if defined(CONFIG_ARCH_CHIP_IMX93)
 #  include "hardware/imx93/imx93_iomux.h"
 #elif defined(CONFIG_ARCH_CHIP_IMX95)
-#else
-#  error Unrecognized i.MX9 architecture
+#  include "hardware/imx95/imx95_iomuxc.h"
 #endif
 
 /****************************************************************************
diff --git a/arch/arm64/src/imx9/imx9_iomuxc.c 
b/arch/arm64/src/imx9/imx9_iomuxc.c
index fca4dabb7f9..a669d11a483 100644
--- a/arch/arm64/src/imx9/imx9_iomuxc.c
+++ b/arch/arm64/src/imx9/imx9_iomuxc.c
@@ -32,6 +32,12 @@
 #include "arm64_internal.h"
 #include "imx9_iomuxc.h"
 
+#ifdef CONFIG_IMX9_IOMUX_OVER_SCMI
+
+#include "imx9_scmi.h"
+
+#endif
+
 /****************************************************************************
  * Public Functions
  ****************************************************************************/
@@ -51,8 +57,91 @@
  *
  ****************************************************************************/
 
+#ifdef CONFIG_IMX9_IOMUX_OVER_SCMI
+
+/* Sets the IOMUXC pin mux mode.
+ */
+
+void imx9_sm_iomucx_configure(scmi_pinctrl_t *pinctrl)
+{
+  scmi_pin_config_t configs[4];
+  uint32_t num_configs     = 0;
+  uint32_t channel         = pinctrl->channel;
+  uint32_t mux_register    = pinctrl->mux_register;
+  uint32_t mux_mode        = pinctrl->mux_mode;
+  uint32_t input_register  = pinctrl->input_register;
+  uint32_t input_daisy     = pinctrl->input_daisy;
+  uint32_t input_on_field  = pinctrl->input_on_field;
+  uint32_t config_register = pinctrl->config_register;
+  uint32_t config_value    = pinctrl->config_value;
+
+  if (mux_register)
+    {
+      configs[num_configs].type  = SCMI_PINCTRL_TYPE_MUX;
+      configs[num_configs].value = SCMI_PLATFORM_PINCTRL_MUX_MODE(mux_mode)
+                                   | SCMI_PLATFORM_PINCTRL_SION(
+                                        input_on_field);
+      num_configs++;
+    }
+
+  if (input_register & 0xffff)
+    {
+      configs[num_configs].type = SCMI_PINCTRL_TYPE_DAISY_ID;
+      configs[num_configs].value =
+          (input_register - SCMI_PLATFORM_PINCTRL_DAISYREG_OFF) / 4;
+      num_configs++;
+      configs[num_configs].type  = SCMI_PINCTRL_TYPE_DAISY_CFG;
+      configs[num_configs].value = input_daisy;
+      num_configs++;
+    }
+
+  if (config_register)
+    {
+      configs[num_configs].type  = SCMI_PINCTRL_TYPE_CONFIG;
+      configs[num_configs].value = config_value;
+      num_configs++;
+    }
+
+  if (mux_register || input_register)
+    {
+      uint32_t attributes = SCMI_PINCTRL_SET_ATTR_SELECTOR(
+                                  SCMI_PINCTRL_SEL_PIN)
+                            | SCMI_PINCTRL_SET_ATTR_NUM_CONFIGS(
+                                  num_configs);
+
+      int32_t ret = imx9_scmi_set_pinctrl_config(
+          channel, (mux_register - SCMI_PLATFORM_PINCTRL_MUXREG_OFF) / 4,
+          attributes, configs);
+      if (ret != 0)
+        {
+          assert("Unable to set iomux over SCMI");
+        }
+    }
+}
+
+#endif
+
 int imx9_iomux_configure(iomux_cfg_t cfg)
 {
+#ifdef CONFIG_IMX9_IOMUX_OVER_SCMI
+
+  scmi_pinctrl_t pinctrl =
+    {
+      0
+    };
+
+  pinctrl.channel         = SCMI_PLATFORM_A2P;
+  pinctrl.mux_register    = cfg.padcfg.ctlreg;
+  pinctrl.mux_mode        = cfg.padcfg.mode;
+  pinctrl.input_register  = cfg.padcfg.dsy;
+  pinctrl.input_daisy     = cfg.padcfg.dsy;
+  pinctrl.config_register = cfg.padcfg.padreg;
+  pinctrl.config_value    = cfg.pad;
+  pinctrl.input_on_field  = cfg.mux;
+  imx9_sm_iomucx_configure(&pinctrl);
+
+#else
+
   if (!cfg.padcfg.ctlreg)
     {
       return -EINVAL;
@@ -70,9 +159,13 @@ int imx9_iomux_configure(iomux_cfg_t cfg)
       putreg32(cfg.pad, cfg.padcfg.padreg);
     }
 
+#endif
+
   return OK;
 }
 
+#ifndef CONFIG_IMX9_IOMUX_OVER_SCMI
+
 /****************************************************************************
  * Name: imx9_iomux_configure
  *
@@ -116,3 +209,5 @@ int imx9_iomux_gpio(iomux_cfg_t cfg, bool sion)
 
   return OK;
 }
+
+#endif
diff --git a/arch/arm64/src/imx9/imx9_iomuxc.h 
b/arch/arm64/src/imx9/imx9_iomuxc.h
index d903fab42e1..d5cac2bc476 100644
--- a/arch/arm64/src/imx9/imx9_iomuxc.h
+++ b/arch/arm64/src/imx9/imx9_iomuxc.h
@@ -84,6 +84,7 @@ struct iomux_cfg_s
   uint32_t pad;
   uint32_t mux;
 };
+
 typedef struct iomux_cfg_s iomux_cfg_t;
 
 /****************************************************************************
diff --git a/arch/arm64/src/imx9/imx9_scmi.h b/arch/arm64/src/imx9/imx9_scmi.h
index 51a352125f3..e2f9cedcaa0 100644
--- a/arch/arm64/src/imx9/imx9_scmi.h
+++ b/arch/arm64/src/imx9/imx9_scmi.h
@@ -29,6 +29,7 @@
  ****************************************************************************/
 
 #include <nuttx/config.h>
+#include "hardware/imx95/imx95_memorymap.h"
 
 /****************************************************************************
  * Pre-processor Definitions

Reply via email to