Configure the OctoSPI IO manager.
2458 HAL_StatusTypeDef status =
HAL_OK;
2460 uint8_t index, ospi_enabled = 0U, other_instance;
2476 other_instance = 1U;
2481 other_instance = 0U;
2485 for (index = 0U; index < OSPI_NB_INSTANCE; index++)
2487 if (OSPIM_GetConfig(index+1U, &(IOM_cfg[index])) !=
HAL_OK)
2490 hospi->
ErrorCode = HAL_OSPI_ERROR_INVALID_PARAM;
2497 if ((OCTOSPI1->CR & OCTOSPI_CR_EN) != 0U)
2500 ospi_enabled |= 0x1U;
2502 if ((OCTOSPI2->CR & OCTOSPI_CR_EN) != 0U)
2505 ospi_enabled |= 0x2U;
2509 if (IOM_cfg[instance].ClkPort != 0U)
2511 CLEAR_BIT(OCTOSPIM->PCR[(IOM_cfg[instance].
ClkPort-1U)], OCTOSPIM_PCR_CLKEN);
2512 CLEAR_BIT(OCTOSPIM->PCR[(IOM_cfg[instance].
DQSPort-1U)], OCTOSPIM_PCR_DQSEN);
2513 CLEAR_BIT(OCTOSPIM->PCR[(IOM_cfg[instance].
NCSPort-1U)], OCTOSPIM_PCR_NCSEN);
2514 CLEAR_BIT(OCTOSPIM->PCR[((IOM_cfg[instance].
IOLowPort-1U)& OSPI_IOM_PORT_MASK)], OCTOSPIM_PCR_IOLEN);
2515 CLEAR_BIT(OCTOSPIM->PCR[((IOM_cfg[instance].
IOHighPort-1U)& OSPI_IOM_PORT_MASK)], OCTOSPIM_PCR_IOHEN);
2523 CLEAR_BIT(OCTOSPIM->PCR[(IOM_cfg[other_instance].
ClkPort-1U)], OCTOSPIM_PCR_CLKEN);
2524 CLEAR_BIT(OCTOSPIM->PCR[(IOM_cfg[other_instance].
DQSPort-1U)], OCTOSPIM_PCR_DQSEN);
2525 CLEAR_BIT(OCTOSPIM->PCR[(IOM_cfg[other_instance].
NCSPort-1U)], OCTOSPIM_PCR_NCSEN);
2526 CLEAR_BIT(OCTOSPIM->PCR[((IOM_cfg[other_instance].
IOLowPort-1U)& OSPI_IOM_PORT_MASK)], OCTOSPIM_PCR_IOLEN);
2527 CLEAR_BIT(OCTOSPIM->PCR[((IOM_cfg[other_instance].
IOHighPort-1U)& OSPI_IOM_PORT_MASK)], OCTOSPIM_PCR_IOHEN);
2531 MODIFY_REG(OCTOSPIM->PCR[(cfg->
ClkPort-1U)], (OCTOSPIM_PCR_CLKEN | OCTOSPIM_PCR_CLKSRC), (OCTOSPIM_PCR_CLKEN | (instance << OCTOSPIM_PCR_CLKSRC_Pos)));
2532 MODIFY_REG(OCTOSPIM->PCR[(cfg->
DQSPort-1U)], (OCTOSPIM_PCR_DQSEN | OCTOSPIM_PCR_DQSSRC), (OCTOSPIM_PCR_DQSEN | (instance << OCTOSPIM_PCR_DQSSRC_Pos)));
2533 MODIFY_REG(OCTOSPIM->PCR[(cfg->
NCSPort-1U)], (OCTOSPIM_PCR_NCSEN | OCTOSPIM_PCR_NCSSRC), (OCTOSPIM_PCR_NCSEN | (instance << OCTOSPIM_PCR_NCSSRC_Pos)));
2535 if ((cfg->
IOLowPort & OCTOSPIM_PCR_IOLEN) != 0U)
2537 MODIFY_REG(OCTOSPIM->PCR[((cfg->
IOLowPort-1U)& OSPI_IOM_PORT_MASK)], (OCTOSPIM_PCR_IOLEN | OCTOSPIM_PCR_IOLSRC),
2538 (OCTOSPIM_PCR_IOLEN | (instance << (OCTOSPIM_PCR_IOLSRC_Pos+1U))));
2542 MODIFY_REG(OCTOSPIM->PCR[((cfg->
IOLowPort-1U)& OSPI_IOM_PORT_MASK)], (OCTOSPIM_PCR_IOHEN | OCTOSPIM_PCR_IOHSRC),
2543 (OCTOSPIM_PCR_IOHEN | (instance << (OCTOSPIM_PCR_IOHSRC_Pos+1U))));
2546 if ((cfg->
IOHighPort & OCTOSPIM_PCR_IOLEN) != 0U)
2548 MODIFY_REG(OCTOSPIM->PCR[((cfg->
IOHighPort-1U)& OSPI_IOM_PORT_MASK)], (OCTOSPIM_PCR_IOLEN | OCTOSPIM_PCR_IOLSRC),
2549 (OCTOSPIM_PCR_IOLEN | OCTOSPIM_PCR_IOLSRC_0 | (instance << (OCTOSPIM_PCR_IOLSRC_Pos+1U))));
2553 MODIFY_REG(OCTOSPIM->PCR[((cfg->
IOHighPort-1U)& OSPI_IOM_PORT_MASK)], (OCTOSPIM_PCR_IOHEN | OCTOSPIM_PCR_IOHSRC),
2554 (OCTOSPIM_PCR_IOHEN | OCTOSPIM_PCR_IOHSRC_0 | (instance << (OCTOSPIM_PCR_IOHSRC_Pos+1U))));
2558 if ((ospi_enabled & 0x1U) != 0U)
2560 SET_BIT(OCTOSPI1->CR, OCTOSPI_CR_EN);
2562 if ((ospi_enabled & 0x2U) != 0U)
2564 SET_BIT(OCTOSPI2->CR, OCTOSPI_CR_EN);
HAL OSPI IO Manager Configuration structure definition.
CLEAR_BIT(hrtc->Instance->CR, RTC_CR_WUTE)
MODIFY_REG(hrtc->Instance->CR, RTC_CR_WUCKSEL,(uint32_t) WakeUpClock)
OCTOSPI_TypeDef * Instance
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))