xref: /minix3/minix/drivers/audio/es1371/SRC.h (revision 433d6423c39e34ec4b79c950597bb2d236f886be)
1*433d6423SLionel Sambuc #ifndef SRC_H
2*433d6423SLionel Sambuc #define SRC_H
3*433d6423SLionel Sambuc 
4*433d6423SLionel Sambuc #include "es1371.h"
5*433d6423SLionel Sambuc #include "wait.h"
6*433d6423SLionel Sambuc 
7*433d6423SLionel Sambuc int SRCInit(DEV_STRUCT * DSP);
8*433d6423SLionel Sambuc int SRCRegRead(DEV_STRUCT * DSP, u16_t reg, u16_t *data);
9*433d6423SLionel Sambuc int SRCRegWrite(DEV_STRUCT * DSP, u16_t reg, u16_t val);
10*433d6423SLionel Sambuc void SRCSetRate(DEV_STRUCT * DSP, char src_base, u16_t rate);
11*433d6423SLionel Sambuc 
12*433d6423SLionel Sambuc 
13*433d6423SLionel Sambuc /* register/base and control equates for the SRC RAM */
14*433d6423SLionel Sambuc #define SRC_SYNTH_FIFO      0x00
15*433d6423SLionel Sambuc #define SRC_DAC_FIFO        0x20
16*433d6423SLionel Sambuc #define SRC_ADC_FIFO        0x40
17*433d6423SLionel Sambuc #define SRC_SYNTH_BASE      0x70
18*433d6423SLionel Sambuc #define SRC_DAC_BASE        0x74
19*433d6423SLionel Sambuc #define SRC_ADC_BASE        0x78
20*433d6423SLionel Sambuc #define SRC_SYNTH_LVOL      0x7c
21*433d6423SLionel Sambuc #define SRC_SYNTH_RVOL      0x7d
22*433d6423SLionel Sambuc #define SRC_DAC_LVOL        0x7e
23*433d6423SLionel Sambuc #define SRC_DAC_RVOL        0x7f
24*433d6423SLionel Sambuc #define SRC_ADC_LVOL        0x6c
25*433d6423SLionel Sambuc #define SRC_ADC_RVOL        0x6d
26*433d6423SLionel Sambuc 
27*433d6423SLionel Sambuc #define SRC_TRUNC_N_OFF     0x00
28*433d6423SLionel Sambuc #define SRC_INT_REGS_OFF    0x01
29*433d6423SLionel Sambuc #define SRC_ACCUM_FRAC_OFF  0x02
30*433d6423SLionel Sambuc #define SRC_VFREQ_FRAC_OFF  0x03
31*433d6423SLionel Sambuc 
32*433d6423SLionel Sambuc /* miscellaneous control defines */
33*433d6423SLionel Sambuc #define SRC_IOPOLL_COUNT    0x1000UL
34*433d6423SLionel Sambuc #define SRC_WENABLE         (1UL << 24)
35*433d6423SLionel Sambuc #define SRC_BUSY_BIT        23
36*433d6423SLionel Sambuc #define SRC_BUSY            (1UL << SRC_BUSY_BIT)
37*433d6423SLionel Sambuc #define SRC_DISABLE         (1UL << 22)
38*433d6423SLionel Sambuc #define SRC_SYNTHFREEZE     (1UL << 21)
39*433d6423SLionel Sambuc #define SRC_DACFREEZE       (1UL << 20)
40*433d6423SLionel Sambuc #define SRC_ADCFREEZE       (1UL << 19)
41*433d6423SLionel Sambuc #define SRC_CTLMASK         0x00780000UL
42*433d6423SLionel Sambuc 
43*433d6423SLionel Sambuc #endif /* SRC_H */
44