Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

imxrt: Extend FlexIO support to 117x #11398

Merged
merged 1 commit into from Dec 14, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
10 changes: 8 additions & 2 deletions arch/arm/src/imxrt/Kconfig
Expand Up @@ -178,6 +178,7 @@ config ARCH_FAMILY_IMXRT106x
select ARMV7M_HAVE_DTCM
select IMXRT_HIGHSPEED_GPIO
select IMXRT_HAVE_FLEXSPI2
select IMXRT_HAVE_FLEXIO3

config IMXRT_HAVE_OTA_PARTITION
bool
Expand Down Expand Up @@ -284,6 +285,10 @@ config IMXRT_FLEXSPI
bool
default n

config IMXRT_HAVE_FLEXIO3
bool
default n

config IMXRT_HAVE_FLEXSPI2
bool
default n
Expand Down Expand Up @@ -360,7 +365,7 @@ config IMXRT_FLEXIO1
default n
select IMXRT_FLEXIO

if IMXRT_FLEXIO1
if (IMXRT_FLEXIO1 && !IMXRT_CLOCKCONFIG_VER2)

choice
prompt "FLEXIO1 Clock Source"
Expand Down Expand Up @@ -417,7 +422,7 @@ config IMXRT_FLEXIO2
default n
select IMXRT_FLEXIO

if IMXRT_FLEXIO2 || IMXRT_FLEXIO3
if (IMXRT_FLEXIO2 || IMXRT_FLEXIO3) && !IMXRT_CLOCKCONFIG_VER2

choice
prompt "FLEXIO2 Clock Source"
Expand Down Expand Up @@ -471,6 +476,7 @@ config IMXRT_FLEXIO3
bool "FLEXIO3"
default n
select IMXRT_FLEXIO
depends on IMXRT_HAVE_FLEXIO3
---help---
FLEXIO3 uses the FLEXIO2 clock settings.

Expand Down
68 changes: 68 additions & 0 deletions arch/arm/src/imxrt/hardware/rt117x/imxrt117x_pinmux.h
Expand Up @@ -197,6 +197,74 @@
#define GPIO_FLEXCAN3_TX_2 (GPIO_PERIPH | GPIO_ALT1 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_LPSR_08_INDEX))
#define GPIO_FLEXCAN3_TX_3 (GPIO_PERIPH | GPIO_ALT6 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_LPSR_06_INDEX))

/* Flexible I/O (FlexIO) */

#define GPIO_FLEXIO1_FLEXIO00_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_00_INDEX))
#define GPIO_FLEXIO1_FLEXIO01_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_01_INDEX))
#define GPIO_FLEXIO1_FLEXIO02_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_02_INDEX))
#define GPIO_FLEXIO1_FLEXIO03_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_03_INDEX))
#define GPIO_FLEXIO1_FLEXIO04_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_04_INDEX))
#define GPIO_FLEXIO1_FLEXIO05_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_05_INDEX))
#define GPIO_FLEXIO1_FLEXIO06_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_06_INDEX))
#define GPIO_FLEXIO1_FLEXIO07_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_07_INDEX))
#define GPIO_FLEXIO1_FLEXIO08_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_08_INDEX))
#define GPIO_FLEXIO1_FLEXIO09_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_09_INDEX))
#define GPIO_FLEXIO1_FLEXIO10_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_10_INDEX))
#define GPIO_FLEXIO1_FLEXIO11_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_11_INDEX))
#define GPIO_FLEXIO1_FLEXIO12_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_12_INDEX))
#define GPIO_FLEXIO1_FLEXIO13_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_13_INDEX))
#define GPIO_FLEXIO1_FLEXIO14_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_14_INDEX))
#define GPIO_FLEXIO1_FLEXIO15_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_15_INDEX))
#define GPIO_FLEXIO1_FLEXIO16_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_16_INDEX))
#define GPIO_FLEXIO1_FLEXIO17_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_17_INDEX))
#define GPIO_FLEXIO1_FLEXIO18_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_18_INDEX))
#define GPIO_FLEXIO1_FLEXIO19_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_19_INDEX))
#define GPIO_FLEXIO1_FLEXIO20_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_20_INDEX))
#define GPIO_FLEXIO1_FLEXIO21_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_21_INDEX))
#define GPIO_FLEXIO1_FLEXIO22_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_22_INDEX))
#define GPIO_FLEXIO1_FLEXIO23_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_23_INDEX))
#define GPIO_FLEXIO1_FLEXIO24_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_24_INDEX))
#define GPIO_FLEXIO1_FLEXIO25_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_25_INDEX))
#define GPIO_FLEXIO1_FLEXIO26_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_26_INDEX))
#define GPIO_FLEXIO1_FLEXIO27_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_27_INDEX))
#define GPIO_FLEXIO1_FLEXIO28_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_28_INDEX))
#define GPIO_FLEXIO1_FLEXIO29_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_29_INDEX))
#define GPIO_FLEXIO1_FLEXIO30_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_30_INDEX))
#define GPIO_FLEXIO1_FLEXIO31_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_31_INDEX))

