summaryrefslogtreecommitdiffstats
path: root/firmware
diff options
context:
space:
mode:
authorAidan MacDonald <amachronic@protonmail.com>2022-01-10 21:50:32 +0000
committerAidan MacDonald <amachronic@protonmail.com>2022-01-16 19:35:40 -0500
commitdac3175445b6e76a29c1550da9cece13dfaf7f8c (patch)
tree2f1475163428f3c5af431b1c3dec630d13365c8f /firmware
parent18b3e91707e42873eab833f0f3da709062207ba7 (diff)
downloadrockbox-dac3175445b6e76a29c1550da9cece13dfaf7f8c.tar.gz
rockbox-dac3175445b6e76a29c1550da9cece13dfaf7f8c.zip
audiohw: avoid magic numbers for DAC power mode
Define proper symbolic constants for power mode. Also allow targets to define the default power mode setting. Change-Id: Ia07cf854dce47d0a6aa88e067471f1ff9fbc45fb
Diffstat (limited to 'firmware')
-rw-r--r--firmware/drivers/audio/ak4376.c4
-rw-r--r--firmware/export/ak4376.h4
-rw-r--r--firmware/export/audiohw.h6
-rw-r--r--firmware/target/mips/ingenic_x1000/fiiom3k/audiohw-fiiom3k.c2
-rw-r--r--firmware/target/mips/ingenic_x1000/shanlingq1/audiohw-shanlingq1.c2
5 files changed, 12 insertions, 6 deletions
diff --git a/firmware/drivers/audio/ak4376.c b/firmware/drivers/audio/ak4376.c
index 8206bcf7e0..2e772ace84 100644
--- a/firmware/drivers/audio/ak4376.c
+++ b/firmware/drivers/audio/ak4376.c
@@ -242,11 +242,11 @@ void ak4376_set_freqmode(int fsel, int mult, int power_mode)
/* Handle the DSMLP bit in the MODE_CTRL register */
int mode_ctrl = 0x00;
- if(power_mode || hw_freq_sampr[fsel] <= SAMPR_12)
+ if(power_mode == SOUND_LOW_POWER || hw_freq_sampr[fsel] <= SAMPR_12)
mode_ctrl |= 0x40;
/* Program the new settings */
ak4376_write(AK4376_REG_CLOCK_MODE, clock_mode);
ak4376_write(AK4376_REG_MODE_CTRL, mode_ctrl);
- ak4376_write(AK4376_REG_PWR3, power_mode ? 0x11 : 0x01);
+ ak4376_write(AK4376_REG_PWR3, power_mode == SOUND_LOW_POWER ? 0x11 : 0x01);
}
diff --git a/firmware/export/ak4376.h b/firmware/export/ak4376.h
index eab0bc24f3..0ae156bc37 100644
--- a/firmware/export/ak4376.h
+++ b/firmware/export/ak4376.h
@@ -144,8 +144,8 @@ extern void ak4376_set_filter_roll_off(int val);
* and power-up / power-down sequences as a frequency switch, so both settings
* are controlled by this function.
*
- * high power mode -- use power_mode=0
- * low power mode -- use power_mode=1
+ * high power mode -- use power_mode=SOUND_HIGH_POWER
+ * low power mode -- use power_mode=SOUND_LOW_POWER
*/
extern void ak4376_set_freqmode(int fsel, int mult, int power_mode);
diff --git a/firmware/export/audiohw.h b/firmware/export/audiohw.h
index a365b97828..3f8b48d750 100644
--- a/firmware/export/audiohw.h
+++ b/firmware/export/audiohw.h
@@ -605,6 +605,12 @@ void audiohw_set_filter_roll_off(int val);
#endif
#ifdef AUDIOHW_HAVE_POWER_MODE
+enum audiohw_power_mode
+{
+ SOUND_HIGH_POWER = 0,
+ SOUND_LOW_POWER,
+};
+
/**
* Set DAC's power saving mode.
* @param enable 0 - highest performance, 1 - battery saving
diff --git a/firmware/target/mips/ingenic_x1000/fiiom3k/audiohw-fiiom3k.c b/firmware/target/mips/ingenic_x1000/fiiom3k/audiohw-fiiom3k.c
index 8528b803f7..f7dced8f54 100644
--- a/firmware/target/mips/ingenic_x1000/fiiom3k/audiohw-fiiom3k.c
+++ b/firmware/target/mips/ingenic_x1000/fiiom3k/audiohw-fiiom3k.c
@@ -28,7 +28,7 @@
#include "logf.h"
static int cur_fsel = HW_FREQ_48;
-static int cur_power_mode = 0;
+static int cur_power_mode = SOUND_HIGH_POWER;
static void set_ak_freqmode(void)
{
diff --git a/firmware/target/mips/ingenic_x1000/shanlingq1/audiohw-shanlingq1.c b/firmware/target/mips/ingenic_x1000/shanlingq1/audiohw-shanlingq1.c
index 7314f20412..3b49262f20 100644
--- a/firmware/target/mips/ingenic_x1000/shanlingq1/audiohw-shanlingq1.c
+++ b/firmware/target/mips/ingenic_x1000/shanlingq1/audiohw-shanlingq1.c
@@ -154,7 +154,7 @@ void audiohw_set_filter_roll_off(int value)
void audiohw_set_power_mode(int mode)
{
enum es9218_amp_mode new_amp_mode;
- if(mode == 0)
+ if(mode == SOUND_HIGH_POWER)
new_amp_mode = ES9218_AMP_MODE_2VRMS;
else
new_amp_mode = ES9218_AMP_MODE_1VRMS;