123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520 |
- /*
- * Copyright (c) 2006-2024, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2024/05/24 unicornx first version
- */
- #ifndef __DRV_PINMUX_H__
- #define __DRV_PINMUX_H__
- /**
- * @brief Function Selection Type
- */
- typedef enum _fs_type
- {
- fs_none = 0,
- ADC1,
- ADC2,
- ADC3,
- AUX0,
- AUX1,
- AUX2,
- CAM_HS0,
- CAM_MCLK0,
- CAM_MCLK1,
- CAM_PD0,
- CAM_PD1,
- CAM_RST0,
- CAM_VS0,
- CLK25M,
- CLK32K,
- CR_4WTDI,
- CR_4WTDO,
- CV_SCL0,
- CV_SDA0,
- DBG_0,
- DBG_1,
- DBG_2,
- DBG_3,
- DBG_4,
- DBG_5,
- DBG_6,
- DBG_7,
- DBG_8,
- DBG_9,
- DBG_10,
- DBG_11,
- DBG_12,
- DBG_13,
- DBG_14,
- DBG_15,
- DBG_16,
- DBG_18,
- DBG_19,
- EMMC_CLK,
- EMMC_CMD,
- EMMC_DAT0,
- EMMC_DAT1,
- EMMC_DAT2,
- EMMC_DAT3,
- EMMC_DAT_0,
- EMMC_DAT_1,
- EMMC_DAT_2,
- EMMC_DAT_3,
- EMMC_RSTN,
- EPHY_LNK_LED,
- EPHY_SPD_LED,
- GPIO_RTX,
- GPIO_ZQ,
- IIC0_SCL,
- IIC0_SDA,
- IIC1_SCL,
- IIC1_SDA,
- IIC2_SCL,
- IIC2_SDA,
- IIC3_SCL,
- IIC3_SDA,
- IIC4_SCL,
- IIC4_SDA,
- IIS1_BCLK,
- IIS1_DI,
- IIS1_DO,
- IIS1_LRCK,
- IIS1_MCLK,
- IIS2_BCLK,
- IIS2_DI,
- IIS2_DO,
- IIS2_LRCK,
- IIS2_MCLK,
- JTAG_TCK,
- JTAG_TDI,
- JTAG_TDO,
- JTAG_TMS,
- JTAG_CPU_TCK,
- JTAG_CPU_TMS,
- JTAG_CPU_TRST,
- KEY_COL0,
- KEY_COL1,
- KEY_COL2,
- KEY_COL3,
- KEY_ROW0,
- KEY_ROW1,
- KEY_ROW2,
- KEY_ROW3,
- MUX_SPI1_CS,
- MUX_SPI1_MISO,
- MUX_SPI1_MOSI,
- MUX_SPI1_SCK,
- PAD_AUD_AINL_MIC,
- PAD_AUD_AINR_MIC,
- PAD_AUD_AOUTL,
- PAD_AUD_AOUTR,
- PAD_ETH_RXM,
- PAD_ETH_RXP,
- PAD_ETH_TXM,
- PAD_ETH_TXP,
- PAD_MIPIRX0N,
- PAD_MIPIRX0P,
- PAD_MIPIRX1N,
- PAD_MIPIRX1P,
- PAD_MIPIRX2N,
- PAD_MIPIRX2P,
- PAD_MIPIRX3N,
- PAD_MIPIRX3P,
- PAD_MIPIRX4N,
- PAD_MIPIRX4P,
- PAD_MIPIRX5N,
- PAD_MIPIRX5P,
- PAD_MIPI_TXM0,
- PAD_MIPI_TXM1,
- PAD_MIPI_TXM2,
- PAD_MIPI_TXM3,
- PAD_MIPI_TXM4,
- PAD_MIPI_TXP0,
- PAD_MIPI_TXP1,
- PAD_MIPI_TXP2,
- PAD_MIPI_TXP3,
- PAD_MIPI_TXP4,
- PKG_TYPE0,
- PKG_TYPE1,
- PKG_TYPE2,
- PTEST,
- PWM0_BUCK,
- PWM_0,
- PWM_1,
- PWM_2,
- PWM_3,
- PWM_4,
- PWM_5,
- PWM_6,
- PWM_7,
- PWM_8,
- PWM_9,
- PWM_10,
- PWM_11,
- PWM_12,
- PWM_13,
- PWM_14,
- PWM_15,
- PWR_BUTTON1,
- PWR_GPIO0,
- PWR_GPIO1,
- PWR_GPIO2,
- PWR_GPIO_0,
- PWR_GPIO_1,
- PWR_GPIO_2,
- PWR_GPIO_3,
- PWR_GPIO_4,
- PWR_GPIO_5,
- PWR_GPIO_6,
- PWR_GPIO_7,
- PWR_GPIO_8,
- PWR_GPIO_9,
- PWR_GPIO_10,
- PWR_GPIO_11,
- PWR_GPIO_12,
- PWR_GPIO_13,
- PWR_GPIO_14,
- PWR_GPIO_15,
- PWR_GPIO_16,
- PWR_GPIO_17,
- PWR_GPIO_18,
- PWR_GPIO_19,
- PWR_GPIO_20,
- PWR_GPIO_21,
- PWR_GPIO_22,
- PWR_GPIO_23,
- PWR_GPIO_24,
- PWR_GPIO_25,
- PWR_GPIO_26,
- PWR_IIC_SCL,
- PWR_IIC_SDA,
- PWR_IR0,
- PWR_IR1,
- PWR_MCU_JTAG_TCK,
- PWR_MCU_JTAG_TDI,
- PWR_MCU_JTAG_TDO,
- PWR_MCU_JTAG_TMS,
- PWR_ON,
- PWR_PTEST,
- PWR_RSTN,
- PWR_SD1_CLK_VO37,
- PWR_SD1_CMD_VO36,
- PWR_SD1_D0_VO35,
- PWR_SD1_D1_VO34,
- PWR_SD1_D2_VO33,
- PWR_SD1_D3_VO32,
- PWR_SD1_CLK,
- PWR_SD1_CMD,
- PWR_SD1_D0,
- PWR_SD1_D1,
- PWR_SD1_D2,
- PWR_SD1_D3,
- PWR_SECTICK,
- PWR_SEQ1,
- PWR_SEQ2,
- PWR_SEQ3,
- PWR_SPINOR1_CS_X,
- PWR_SPINOR1_HOLD_X,
- PWR_SPINOR1_MISO,
- PWR_SPINOR1_MOSI,
- PWR_SPINOR1_SCK,
- PWR_SPINOR1_WP_X,
- PWR_UART0_RX,
- PWR_UART0_TX,
- PWR_UART1_RX,
- PWR_UART1_TX,
- PWR_VBAT_DET,
- PWR_WAKEUP0,
- PWR_WAKEUP1,
- PWR_XTAL_CLKIN,
- RMII0_IRQ,
- RMII0_MDC,
- RMII0_MDIO,
- RMII0_REFCLKI,
- RMII0_RXD0,
- RMII0_RXD1,
- RMII0_RXDV,
- RMII0_TXCLK,
- RMII0_TXD0,
- RMII0_TXD1,
- RMII0_TXEN,
- RSTN,
- SD0_CD,
- SD0_CLK,
- SD0_CMD,
- SD0_D0,
- SD0_D1,
- SD0_D2,
- SD0_D3,
- SD0_PWR_EN,
- SD1_CLK,
- SD1_CMD,
- SD1_D0,
- SD1_D1,
- SD1_D2,
- SD1_D3,
- SD1_GPIO0,
- SD1_GPIO1,
- SDIO0_CD,
- SDIO0_CLK,
- SDIO0_CMD,
- SDIO0_D_0,
- SDIO0_D_1,
- SDIO0_D_2,
- SDIO0_D_3,
- SDIO0_PWR_EN,
- SPI0_CS_X,
- SPI0_SCK,
- SPI0_SDI,
- SPI0_SDO,
- SPI1_CS_X,
- SPI1_SCK,
- SPI1_SDI,
- SPI1_SDO,
- SPI2_CS_X,
- SPI2_SCK,
- SPI2_SDI,
- SPI2_SDO,
- SPI3_CS_X,
- SPI3_SCK,
- SPI3_SDI,
- SPI3_SDO,
- SPINAND_CLK,
- SPINAND_CS,
- SPINAND_HOLD,
- SPINAND_MISO,
- SPINAND_MOSI,
- SPINAND_WP,
- SPINOR_CS_X,
- SPINOR_HOLD_X,
- SPINOR_MISO,
- SPINOR_MOSI,
- SPINOR_SCK,
- SPINOR_WP_X,
- SPK_EN,
- UART0_RX,
- UART0_TX,
- UART1_CTS,
- UART1_RTS,
- UART1_RX,
- UART1_TX,
- UART2_CTS,
- UART2_RTS,
- UART2_RX,
- UART2_TX,
- UART3_CTS,
- UART3_RTS,
- UART3_RX,
- UART3_TX,
- UART4_CTS,
- UART4_RTS,
- UART4_RX,
- UART4_TX,
- USB_ID,
- USB_VBUS_DET,
- USB_VBUS_EN,
- VI0_CLK,
- VI0_D_0,
- VI0_D_1,
- VI0_D_2,
- VI0_D_3,
- VI0_D_4,
- VI0_D_5,
- VI0_D_6,
- VI0_D_7,
- VI0_D_8,
- VI0_D_9,
- VI0_D_10,
- VI0_D_11,
- VI0_D_12,
- VI0_D_13,
- VI0_D_14,
- VI0_D_15,
- VI1_CLK,
- VI1_D_0,
- VI1_D_1,
- VI1_D_2,
- VI1_D_3,
- VI1_D_4,
- VI1_D_5,
- VI1_D_6,
- VI1_D_7,
- VI1_D_8,
- VI1_D_9,
- VI1_D_10,
- VI1_D_11,
- VI1_D_12,
- VI1_D_13,
- VI1_D_14,
- VI1_D_15,
- VI1_D_16,
- VI1_D_17,
- VI1_D_18,
- VI2_CLK,
- VI2_D_0,
- VI2_D_1,
- VI2_D_2,
- VI2_D_3,
- VI2_D_4,
- VI2_D_5,
- VI2_D_6,
- VI2_D_7,
- VIVO_CLK,
- VIVO_D0,
- VIVO_D1,
- VIVO_D2,
- VIVO_D3,
- VIVO_D4,
- VIVO_D5,
- VIVO_D6,
- VIVO_D7,
- VIVO_D8,
- VIVO_D9,
- VIVO_D10,
- VO_CLK0,
- VO_CLK1,
- VO_D_0,
- VO_D_1,
- VO_D_2,
- VO_D_3,
- VO_D_4,
- VO_D_5,
- VO_D_6,
- VO_D_7,
- VO_D_8,
- VO_D_9,
- VO_D_10,
- VO_D_11,
- VO_D_12,
- VO_D_13,
- VO_D_14,
- VO_D_15,
- VO_D_16,
- VO_D_17,
- VO_D_18,
- VO_D_19,
- VO_D_20,
- VO_D_21,
- VO_D_22,
- VO_D_23,
- VO_D_24,
- VO_D_25,
- VO_D_26,
- VO_D_27,
- VO_D_28,
- VO_D_29,
- VO_D_30,
- VO_D_31,
- WG0_D0,
- WG0_D1,
- WG1_D0,
- WG1_D1,
- WG2_D0,
- WG2_D1,
- XGPIOA_0,
- XGPIOA_1,
- XGPIOA_2,
- XGPIOA_3,
- XGPIOA_4,
- XGPIOA_5,
- XGPIOA_6,
- XGPIOA_7,
- XGPIOA_8,
- XGPIOA_9,
- XGPIOA_10,
- XGPIOA_11,
- XGPIOA_12,
- XGPIOA_13,
- XGPIOA_14,
- XGPIOA_15,
- XGPIOA_16,
- XGPIOA_17,
- XGPIOA_18,
- XGPIOA_19,
- XGPIOA_20,
- XGPIOA_21,
- XGPIOA_22,
- XGPIOA_23,
- XGPIOA_24,
- XGPIOA_25,
- XGPIOA_26,
- XGPIOA_27,
- XGPIOA_28,
- XGPIOA_29,
- XGPIOA_30,
- XGPIOB_0,
- XGPIOB_1,
- XGPIOB_2,
- XGPIOB_3,
- XGPIOB_4,
- XGPIOB_5,
- XGPIOB_6,
- XGPIOB_7,
- XGPIOB_8,
- XGPIOB_9,
- XGPIOB_10,
- XGPIOB_11,
- XGPIOB_12,
- XGPIOB_13,
- XGPIOB_14,
- XGPIOB_15,
- XGPIOB_16,
- XGPIOB_17,
- XGPIOB_18,
- XGPIOB_19,
- XGPIOB_20,
- XGPIOB_21,
- XGPIOB_22,
- XGPIOB_23,
- XGPIOB_24,
- XGPIOB_25,
- XGPIOB_26,
- XGPIOB_27,
- XGPIOC_0,
- XGPIOC_1,
- XGPIOC_2,
- XGPIOC_3,
- XGPIOC_4,
- XGPIOC_5,
- XGPIOC_6,
- XGPIOC_7,
- XGPIOC_8,
- XGPIOC_9,
- XGPIOC_10,
- XGPIOC_11,
- XGPIOC_12,
- XGPIOC_13,
- XGPIOC_14,
- XGPIOC_15,
- XGPIOC_16,
- XGPIOC_17,
- XGPIOC_18,
- XGPIOC_19,
- XGPIOC_20,
- XGPIOC_21,
- XGPIOC_22,
- XGPIOC_23,
- XGPIOC_24,
- XGPIOC_25,
- XTAL_XIN,
- } fs_type;
- /**
- * @brief configure pin multiplex
- *
- * @param pin_name pin name string
- * @param func_type function type enum
- * @param whitelist pin name whilelist which is allowed to set. Ignore check
- * if NULL.
- * NOTE: whitelist should be a string list ended with NULL.
- *
- * @return RT_EOK if succeeded
- * else: something wrong occurred and config is abandoned.
- */
- extern int pinmux_config(const char *pin_name, fs_type func_type, const char *whitelist[]);
- #endif
|