aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/machine/machine_stm32l4x5.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/machine/machine_stm32l4x5.go')
-rw-r--r--src/machine/machine_stm32l4x5.go15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/machine/machine_stm32l4x5.go b/src/machine/machine_stm32l4x5.go
index ec06544ba..c8c550c3d 100644
--- a/src/machine/machine_stm32l4x5.go
+++ b/src/machine/machine_stm32l4x5.go
@@ -17,9 +17,20 @@ const APB2_TIM_FREQ = 120e6 // 120MHz
//---------- I2C related code
// Gets the value for TIMINGR register
-func (i2c *I2C) getFreqRange() uint32 {
+func (i2c *I2C) getFreqRange(br uint32) uint32 {
// This is a 'magic' value calculated by STM32CubeMX
// for 120MHz PCLK1.
// TODO: Do calculations based on PCLK1
- return 0x307075B1
+ switch br {
+ case 10 * KHz:
+ return 0x0 // does this even work? zero is weird here.
+ case 100 * KHz:
+ return 0x307075B1
+ case 400 * KHz:
+ return 0x00B03FDB
+ case 500 * KHz:
+ return 0x005017C7
+ default:
+ return 0
+ }
}