.. | .. |
---|
24 | 24 | #define I2S_TXCR_RCNT_SHIFT 17 |
---|
25 | 25 | #define I2S_TXCR_RCNT_MASK (0x3f << I2S_TXCR_RCNT_SHIFT) |
---|
26 | 26 | #define I2S_TXCR_CSR_SHIFT 15 |
---|
27 | | -#define I2S_TXCR_CSR(x) ((x) << I2S_TXCR_CSR_SHIFT) |
---|
28 | 27 | #define I2S_TXCR_CSR_MASK (3 << I2S_TXCR_CSR_SHIFT) |
---|
| 28 | +#define I2S_TXCR_CSR(x) ((x) << I2S_TXCR_CSR_SHIFT) |
---|
| 29 | +#define I2S_TXCR_CSR_V(v) ((((v) & I2S_TXCR_CSR_MASK) >> 15) + 1) |
---|
29 | 30 | #define I2S_TXCR_HWT BIT(14) |
---|
30 | 31 | #define I2S_TXCR_SJM_SHIFT 12 |
---|
31 | 32 | #define I2S_TXCR_SJM_R (0 << I2S_TXCR_SJM_SHIFT) |
---|
.. | .. |
---|
59 | 60 | #define I2S_RXCR_PATH_MASK(x) (0x3 << I2S_RXCR_PATH_SHIFT(x)) |
---|
60 | 61 | #define I2S_RXCR_PATH(x, v) ((v) << I2S_RXCR_PATH_SHIFT(x)) |
---|
61 | 62 | #define I2S_RXCR_CSR_SHIFT 15 |
---|
62 | | -#define I2S_RXCR_CSR(x) ((x) << I2S_RXCR_CSR_SHIFT) |
---|
63 | 63 | #define I2S_RXCR_CSR_MASK (3 << I2S_RXCR_CSR_SHIFT) |
---|
| 64 | +#define I2S_RXCR_CSR(x) ((x) << I2S_RXCR_CSR_SHIFT) |
---|
| 65 | +#define I2S_RXCR_CSR_V(v) ((((v) & I2S_RXCR_CSR_MASK) >> 15) + 1) |
---|
64 | 66 | #define I2S_RXCR_HWT BIT(14) |
---|
65 | 67 | #define I2S_RXCR_SJM_SHIFT 12 |
---|
66 | 68 | #define I2S_RXCR_SJM_R (0 << I2S_RXCR_SJM_SHIFT) |
---|
.. | .. |
---|
144 | 146 | #define I2S_DMACR_RDE_SHIFT 24 |
---|
145 | 147 | #define I2S_DMACR_RDE_DISABLE (0 << I2S_DMACR_RDE_SHIFT) |
---|
146 | 148 | #define I2S_DMACR_RDE_ENABLE (1 << I2S_DMACR_RDE_SHIFT) |
---|
| 149 | +#define I2S_DMACR_RDE_MASK (1 << I2S_DMACR_RDE_SHIFT) |
---|
| 150 | +#define I2S_DMACR_RDE(x) ((x) << I2S_DMACR_RDE_SHIFT) |
---|
147 | 151 | #define I2S_DMACR_RDL_SHIFT 16 |
---|
148 | | -#define I2S_DMACR_RDL(x) (((x) - 1) << I2S_DMACR_RDL_SHIFT) |
---|
149 | 152 | #define I2S_DMACR_RDL_MASK (0x1f << I2S_DMACR_RDL_SHIFT) |
---|
| 153 | +#define I2S_DMACR_RDL(x) (((x) - 1) << I2S_DMACR_RDL_SHIFT) |
---|
| 154 | +#define I2S_DMACR_RDL_V(v) ((((v) & I2S_DMACR_RDL_MASK) >> 16) + 1) |
---|
150 | 155 | #define I2S_DMACR_TDE_SHIFT 8 |
---|
151 | 156 | #define I2S_DMACR_TDE_DISABLE (0 << I2S_DMACR_TDE_SHIFT) |
---|
152 | 157 | #define I2S_DMACR_TDE_ENABLE (1 << I2S_DMACR_TDE_SHIFT) |
---|
| 158 | +#define I2S_DMACR_TDE_MASK (1 << I2S_DMACR_TDE_SHIFT) |
---|
| 159 | +#define I2S_DMACR_TDE(x) ((x) << I2S_DMACR_TDE_SHIFT) |
---|
153 | 160 | #define I2S_DMACR_TDL_SHIFT 0 |
---|
154 | | -#define I2S_DMACR_TDL(x) ((x) << I2S_DMACR_TDL_SHIFT) |
---|
155 | 161 | #define I2S_DMACR_TDL_MASK (0x1f << I2S_DMACR_TDL_SHIFT) |
---|
| 162 | +#define I2S_DMACR_TDL(x) ((x) << I2S_DMACR_TDL_SHIFT) |
---|
| 163 | +#define I2S_DMACR_TDL_V(v) (((v) & I2S_DMACR_TDL_MASK) >> 0) |
---|
156 | 164 | |
---|
157 | 165 | /* |
---|
158 | 166 | * INTCR |
---|
.. | .. |
---|
162 | 170 | #define I2S_INTCR_RFT(x) (((x) - 1) << I2S_INTCR_RFT_SHIFT) |
---|
163 | 171 | #define I2S_INTCR_RXOIC BIT(18) |
---|
164 | 172 | #define I2S_INTCR_RXOIE_SHIFT 17 |
---|
165 | | -#define I2S_INTCR_RXOIE_DISABLE (0 << I2S_INTCR_RXOIE_SHIFT) |
---|
166 | | -#define I2S_INTCR_RXOIE_ENABLE (1 << I2S_INTCR_RXOIE_SHIFT) |
---|
| 173 | +#define I2S_INTCR_RXOIE_MASK (1 << I2S_INTCR_RXOIE_SHIFT) |
---|
| 174 | +#define I2S_INTCR_RXOIE(x) ((x) << I2S_INTCR_RXOIE_SHIFT) |
---|
167 | 175 | #define I2S_INTCR_RXFIE_SHIFT 16 |
---|
168 | 176 | #define I2S_INTCR_RXFIE_DISABLE (0 << I2S_INTCR_RXFIE_SHIFT) |
---|
169 | 177 | #define I2S_INTCR_RXFIE_ENABLE (1 << I2S_INTCR_RXFIE_SHIFT) |
---|
.. | .. |
---|
172 | 180 | #define I2S_INTCR_TFT_MASK (0x1f << I2S_INTCR_TFT_SHIFT) |
---|
173 | 181 | #define I2S_INTCR_TXUIC BIT(2) |
---|
174 | 182 | #define I2S_INTCR_TXUIE_SHIFT 1 |
---|
175 | | -#define I2S_INTCR_TXUIE_DISABLE (0 << I2S_INTCR_TXUIE_SHIFT) |
---|
176 | | -#define I2S_INTCR_TXUIE_ENABLE (1 << I2S_INTCR_TXUIE_SHIFT) |
---|
| 183 | +#define I2S_INTCR_TXUIE_MASK (1 << I2S_INTCR_TXUIE_SHIFT) |
---|
| 184 | +#define I2S_INTCR_TXUIE(x) ((x) << I2S_INTCR_TXUIE_SHIFT) |
---|
177 | 185 | |
---|
178 | 186 | /* |
---|
179 | 187 | * INTSR |
---|
.. | .. |
---|
199 | 207 | * XFER |
---|
200 | 208 | * Transfer start register |
---|
201 | 209 | */ |
---|
| 210 | +/* |
---|
| 211 | + * lp mode2 swap: |
---|
| 212 | + * i2s sdi0_l <- i2s sdo0_l |
---|
| 213 | + * i2s sdi0_r <- codec sdo_r |
---|
| 214 | + * |
---|
| 215 | + * lp mode2: |
---|
| 216 | + * i2s sdi0_l <- codec sdo_l |
---|
| 217 | + * i2s sdi0_r <- i2s sdo0_r |
---|
| 218 | + * |
---|
| 219 | + * lp mode1: |
---|
| 220 | + * i2s sdi0_l <- codec sdo_l |
---|
| 221 | + * i2s sdi0_r <- codec sdo_r |
---|
| 222 | + * i2s sdi1_l <- i2s sdo0_l |
---|
| 223 | + * i2s sdi1_r <- i2s sdo0_r |
---|
| 224 | + * |
---|
| 225 | + */ |
---|
| 226 | +#define I2S_XFER_LP_MODE_MASK GENMASK(4, 2) |
---|
| 227 | +#define I2S_XFER_LP_MODE_2_SWAP (BIT(4) | BIT(3)) |
---|
| 228 | +#define I2S_XFER_LP_MODE_2 BIT(3) |
---|
| 229 | +#define I2S_XFER_LP_MODE_1 BIT(2) |
---|
| 230 | +#define I2S_XFER_LP_MODE_DIS 0 |
---|
202 | 231 | #define I2S_XFER_RXS_SHIFT 1 |
---|
203 | 232 | #define I2S_XFER_RXS_STOP (0 << I2S_XFER_RXS_SHIFT) |
---|
204 | 233 | #define I2S_XFER_RXS_START (1 << I2S_XFER_RXS_SHIFT) |
---|
| 234 | +#define I2S_XFER_RXS_MASK (1 << I2S_XFER_RXS_SHIFT) |
---|
| 235 | +#define I2S_XFER_RXS(x) ((x) << I2S_XFER_RXS_SHIFT) |
---|
205 | 236 | #define I2S_XFER_TXS_SHIFT 0 |
---|
206 | 237 | #define I2S_XFER_TXS_STOP (0 << I2S_XFER_TXS_SHIFT) |
---|
207 | 238 | #define I2S_XFER_TXS_START (1 << I2S_XFER_TXS_SHIFT) |
---|
| 239 | +#define I2S_XFER_TXS_MASK (1 << I2S_XFER_TXS_SHIFT) |
---|
| 240 | +#define I2S_XFER_TXS(x) ((x) << I2S_XFER_TXS_SHIFT) |
---|
208 | 241 | |
---|
209 | 242 | /* |
---|
210 | 243 | * CLR |
---|