Skip to main content

gpio_for_signal

Macro gpio_for_signal 

Source
macro_rules! gpio_for_signal {
    (XTAL_32K_N $(, $_fallback:literal)?) => { ... };
    (LP_GPIO0 $(, $_fallback:literal)?) => { ... };
    (XTAL_32K_P $(, $_fallback:literal)?) => { ... };
    (LP_GPIO1 $(, $_fallback:literal)?) => { ... };
    (LCD_DATA19 $(, $_fallback:literal)?) => { ... };
    (LP_GPIO2 $(, $_fallback:literal)?) => { ... };
    (LCD_DATA20 $(, $_fallback:literal)?) => { ... };
    (LP_GPIO3 $(, $_fallback:literal)?) => { ... };
    (LCD_DATA21 $(, $_fallback:literal)?) => { ... };
    (LP_GPIO4 $(, $_fallback:literal)?) => { ... };
    (LCD_DATA22 $(, $_fallback:literal)?) => { ... };
    (LP_GPIO5 $(, $_fallback:literal)?) => { ... };
    (LP_GPIO6 $(, $_fallback:literal)?) => { ... };
    (LCD_DATA23 $(, $_fallback:literal)?) => { ... };
    (LP_GPIO7 $(, $_fallback:literal)?) => { ... };
    (GMAC_PHY_TXD0 $(, $_fallback:literal)?) => { ... };
    (LCD_DATA0 $(, $_fallback:literal)?) => { ... };
    (FSPIHD $(, $_fallback:literal)?) => { ... };
    (GMAC_PHY_TXD1 $(, $_fallback:literal)?) => { ... };
    (LCD_DATA1 $(, $_fallback:literal)?) => { ... };
    (DBG_PSRAM_CK $(, $_fallback:literal)?) => { ... };
    (FSPICS0 $(, $_fallback:literal)?) => { ... };
    (GMAC_PHY_TXD2 $(, $_fallback:literal)?) => { ... };
    (LCD_DATA2 $(, $_fallback:literal)?) => { ... };
    (DBG_PSRAM_CS $(, $_fallback:literal)?) => { ... };
    (FSPID $(, $_fallback:literal)?) => { ... };
    (GMAC_PHY_TXD3 $(, $_fallback:literal)?) => { ... };
    (LCD_DATA3 $(, $_fallback:literal)?) => { ... };
    (DBG_PSRAM_D $(, $_fallback:literal)?) => { ... };
    (FSPICLK $(, $_fallback:literal)?) => { ... };
    (GMAC_PHY_TXEN $(, $_fallback:literal)?) => { ... };
    (LCD_DATA4 $(, $_fallback:literal)?) => { ... };
    (DBG_PSRAM_Q $(, $_fallback:literal)?) => { ... };
    (FSPIQ $(, $_fallback:literal)?) => { ... };
    (GMAC_RMII_CLK $(, $_fallback:literal)?) => { ... };
    (LCD_DATA5 $(, $_fallback:literal)?) => { ... };
    (DBG_PSRAM_WP $(, $_fallback:literal)?) => { ... };
    (FSPIWP $(, $_fallback:literal)?) => { ... };
    (GMAC_RX_CLK $(, $_fallback:literal)?) => { ... };
    (LCD_DATA6 $(, $_fallback:literal)?) => { ... };
    (DBG_PSRAM_HOLD $(, $_fallback:literal)?) => { ... };
    (FSPIIO4 $(, $_fallback:literal)?) => { ... };
    (GMAC_PHY_RXDV $(, $_fallback:literal)?) => { ... };
    (LCD_DATA7 $(, $_fallback:literal)?) => { ... };
    (DBG_PSRAM_DQ4 $(, $_fallback:literal)?) => { ... };
    (FSPIIO5 $(, $_fallback:literal)?) => { ... };
    (GMAC_PHY_RXD3 $(, $_fallback:literal)?) => { ... };
    (LCD_DATA8 $(, $_fallback:literal)?) => { ... };
    (DBG_PSRAM_DQ5 $(, $_fallback:literal)?) => { ... };
    (FSPIIO6 $(, $_fallback:literal)?) => { ... };
    (GMAC_PHY_RXD2 $(, $_fallback:literal)?) => { ... };
    (LCD_DATA9 $(, $_fallback:literal)?) => { ... };
    (DBG_PSRAM_DQ6 $(, $_fallback:literal)?) => { ... };
    (FSPIIO7 $(, $_fallback:literal)?) => { ... };
    (GMAC_PHY_RXD1 $(, $_fallback:literal)?) => { ... };
    (LCD_DATA10 $(, $_fallback:literal)?) => { ... };
    (DBG_PSRAM_DQ7 $(, $_fallback:literal)?) => { ... };
    (FSPIDQS $(, $_fallback:literal)?) => { ... };
    (GMAC_PHY_RXD0 $(, $_fallback:literal)?) => { ... };
    (LCD_DATA11 $(, $_fallback:literal)?) => { ... };
    (DBG_PSRAM_DQS_0 $(, $_fallback:literal)?) => { ... };
    (SD1_DATA0 $(, $_fallback:literal)?) => { ... };
    (DBG_FLASH_CK $(, $_fallback:literal)?) => { ... };
    (SD1_DATA1 $(, $_fallback:literal)?) => { ... };
    (DBG_FLASH_D $(, $_fallback:literal)?) => { ... };
    (SD1_DATA2 $(, $_fallback:literal)?) => { ... };
    (DBG_FLASH_CS $(, $_fallback:literal)?) => { ... };
    (SD1_DATA3 $(, $_fallback:literal)?) => { ... };
    (DBG_FLASH_Q $(, $_fallback:literal)?) => { ... };
    (SD1_CLK $(, $_fallback:literal)?) => { ... };
    (DBG_FLASH_WP $(, $_fallback:literal)?) => { ... };
    (SD1_CMD $(, $_fallback:literal)?) => { ... };
    (DBG_FLASH_HOLD $(, $_fallback:literal)?) => { ... };
    (SPICS0 $(, $_fallback:literal)?) => { ... };
    (SPIQ $(, $_fallback:literal)?) => { ... };
    (SPIWP $(, $_fallback:literal)?) => { ... };
    (SPIHD $(, $_fallback:literal)?) => { ... };
    (SPICLK $(, $_fallback:literal)?) => { ... };
    (SPID $(, $_fallback:literal)?) => { ... };
    (LCD_DATA12 $(, $_fallback:literal)?) => { ... };
    (USJ_DM $(, $_fallback:literal)?) => { ... };
    (LCD_DATA13 $(, $_fallback:literal)?) => { ... };
    (USJ_DP $(, $_fallback:literal)?) => { ... };
    (REF_GMAC_CLK $(, $_fallback:literal)?) => { ... };
    (LCD_DATA14 $(, $_fallback:literal)?) => { ... };
    (SD2_CDATA0 $(, $_fallback:literal)?) => { ... };
    (LCD_DATA15 $(, $_fallback:literal)?) => { ... };
    (SD2_CDATA1 $(, $_fallback:literal)?) => { ... };
    (LCD_DATA16 $(, $_fallback:literal)?) => { ... };
    (SD2_CDATA2 $(, $_fallback:literal)?) => { ... };
    (LCD_DATA17 $(, $_fallback:literal)?) => { ... };
    (SD2_CDATA3 $(, $_fallback:literal)?) => { ... };
    (LCD_DATA18 $(, $_fallback:literal)?) => { ... };
    (SD2_CCLK $(, $_fallback:literal)?) => { ... };
    (LCD_PCLK $(, $_fallback:literal)?) => { ... };
    (SD2_CCMD $(, $_fallback:literal)?) => { ... };
    (ADC1_CH0 $(, $_fallback:literal)?) => { ... };
    (LCD_H_ENABLE $(, $_fallback:literal)?) => { ... };
    (ADC1_CH1 $(, $_fallback:literal)?) => { ... };
    (LCD_H_SYNC $(, $_fallback:literal)?) => { ... };
    (ADC1_CH2 $(, $_fallback:literal)?) => { ... };
    (LCD_V_SYNC $(, $_fallback:literal)?) => { ... };
    (ADC1_CH3 $(, $_fallback:literal)?) => { ... };
    (CAM_DATA0 $(, $_fallback:literal)?) => { ... };
    (ADC1_CH4 $(, $_fallback:literal)?) => { ... };
    (CAM_DATA1 $(, $_fallback:literal)?) => { ... };
    (ADC1_CH5 $(, $_fallback:literal)?) => { ... };
    (CAM_DATA2 $(, $_fallback:literal)?) => { ... };
    (ADC1_CH6 $(, $_fallback:literal)?) => { ... };
    (CAM_DATA3 $(, $_fallback:literal)?) => { ... };
    (ADC1_CH7 $(, $_fallback:literal)?) => { ... };
    (CAM_DATA4 $(, $_fallback:literal)?) => { ... };
    (ADC2_CH0 $(, $_fallback:literal)?) => { ... };
    (CAM_DATA5 $(, $_fallback:literal)?) => { ... };
    (ADC2_CH1 $(, $_fallback:literal)?) => { ... };
    (CAM_DATA6 $(, $_fallback:literal)?) => { ... };
    (ADC2_CH2 $(, $_fallback:literal)?) => { ... };
    (CAM_DATA7 $(, $_fallback:literal)?) => { ... };
    (ADC2_CH3 $(, $_fallback:literal)?) => { ... };
    (MTDO $(, $_fallback:literal)?) => { ... };
    (CAM_PCLK $(, $_fallback:literal)?) => { ... };
    (ADC2_CH4 $(, $_fallback:literal)?) => { ... };
    (MTCK $(, $_fallback:literal)?) => { ... };
    (CAM_XCLK $(, $_fallback:literal)?) => { ... };
    (ADC2_CH5 $(, $_fallback:literal)?) => { ... };
    (MTDI $(, $_fallback:literal)?) => { ... };
    (CAM_V_SYNC $(, $_fallback:literal)?) => { ... };
    (ADC2_CH6 $(, $_fallback:literal)?) => { ... };
    (MTMS $(, $_fallback:literal)?) => { ... };
    (CAM_H_SYNC $(, $_fallback:literal)?) => { ... };
    (ADC2_CH7 $(, $_fallback:literal)?) => { ... };
    (U0TXD $(, $_fallback:literal)?) => { ... };
    (U0RXD $(, $_fallback:literal)?) => { ... };
    ($_signal:ident, $fallback:literal) => { ... };
}
Available on crate feature _device-selected only.
Expand description

Returns the name of the GPIO that provides the given signal, as a string.

The macro takes the name of a direct function - a digital IO MUX function, an analog function, or an LP IO MUX function - and expands to a string literal like "GPIO4". It is meant to keep documentation free of per-chip pin lists.

Signals that are not wired to a pad on this chip have to be routed through the GPIO matrix, which can reach any pad. The macro has no pad to return for those, so it accepts an optional fallback to expand to instead. The fallback is not validated.

If multiple pads provide the signal, the macro returns one that is not reserved for some other purpose, such as booting or interfacing with flash.

Example usage:

  • gpio_for_signal!(ADC1_CH0)
  • gpio_for_signal!(LP_I2C_SDA, "GPIO6")