aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/machine/machine_stm32l0.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/machine/machine_stm32l0.go')
-rw-r--r--src/machine/machine_stm32l0.go17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/machine/machine_stm32l0.go b/src/machine/machine_stm32l0.go
index 844cfccb4..e3fcefb57 100644
--- a/src/machine/machine_stm32l0.go
+++ b/src/machine/machine_stm32l0.go
@@ -298,9 +298,20 @@ func (spi SPI) configurePins(config SPIConfig) {
//---------- I2C related types and 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 80MHz PCLK1.
+ // for 16MHz PCLK1.
// TODO: Do calculations based on PCLK1
- return 0x00303D5B
+ switch br {
+ case 10 * KHz:
+ return 0x40003EFF
+ case 100 * KHz:
+ return 0x00303D5B
+ case 400 * KHz:
+ return 0x0010061A
+ case 500 * KHz:
+ return 0x00000117
+ default:
+ return 0
+ }
}