diff options
author | Drashna Jaelre <[email protected]> | 2024-03-06 03:02:37 -0800 |
---|---|---|
committer | GitHub <[email protected]> | 2024-03-06 22:02:37 +1100 |
commit | 83e6ddbbb4c8e715bfe419c4d7fc0ae305ea5bd5 (patch) | |
tree | 28fd4e4bbbb83fc41e3800c5b95369592c6e9942 /quantum/audio | |
parent | 045e5c9729f22a8ab8a3f22fe9c0e6b51d1940fe (diff) | |
download | qmk_firmware-83e6ddbbb4c8e715bfe419c4d7fc0ae305ea5bd5.tar.gz qmk_firmware-83e6ddbbb4c8e715bfe419c4d7fc0ae305ea5bd5.zip |
[Audio] Add support for audio shutdown pin (#22731)
Co-authored-by: Ryan <[email protected]>
Diffstat (limited to 'quantum/audio')
-rw-r--r-- | quantum/audio/audio.c | 27 | ||||
-rw-r--r-- | quantum/audio/audio.h | 6 |
2 files changed, 30 insertions, 3 deletions
diff --git a/quantum/audio/audio.c b/quantum/audio/audio.c index c1a1500493..b2611c5f09 100644 --- a/quantum/audio/audio.c +++ b/quantum/audio/audio.c @@ -20,6 +20,7 @@ #include "debug.h" #include "wait.h" #include "util.h" +#include "gpio.h" /* audio system: * @@ -121,6 +122,32 @@ static bool audio_initialized = false; static bool audio_driver_stopped = true; audio_config_t audio_config; +#ifndef AUDIO_POWER_CONTROL_PIN_ON_STATE +# define AUDIO_POWER_CONTROL_PIN_ON_STATE 1 +#endif + +void audio_driver_initialize(void) { +#ifdef AUDIO_POWER_CONTROL_PIN + gpio_set_pin_output_push_pull(AUDIO_POWER_CONTROL_PIN); + gpio_write_pin(AUDIO_POWER_CONTROL_PIN, !AUDIO_POWER_CONTROL_PIN_ON_STATE); +#endif + audio_driver_initialize_impl(); +} + +void audio_driver_stop(void) { + audio_driver_stop_impl(); +#ifdef AUDIO_POWER_CONTROL_PIN + gpio_write_pin(AUDIO_POWER_CONTROL_PIN, !AUDIO_POWER_CONTROL_PIN_ON_STATE); +#endif +} + +void audio_driver_start(void) { +#ifdef AUDIO_POWER_CONTROL_PIN + gpio_write_pin(AUDIO_POWER_CONTROL_PIN, AUDIO_POWER_CONTROL_PIN_ON_STATE); +#endif + audio_driver_start_impl(); +} + void eeconfig_update_audio_current(void) { eeconfig_update_audio(audio_config.raw); } diff --git a/quantum/audio/audio.h b/quantum/audio/audio.h index eb0bedc6f9..054331d6f3 100644 --- a/quantum/audio/audio.h +++ b/quantum/audio/audio.h @@ -215,9 +215,9 @@ void audio_startup(void); // hardware interface // implementation in the driver_avr/arm_* respective parts -void audio_driver_initialize(void); -void audio_driver_start(void); -void audio_driver_stop(void); +void audio_driver_initialize_impl(void); +void audio_driver_start_impl(void); +void audio_driver_stop_impl(void); /** * @brief get the number of currently active tones |