mirror of
https://github.com/tinygo-org/drivers.git
synced 2026-07-26 10:38:41 +00:00
408851a9f5
* si5351: add support for si5351 Adds support for the si5351 I2C programmable clock generator using code from @chiefMarlin which used code from @conotto which somehow never got merged. Thank you everyone! Signed-off-by: deadprogram <ron@hybridgroup.com> * refactor: use regmap instead of legacy package to avoid heap allocations Signed-off-by: deadprogram <ron@hybridgroup.com> --------- Signed-off-by: deadprogram <ron@hybridgroup.com>
65 lines
1.0 KiB
Go
65 lines
1.0 KiB
Go
package si5351
|
|
|
|
// The I2C address which this device listens to.
|
|
const AddressDefault = 0x60 // Assumes ADDR pin is low
|
|
const AddressAlternative = 0x61 // Assumes ADDR pin is high
|
|
|
|
const (
|
|
OUTPUT_ENABLE_CONTROL = 3
|
|
|
|
CLK0_CONTROL = 16
|
|
CLK1_CONTROL = 17
|
|
CLK2_CONTROL = 18
|
|
CLK3_CONTROL = 19
|
|
CLK4_CONTROL = 20
|
|
CLK5_CONTROL = 21
|
|
CLK6_CONTROL = 22
|
|
CLK7_CONTROL = 23
|
|
|
|
MULTISYNTH0_PARAMETERS_1 = 42
|
|
MULTISYNTH0_PARAMETERS_3 = 44
|
|
MULTISYNTH1_PARAMETERS_1 = 50
|
|
MULTISYNTH1_PARAMETERS_3 = 52
|
|
MULTISYNTH2_PARAMETERS_1 = 58
|
|
MULTISYNTH2_PARAMETERS_3 = 60
|
|
|
|
SPREAD_SPECTRUM_PARAMETERS = 149
|
|
|
|
PLL_RESET = 177
|
|
|
|
CRYSTAL_INTERNAL_LOAD_CAPACITANCE = 183
|
|
)
|
|
|
|
const (
|
|
CRYSTAL_LOAD_6PF = (1 << 6)
|
|
CRYSTAL_LOAD_8PF = (2 << 6)
|
|
CRYSTAL_LOAD_10PF = (3 << 6)
|
|
)
|
|
|
|
const (
|
|
CRYSTAL_FREQ_25MHZ = 25000000
|
|
CRYSTAL_FREQ_27MHZ = 27000000
|
|
)
|
|
|
|
const (
|
|
PLL_A = iota
|
|
PLL_B
|
|
)
|
|
|
|
const (
|
|
R_DIV_1 = iota
|
|
R_DIV_2
|
|
R_DIV_4
|
|
R_DIV_8
|
|
R_DIV_16
|
|
R_DIV_32
|
|
R_DIV_64
|
|
R_DIV_128
|
|
)
|
|
|
|
const (
|
|
MULTISYNTH_DIV_4 = 4
|
|
MULTISYNTH_DIV_6 = 6
|
|
MULTISYNTH_DIV_8 = 8
|
|
)
|