summaryrefslogtreecommitdiff
path: root/firmware/export
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/export')
-rw-r--r--firmware/export/as3514.h2
-rw-r--r--firmware/export/config-gigabeat.h6
-rw-r--r--firmware/export/config-mrobe100.h1
-rw-r--r--firmware/export/pcm.h6
-rw-r--r--firmware/export/pp5002.h56
-rw-r--r--firmware/export/pp5020.h3
-rw-r--r--firmware/export/tlv320.h2
-rw-r--r--firmware/export/uda1380.h4
-rw-r--r--firmware/export/wm8731.h2
-rw-r--r--firmware/export/wm8758.h2
-rw-r--r--firmware/export/wm8975.h2
-rw-r--r--firmware/export/wm8978.h2
12 files changed, 75 insertions, 13 deletions
diff --git a/firmware/export/as3514.h b/firmware/export/as3514.h
index af4615a15e..07aa0ebfe2 100644
--- a/firmware/export/as3514.h
+++ b/firmware/export/as3514.h
@@ -26,7 +26,7 @@ extern int tenthdb2master(int db);
26 26
27extern void audiohw_set_master_vol(int vol_l, int vol_r); 27extern void audiohw_set_master_vol(int vol_l, int vol_r);
28extern void audiohw_set_lineout_vol(int vol_l, int vol_r); 28extern void audiohw_set_lineout_vol(int vol_l, int vol_r);
29extern void audiohw_set_sample_rate(int sampling_control); 29extern void audiohw_set_frequency(int fsel);
30 30
31/* Register Descriptions */ 31/* Register Descriptions */
32#define AS3514_LINE_OUT_R 0x00 32#define AS3514_LINE_OUT_R 0x00
diff --git a/firmware/export/config-gigabeat.h b/firmware/export/config-gigabeat.h
index 664befd54e..708c17fd8a 100644
--- a/firmware/export/config-gigabeat.h
+++ b/firmware/export/config-gigabeat.h
@@ -105,6 +105,12 @@
105#define HW_SAMPR_CAPS (SAMPR_CAP_88 | SAMPR_CAP_44 | SAMPR_CAP_22 | \ 105#define HW_SAMPR_CAPS (SAMPR_CAP_88 | SAMPR_CAP_44 | SAMPR_CAP_22 | \
106 SAMPR_CAP_11) 106 SAMPR_CAP_11)
107 107
108/* All exact rates for 16.9344MHz clock */
109#define CODEC_SRCTRL_11025HZ (0x19 << 1)
110#define CODEC_SRCTRL_22050HZ (0x1b << 1)
111#define CODEC_SRCTRL_44100HZ (0x11 << 1)
112#define CODEC_SRCTRL_88200HZ (0x1f << 1)
113
108#define HAVE_HEADPHONE_DETECTION 114#define HAVE_HEADPHONE_DETECTION
109 115
110#define BATTERY_CAPACITY_DEFAULT 2000 /* default battery capacity */ 116#define BATTERY_CAPACITY_DEFAULT 2000 /* default battery capacity */
diff --git a/firmware/export/config-mrobe100.h b/firmware/export/config-mrobe100.h
index 051f15824f..4ade179c04 100644
--- a/firmware/export/config-mrobe100.h
+++ b/firmware/export/config-mrobe100.h
@@ -58,6 +58,7 @@
58 58
59/* Wolfsom audio codec */ 59/* Wolfsom audio codec */
60#define HAVE_WM8751 60#define HAVE_WM8751
61#define CODEC_SRCTRL_44100HZ (0x40|(0x11 << 1)|1)
61 62
62#define AB_REPEAT_ENABLE 1 63#define AB_REPEAT_ENABLE 1
63 64
diff --git a/firmware/export/pcm.h b/firmware/export/pcm.h
index 1660f0670d..ac8ddb1b3c 100644
--- a/firmware/export/pcm.h
+++ b/firmware/export/pcm.h
@@ -57,7 +57,7 @@ typedef int (*pcm_more_callback_type2)(int status);
57/* set the pcm frequency - use values in hw_sampr_list 57/* set the pcm frequency - use values in hw_sampr_list
58 * use -1 for the default frequency 58 * use -1 for the default frequency
59 */ 59 */
60void pcm_set_frequency(unsigned int frequency); 60void pcm_set_frequency(unsigned int samplerate);
61/* apply settings to hardware immediately */ 61/* apply settings to hardware immediately */
62void pcm_apply_settings(void); 62void pcm_apply_settings(void);
63 63
@@ -87,6 +87,8 @@ bool pcm_is_playing(void);
87 specific portion **/ 87 specific portion **/
88 88
89extern unsigned long pcm_curr_sampr; 89extern unsigned long pcm_curr_sampr;
90extern unsigned long pcm_sampr;
91extern int pcm_fsel;
90 92
91/* the registered callback function to ask for more mp3 data */ 93/* the registered callback function to ask for more mp3 data */
92extern volatile pcm_more_callback_type pcm_callback_for_more; 94extern volatile pcm_more_callback_type pcm_callback_for_more;
@@ -102,6 +104,8 @@ void pcm_play_dma_pause(bool pause);
102void pcm_play_dma_stopped_callback(void); 104void pcm_play_dma_stopped_callback(void);
103const void * pcm_play_dma_get_peak_buffer(int *count); 105const void * pcm_play_dma_get_peak_buffer(int *count);
104 106
107void pcm_dma_apply_settings(void);
108
105#ifdef HAVE_RECORDING 109#ifdef HAVE_RECORDING
106 110
107/** RAW PCM recording routines **/ 111/** RAW PCM recording routines **/
diff --git a/firmware/export/pp5002.h b/firmware/export/pp5002.h
index b235a2154b..9fab86bf21 100644
--- a/firmware/export/pp5002.h
+++ b/firmware/export/pp5002.h
@@ -34,19 +34,64 @@
34#define LCD1_BUSY_MASK 0x8000 34#define LCD1_BUSY_MASK 0x8000
35 35
36/* I2S controller */ 36/* I2S controller */
37
38/* FIFO slot bits 7-0 are not implemented and so use of packed samples
39 * appears to be impossible. */
37#define IISCONFIG (*(volatile unsigned long *)(0xc0002500)) 40#define IISCONFIG (*(volatile unsigned long *)(0xc0002500))
38#define IISFIFO_CFG (*(volatile unsigned long *)(0xc000251c)) 41#define IISFIFO_CFG (*(volatile unsigned long *)(0xc000251c))
39#define IISFIFO_WR (*(volatile unsigned long *)(0xc0002540)) 42#define IISFIFO_WR (*(volatile unsigned long *)(0xc0002540))
40#define IISFIFO_RD (*(volatile unsigned long *)(0xc0002580)) 43#define IISFIFO_RD (*(volatile unsigned long *)(0xc0002580))
41 44
42/* IISCONFIG bits: */ 45/**
46 * IISCONFIG bits:
47 * | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
48 * | | | | | | | | |
49 * | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
50 * | | | | | | | | |
51 * | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
52 * | | | | | | | | |
53 * | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
54 * | rw | rw | rw | MS | rw |TXFENB# | rw | ENB |
55 *
56 * # No effect observed on iPod 3g
57 */
58#define IIS_ENABLE (1 << 0)
43#define IIS_TXFIFOEN (1 << 2) 59#define IIS_TXFIFOEN (1 << 2)
44#define IIS_TX_FREE_MASK (0xf << 23) 60#define IIS_MASTER (1 << 4)
61
62/**
63 * IISFIFO_CFG bits:
64 * | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
65 * | | RXFull[3:0]$ | TXFree[3:1] >
66 * | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
67 * >TXFre[0]| | | | | | RXCLR | TXCLR |
68 * | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
69 * | rw | rw | rw | rw | rw | rw | IRQTX | rw |
70 * | 7* | 6* | 5* | 4* | 3 | 2 | 1 | 0 |
71 * |RXEMPTY | RXSAFE | RXDNGR | RXFULL | TXFULL | TXSAFE | TXDNGR |TXEMPTY |
72 *
73 * $Could be RXFree
74 * *Meaning isn't certain yet.
75 * More concerted recording work will reveal.
76 */
77#define IIS_IRQTX_REG IISFIFO_CFG
78#define IIS_IRQRX_REG IISFIFO_CFG
79
80#define IIS_RX_FULL_MASK (0xf << 27)
81#define IIS_RX_FULL_COUNT ((IISFIFO_CFG & IIS_RX_FULL_MASK) >> 27)
82#define IIS_TX_FREE_MASK (0xf << 23) /* 0xf = 16 or 15 free */
45#define IIS_TX_FREE_COUNT ((IISFIFO_CFG & IIS_TX_FREE_MASK) >> 23) 83#define IIS_TX_FREE_COUNT ((IISFIFO_CFG & IIS_TX_FREE_MASK) >> 23)
84#define IIS_TX_IS_EMPTY ((IISFIFO_CFG & IIS_TXEMPTY) != 0)
85
86#define IIS_RXCLR (1 << 17) /* Resets *could* be reversed */
87#define IIS_TXCLR (1 << 16)
88#define IIS_IRQTX (1 << 9)
89#define IIS_TXFULL (1 << 3) /* All slots occupied */
90#define IIS_TXSAFE (1 << 2) /* FIFO >= 3/4 full */
91#define IIS_TXDANGER (1 << 1) /* FIFO <= 1/4 full */
92#define IIS_TXEMPTY (1 << 0) /* No samples in FIFO */
46 93
47/* IISFIFO_CFG bits: */ 94#define IIS_RXEMPTY (1 << 4) /* FIFO is empty */
48#define IIS_IRQTX_REG IISFIFO_CFG
49#define IIS_IRQTX (1 << 9)
50 95
51#define IDE_BASE 0xc0003000 96#define IDE_BASE 0xc0003000
52 97
@@ -184,6 +229,7 @@
184#define DEV_RS (*(volatile unsigned long *)(0xcf005030)) 229#define DEV_RS (*(volatile unsigned long *)(0xcf005030))
185 230
186#define DEV_I2C (1<<8) 231#define DEV_I2C (1<<8)
232#define DEV_I2S (1<<7)
187#define DEV_USB 0x400000 233#define DEV_USB 0x400000
188 234
189#define CLOCK_ENABLE (*(volatile unsigned long *)(0xcf005008)) 235#define CLOCK_ENABLE (*(volatile unsigned long *)(0xcf005008))
diff --git a/firmware/export/pp5020.h b/firmware/export/pp5020.h
index 908fed0087..b4919a219e 100644
--- a/firmware/export/pp5020.h
+++ b/firmware/export/pp5020.h
@@ -431,6 +431,9 @@
431#define IIS_TX_FREE_COUNT \ 431#define IIS_TX_FREE_COUNT \
432 ((IISFIFO_CFG & IIS_TX_FREE_MASK) >> 16) 432 ((IISFIFO_CFG & IIS_TX_FREE_MASK) >> 16)
433 433
434#define IIS_TX_IS_EMPTY \
435 ((IISFIFO_CFG & IIS_TX_FREE_MASK) >= (16 << 16))
436
434#define IIS_RXCLR (1 << 12) 437#define IIS_RXCLR (1 << 12)
435#define IIS_TXCLR (1 << 8) 438#define IIS_TXCLR (1 << 8)
436/* Number of slots */ 439/* Number of slots */
diff --git a/firmware/export/tlv320.h b/firmware/export/tlv320.h
index 91c4a67623..171223f5bb 100644
--- a/firmware/export/tlv320.h
+++ b/firmware/export/tlv320.h
@@ -38,7 +38,7 @@ extern int tenthdb2master(int db);
38 * 44100: 1 = MCLK MCLK SCLK, LRCK: Audio Clk / 4 (default) 38 * 44100: 1 = MCLK MCLK SCLK, LRCK: Audio Clk / 4 (default)
39 * 88200: 2 = MCLK*2 MCLK SCLK, LRCK: Audio Clk / 2 39 * 88200: 2 = MCLK*2 MCLK SCLK, LRCK: Audio Clk / 2
40 */ 40 */
41extern void audiohw_set_frequency(unsigned fsel); 41extern void audiohw_set_frequency(int fsel);
42extern void audiohw_set_headphone_vol(int vol_l, int vol_r); 42extern void audiohw_set_headphone_vol(int vol_l, int vol_r);
43 43
44#define HEADPHONE_MUTE 0x30 /* 0110000 = -73db */ 44#define HEADPHONE_MUTE 0x30 /* 0110000 = -73db */
diff --git a/firmware/export/uda1380.h b/firmware/export/uda1380.h
index 26b13a968f..af2b579a60 100644
--- a/firmware/export/uda1380.h
+++ b/firmware/export/uda1380.h
@@ -36,6 +36,8 @@ extern void audiohw_set_mixer_vol(int channel1, int channel2);
36 36
37/** 37/**
38 * Sets frequency settings for DAC and ADC relative to MCLK 38 * Sets frequency settings for DAC and ADC relative to MCLK
39 * For Coldfire IIS dividers, 11.2896MHz, codec as slave with
40 * PLL enabled.
39 * 41 *
40 * Selection for frequency ranges: 42 * Selection for frequency ranges:
41 * Fs: range: with: 43 * Fs: range: with:
@@ -44,7 +46,7 @@ extern void audiohw_set_mixer_vol(int channel1, int channel2);
44 * 44100: 2 = 25 to 50 SCLK, LRCK: Audio Clk / 4 (default) 46 * 44100: 2 = 25 to 50 SCLK, LRCK: Audio Clk / 4 (default)
45 * 88200: 3 = 50 to 100 SCLK, LRCK: Audio Clk / 2 47 * 88200: 3 = 50 to 100 SCLK, LRCK: Audio Clk / 2
46 */ 48 */
47extern void audiohw_set_frequency(unsigned fsel); 49extern void audiohw_set_frequency(int fsel);
48 50
49#define UDA1380_ADDR 0x30 51#define UDA1380_ADDR 0x30
50 52
diff --git a/firmware/export/wm8731.h b/firmware/export/wm8731.h
index 9d5b61833f..512ef9ff3f 100644
--- a/firmware/export/wm8731.h
+++ b/firmware/export/wm8731.h
@@ -31,7 +31,7 @@
31extern int tenthdb2master(int db); 31extern int tenthdb2master(int db);
32 32
33extern void audiohw_set_master_vol(int vol_l, int vol_r); 33extern void audiohw_set_master_vol(int vol_l, int vol_r);
34extern void audiohw_set_sample_rate(int sampling_control); 34extern void audiohw_set_frequency(int fsel);
35 35
36/* Common register bits */ 36/* Common register bits */
37#ifdef HAVE_WM8731 37#ifdef HAVE_WM8731
diff --git a/firmware/export/wm8758.h b/firmware/export/wm8758.h
index c094b1296a..493d18b753 100644
--- a/firmware/export/wm8758.h
+++ b/firmware/export/wm8758.h
@@ -34,7 +34,7 @@ extern int tenthdb2mixer(int db);
34extern void audiohw_set_master_vol(int vol_l, int vol_r); 34extern void audiohw_set_master_vol(int vol_l, int vol_r);
35extern void audiohw_set_lineout_vol(int vol_l, int vol_r); 35extern void audiohw_set_lineout_vol(int vol_l, int vol_r);
36extern void audiohw_set_mixer_vol(int channel1, int channel2); 36extern void audiohw_set_mixer_vol(int channel1, int channel2);
37extern void audiohw_set_sample_rate(int sampling_control); 37extern void audiohw_set_frequency(int fsel);
38 38
39#define RESET 0x00 39#define RESET 0x00
40#define RESET_RESET 0x0 40#define RESET_RESET 0x0
diff --git a/firmware/export/wm8975.h b/firmware/export/wm8975.h
index e2e443213a..aeec33e3d8 100644
--- a/firmware/export/wm8975.h
+++ b/firmware/export/wm8975.h
@@ -32,7 +32,7 @@ extern int tenthdb2master(int db);
32 32
33extern void audiohw_set_master_vol(int vol_l, int vol_r); 33extern void audiohw_set_master_vol(int vol_l, int vol_r);
34extern void audiohw_set_lineout_vol(int vol_l, int vol_r); 34extern void audiohw_set_lineout_vol(int vol_l, int vol_r);
35extern void audiohw_set_sample_rate(int sampling_control); 35extern void audiohw_set_frequency(int fsel);
36 36
37/* Register addresses and bits */ 37/* Register addresses and bits */
38 38
diff --git a/firmware/export/wm8978.h b/firmware/export/wm8978.h
index 9c54ae354d..f444c96a29 100644
--- a/firmware/export/wm8978.h
+++ b/firmware/export/wm8978.h
@@ -28,7 +28,7 @@
28 28
29int tenthdb2master(int db); 29int tenthdb2master(int db);
30void audiohw_set_headphone_vol(int vol_l, int vol_r); 30void audiohw_set_headphone_vol(int vol_l, int vol_r);
31void audiohw_set_frequency(int sampling_control); 31void audiohw_set_frequency(int fsel);
32 32
33void wmc_set(unsigned int reg, unsigned int bits); 33void wmc_set(unsigned int reg, unsigned int bits);
34void wmc_clear(unsigned int reg, unsigned int bits); 34void wmc_clear(unsigned int reg, unsigned int bits);