diff options
Diffstat (limited to 'firmware/export')
-rw-r--r-- | firmware/export/as3514.h | 2 | ||||
-rw-r--r-- | firmware/export/config-gigabeat.h | 6 | ||||
-rw-r--r-- | firmware/export/config-mrobe100.h | 1 | ||||
-rw-r--r-- | firmware/export/pcm.h | 6 | ||||
-rw-r--r-- | firmware/export/pp5002.h | 56 | ||||
-rw-r--r-- | firmware/export/pp5020.h | 3 | ||||
-rw-r--r-- | firmware/export/tlv320.h | 2 | ||||
-rw-r--r-- | firmware/export/uda1380.h | 4 | ||||
-rw-r--r-- | firmware/export/wm8731.h | 2 | ||||
-rw-r--r-- | firmware/export/wm8758.h | 2 | ||||
-rw-r--r-- | firmware/export/wm8975.h | 2 | ||||
-rw-r--r-- | firmware/export/wm8978.h | 2 |
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 | ||
27 | extern void audiohw_set_master_vol(int vol_l, int vol_r); | 27 | extern void audiohw_set_master_vol(int vol_l, int vol_r); |
28 | extern void audiohw_set_lineout_vol(int vol_l, int vol_r); | 28 | extern void audiohw_set_lineout_vol(int vol_l, int vol_r); |
29 | extern void audiohw_set_sample_rate(int sampling_control); | 29 | extern 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 | */ |
60 | void pcm_set_frequency(unsigned int frequency); | 60 | void pcm_set_frequency(unsigned int samplerate); |
61 | /* apply settings to hardware immediately */ | 61 | /* apply settings to hardware immediately */ |
62 | void pcm_apply_settings(void); | 62 | void pcm_apply_settings(void); |
63 | 63 | ||
@@ -87,6 +87,8 @@ bool pcm_is_playing(void); | |||
87 | specific portion **/ | 87 | specific portion **/ |
88 | 88 | ||
89 | extern unsigned long pcm_curr_sampr; | 89 | extern unsigned long pcm_curr_sampr; |
90 | extern unsigned long pcm_sampr; | ||
91 | extern 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 */ |
92 | extern volatile pcm_more_callback_type pcm_callback_for_more; | 94 | extern volatile pcm_more_callback_type pcm_callback_for_more; |
@@ -102,6 +104,8 @@ void pcm_play_dma_pause(bool pause); | |||
102 | void pcm_play_dma_stopped_callback(void); | 104 | void pcm_play_dma_stopped_callback(void); |
103 | const void * pcm_play_dma_get_peak_buffer(int *count); | 105 | const void * pcm_play_dma_get_peak_buffer(int *count); |
104 | 106 | ||
107 | void 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 | */ |
41 | extern void audiohw_set_frequency(unsigned fsel); | 41 | extern void audiohw_set_frequency(int fsel); |
42 | extern void audiohw_set_headphone_vol(int vol_l, int vol_r); | 42 | extern 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 | */ |
47 | extern void audiohw_set_frequency(unsigned fsel); | 49 | extern 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 @@ | |||
31 | extern int tenthdb2master(int db); | 31 | extern int tenthdb2master(int db); |
32 | 32 | ||
33 | extern void audiohw_set_master_vol(int vol_l, int vol_r); | 33 | extern void audiohw_set_master_vol(int vol_l, int vol_r); |
34 | extern void audiohw_set_sample_rate(int sampling_control); | 34 | extern 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); | |||
34 | extern void audiohw_set_master_vol(int vol_l, int vol_r); | 34 | extern void audiohw_set_master_vol(int vol_l, int vol_r); |
35 | extern void audiohw_set_lineout_vol(int vol_l, int vol_r); | 35 | extern void audiohw_set_lineout_vol(int vol_l, int vol_r); |
36 | extern void audiohw_set_mixer_vol(int channel1, int channel2); | 36 | extern void audiohw_set_mixer_vol(int channel1, int channel2); |
37 | extern void audiohw_set_sample_rate(int sampling_control); | 37 | extern 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 | ||
33 | extern void audiohw_set_master_vol(int vol_l, int vol_r); | 33 | extern void audiohw_set_master_vol(int vol_l, int vol_r); |
34 | extern void audiohw_set_lineout_vol(int vol_l, int vol_r); | 34 | extern void audiohw_set_lineout_vol(int vol_l, int vol_r); |
35 | extern void audiohw_set_sample_rate(int sampling_control); | 35 | extern 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 | ||
29 | int tenthdb2master(int db); | 29 | int tenthdb2master(int db); |
30 | void audiohw_set_headphone_vol(int vol_l, int vol_r); | 30 | void audiohw_set_headphone_vol(int vol_l, int vol_r); |
31 | void audiohw_set_frequency(int sampling_control); | 31 | void audiohw_set_frequency(int fsel); |
32 | 32 | ||
33 | void wmc_set(unsigned int reg, unsigned int bits); | 33 | void wmc_set(unsigned int reg, unsigned int bits); |
34 | void wmc_clear(unsigned int reg, unsigned int bits); | 34 | void wmc_clear(unsigned int reg, unsigned int bits); |