From 8a16ec829cb7dc36ff20beea8a50e86d259a4456 Mon Sep 17 00:00:00 2001 From: Totoo Date: Mon, 22 Jun 2026 16:50:16 +0200 Subject: [PATCH] fix clock source change on praline (#3233) * fix clock source change on praline * whoops --- firmware/application/clock_manager.cpp | 11 +++++++++-- firmware/application/clock_manager.hpp | 3 +++ firmware/common/gpio.hpp | 4 ++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/firmware/application/clock_manager.cpp b/firmware/application/clock_manager.cpp index 555eb09bc..594860f44 100644 --- a/firmware/application/clock_manager.cpp +++ b/firmware/application/clock_manager.cpp @@ -419,7 +419,11 @@ std::string ClockManager::get_freq() { to_string_dec_uint((reference.frequency % 1000000) / 100, 4, '0') + " MHz"; } -static void portapack_tcxo_enable() { +void ClockManager::portapack_tcxo_enable() { +#ifdef PRALINE + gpio_control::clkin_ctrl.setActive(); + set_p1_control(P1_Function::P22_ClkIn); +#endif portapack::io.reference_oscillator(true); /* Delay >10ms at 96MHz clock speed for reference oscillator to start. */ @@ -428,7 +432,10 @@ static void portapack_tcxo_enable() { while (delay--); } -static void portapack_tcxo_disable() { +void ClockManager::portapack_tcxo_disable() { +#ifdef PRALINE + gpio_control::clkin_ctrl.setInactive(); +#endif portapack::io.reference_oscillator(false); } diff --git a/firmware/application/clock_manager.hpp b/firmware/application/clock_manager.hpp index e83ba510e..caa6edab2 100644 --- a/firmware/application/clock_manager.hpp +++ b/firmware/application/clock_manager.hpp @@ -116,6 +116,9 @@ class ClockManager { void enable_clock_output(bool enable); + void portapack_tcxo_enable(); + void portapack_tcxo_disable(); + private: I2C& i2c0; si5351::Si5351& clock_generator; diff --git a/firmware/common/gpio.hpp b/firmware/common/gpio.hpp index 477d20965..3b3ad178a 100644 --- a/firmware/common/gpio.hpp +++ b/firmware/common/gpio.hpp @@ -361,8 +361,8 @@ constexpr PinMap map_p1_ctrl0{2, 10, 0, 14, 0}; // SCU: 2, 10 | GPIO: 0, 14 constexpr PinMap map_p1_ctrl1{6, 8, 5, 16, 4}; constexpr PinMap map_p1_ctrl2{6, 9, 3, 5, 0}; -constexpr PinMap map_p2_ctrl0{8, 3, 7, 3, 4}; -constexpr PinMap map_p2_ctrl1{8, 4, 7, 4, 4}; +constexpr PinMap map_p2_ctrl0{8, 3, 7, 3, 0}; +constexpr PinMap map_p2_ctrl1{8, 4, 7, 4, 0}; constexpr PinMap map_trigger_out{2, 6, 5, 6, 4}; constexpr PinMap map_trigger_in{13, 12, 6, 26, 4};