mirror of
https://github.com/apache/nuttx.git
synced 2026-06-05 07:12:54 +08:00
stm32h7: Initialize CSI and HSI48 clocks as needed based on enabled peripherals.
This commit is contained in:
committed by
David Sidrane
parent
05b889457e
commit
4c8d70dd2e
@@ -410,6 +410,14 @@ config STM32H7_RTC
|
|||||||
default n
|
default n
|
||||||
select RTC
|
select RTC
|
||||||
|
|
||||||
|
config STM32H7_CSI
|
||||||
|
bool "CSI Low-speed internal oscillator (4MHz)"
|
||||||
|
default n
|
||||||
|
|
||||||
|
config STM32H7_HSI48
|
||||||
|
bool "HSI48 High-speed 48MHz internal oscillator"
|
||||||
|
default n
|
||||||
|
|
||||||
config STM32H7_PWR
|
config STM32H7_PWR
|
||||||
bool "PWR"
|
bool "PWR"
|
||||||
default n
|
default n
|
||||||
@@ -493,12 +501,14 @@ config STM32H7_OTGFS
|
|||||||
bool "OTG FS"
|
bool "OTG FS"
|
||||||
default n
|
default n
|
||||||
select USBHOST_HAVE_ASYNCH if USBHOST
|
select USBHOST_HAVE_ASYNCH if USBHOST
|
||||||
|
select STM32H7_HSI48
|
||||||
|
|
||||||
config STM32H7_OTGHS
|
config STM32H7_OTGHS
|
||||||
bool "OTG HS"
|
bool "OTG HS"
|
||||||
default n
|
default n
|
||||||
depends on EXPERIMENTAL
|
depends on EXPERIMENTAL
|
||||||
select USBHOST_HAVE_ASYNCH if USBHOST
|
select USBHOST_HAVE_ASYNCH if USBHOST
|
||||||
|
select STM32H7_HSI48
|
||||||
|
|
||||||
config STM32H7_OTG_SOFOUTPUT
|
config STM32H7_OTG_SOFOUTPUT
|
||||||
bool "OTG SOF output"
|
bool "OTG SOF output"
|
||||||
|
|||||||
@@ -623,7 +623,6 @@ void stm32_stdclockconfig(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define CONFIG_STM32H7_HSI48
|
|
||||||
#ifdef CONFIG_STM32H7_HSI48
|
#ifdef CONFIG_STM32H7_HSI48
|
||||||
/* Enable HSI48 */
|
/* Enable HSI48 */
|
||||||
|
|
||||||
@@ -638,6 +637,20 @@ void stm32_stdclockconfig(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_STM32H7_CSI
|
||||||
|
/* Enable CSI */
|
||||||
|
|
||||||
|
regval = getreg32(STM32_RCC_CR);
|
||||||
|
regval |= RCC_CR_CSION;
|
||||||
|
putreg32(regval, STM32_RCC_CR);
|
||||||
|
|
||||||
|
/* Wait until the CSI is ready */
|
||||||
|
|
||||||
|
while ((getreg32(STM32_RCC_CR) & RCC_CR_CSIRDY) == 0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Check for a timeout. If this timeout occurs, then we are hosed. We
|
/* Check for a timeout. If this timeout occurs, then we are hosed. We
|
||||||
* have no real back-up plan, although the following logic makes it look
|
* have no real back-up plan, although the following logic makes it look
|
||||||
* as though we do.
|
* as though we do.
|
||||||
|
|||||||
@@ -637,7 +637,6 @@ void stm32_stdclockconfig(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define CONFIG_STM32H7_HSI48
|
|
||||||
#ifdef CONFIG_STM32H7_HSI48
|
#ifdef CONFIG_STM32H7_HSI48
|
||||||
/* Enable HSI48 */
|
/* Enable HSI48 */
|
||||||
|
|
||||||
@@ -652,6 +651,20 @@ void stm32_stdclockconfig(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_STM32H7_CSI
|
||||||
|
/* Enable CSI */
|
||||||
|
|
||||||
|
regval = getreg32(STM32_RCC_CR);
|
||||||
|
regval |= RCC_CR_CSION;
|
||||||
|
putreg32(regval, STM32_RCC_CR);
|
||||||
|
|
||||||
|
/* Wait until the CSI is ready */
|
||||||
|
|
||||||
|
while ((getreg32(STM32_RCC_CR) & RCC_CR_CSIRDY) == 0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Check for a timeout. If this timeout occurs, then we are hosed. We
|
/* Check for a timeout. If this timeout occurs, then we are hosed. We
|
||||||
* have no real back-up plan, although the following logic makes it look
|
* have no real back-up plan, although the following logic makes it look
|
||||||
* as though we do.
|
* as though we do.
|
||||||
|
|||||||
Reference in New Issue
Block a user