0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef _ROCKCHIP_I2S_TDM_H
0011 #define _ROCKCHIP_I2S_TDM_H
0012
0013
0014
0015
0016
0017 #define I2S_TXCR_PATH_SHIFT(x) (23 + (x) * 2)
0018 #define I2S_TXCR_PATH_MASK(x) (0x3 << I2S_TXCR_PATH_SHIFT(x))
0019 #define I2S_TXCR_PATH(x, v) ((v) << I2S_TXCR_PATH_SHIFT(x))
0020 #define I2S_TXCR_RCNT_SHIFT 17
0021 #define I2S_TXCR_RCNT_MASK (0x3f << I2S_TXCR_RCNT_SHIFT)
0022 #define I2S_TXCR_CSR_SHIFT 15
0023 #define I2S_TXCR_CSR(x) ((x) << I2S_TXCR_CSR_SHIFT)
0024 #define I2S_TXCR_CSR_MASK (3 << I2S_TXCR_CSR_SHIFT)
0025 #define I2S_TXCR_HWT BIT(14)
0026 #define I2S_TXCR_SJM_SHIFT 12
0027 #define I2S_TXCR_SJM_R (0 << I2S_TXCR_SJM_SHIFT)
0028 #define I2S_TXCR_SJM_L (1 << I2S_TXCR_SJM_SHIFT)
0029 #define I2S_TXCR_FBM_SHIFT 11
0030 #define I2S_TXCR_FBM_MSB (0 << I2S_TXCR_FBM_SHIFT)
0031 #define I2S_TXCR_FBM_LSB (1 << I2S_TXCR_FBM_SHIFT)
0032 #define I2S_TXCR_IBM_SHIFT 9
0033 #define I2S_TXCR_IBM_NORMAL (0 << I2S_TXCR_IBM_SHIFT)
0034 #define I2S_TXCR_IBM_LSJM (1 << I2S_TXCR_IBM_SHIFT)
0035 #define I2S_TXCR_IBM_RSJM (2 << I2S_TXCR_IBM_SHIFT)
0036 #define I2S_TXCR_IBM_MASK (3 << I2S_TXCR_IBM_SHIFT)
0037 #define I2S_TXCR_PBM_SHIFT 7
0038 #define I2S_TXCR_PBM_MODE(x) ((x) << I2S_TXCR_PBM_SHIFT)
0039 #define I2S_TXCR_PBM_MASK (3 << I2S_TXCR_PBM_SHIFT)
0040 #define I2S_TXCR_TFS_SHIFT 5
0041 #define I2S_TXCR_TFS_I2S (0 << I2S_TXCR_TFS_SHIFT)
0042 #define I2S_TXCR_TFS_PCM (1 << I2S_TXCR_TFS_SHIFT)
0043 #define I2S_TXCR_TFS_TDM_PCM (2 << I2S_TXCR_TFS_SHIFT)
0044 #define I2S_TXCR_TFS_TDM_I2S (3 << I2S_TXCR_TFS_SHIFT)
0045 #define I2S_TXCR_TFS_MASK (3 << I2S_TXCR_TFS_SHIFT)
0046 #define I2S_TXCR_VDW_SHIFT 0
0047 #define I2S_TXCR_VDW(x) (((x) - 1) << I2S_TXCR_VDW_SHIFT)
0048 #define I2S_TXCR_VDW_MASK (0x1f << I2S_TXCR_VDW_SHIFT)
0049
0050
0051
0052
0053
0054 #define I2S_RXCR_PATH_SHIFT(x) (17 + (x) * 2)
0055 #define I2S_RXCR_PATH_MASK(x) (0x3 << I2S_RXCR_PATH_SHIFT(x))
0056 #define I2S_RXCR_PATH(x, v) ((v) << I2S_RXCR_PATH_SHIFT(x))
0057 #define I2S_RXCR_CSR_SHIFT 15
0058 #define I2S_RXCR_CSR(x) ((x) << I2S_RXCR_CSR_SHIFT)
0059 #define I2S_RXCR_CSR_MASK (3 << I2S_RXCR_CSR_SHIFT)
0060 #define I2S_RXCR_HWT BIT(14)
0061 #define I2S_RXCR_SJM_SHIFT 12
0062 #define I2S_RXCR_SJM_R (0 << I2S_RXCR_SJM_SHIFT)
0063 #define I2S_RXCR_SJM_L (1 << I2S_RXCR_SJM_SHIFT)
0064 #define I2S_RXCR_FBM_SHIFT 11
0065 #define I2S_RXCR_FBM_MSB (0 << I2S_RXCR_FBM_SHIFT)
0066 #define I2S_RXCR_FBM_LSB (1 << I2S_RXCR_FBM_SHIFT)
0067 #define I2S_RXCR_IBM_SHIFT 9
0068 #define I2S_RXCR_IBM_NORMAL (0 << I2S_RXCR_IBM_SHIFT)
0069 #define I2S_RXCR_IBM_LSJM (1 << I2S_RXCR_IBM_SHIFT)
0070 #define I2S_RXCR_IBM_RSJM (2 << I2S_RXCR_IBM_SHIFT)
0071 #define I2S_RXCR_IBM_MASK (3 << I2S_RXCR_IBM_SHIFT)
0072 #define I2S_RXCR_PBM_SHIFT 7
0073 #define I2S_RXCR_PBM_MODE(x) ((x) << I2S_RXCR_PBM_SHIFT)
0074 #define I2S_RXCR_PBM_MASK (3 << I2S_RXCR_PBM_SHIFT)
0075 #define I2S_RXCR_TFS_SHIFT 5
0076 #define I2S_RXCR_TFS_I2S (0 << I2S_RXCR_TFS_SHIFT)
0077 #define I2S_RXCR_TFS_PCM (1 << I2S_RXCR_TFS_SHIFT)
0078 #define I2S_RXCR_TFS_TDM_PCM (2 << I2S_RXCR_TFS_SHIFT)
0079 #define I2S_RXCR_TFS_TDM_I2S (3 << I2S_RXCR_TFS_SHIFT)
0080 #define I2S_RXCR_TFS_MASK (3 << I2S_RXCR_TFS_SHIFT)
0081 #define I2S_RXCR_VDW_SHIFT 0
0082 #define I2S_RXCR_VDW(x) (((x) - 1) << I2S_RXCR_VDW_SHIFT)
0083 #define I2S_RXCR_VDW_MASK (0x1f << I2S_RXCR_VDW_SHIFT)
0084
0085
0086
0087
0088
0089 #define I2S_CKR_TRCM_SHIFT 28
0090 #define I2S_CKR_TRCM(x) ((x) << I2S_CKR_TRCM_SHIFT)
0091 #define I2S_CKR_TRCM_TXRX (0 << I2S_CKR_TRCM_SHIFT)
0092 #define I2S_CKR_TRCM_TXONLY (1 << I2S_CKR_TRCM_SHIFT)
0093 #define I2S_CKR_TRCM_RXONLY (2 << I2S_CKR_TRCM_SHIFT)
0094 #define I2S_CKR_TRCM_MASK (3 << I2S_CKR_TRCM_SHIFT)
0095 #define I2S_CKR_MSS_SHIFT 27
0096 #define I2S_CKR_MSS_MASTER (0 << I2S_CKR_MSS_SHIFT)
0097 #define I2S_CKR_MSS_SLAVE (1 << I2S_CKR_MSS_SHIFT)
0098 #define I2S_CKR_MSS_MASK (1 << I2S_CKR_MSS_SHIFT)
0099 #define I2S_CKR_CKP_SHIFT 26
0100 #define I2S_CKR_CKP_NORMAL (0 << I2S_CKR_CKP_SHIFT)
0101 #define I2S_CKR_CKP_INVERTED (1 << I2S_CKR_CKP_SHIFT)
0102 #define I2S_CKR_CKP_MASK (1 << I2S_CKR_CKP_SHIFT)
0103 #define I2S_CKR_RLP_SHIFT 25
0104 #define I2S_CKR_RLP_NORMAL (0 << I2S_CKR_RLP_SHIFT)
0105 #define I2S_CKR_RLP_INVERTED (1 << I2S_CKR_RLP_SHIFT)
0106 #define I2S_CKR_RLP_MASK (1 << I2S_CKR_RLP_SHIFT)
0107 #define I2S_CKR_TLP_SHIFT 24
0108 #define I2S_CKR_TLP_NORMAL (0 << I2S_CKR_TLP_SHIFT)
0109 #define I2S_CKR_TLP_INVERTED (1 << I2S_CKR_TLP_SHIFT)
0110 #define I2S_CKR_TLP_MASK (1 << I2S_CKR_TLP_SHIFT)
0111 #define I2S_CKR_MDIV_SHIFT 16
0112 #define I2S_CKR_MDIV(x) (((x) - 1) << I2S_CKR_MDIV_SHIFT)
0113 #define I2S_CKR_MDIV_MASK (0xff << I2S_CKR_MDIV_SHIFT)
0114 #define I2S_CKR_RSD_SHIFT 8
0115 #define I2S_CKR_RSD(x) (((x) - 1) << I2S_CKR_RSD_SHIFT)
0116 #define I2S_CKR_RSD_MASK (0xff << I2S_CKR_RSD_SHIFT)
0117 #define I2S_CKR_TSD_SHIFT 0
0118 #define I2S_CKR_TSD(x) (((x) - 1) << I2S_CKR_TSD_SHIFT)
0119 #define I2S_CKR_TSD_MASK (0xff << I2S_CKR_TSD_SHIFT)
0120
0121
0122
0123
0124
0125 #define I2S_FIFOLR_RFL_SHIFT 24
0126 #define I2S_FIFOLR_RFL_MASK (0x3f << I2S_FIFOLR_RFL_SHIFT)
0127 #define I2S_FIFOLR_TFL3_SHIFT 18
0128 #define I2S_FIFOLR_TFL3_MASK (0x3f << I2S_FIFOLR_TFL3_SHIFT)
0129 #define I2S_FIFOLR_TFL2_SHIFT 12
0130 #define I2S_FIFOLR_TFL2_MASK (0x3f << I2S_FIFOLR_TFL2_SHIFT)
0131 #define I2S_FIFOLR_TFL1_SHIFT 6
0132 #define I2S_FIFOLR_TFL1_MASK (0x3f << I2S_FIFOLR_TFL1_SHIFT)
0133 #define I2S_FIFOLR_TFL0_SHIFT 0
0134 #define I2S_FIFOLR_TFL0_MASK (0x3f << I2S_FIFOLR_TFL0_SHIFT)
0135
0136
0137
0138
0139
0140 #define I2S_DMACR_RDE_SHIFT 24
0141 #define I2S_DMACR_RDE_DISABLE (0 << I2S_DMACR_RDE_SHIFT)
0142 #define I2S_DMACR_RDE_ENABLE (1 << I2S_DMACR_RDE_SHIFT)
0143 #define I2S_DMACR_RDL_SHIFT 16
0144 #define I2S_DMACR_RDL(x) (((x) - 1) << I2S_DMACR_RDL_SHIFT)
0145 #define I2S_DMACR_RDL_MASK (0x1f << I2S_DMACR_RDL_SHIFT)
0146 #define I2S_DMACR_TDE_SHIFT 8
0147 #define I2S_DMACR_TDE_DISABLE (0 << I2S_DMACR_TDE_SHIFT)
0148 #define I2S_DMACR_TDE_ENABLE (1 << I2S_DMACR_TDE_SHIFT)
0149 #define I2S_DMACR_TDL_SHIFT 0
0150 #define I2S_DMACR_TDL(x) ((x) << I2S_DMACR_TDL_SHIFT)
0151 #define I2S_DMACR_TDL_MASK (0x1f << I2S_DMACR_TDL_SHIFT)
0152
0153
0154
0155
0156
0157 #define I2S_INTCR_RFT_SHIFT 20
0158 #define I2S_INTCR_RFT(x) (((x) - 1) << I2S_INTCR_RFT_SHIFT)
0159 #define I2S_INTCR_RXOIC BIT(18)
0160 #define I2S_INTCR_RXOIE_SHIFT 17
0161 #define I2S_INTCR_RXOIE_DISABLE (0 << I2S_INTCR_RXOIE_SHIFT)
0162 #define I2S_INTCR_RXOIE_ENABLE (1 << I2S_INTCR_RXOIE_SHIFT)
0163 #define I2S_INTCR_RXFIE_SHIFT 16
0164 #define I2S_INTCR_RXFIE_DISABLE (0 << I2S_INTCR_RXFIE_SHIFT)
0165 #define I2S_INTCR_RXFIE_ENABLE (1 << I2S_INTCR_RXFIE_SHIFT)
0166 #define I2S_INTCR_TFT_SHIFT 4
0167 #define I2S_INTCR_TFT(x) (((x) - 1) << I2S_INTCR_TFT_SHIFT)
0168 #define I2S_INTCR_TFT_MASK (0x1f << I2S_INTCR_TFT_SHIFT)
0169 #define I2S_INTCR_TXUIC BIT(2)
0170 #define I2S_INTCR_TXUIE_SHIFT 1
0171 #define I2S_INTCR_TXUIE_DISABLE (0 << I2S_INTCR_TXUIE_SHIFT)
0172 #define I2S_INTCR_TXUIE_ENABLE (1 << I2S_INTCR_TXUIE_SHIFT)
0173
0174
0175
0176
0177
0178 #define I2S_INTSR_TXEIE_SHIFT 0
0179 #define I2S_INTSR_TXEIE_DISABLE (0 << I2S_INTSR_TXEIE_SHIFT)
0180 #define I2S_INTSR_TXEIE_ENABLE (1 << I2S_INTSR_TXEIE_SHIFT)
0181 #define I2S_INTSR_RXOI_SHIFT 17
0182 #define I2S_INTSR_RXOI_INA (0 << I2S_INTSR_RXOI_SHIFT)
0183 #define I2S_INTSR_RXOI_ACT (1 << I2S_INTSR_RXOI_SHIFT)
0184 #define I2S_INTSR_RXFI_SHIFT 16
0185 #define I2S_INTSR_RXFI_INA (0 << I2S_INTSR_RXFI_SHIFT)
0186 #define I2S_INTSR_RXFI_ACT (1 << I2S_INTSR_RXFI_SHIFT)
0187 #define I2S_INTSR_TXUI_SHIFT 1
0188 #define I2S_INTSR_TXUI_INA (0 << I2S_INTSR_TXUI_SHIFT)
0189 #define I2S_INTSR_TXUI_ACT (1 << I2S_INTSR_TXUI_SHIFT)
0190 #define I2S_INTSR_TXEI_SHIFT 0
0191 #define I2S_INTSR_TXEI_INA (0 << I2S_INTSR_TXEI_SHIFT)
0192 #define I2S_INTSR_TXEI_ACT (1 << I2S_INTSR_TXEI_SHIFT)
0193
0194
0195
0196
0197
0198 #define I2S_XFER_RXS_SHIFT 1
0199 #define I2S_XFER_RXS_STOP (0 << I2S_XFER_RXS_SHIFT)
0200 #define I2S_XFER_RXS_START (1 << I2S_XFER_RXS_SHIFT)
0201 #define I2S_XFER_TXS_SHIFT 0
0202 #define I2S_XFER_TXS_STOP (0 << I2S_XFER_TXS_SHIFT)
0203 #define I2S_XFER_TXS_START (1 << I2S_XFER_TXS_SHIFT)
0204
0205
0206
0207
0208
0209 #define I2S_CLR_RXC BIT(1)
0210 #define I2S_CLR_TXC BIT(0)
0211
0212
0213
0214
0215
0216 #define I2S_TXDR_MASK (0xff)
0217
0218
0219
0220
0221
0222 #define I2S_RXDR_MASK (0xff)
0223
0224
0225
0226
0227
0228 #define TDM_FSYNC_WIDTH_SEL1_MSK GENMASK(20, 18)
0229 #define TDM_FSYNC_WIDTH_SEL1(x) (((x) - 1) << 18)
0230 #define TDM_FSYNC_WIDTH_SEL0_MSK BIT(17)
0231 #define TDM_FSYNC_WIDTH_HALF_FRAME 0
0232 #define TDM_FSYNC_WIDTH_ONE_FRAME BIT(17)
0233 #define TDM_SHIFT_CTRL_MSK GENMASK(16, 14)
0234 #define TDM_SHIFT_CTRL(x) ((x) << 14)
0235 #define TDM_SLOT_BIT_WIDTH_MSK GENMASK(13, 9)
0236 #define TDM_SLOT_BIT_WIDTH(x) (((x) - 1) << 9)
0237 #define TDM_FRAME_WIDTH_MSK GENMASK(8, 0)
0238 #define TDM_FRAME_WIDTH(x) (((x) - 1) << 0)
0239
0240
0241
0242
0243
0244 #define I2S_CLKDIV_TXM_SHIFT 0
0245 #define I2S_CLKDIV_TXM(x) (((x) - 1) << I2S_CLKDIV_TXM_SHIFT)
0246 #define I2S_CLKDIV_TXM_MASK (0xff << I2S_CLKDIV_TXM_SHIFT)
0247 #define I2S_CLKDIV_RXM_SHIFT 8
0248 #define I2S_CLKDIV_RXM(x) (((x) - 1) << I2S_CLKDIV_RXM_SHIFT)
0249 #define I2S_CLKDIV_RXM_MASK (0xff << I2S_CLKDIV_RXM_SHIFT)
0250
0251
0252 enum {
0253 ROCKCHIP_DIV_MCLK = 0,
0254 ROCKCHIP_DIV_BCLK,
0255 };
0256
0257
0258 #define I2S_CSR_SHIFT 15
0259 #define I2S_CHN_2 (0 << I2S_CSR_SHIFT)
0260 #define I2S_CHN_4 (1 << I2S_CSR_SHIFT)
0261 #define I2S_CHN_6 (2 << I2S_CSR_SHIFT)
0262 #define I2S_CHN_8 (3 << I2S_CSR_SHIFT)
0263
0264
0265 #define I2S_IO_DIRECTION_MASK (7)
0266 #define I2S_IO_8CH_OUT_2CH_IN (7)
0267 #define I2S_IO_6CH_OUT_4CH_IN (3)
0268 #define I2S_IO_4CH_OUT_6CH_IN (1)
0269 #define I2S_IO_2CH_OUT_8CH_IN (0)
0270
0271
0272 #define I2S_TXCR (0x0000)
0273 #define I2S_RXCR (0x0004)
0274 #define I2S_CKR (0x0008)
0275 #define I2S_TXFIFOLR (0x000c)
0276 #define I2S_DMACR (0x0010)
0277 #define I2S_INTCR (0x0014)
0278 #define I2S_INTSR (0x0018)
0279 #define I2S_XFER (0x001c)
0280 #define I2S_CLR (0x0020)
0281 #define I2S_TXDR (0x0024)
0282 #define I2S_RXDR (0x0028)
0283 #define I2S_RXFIFOLR (0x002c)
0284 #define I2S_TDM_TXCR (0x0030)
0285 #define I2S_TDM_RXCR (0x0034)
0286 #define I2S_CLKDIV (0x0038)
0287
0288 #define HIWORD_UPDATE(v, h, l) (((v) << (l)) | (GENMASK((h), (l)) << 16))
0289
0290
0291 #define PX30_I2S0_CLK_IN_SRC_FROM_TX HIWORD_UPDATE(1, 13, 12)
0292 #define PX30_I2S0_CLK_IN_SRC_FROM_RX HIWORD_UPDATE(2, 13, 12)
0293 #define PX30_I2S0_MCLK_OUT_SRC_FROM_TX HIWORD_UPDATE(1, 5, 5)
0294 #define PX30_I2S0_MCLK_OUT_SRC_FROM_RX HIWORD_UPDATE(0, 5, 5)
0295
0296 #define PX30_I2S0_CLK_TXONLY \
0297 (PX30_I2S0_MCLK_OUT_SRC_FROM_TX | PX30_I2S0_CLK_IN_SRC_FROM_TX)
0298
0299 #define PX30_I2S0_CLK_RXONLY \
0300 (PX30_I2S0_MCLK_OUT_SRC_FROM_RX | PX30_I2S0_CLK_IN_SRC_FROM_RX)
0301
0302
0303 #define RK1808_I2S0_MCLK_OUT_SRC_FROM_RX HIWORD_UPDATE(1, 2, 2)
0304 #define RK1808_I2S0_MCLK_OUT_SRC_FROM_TX HIWORD_UPDATE(0, 2, 2)
0305 #define RK1808_I2S0_CLK_IN_SRC_FROM_TX HIWORD_UPDATE(1, 1, 0)
0306 #define RK1808_I2S0_CLK_IN_SRC_FROM_RX HIWORD_UPDATE(2, 1, 0)
0307
0308 #define RK1808_I2S0_CLK_TXONLY \
0309 (RK1808_I2S0_MCLK_OUT_SRC_FROM_TX | RK1808_I2S0_CLK_IN_SRC_FROM_TX)
0310
0311 #define RK1808_I2S0_CLK_RXONLY \
0312 (RK1808_I2S0_MCLK_OUT_SRC_FROM_RX | RK1808_I2S0_CLK_IN_SRC_FROM_RX)
0313
0314
0315 #define RK3308_I2S0_8CH_MCLK_OUT_SRC_FROM_RX HIWORD_UPDATE(1, 10, 10)
0316 #define RK3308_I2S0_8CH_MCLK_OUT_SRC_FROM_TX HIWORD_UPDATE(0, 10, 10)
0317 #define RK3308_I2S0_8CH_CLK_IN_RX_SRC_FROM_TX HIWORD_UPDATE(1, 9, 9)
0318 #define RK3308_I2S0_8CH_CLK_IN_RX_SRC_FROM_RX HIWORD_UPDATE(0, 9, 9)
0319 #define RK3308_I2S0_8CH_CLK_IN_TX_SRC_FROM_RX HIWORD_UPDATE(1, 8, 8)
0320 #define RK3308_I2S0_8CH_CLK_IN_TX_SRC_FROM_TX HIWORD_UPDATE(0, 8, 8)
0321 #define RK3308_I2S1_8CH_MCLK_OUT_SRC_FROM_RX HIWORD_UPDATE(1, 2, 2)
0322 #define RK3308_I2S1_8CH_MCLK_OUT_SRC_FROM_TX HIWORD_UPDATE(0, 2, 2)
0323 #define RK3308_I2S1_8CH_CLK_IN_RX_SRC_FROM_TX HIWORD_UPDATE(1, 1, 1)
0324 #define RK3308_I2S1_8CH_CLK_IN_RX_SRC_FROM_RX HIWORD_UPDATE(0, 1, 1)
0325 #define RK3308_I2S1_8CH_CLK_IN_TX_SRC_FROM_RX HIWORD_UPDATE(1, 0, 0)
0326 #define RK3308_I2S1_8CH_CLK_IN_TX_SRC_FROM_TX HIWORD_UPDATE(0, 0, 0)
0327
0328 #define RK3308_I2S0_CLK_TXONLY \
0329 (RK3308_I2S0_8CH_MCLK_OUT_SRC_FROM_TX | \
0330 RK3308_I2S0_8CH_CLK_IN_RX_SRC_FROM_TX | \
0331 RK3308_I2S0_8CH_CLK_IN_TX_SRC_FROM_TX)
0332
0333 #define RK3308_I2S0_CLK_RXONLY \
0334 (RK3308_I2S0_8CH_MCLK_OUT_SRC_FROM_RX | \
0335 RK3308_I2S0_8CH_CLK_IN_RX_SRC_FROM_RX | \
0336 RK3308_I2S0_8CH_CLK_IN_TX_SRC_FROM_RX)
0337
0338 #define RK3308_I2S1_CLK_TXONLY \
0339 (RK3308_I2S1_8CH_MCLK_OUT_SRC_FROM_TX | \
0340 RK3308_I2S1_8CH_CLK_IN_RX_SRC_FROM_TX | \
0341 RK3308_I2S1_8CH_CLK_IN_TX_SRC_FROM_TX)
0342
0343 #define RK3308_I2S1_CLK_RXONLY \
0344 (RK3308_I2S1_8CH_MCLK_OUT_SRC_FROM_RX | \
0345 RK3308_I2S1_8CH_CLK_IN_RX_SRC_FROM_RX | \
0346 RK3308_I2S1_8CH_CLK_IN_TX_SRC_FROM_RX)
0347
0348
0349 #define RK3568_I2S1_MCLK_OUT_SRC_FROM_TX HIWORD_UPDATE(1, 5, 5)
0350 #define RK3568_I2S1_MCLK_OUT_SRC_FROM_RX HIWORD_UPDATE(0, 5, 5)
0351
0352 #define RK3568_I2S1_CLK_TXONLY \
0353 RK3568_I2S1_MCLK_OUT_SRC_FROM_TX
0354
0355 #define RK3568_I2S1_CLK_RXONLY \
0356 RK3568_I2S1_MCLK_OUT_SRC_FROM_RX
0357
0358 #define RK3568_I2S3_MCLK_OUT_SRC_FROM_TX HIWORD_UPDATE(1, 15, 15)
0359 #define RK3568_I2S3_MCLK_OUT_SRC_FROM_RX HIWORD_UPDATE(0, 15, 15)
0360 #define RK3568_I2S3_SCLK_SRC_FROM_TX HIWORD_UPDATE(1, 7, 7)
0361 #define RK3568_I2S3_SCLK_SRC_FROM_RX HIWORD_UPDATE(0, 7, 7)
0362 #define RK3568_I2S3_LRCK_SRC_FROM_TX HIWORD_UPDATE(1, 6, 6)
0363 #define RK3568_I2S3_LRCK_SRC_FROM_RX HIWORD_UPDATE(0, 6, 6)
0364
0365 #define RK3568_I2S3_MCLK_TXONLY \
0366 RK3568_I2S3_MCLK_OUT_SRC_FROM_TX
0367
0368 #define RK3568_I2S3_CLK_TXONLY \
0369 (RK3568_I2S3_SCLK_SRC_FROM_TX | \
0370 RK3568_I2S3_LRCK_SRC_FROM_TX)
0371
0372 #define RK3568_I2S3_MCLK_RXONLY \
0373 RK3568_I2S3_MCLK_OUT_SRC_FROM_RX
0374
0375 #define RK3568_I2S3_CLK_RXONLY \
0376 (RK3568_I2S3_SCLK_SRC_FROM_RX | \
0377 RK3568_I2S3_LRCK_SRC_FROM_RX)
0378
0379 #define RK3568_I2S3_MCLK_IE HIWORD_UPDATE(0, 3, 3)
0380 #define RK3568_I2S3_MCLK_OE HIWORD_UPDATE(1, 3, 3)
0381 #define RK3568_I2S2_MCLK_IE HIWORD_UPDATE(0, 2, 2)
0382 #define RK3568_I2S2_MCLK_OE HIWORD_UPDATE(1, 2, 2)
0383 #define RK3568_I2S1_MCLK_TX_IE HIWORD_UPDATE(0, 1, 1)
0384 #define RK3568_I2S1_MCLK_TX_OE HIWORD_UPDATE(1, 1, 1)
0385 #define RK3568_I2S1_MCLK_RX_IE HIWORD_UPDATE(0, 0, 0)
0386 #define RK3568_I2S1_MCLK_RX_OE HIWORD_UPDATE(1, 0, 0)
0387
0388
0389 #define RV1126_I2S0_MCLK_OUT_SRC_FROM_TX HIWORD_UPDATE(0, 9, 9)
0390 #define RV1126_I2S0_MCLK_OUT_SRC_FROM_RX HIWORD_UPDATE(1, 9, 9)
0391
0392 #define RV1126_I2S0_CLK_TXONLY \
0393 RV1126_I2S0_MCLK_OUT_SRC_FROM_TX
0394
0395 #define RV1126_I2S0_CLK_RXONLY \
0396 RV1126_I2S0_MCLK_OUT_SRC_FROM_RX
0397
0398 #endif