IO_MUX driver supports peripheral IO multiplex configration.
|
The pin function ID is a tuple of <GPIO_0_31_Mask GPIO_32_63_Mask GPIO_FC_SetMask GPIO_FC_ClearMask FSEL_SetMask FSEL_ClearMask CTimer_SetMask CTimer_ClearMask SCTimerSetMask SCTimerClearMask>
GPIO_FC_xxxMask: bit[0:10] maps to FCn[0:10]; bit[15:12] is the register offset from FC0; bit[16] indicates GPIO should be operated; bit[17] indicates SGPIO need to be operated. CTimer_xxxMask: bit[0:14] maps to C_TIMER_IN[0:14]; bit[16:30] maps to C_TIMER_OUT[0:14].
|
enum | io_mux_pin_config_t |
| IO MUX pin configuration. More...
|
|
enum | io_mux_sleep_pin_level_t |
| IO MUX sleep pin level.
|
|
#define | IO_MUX_GPIO_FC_MASK(gpio, fcIdx, fcMsk) (((uint32_t)(gpio) << 16) | (((uint32_t)(fcIdx)&0xFUL) << 12) | ((uint32_t)(fcMsk)&0xFFFUL)) |
|
#define | IO_MUX_SGPIO_FLAG(mask) (((uint32_t)(mask) >> 17) & 1UL) |
|
#define | IO_MUX_GPIO_FLAG(mask) (((uint32_t)(mask) >> 16) & 1UL) |
|
#define | IO_MUX_FC_OFFSET(mask) (((uint32_t)(mask) >> 12) & 0xFUL) |
|
#define | IO_MUX_FC_MASK(mask) ((uint32_t)(mask)&0x7FFUL) |
|
#define | IO_MUX_CTIMER_MASK(inMsk, outMsk) (((uint32_t)(outMsk) << 16) | ((uint32_t)(inMsk)&0xFFFFUL)) |
|
#define | IO_MUX_CTIMER_IN_MASK(mask) ((uint32_t)(mask)&0x7FFFUL) |
|
#define | IO_MUX_CTIMER_OUT_MASK(mask) (((uint32_t)(mask) >> 16) & 0x7FFFUL) |
|
#define | IO_MUX_SCTIMER_MASK(inMsk, outMsk) ((((uint32_t)(outMsk)&0x3FFUL) << 16) | ((uint32_t)(inMsk)&0xFFUL)) |
|
#define | IO_MUX_FC0_USART_SCK |
|
#define | IO_MUX_FC0_USART_DATA |
|
#define | IO_MUX_FC0_USART_CMD |
|
#define | IO_MUX_FC0_I2C_2_3 |
|
#define | IO_MUX_FC0_I2S |
|
#define | IO_MUX_FC0_I2S_DATA |
|
#define | IO_MUX_FC0_SPI_SS0 |
|
#define | IO_MUX_FC1_USART_SCK |
|
#define | IO_MUX_FC1_USART_DATA |
|
#define | IO_MUX_FC1_USART_CMD |
|
#define | IO_MUX_FC1_I2C_8_9 |
|
#define | IO_MUX_FC1_I2S |
|
#define | IO_MUX_FC1_I2S_DATA |
|
#define | IO_MUX_FC1_SPI_SS0 |
|
#define | IO_MUX_FC2_USART_SCK |
|
#define | IO_MUX_FC2_USART_DATA |
|
#define | IO_MUX_FC2_USART_CMD |
|
#define | IO_MUX_FC2_I2C_13_14 |
|
#define | IO_MUX_FC2_I2C_16_17 |
|
#define | IO_MUX_FC2_I2S |
|
#define | IO_MUX_FC2_I2S_DATA |
|
#define | IO_MUX_FC2_SPI_SS0 |
|
#define | IO_MUX_FC3_USART_SCK |
|
#define | IO_MUX_FC3_USART_DATA |
|
#define | IO_MUX_FC3_USART_CMD |
|
#define | IO_MUX_FC3_I2C_24_26 |
|
#define | IO_MUX_FC3_I2C_19_20 |
|
#define | IO_MUX_FC3_I2S |
|
#define | IO_MUX_FC3_I2S_DATA |
|
#define | IO_MUX_FC3_SPI_SS0 |
|
#define | IO_MUX_FC14_USART_SCK |
|
#define | IO_MUX_FC14_USART_DATA |
|
#define | IO_MUX_FC14_USART_CMD |
|
#define | IO_MUX_FC14_I2C_56_57 |
|
#define | IO_MUX_FC14_I2S |
|
#define | IO_MUX_FC14_I2S_DATA |
|
#define | IO_MUX_FC14_SPI_SS0 |
|
#define | IO_MUX_QUAD_SPI_FLASH |
|
#define | IO_MUX_QUAD_SPI_PSRAM |
|
#define | IO_MUX_PDM |
|
#define | IO_MUX_USB |
|
#define | IO_MUX_SCT_OUT_0 |
|
#define | IO_MUX_SCT_OUT_1 |
|
#define | IO_MUX_SCT_OUT_8 |
|
#define | IO_MUX_SCT_OUT_4 |
|
#define | IO_MUX_SCT_OUT_5 |
|
#define | IO_MUX_SCT_OUT_6 |
|
#define | IO_MUX_SCT_OUT_7 |
|
#define | IO_MUX_SCT_OUT_9 |
|
#define | IO_MUX_SCT_IN_0 |
|
#define | IO_MUX_SCT_IN_1 |
|
#define | IO_MUX_SCT_IN_2 |
|
#define | IO_MUX_SCT_IN_3 |
|
#define | IO_MUX_SCT_IN_4 |
|
#define | IO_MUX_SCT_IN_5 |
|
#define | IO_MUX_SCT_IN_6 |
|
#define | IO_MUX_SCT_IN_7 |
|
#define | IO_MUX_CT0_MAT0_OUT |
|
#define | IO_MUX_CT0_MAT1_OUT |
|
#define | IO_MUX_CT0_MAT2_OUT |
|
#define | IO_MUX_CT0_MAT3_OUT |
|
#define | IO_MUX_CT1_MAT0_OUT |
|
#define | IO_MUX_CT1_MAT1_OUT |
|
#define | IO_MUX_CT1_MAT2_OUT |
|
#define | IO_MUX_CT1_MAT3_OUT |
|
#define | IO_MUX_CT2_MAT0_OUT |
|
#define | IO_MUX_CT2_MAT1_OUT |
|
#define | IO_MUX_CT2_MAT2_OUT |
|
#define | IO_MUX_CT2_MAT3_OUT |
|
#define | IO_MUX_CT3_MAT0_OUT |
|
#define | IO_MUX_CT3_MAT1_OUT |
|
#define | IO_MUX_CT3_MAT2_OUT |
|
#define | IO_MUX_CT_INP0 |
|
#define | IO_MUX_CT_INP1 |
|
#define | IO_MUX_CT_INP2 |
|
#define | IO_MUX_CT_INP3 |
|
#define | IO_MUX_CT_INP4 |
|
#define | IO_MUX_CT_INP5 |
|
#define | IO_MUX_CT_INP6 |
|
#define | IO_MUX_CT_INP7 |
|
#define | IO_MUX_CT_INP8 |
|
#define | IO_MUX_CT_INP9 |
|
#define | IO_MUX_CT_INP10 |
|
#define | IO_MUX_CT_INP11 |
|
#define | IO_MUX_CT_INP12 |
|
#define | IO_MUX_CT_INP13 |
|
#define | IO_MUX_CT_INP14 |
|
#define | IO_MUX_MCLK |
|
#define | IO_MUX_UTICK |
|
#define | IO_MUX_USIM |
|
#define | IO_MUX_LCD_8080 |
|
#define | IO_MUX_LCD_SPI |
|
#define | IO_MUX_FREQ_GPIO_CLK |
|
#define | IO_MUX_GPIO_INT_BMATCH |
|
#define | IO_MUX_GAU_TRIGGER0 |
|
#define | IO_MUX_ACOMP0_GPIO_OUT |
|
#define | IO_MUX_ACOMP0_EDGE_PULSE |
|
#define | IO_MUX_ACOMP1_GPIO_OUT |
|
#define | IO_MUX_ACOMP1_EDGE_PULSE |
|
#define | IO_MUX_GAU_TRIGGER1 |
|
#define | IO_MUX_SDIO |
|
#define | IO_MUX_ENET_CLK |
|
#define | IO_MUX_ENET_RX |
|
#define | IO_MUX_ENET_TX |
|
#define | IO_MUX_ENET_MDIO |
|
#define | IO_MUX_ENET_TIMER0 |
|
#define | IO_MUX_ENET_TIMER1 |
|
#define | IO_MUX_ENET_TIMER2 |
|
#define | IO_MUX_ENET_TIMER3 |
|
#define | IO_MUX_CLKIN_FRM_PD |
|
#define | IO_MUX_GPIO0 |
|
#define | IO_MUX_GPIO1 |
|
#define | IO_MUX_GPIO2 |
|
#define | IO_MUX_GPIO3 |
|
#define | IO_MUX_GPIO4 |
|
#define | IO_MUX_GPIO5 |
|
#define | IO_MUX_GPIO6 |
|
#define | IO_MUX_GPIO7 |
|
#define | IO_MUX_GPIO8 |
|
#define | IO_MUX_GPIO9 |
|
#define | IO_MUX_GPIO10 |
|
#define | IO_MUX_GPIO11 |
|
#define | IO_MUX_GPIO12 |
|
#define | IO_MUX_GPIO13 |
|
#define | IO_MUX_GPIO14 |
|
#define | IO_MUX_GPIO15 |
|
#define | IO_MUX_GPIO16 |
|
#define | IO_MUX_GPIO17 |
|
#define | IO_MUX_GPIO18 |
|
#define | IO_MUX_GPIO19 |
|
#define | IO_MUX_GPIO20 |
|
#define | IO_MUX_GPIO21 |
|
#define | IO_MUX_GPIO22 |
|
#define | IO_MUX_GPIO23 |
|
#define | IO_MUX_GPIO24 |
|
#define | IO_MUX_GPIO25 |
|
#define | IO_MUX_GPIO26 |
|
#define | IO_MUX_GPIO27 |
|
#define | IO_MUX_GPIO28 |
|
#define | IO_MUX_GPIO29 |
|
#define | IO_MUX_GPIO30 |
|
#define | IO_MUX_GPIO31 |
|
#define | IO_MUX_GPIO32 |
|
#define | IO_MUX_GPIO33 |
|
#define | IO_MUX_GPIO34 |
|
#define | IO_MUX_GPIO35 |
|
#define | IO_MUX_GPIO36 |
|
#define | IO_MUX_GPIO37 |
|
#define | IO_MUX_GPIO38 |
|
#define | IO_MUX_GPIO39 |
|
#define | IO_MUX_GPIO40 |
|
#define | IO_MUX_GPIO41 |
|
#define | IO_MUX_GPIO42 |
|
#define | IO_MUX_GPIO43 |
|
#define | IO_MUX_GPIO44 |
|
#define | IO_MUX_GPIO45 |
|
#define | IO_MUX_GPIO46 |
|
#define | IO_MUX_GPIO47 |
|
#define | IO_MUX_GPIO48 |
|
#define | IO_MUX_GPIO49 |
|
#define | IO_MUX_GPIO50 |
|
#define | IO_MUX_GPIO51 |
|
#define | IO_MUX_GPIO52 |
|
#define | IO_MUX_GPIO53 |
|
#define | IO_MUX_GPIO54 |
|
#define | IO_MUX_GPIO55 |
|
#define | IO_MUX_GPIO56 |
|
#define | IO_MUX_GPIO57 |
|
#define | IO_MUX_GPIO58 |
|
#define | IO_MUX_GPIO59 |
|
#define | IO_MUX_GPIO60 |
|
#define | IO_MUX_GPIO61 |
|
#define | IO_MUX_GPIO62 |
|
#define | IO_MUX_GPIO63 |
|
#define | IO_MUX_SGPIO0 |
|
#define | IO_MUX_SGPIO1 |
|
#define | IO_MUX_SGPIO2 |
|
#define | IO_MUX_SGPIO3 |
|
#define | IO_MUX_SGPIO4 |
|
#define | IO_MUX_SGPIO5 |
|
#define | IO_MUX_SGPIO6 |
|
#define | IO_MUX_SGPIO7 |
|
#define | IO_MUX_SGPIO8 |
|
#define | IO_MUX_SGPIO9 |
|
#define | IO_MUX_SGPIO10 |
|
#define | IO_MUX_SGPIO11 |
|
#define | IO_MUX_SGPIO12 |
|
#define | IO_MUX_SGPIO13 |
|
#define | IO_MUX_SGPIO14 |
|
#define | IO_MUX_SGPIO15 |
|
#define | IO_MUX_SGPIO16 |
|
#define | IO_MUX_SGPIO17 |
|
#define | IO_MUX_SGPIO18 |
|
#define | IO_MUX_SGPIO19 |
|
#define | IO_MUX_SGPIO20 |
|
#define | IO_MUX_SGPIO21 |
|
#define | IO_MUX_SGPIO22 |
|
#define | IO_MUX_SGPIO23 |
|
#define | IO_MUX_SGPIO24 |
|
#define | IO_MUX_SGPIO25 |
|
#define | IO_MUX_SGPIO26 |
|
#define | IO_MUX_SGPIO27 |
|
#define | IO_MUX_SGPIO28 |
|
#define | IO_MUX_SGPIO29 |
|
#define | IO_MUX_SGPIO30 |
|
#define | IO_MUX_SGPIO31 |
|
#define | IO_MUX_AON_CAPTURE |
|
|
static void | IO_MUX_SetPinMux (uint32_t pinLowMask, uint32_t pinHighMask, uint32_t gpioFcSetMask, uint32_t gpioFcClrMask, uint32_t fselSetMask, uint32_t fselClrMask, uint32_t ctimerSetMask, uint32_t ctimerClrMask, uint32_t sctimerSetMask, uint32_t sctimerClrMask) |
| Sets the IO_MUX pin mux mode. More...
|
|
static void | IO_MUX_SetPinConfig (uint32_t pin, io_mux_pin_config_t config) |
| Sets the IO_MUX pin mux pull up/down configuartion. More...
|
|
static void | IO_MUX_SetPinOutLevelInSleep (uint32_t pin, io_mux_sleep_pin_level_t level) |
| Sets IO output level in sleep mode. More...
|
|
static void | IO_MUX_SetRfPinOutLevelInSleep (uint32_t pin, io_mux_sleep_pin_level_t level) |
| Sets RF Switch Pin 0-3 output level in sleep mode. More...
|
|
Bit [1:0] for pull configuration Bit [3:2] for drive strength configuration
static void IO_MUX_SetPinMux |
( |
uint32_t |
pinLowMask, |
|
|
uint32_t |
pinHighMask, |
|
|
uint32_t |
gpioFcSetMask, |
|
|
uint32_t |
gpioFcClrMask, |
|
|
uint32_t |
fselSetMask, |
|
|
uint32_t |
fselClrMask, |
|
|
uint32_t |
ctimerSetMask, |
|
|
uint32_t |
ctimerClrMask, |
|
|
uint32_t |
sctimerSetMask, |
|
|
uint32_t |
sctimerClrMask |
|
) |
| |
|
inlinestatic |
- Note
- The parameters can be filled with the pin function ID macros.
This is an example to set the GPIO2/GPIO3 as the Flexcomm0 UART RX/TX:
This is an example to set the GPIO6/GPIO10 as Flexcomm1 I2C SDA/SCL:
- Parameters
-
pinLowMask | The GPIO0-31 pins mask. |
pinHighMask | The GPIO32-63 pins mask. |
gpioFcSetMask | The GPIO and Flexcomm registers mask to set, defined by IO_MUX_GPIO_FC_MASK() |
gpioFcClrMask | The GPIO and Flexcomm registers mask to clear, defined by IO_MUX_GPIO_FC_MASK() |
fselSetMask | The FSEL register mask to set |
fselClrMask | The FSEL register mask to clear |
ctimerSetMask | The C_TIMER_IN/C_TIMER_OUT register mask to set, defined by IO_MUX_CTIMER_MASK() |
ctimerClrMask | The C_TIMER_IN/C_TIMER_OUT register mask to clear, defined by IO_MUX_CTIMER_MASK() |
sctimerSetMask | The SC_TIMER register mask to set |
sctimerClrMask | The SC_TIMER register mask to clear |
This is an example to set the GPIO2 pin to pull down:
- Parameters
-
pin | The GPIO pin index to config. |
config | The pull up/down setting for the pin. |
If level set to IO_MUX_SleepPinLevelUnchanged, the IO configuration is same as the active mode.
This is an example to set the GPIO2 pin to output high during sleep:
- Parameters
-
pin | The GPIO pin index to config. |
level | Output level in sleep. |
If level set to IO_MUX_SleepPinLevelUnchanged, the IO configuration is same as the active mode.
This is an example to set the RF_CNTL0 pin to output low during sleep:
- Parameters
-
pin | The RF Switch pin index to config. |
level | Output level in sleep. |