aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGiovanni Di Sirio <gdisirio@gmail.com>2017-12-25 10:25:17 +0000
committerGiovanni Di Sirio <gdisirio@gmail.com>2017-12-25 10:25:17 +0000
commit7ae67eb81d4845cb7323f3699998d43e302abb78 (patch)
tree10c2f4213367f4fad64da9b75636fca93578b943
parent56952a327ec866cc50a218e52c6c7fd3550aee1e (diff)
downloadChibiOS-7ae67eb81d4845cb7323f3699998d43e302abb78.tar.gz
ChibiOS-7ae67eb81d4845cb7323f3699998d43e302abb78.tar.bz2
ChibiOS-7ae67eb81d4845cb7323f3699998d43e302abb78.zip
More H7 code.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@11181 35acf78f-673a-0410-8e92-d51de3d6d3f4
-rw-r--r--os/hal/ports/STM32/STM32H7xx/hal_lld.h76
1 files changed, 48 insertions, 28 deletions
diff --git a/os/hal/ports/STM32/STM32H7xx/hal_lld.h b/os/hal/ports/STM32/STM32H7xx/hal_lld.h
index a64818e3c..e29b9423d 100644
--- a/os/hal/ports/STM32/STM32H7xx/hal_lld.h
+++ b/os/hal/ports/STM32/STM32H7xx/hal_lld.h
@@ -187,13 +187,13 @@
/** @} */
/**
- * @name Internal clock sources
+ * @name Internal clock sources frequencies
* @{
*/
-#define STM32_HSICLK 64000000
-#define STM32_HSI48CLK 48000000
-#define STM32_CSICLK 4000000
-#define STM32_LSICLK 32000
+#define STM32_HSI_OSC 64000000
+#define STM32_HSI48_OSC 48000000
+#define STM32_CSI_OSC 4000000
+#define STM32_LSI_OSC 32000
/** @} */
/**
@@ -1190,31 +1190,31 @@
* @{
*/
#if (STM32_VOS == STM32_VOS_SCALE1) || defined(__DOXYGEN__)
-#define STM32_0WS_THRESHOLD 70000000
-#define STM32_1WS_THRESHOLD 140000000
-#define STM32_2WS_THRESHOLD 210000000
-#define STM32_3WS_THRESHOLD 0
-#define STM32_4WS_THRESHOLD 0
-#define STM32_PLLOUT_MAX 400000000
-#define STM32_PLLOUT_MIN 1500000
+#define STM32_0WS_THRESHOLD 70000000U
+#define STM32_1WS_THRESHOLD 140000000U
+#define STM32_2WS_THRESHOLD 210000000U
+#define STM32_3WS_THRESHOLD 0U
+#define STM32_4WS_THRESHOLD 0U
+#define STM32_PLLOUT_MAX 400000000U
+#define STM32_PLLOUT_MIN 1500000U
#elif STM32_VOS == STM32_VOS_SCALE2
-#define STM32_0WS_THRESHOLD 55000000
-#define STM32_1WS_THRESHOLD 110000000
-#define STM32_2WS_THRESHOLD 165000000
-#define STM32_3WS_THRESHOLD 220000000
-#define STM32_4WS_THRESHOLD 0
-#define STM32_PLLOUT_MAX 300000000
-#define STM32_PLLOUT_MIN 1500000
+#define STM32_0WS_THRESHOLD 55000000U
+#define STM32_1WS_THRESHOLD 110000000U
+#define STM32_2WS_THRESHOLD 165000000U
+#define STM32_3WS_THRESHOLD 220000000U
+#define STM32_4WS_THRESHOLD 0U
+#define STM32_PLLOUT_MAX 300000000U
+#define STM32_PLLOUT_MIN 1500000U
#elif STM32_VOS == STM32_VOS_SCALE3
-#define STM32_0WS_THRESHOLD 45000000
-#define STM32_1WS_THRESHOLD 90000000
-#define STM32_2WS_THRESHOLD 135000000
-#define STM32_3WS_THRESHOLD 180000000
-#define STM32_4WS_THRESHOLD 225000000
-#define STM32_PLLOUT_MAX 200000000
-#define STM32_PLLOUT_MIN 1500000
+#define STM32_0WS_THRESHOLD 45000000U
+#define STM32_1WS_THRESHOLD 90000000U
+#define STM32_2WS_THRESHOLD 135000000U
+#define STM32_3WS_THRESHOLD 180000000U
+#define STM32_4WS_THRESHOLD 225000000U
+#define STM32_PLLOUT_MAX 200000000U
+#define STM32_PLLOUT_MIN 1500000U
#else
#error "invalid STM32_VOS setting specified"
@@ -1225,7 +1225,10 @@
* HSI related checks.
*/
#if STM32_HSI_ENABLED
+#define STM32_HSICLK STM32_HSI_OSC
+
#else /* !STM32_HSI_ENABLED */
+#define STM32_HSICLK 0U
#if STM32_SW == STM32_SW_HSI_CK
#error "HSI not enabled, required by STM32_SW"
@@ -1250,7 +1253,10 @@
* HSI48 related checks.
*/
#if STM32_HSI48_ENABLED
+#define STM32_HSI48CLK STM32_HSI48_OSC
+
#else /* !STM32_HSI48_ENABLED */
+#define STM32_HSI48CLK 0U
#if STM32_MCO1SEL == STM32_MCO1SEL_HSI48_CK
#error "HSI48 not enabled, required by STM32_MCO1SEL"
@@ -1262,7 +1268,10 @@
* CSI related checks.
*/
#if STM32_CSI_ENABLED
+#define STM32_CSICLK STM32_CSI_OSC
+
#else /* !STM32_CSI_ENABLED */
+#define STM32_CSICLK 0U
#if STM32_SW == STM32_SW_CSI_CK
#error "CSI not enabled, required by STM32_SW"
@@ -1288,8 +1297,12 @@
*/
#if STM32_HSE_ENABLED
-#if STM32_HSECLK == 0
+#if !defined(STM32_HSECLK)
#error "HSE frequency not defined"
+#endif
+
+#if STM32_HSECLK == 0
+#error "HSE oscllator not available"
#else /* STM32_HSECLK != 0 */
#if defined(STM32_HSE_BYPASS)
#if (STM32_HSECLK < STM32_HSECLK_BYP_MIN) || (STM32_HSECLK > STM32_HSECLK_BYP_MAX)
@@ -1330,7 +1343,10 @@
* LSI related checks.
*/
#if STM32_LSI_ENABLED
+#define STM32_LSICLK STM32_LSI_OSC
+
#else /* !STM32_LSI_ENABLED */
+#define STM32_LSICLK 0U
#if STM32_RTCSEL == STM32_RTCSEL_LSI_CK
#error "LSI not enabled, required by STM32_RTCSEL"
@@ -1347,10 +1363,14 @@
*/
#if STM32_LSE_ENABLED
-#if (STM32_LSECLK == 0)
+#if !defined(STM32_LSECLK)
#error "LSE frequency not defined"
#endif
+#if (STM32_LSECLK == 0)
+#error "LSE oscillator not available"
+#endif
+
#if defined(STM32_LSE_BYPASS)
#if (STM32_LSECLK < STM32_LSECLK_MIN) || (STM32_LSECLK > STM32_LSECLK_BYP_MAX)
#error "STM32_LSECLK outside acceptable range (STM32_LSECLK_MIN..STM32_LSECLK_BYP_MAX)"