Skip to content
This repository was archived by the owner on Feb 6, 2024. It is now read-only.

Commit d7fefb6

Browse files
committed
add 12 and 24mhz crystal pll config
1 parent 4d911b2 commit d7fefb6

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

src/rtccntl.rs

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,14 @@ impl RtcControlExt for RTCCNTL {
1414
const I2C_BLOCK: u8 = 0x67;
1515

1616
// PLL config options for common crystal frequencies
17-
const CRYSTAL_26MHZ: (u8, u8) = (136, 145);
18-
const CRYSTAL_40MHZ: (u8, u8) = (8, 129);
17+
const CRYSTAL_12MHZ: (u8, u8) = (0x88, 0xA1);
18+
const CRYSTAL_24MHZ: (u8, u8) = (0x88, 0x71);
19+
const CRYSTAL_26MHZ: (u8, u8) = (0x88, 0x91);
20+
const CRYSTAL_40MHZ: (u8, u8) = (0x08, 0x81);
1921

2022
pub enum CrystalFrequency {
23+
Crystal12MHz,
24+
Crystal24MHz,
2125
Crystal26MHz,
2226
Crystal40MHz,
2327
}
@@ -46,6 +50,14 @@ impl RtcControl {
4650
/// Configure the internal PLL for common crystal frequencies
4751
pub fn set_crystal_frequency(&mut self, crystal: CrystalFrequency) {
4852
match crystal {
53+
CrystalFrequency::Crystal12MHz => {
54+
self.write_pll_i2c(1, CRYSTAL_12MHZ.0);
55+
self.write_pll_i2c(2, CRYSTAL_12MHZ.1);
56+
}
57+
CrystalFrequency::Crystal24MHz => {
58+
self.write_pll_i2c(1, CRYSTAL_24MHZ.0);
59+
self.write_pll_i2c(2, CRYSTAL_24MHZ.1);
60+
}
4961
CrystalFrequency::Crystal26MHz => {
5062
self.write_pll_i2c(1, CRYSTAL_26MHZ.0);
5163
self.write_pll_i2c(2, CRYSTAL_26MHZ.1);

0 commit comments

Comments
 (0)