#define GPIO_FLEXIO2_FLEXIO00_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_00_INDEX))
#define GPIO_FLEXIO2_FLEXIO01_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_01_INDEX))
#define GPIO_FLEXIO2_FLEXIO02_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_02_INDEX))
#define GPIO_FLEXIO2_FLEXIO03_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_03_INDEX))
#define GPIO_FLEXIO2_FLEXIO04_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_04_INDEX))
#define GPIO_FLEXIO2_FLEXIO05_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_05_INDEX))
#define GPIO_FLEXIO2_FLEXIO06_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_06_INDEX))
#define GPIO_FLEXIO2_FLEXIO07_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_07_INDEX))
#define GPIO_FLEXIO2_FLEXIO08_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_08_INDEX))
#define GPIO_FLEXIO2_FLEXIO09_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_09_INDEX))
#define GPIO_FLEXIO2_FLEXIO10_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_10_INDEX))
#define GPIO_FLEXIO2_FLEXIO11_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_11_INDEX))
#define GPIO_FLEXIO2_FLEXIO12_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_12_INDEX))
#define GPIO_FLEXIO2_FLEXIO13_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_13_INDEX))
#define GPIO_FLEXIO2_FLEXIO14_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_14_INDEX))
#define GPIO_FLEXIO2_FLEXIO15_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_15_INDEX))
#define GPIO_FLEXIO2_FLEXIO16_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_16_INDEX))
#define GPIO_FLEXIO2_FLEXIO17_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_17_INDEX))
#define GPIO_FLEXIO2_FLEXIO18_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_18_INDEX))
#define GPIO_FLEXIO2_FLEXIO19_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_19_INDEX))
#define GPIO_FLEXIO2_FLEXIO20_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_20_INDEX))
#define GPIO_FLEXIO2_FLEXIO21_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_21_INDEX))
#define GPIO_FLEXIO2_FLEXIO22_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_22_INDEX))
#define GPIO_FLEXIO2_FLEXIO23_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_23_INDEX))
#define GPIO_FLEXIO2_FLEXIO24_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_24_INDEX))
#define GPIO_FLEXIO2_FLEXIO25_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_25_INDEX))
#define GPIO_FLEXIO2_FLEXIO26_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_26_INDEX))
#define GPIO_FLEXIO2_FLEXIO27_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_27_INDEX))
#define GPIO_FLEXIO2_FLEXIO28_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_28_INDEX))
#define GPIO_FLEXIO2_FLEXIO29_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_29_INDEX))
#define GPIO_FLEXIO2_FLEXIO30_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_30_INDEX))
#define GPIO_FLEXIO2_FLEXIO31_1 (GPIO_PERIPH | GPIO_ALT8 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_AD_31_INDEX))

/* Enhanced Flex Pulse Width Modulator (eFlexPWM) */

#define GPIO_FLEXPWM1_PWM0_A_1 (GPIO_PERIPH | GPIO_ALT1 | GPIO_PADMUX(IMXRT_PADMUX_GPIO_EMC_B1_23_INDEX))
Expand Down