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. |