summaryrefslogtreecommitdiff
path: root/firmware/target/arm/i2s-pp.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/i2s-pp.c')
-rw-r--r--firmware/target/arm/i2s-pp.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/firmware/target/arm/i2s-pp.c b/firmware/target/arm/i2s-pp.c
index c63287b72b..b9e32b8789 100644
--- a/firmware/target/arm/i2s-pp.c
+++ b/firmware/target/arm/i2s-pp.c
@@ -25,6 +25,7 @@
25 ****************************************************************************/ 25 ****************************************************************************/
26 26
27#include "system.h" 27#include "system.h"
28#include "cpu.h"
28 29
29/* TODO: Add in PP5002 defs */ 30/* TODO: Add in PP5002 defs */
30#if CONFIG_CPU == PP5002 31#if CONFIG_CPU == PP5002
@@ -140,4 +141,34 @@ void i2s_reset(void)
140 /* Rx.CLR = 1, TX.CLR = 1 */ 141 /* Rx.CLR = 1, TX.CLR = 1 */
141 IISFIFO_CFG |= 0x1100; 142 IISFIFO_CFG |= 0x1100;
142} 143}
144
145#ifdef SANSA_E200
146void i2s_scale_attn_level(long frequency)
147{
148 unsigned int iisfifo_cfg = IISFIFO_CFG & ~0xff;
149
150 /* TODO: set this more appropriately for frequency */
151 if (frequency <= CPUFREQ_DEFAULT)
152 {
153 /* when 4 slots full */
154 /* when 4 slots empty */
155 iisfifo_cfg |= 0x11;
156 }
157 else if (frequency < CPUFREQ_MAX)
158 {
159 /* when 8 slots full */
160 /* when 8 slots empty */
161 iisfifo_cfg |= 0x22;
162 }
163 else
164 {
165 /* when 12 slots full */
166 /* when 12 slots empty */
167 iisfifo_cfg |= 0x33;
168 }
169
170 IISFIFO_CFG = iisfifo_cfg;
171}
172#endif /* SANSA_E200 */
173
143#endif 174#endif