mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-01 11:44:31 +02:00
driver: add periph_ctrl support for SDMMC, SDIO slave, CAN, EMAC
This commit is contained in:
@@ -45,6 +45,10 @@ typedef enum {
|
|||||||
PERIPH_HSPI_MODULE,
|
PERIPH_HSPI_MODULE,
|
||||||
PERIPH_VSPI_MODULE,
|
PERIPH_VSPI_MODULE,
|
||||||
PERIPH_SPI_DMA_MODULE,
|
PERIPH_SPI_DMA_MODULE,
|
||||||
|
PERIPH_SDMMC_MODULE,
|
||||||
|
PERIPH_SDIO_SLAVE_MODULE,
|
||||||
|
PERIPH_CAN_MODULE,
|
||||||
|
PERIPH_EMAC_MODULE,
|
||||||
} periph_module_t;
|
} periph_module_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -111,7 +111,23 @@ void periph_module_enable(periph_module_t periph)
|
|||||||
break;
|
break;
|
||||||
case PERIPH_SPI_DMA_MODULE:
|
case PERIPH_SPI_DMA_MODULE:
|
||||||
DPORT_SET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_SPI_DMA_CLK_EN);
|
DPORT_SET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_SPI_DMA_CLK_EN);
|
||||||
DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_SPI_DMA_RST );
|
DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_SPI_DMA_RST);
|
||||||
|
break;
|
||||||
|
case PERIPH_SDMMC_MODULE:
|
||||||
|
DPORT_SET_PERI_REG_MASK(DPORT_WIFI_CLK_EN_REG, DPORT_WIFI_CLK_SDIO_HOST_EN);
|
||||||
|
DPORT_CLEAR_PERI_REG_MASK(DPORT_CORE_RST_EN_REG, DPORT_SDIO_HOST_RST);
|
||||||
|
break;
|
||||||
|
case PERIPH_SDIO_SLAVE_MODULE:
|
||||||
|
DPORT_SET_PERI_REG_MASK(DPORT_WIFI_CLK_EN_REG, DPORT_WIFI_CLK_SDIOSLAVE_EN);
|
||||||
|
DPORT_CLEAR_PERI_REG_MASK(DPORT_CORE_RST_EN_REG, DPORT_SDIO_RST);
|
||||||
|
break;
|
||||||
|
case PERIPH_CAN_MODULE:
|
||||||
|
DPORT_SET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_CAN_CLK_EN);
|
||||||
|
DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
|
||||||
|
break;
|
||||||
|
case PERIPH_EMAC_MODULE:
|
||||||
|
DPORT_SET_PERI_REG_MASK(DPORT_WIFI_CLK_EN_REG, DPORT_WIFI_CLK_EMAC_EN);
|
||||||
|
DPORT_CLEAR_PERI_REG_MASK(DPORT_CORE_RST_EN_REG, DPORT_EMAC_RST);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@@ -206,10 +222,27 @@ void periph_module_disable(periph_module_t periph)
|
|||||||
case PERIPH_VSPI_MODULE:
|
case PERIPH_VSPI_MODULE:
|
||||||
DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_SPI_CLK_EN_2);
|
DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_SPI_CLK_EN_2);
|
||||||
DPORT_SET_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_SPI_RST_2);
|
DPORT_SET_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_SPI_RST_2);
|
||||||
|
break;
|
||||||
case PERIPH_SPI_DMA_MODULE:
|
case PERIPH_SPI_DMA_MODULE:
|
||||||
DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_SPI_DMA_CLK_EN);
|
DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_SPI_DMA_CLK_EN);
|
||||||
DPORT_SET_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_SPI_DMA_RST);
|
DPORT_SET_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_SPI_DMA_RST);
|
||||||
break;
|
break;
|
||||||
|
case PERIPH_SDMMC_MODULE:
|
||||||
|
DPORT_CLEAR_PERI_REG_MASK(DPORT_WIFI_CLK_EN_REG, DPORT_WIFI_CLK_SDIO_HOST_EN);
|
||||||
|
DPORT_SET_PERI_REG_MASK(DPORT_CORE_RST_EN_REG, DPORT_SDIO_HOST_RST);
|
||||||
|
break;
|
||||||
|
case PERIPH_SDIO_SLAVE_MODULE:
|
||||||
|
DPORT_CLEAR_PERI_REG_MASK(DPORT_WIFI_CLK_EN_REG, DPORT_WIFI_CLK_SDIOSLAVE_EN);
|
||||||
|
DPORT_SET_PERI_REG_MASK(DPORT_CORE_RST_EN_REG, DPORT_SDIO_RST);
|
||||||
|
break;
|
||||||
|
case PERIPH_CAN_MODULE:
|
||||||
|
DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_CAN_CLK_EN);
|
||||||
|
DPORT_SET_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
|
||||||
|
break;
|
||||||
|
case PERIPH_EMAC_MODULE:
|
||||||
|
DPORT_CLEAR_PERI_REG_MASK(DPORT_WIFI_CLK_EN_REG, DPORT_WIFI_CLK_EMAC_EN);
|
||||||
|
DPORT_SET_PERI_REG_MASK(DPORT_CORE_RST_EN_REG, DPORT_EMAC_RST);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user