driver: add periph_ctrl support for SDMMC, SDIO slave, CAN, EMAC
This commit is contained in:
parent
b834fcf78a
commit
956a28a95c
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue