diff options
Diffstat (limited to 'sound/soc/fsl/fsl_sai.h')
-rw-r--r-- | sound/soc/fsl/fsl_sai.h | 48 |
1 files changed, 23 insertions, 25 deletions
diff --git a/sound/soc/fsl/fsl_sai.h b/sound/soc/fsl/fsl_sai.h index 41bb62e69361..e432260be598 100644 --- a/sound/soc/fsl/fsl_sai.h +++ b/sound/soc/fsl/fsl_sai.h | |||
@@ -15,31 +15,36 @@ | |||
15 | SNDRV_PCM_FMTBIT_S20_3LE |\ | 15 | SNDRV_PCM_FMTBIT_S20_3LE |\ |
16 | SNDRV_PCM_FMTBIT_S24_LE) | 16 | SNDRV_PCM_FMTBIT_S24_LE) |
17 | 17 | ||
18 | /* SAI Register Map Register */ | ||
19 | #define FSL_SAI_TCSR 0x00 /* SAI Transmit Control */ | ||
20 | #define FSL_SAI_TCR1 0x04 /* SAI Transmit Configuration 1 */ | ||
21 | #define FSL_SAI_TCR2 0x08 /* SAI Transmit Configuration 2 */ | ||
22 | #define FSL_SAI_TCR3 0x0c /* SAI Transmit Configuration 3 */ | ||
23 | #define FSL_SAI_TCR4 0x10 /* SAI Transmit Configuration 4 */ | ||
24 | #define FSL_SAI_TCR5 0x14 /* SAI Transmit Configuration 5 */ | ||
25 | #define FSL_SAI_TDR 0x20 /* SAI Transmit Data */ | ||
26 | #define FSL_SAI_TFR 0x40 /* SAI Transmit FIFO */ | ||
27 | #define FSL_SAI_TMR 0x60 /* SAI Transmit Mask */ | ||
28 | #define FSL_SAI_RCSR 0x80 /* SAI Receive Control */ | ||
29 | #define FSL_SAI_RCR1 0x84 /* SAI Receive Configuration 1 */ | ||
30 | #define FSL_SAI_RCR2 0x88 /* SAI Receive Configuration 2 */ | ||
31 | #define FSL_SAI_RCR3 0x8c /* SAI Receive Configuration 3 */ | ||
32 | #define FSL_SAI_RCR4 0x90 /* SAI Receive Configuration 4 */ | ||
33 | #define FSL_SAI_RCR5 0x94 /* SAI Receive Configuration 5 */ | ||
34 | #define FSL_SAI_RDR 0xa0 /* SAI Receive Data */ | ||
35 | #define FSL_SAI_RFR 0xc0 /* SAI Receive FIFO */ | ||
36 | #define FSL_SAI_RMR 0xe0 /* SAI Receive Mask */ | ||
37 | |||
18 | /* SAI Transmit/Recieve Control Register */ | 38 | /* SAI Transmit/Recieve Control Register */ |
19 | #define FSL_SAI_TCSR 0x00 | ||
20 | #define FSL_SAI_RCSR 0x80 | ||
21 | #define FSL_SAI_CSR_TERE BIT(31) | 39 | #define FSL_SAI_CSR_TERE BIT(31) |
22 | #define FSL_SAI_CSR_FWF BIT(17) | 40 | #define FSL_SAI_CSR_FWF BIT(17) |
23 | #define FSL_SAI_CSR_FRIE BIT(8) | 41 | #define FSL_SAI_CSR_FRIE BIT(8) |
24 | #define FSL_SAI_CSR_FRDE BIT(0) | 42 | #define FSL_SAI_CSR_FRDE BIT(0) |
25 | 43 | ||
26 | /* SAI Transmit Data/FIFO/MASK Register */ | ||
27 | #define FSL_SAI_TDR 0x20 | ||
28 | #define FSL_SAI_TFR 0x40 | ||
29 | #define FSL_SAI_TMR 0x60 | ||
30 | |||
31 | /* SAI Recieve Data/FIFO/MASK Register */ | ||
32 | #define FSL_SAI_RDR 0xa0 | ||
33 | #define FSL_SAI_RFR 0xc0 | ||
34 | #define FSL_SAI_RMR 0xe0 | ||
35 | |||
36 | /* SAI Transmit and Recieve Configuration 1 Register */ | 44 | /* SAI Transmit and Recieve Configuration 1 Register */ |
37 | #define FSL_SAI_TCR1 0x04 | 45 | #define FSL_SAI_CR1_RFW_MASK 0x1f |
38 | #define FSL_SAI_RCR1 0x84 | ||
39 | 46 | ||
40 | /* SAI Transmit and Recieve Configuration 2 Register */ | 47 | /* SAI Transmit and Recieve Configuration 2 Register */ |
41 | #define FSL_SAI_TCR2 0x08 | ||
42 | #define FSL_SAI_RCR2 0x88 | ||
43 | #define FSL_SAI_CR2_SYNC BIT(30) | 48 | #define FSL_SAI_CR2_SYNC BIT(30) |
44 | #define FSL_SAI_CR2_MSEL_MASK (0xff << 26) | 49 | #define FSL_SAI_CR2_MSEL_MASK (0xff << 26) |
45 | #define FSL_SAI_CR2_MSEL_BUS 0 | 50 | #define FSL_SAI_CR2_MSEL_BUS 0 |
@@ -50,15 +55,11 @@ | |||
50 | #define FSL_SAI_CR2_BCD_MSTR BIT(24) | 55 | #define FSL_SAI_CR2_BCD_MSTR BIT(24) |
51 | 56 | ||
52 | /* SAI Transmit and Recieve Configuration 3 Register */ | 57 | /* SAI Transmit and Recieve Configuration 3 Register */ |
53 | #define FSL_SAI_TCR3 0x0c | ||
54 | #define FSL_SAI_RCR3 0x8c | ||
55 | #define FSL_SAI_CR3_TRCE BIT(16) | 58 | #define FSL_SAI_CR3_TRCE BIT(16) |
56 | #define FSL_SAI_CR3_WDFL(x) (x) | 59 | #define FSL_SAI_CR3_WDFL(x) (x) |
57 | #define FSL_SAI_CR3_WDFL_MASK 0x1f | 60 | #define FSL_SAI_CR3_WDFL_MASK 0x1f |
58 | 61 | ||
59 | /* SAI Transmit and Recieve Configuration 4 Register */ | 62 | /* SAI Transmit and Recieve Configuration 4 Register */ |
60 | #define FSL_SAI_TCR4 0x10 | ||
61 | #define FSL_SAI_RCR4 0x90 | ||
62 | #define FSL_SAI_CR4_FRSZ(x) (((x) - 1) << 16) | 63 | #define FSL_SAI_CR4_FRSZ(x) (((x) - 1) << 16) |
63 | #define FSL_SAI_CR4_FRSZ_MASK (0x1f << 16) | 64 | #define FSL_SAI_CR4_FRSZ_MASK (0x1f << 16) |
64 | #define FSL_SAI_CR4_SYWD(x) (((x) - 1) << 8) | 65 | #define FSL_SAI_CR4_SYWD(x) (((x) - 1) << 8) |
@@ -69,8 +70,6 @@ | |||
69 | #define FSL_SAI_CR4_FSD_MSTR BIT(0) | 70 | #define FSL_SAI_CR4_FSD_MSTR BIT(0) |
70 | 71 | ||
71 | /* SAI Transmit and Recieve Configuration 5 Register */ | 72 | /* SAI Transmit and Recieve Configuration 5 Register */ |
72 | #define FSL_SAI_TCR5 0x14 | ||
73 | #define FSL_SAI_RCR5 0x94 | ||
74 | #define FSL_SAI_CR5_WNW(x) (((x) - 1) << 24) | 73 | #define FSL_SAI_CR5_WNW(x) (((x) - 1) << 24) |
75 | #define FSL_SAI_CR5_WNW_MASK (0x1f << 24) | 74 | #define FSL_SAI_CR5_WNW_MASK (0x1f << 24) |
76 | #define FSL_SAI_CR5_W0W(x) (((x) - 1) << 16) | 75 | #define FSL_SAI_CR5_W0W(x) (((x) - 1) << 16) |
@@ -100,12 +99,11 @@ | |||
100 | #define FSL_SAI_MAXBURST_RX 6 | 99 | #define FSL_SAI_MAXBURST_RX 6 |
101 | 100 | ||
102 | struct fsl_sai { | 101 | struct fsl_sai { |
103 | struct clk *clk; | 102 | struct regmap *regmap; |
104 | |||
105 | void __iomem *base; | ||
106 | 103 | ||
107 | bool big_endian_regs; | 104 | bool big_endian_regs; |
108 | bool big_endian_data; | 105 | bool big_endian_data; |
106 | bool is_dsp_mode; | ||
109 | 107 | ||
110 | struct snd_dmaengine_dai_dma_data dma_params_rx; | 108 | struct snd_dmaengine_dai_dma_data dma_params_rx; |
111 | struct snd_dmaengine_dai_dma_data dma_params_tx; | 109 | struct snd_dmaengine_dai_dma_data dma_params_tx; |