0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef _FSL_ESAI_DAI_H
0011 #define _FSL_ESAI_DAI_H
0012
0013
0014 #define REG_ESAI_ETDR 0x00
0015 #define REG_ESAI_ERDR 0x04
0016 #define REG_ESAI_ECR 0x08
0017 #define REG_ESAI_ESR 0x0C
0018 #define REG_ESAI_TFCR 0x10
0019 #define REG_ESAI_TFSR 0x14
0020 #define REG_ESAI_RFCR 0x18
0021 #define REG_ESAI_RFSR 0x1C
0022 #define REG_ESAI_xFCR(tx) (tx ? REG_ESAI_TFCR : REG_ESAI_RFCR)
0023 #define REG_ESAI_xFSR(tx) (tx ? REG_ESAI_TFSR : REG_ESAI_RFSR)
0024 #define REG_ESAI_TX0 0x80
0025 #define REG_ESAI_TX1 0x84
0026 #define REG_ESAI_TX2 0x88
0027 #define REG_ESAI_TX3 0x8C
0028 #define REG_ESAI_TX4 0x90
0029 #define REG_ESAI_TX5 0x94
0030 #define REG_ESAI_TSR 0x98
0031 #define REG_ESAI_RX0 0xA0
0032 #define REG_ESAI_RX1 0xA4
0033 #define REG_ESAI_RX2 0xA8
0034 #define REG_ESAI_RX3 0xAC
0035 #define REG_ESAI_SAISR 0xCC
0036 #define REG_ESAI_SAICR 0xD0
0037 #define REG_ESAI_TCR 0xD4
0038 #define REG_ESAI_TCCR 0xD8
0039 #define REG_ESAI_RCR 0xDC
0040 #define REG_ESAI_RCCR 0xE0
0041 #define REG_ESAI_xCR(tx) (tx ? REG_ESAI_TCR : REG_ESAI_RCR)
0042 #define REG_ESAI_xCCR(tx) (tx ? REG_ESAI_TCCR : REG_ESAI_RCCR)
0043 #define REG_ESAI_TSMA 0xE4
0044 #define REG_ESAI_TSMB 0xE8
0045 #define REG_ESAI_RSMA 0xEC
0046 #define REG_ESAI_RSMB 0xF0
0047 #define REG_ESAI_xSMA(tx) (tx ? REG_ESAI_TSMA : REG_ESAI_RSMA)
0048 #define REG_ESAI_xSMB(tx) (tx ? REG_ESAI_TSMB : REG_ESAI_RSMB)
0049 #define REG_ESAI_PRRC 0xF8
0050 #define REG_ESAI_PCRC 0xFC
0051
0052
0053 #define ESAI_ECR_ETI_SHIFT 19
0054 #define ESAI_ECR_ETI_MASK (1 << ESAI_ECR_ETI_SHIFT)
0055 #define ESAI_ECR_ETI (1 << ESAI_ECR_ETI_SHIFT)
0056 #define ESAI_ECR_ETO_SHIFT 18
0057 #define ESAI_ECR_ETO_MASK (1 << ESAI_ECR_ETO_SHIFT)
0058 #define ESAI_ECR_ETO (1 << ESAI_ECR_ETO_SHIFT)
0059 #define ESAI_ECR_ERI_SHIFT 17
0060 #define ESAI_ECR_ERI_MASK (1 << ESAI_ECR_ERI_SHIFT)
0061 #define ESAI_ECR_ERI (1 << ESAI_ECR_ERI_SHIFT)
0062 #define ESAI_ECR_ERO_SHIFT 16
0063 #define ESAI_ECR_ERO_MASK (1 << ESAI_ECR_ERO_SHIFT)
0064 #define ESAI_ECR_ERO (1 << ESAI_ECR_ERO_SHIFT)
0065 #define ESAI_ECR_ERST_SHIFT 1
0066 #define ESAI_ECR_ERST_MASK (1 << ESAI_ECR_ERST_SHIFT)
0067 #define ESAI_ECR_ERST (1 << ESAI_ECR_ERST_SHIFT)
0068 #define ESAI_ECR_ESAIEN_SHIFT 0
0069 #define ESAI_ECR_ESAIEN_MASK (1 << ESAI_ECR_ESAIEN_SHIFT)
0070 #define ESAI_ECR_ESAIEN (1 << ESAI_ECR_ESAIEN_SHIFT)
0071
0072
0073 #define ESAI_ESR_TINIT_SHIFT 10
0074 #define ESAI_ESR_TINIT_MASK (1 << ESAI_ESR_TINIT_SHIFT)
0075 #define ESAI_ESR_TINIT (1 << ESAI_ESR_TINIT_SHIFT)
0076 #define ESAI_ESR_RFF_SHIFT 9
0077 #define ESAI_ESR_RFF_MASK (1 << ESAI_ESR_RFF_SHIFT)
0078 #define ESAI_ESR_RFF (1 << ESAI_ESR_RFF_SHIFT)
0079 #define ESAI_ESR_TFE_SHIFT 8
0080 #define ESAI_ESR_TFE_MASK (1 << ESAI_ESR_TFE_SHIFT)
0081 #define ESAI_ESR_TFE (1 << ESAI_ESR_TFE_SHIFT)
0082 #define ESAI_ESR_TLS_SHIFT 7
0083 #define ESAI_ESR_TLS_MASK (1 << ESAI_ESR_TLS_SHIFT)
0084 #define ESAI_ESR_TLS (1 << ESAI_ESR_TLS_SHIFT)
0085 #define ESAI_ESR_TDE_SHIFT 6
0086 #define ESAI_ESR_TDE_MASK (1 << ESAI_ESR_TDE_SHIFT)
0087 #define ESAI_ESR_TDE (1 << ESAI_ESR_TDE_SHIFT)
0088 #define ESAI_ESR_TED_SHIFT 5
0089 #define ESAI_ESR_TED_MASK (1 << ESAI_ESR_TED_SHIFT)
0090 #define ESAI_ESR_TED (1 << ESAI_ESR_TED_SHIFT)
0091 #define ESAI_ESR_TD_SHIFT 4
0092 #define ESAI_ESR_TD_MASK (1 << ESAI_ESR_TD_SHIFT)
0093 #define ESAI_ESR_TD (1 << ESAI_ESR_TD_SHIFT)
0094 #define ESAI_ESR_RLS_SHIFT 3
0095 #define ESAI_ESR_RLS_MASK (1 << ESAI_ESR_RLS_SHIFT)
0096 #define ESAI_ESR_RLS (1 << ESAI_ESR_RLS_SHIFT)
0097 #define ESAI_ESR_RDE_SHIFT 2
0098 #define ESAI_ESR_RDE_MASK (1 << ESAI_ESR_RDE_SHIFT)
0099 #define ESAI_ESR_RDE (1 << ESAI_ESR_RDE_SHIFT)
0100 #define ESAI_ESR_RED_SHIFT 1
0101 #define ESAI_ESR_RED_MASK (1 << ESAI_ESR_RED_SHIFT)
0102 #define ESAI_ESR_RED (1 << ESAI_ESR_RED_SHIFT)
0103 #define ESAI_ESR_RD_SHIFT 0
0104 #define ESAI_ESR_RD_MASK (1 << ESAI_ESR_RD_SHIFT)
0105 #define ESAI_ESR_RD (1 << ESAI_ESR_RD_SHIFT)
0106
0107
0108
0109
0110
0111 #define ESAI_xFCR_TIEN_SHIFT 19
0112 #define ESAI_xFCR_TIEN_MASK (1 << ESAI_xFCR_TIEN_SHIFT)
0113 #define ESAI_xFCR_TIEN (1 << ESAI_xFCR_TIEN_SHIFT)
0114 #define ESAI_xFCR_REXT_SHIFT 19
0115 #define ESAI_xFCR_REXT_MASK (1 << ESAI_xFCR_REXT_SHIFT)
0116 #define ESAI_xFCR_REXT (1 << ESAI_xFCR_REXT_SHIFT)
0117 #define ESAI_xFCR_xWA_SHIFT 16
0118 #define ESAI_xFCR_xWA_WIDTH 3
0119 #define ESAI_xFCR_xWA_MASK (((1 << ESAI_xFCR_xWA_WIDTH) - 1) << ESAI_xFCR_xWA_SHIFT)
0120 #define ESAI_xFCR_xWA(v) (((8 - ((v) >> 2)) << ESAI_xFCR_xWA_SHIFT) & ESAI_xFCR_xWA_MASK)
0121 #define ESAI_xFCR_xFWM_SHIFT 8
0122 #define ESAI_xFCR_xFWM_WIDTH 8
0123 #define ESAI_xFCR_xFWM_MASK (((1 << ESAI_xFCR_xFWM_WIDTH) - 1) << ESAI_xFCR_xFWM_SHIFT)
0124 #define ESAI_xFCR_xFWM(v) ((((v) - 1) << ESAI_xFCR_xFWM_SHIFT) & ESAI_xFCR_xFWM_MASK)
0125 #define ESAI_xFCR_xE_SHIFT 2
0126 #define ESAI_xFCR_TE_WIDTH 6
0127 #define ESAI_xFCR_RE_WIDTH 4
0128 #define ESAI_xFCR_TE_MASK (((1 << ESAI_xFCR_TE_WIDTH) - 1) << ESAI_xFCR_xE_SHIFT)
0129 #define ESAI_xFCR_RE_MASK (((1 << ESAI_xFCR_RE_WIDTH) - 1) << ESAI_xFCR_xE_SHIFT)
0130 #define ESAI_xFCR_TE(x) ((ESAI_xFCR_TE_MASK >> (ESAI_xFCR_TE_WIDTH - x)) & ESAI_xFCR_TE_MASK)
0131 #define ESAI_xFCR_RE(x) ((ESAI_xFCR_RE_MASK >> (ESAI_xFCR_RE_WIDTH - x)) & ESAI_xFCR_RE_MASK)
0132 #define ESAI_xFCR_xFR_SHIFT 1
0133 #define ESAI_xFCR_xFR_MASK (1 << ESAI_xFCR_xFR_SHIFT)
0134 #define ESAI_xFCR_xFR (1 << ESAI_xFCR_xFR_SHIFT)
0135 #define ESAI_xFCR_xFEN_SHIFT 0
0136 #define ESAI_xFCR_xFEN_MASK (1 << ESAI_xFCR_xFEN_SHIFT)
0137 #define ESAI_xFCR_xFEN (1 << ESAI_xFCR_xFEN_SHIFT)
0138
0139
0140
0141
0142
0143 #define ESAI_xFSR_NTFO_SHIFT 12
0144 #define ESAI_xFSR_NRFI_SHIFT 12
0145 #define ESAI_xFSR_NTFI_SHIFT 8
0146 #define ESAI_xFSR_NRFO_SHIFT 8
0147 #define ESAI_xFSR_NTFx_WIDTH 3
0148 #define ESAI_xFSR_NRFx_WIDTH 2
0149 #define ESAI_xFSR_NTFO_MASK (((1 << ESAI_xFSR_NTFx_WIDTH) - 1) << ESAI_xFSR_NTFO_SHIFT)
0150 #define ESAI_xFSR_NTFI_MASK (((1 << ESAI_xFSR_NTFx_WIDTH) - 1) << ESAI_xFSR_NTFI_SHIFT)
0151 #define ESAI_xFSR_NRFO_MASK (((1 << ESAI_xFSR_NRFx_WIDTH) - 1) << ESAI_xFSR_NRFO_SHIFT)
0152 #define ESAI_xFSR_NRFI_MASK (((1 << ESAI_xFSR_NRFx_WIDTH) - 1) << ESAI_xFSR_NRFI_SHIFT)
0153 #define ESAI_xFSR_xFCNT_SHIFT 0
0154 #define ESAI_xFSR_xFCNT_WIDTH 8
0155 #define ESAI_xFSR_xFCNT_MASK (((1 << ESAI_xFSR_xFCNT_WIDTH) - 1) << ESAI_xFSR_xFCNT_SHIFT)
0156
0157
0158 #define ESAI_TSR_SHIFT 0
0159 #define ESAI_TSR_WIDTH 24
0160 #define ESAI_TSR_MASK (((1 << ESAI_TSR_WIDTH) - 1) << ESAI_TSR_SHIFT)
0161
0162
0163 #define ESAI_SAISR_TODFE_SHIFT 17
0164 #define ESAI_SAISR_TODFE_MASK (1 << ESAI_SAISR_TODFE_SHIFT)
0165 #define ESAI_SAISR_TODFE (1 << ESAI_SAISR_TODFE_SHIFT)
0166 #define ESAI_SAISR_TEDE_SHIFT 16
0167 #define ESAI_SAISR_TEDE_MASK (1 << ESAI_SAISR_TEDE_SHIFT)
0168 #define ESAI_SAISR_TEDE (1 << ESAI_SAISR_TEDE_SHIFT)
0169 #define ESAI_SAISR_TDE_SHIFT 15
0170 #define ESAI_SAISR_TDE_MASK (1 << ESAI_SAISR_TDE_SHIFT)
0171 #define ESAI_SAISR_TDE (1 << ESAI_SAISR_TDE_SHIFT)
0172 #define ESAI_SAISR_TUE_SHIFT 14
0173 #define ESAI_SAISR_TUE_MASK (1 << ESAI_SAISR_TUE_SHIFT)
0174 #define ESAI_SAISR_TUE (1 << ESAI_SAISR_TUE_SHIFT)
0175 #define ESAI_SAISR_TFS_SHIFT 13
0176 #define ESAI_SAISR_TFS_MASK (1 << ESAI_SAISR_TFS_SHIFT)
0177 #define ESAI_SAISR_TFS (1 << ESAI_SAISR_TFS_SHIFT)
0178 #define ESAI_SAISR_RODF_SHIFT 10
0179 #define ESAI_SAISR_RODF_MASK (1 << ESAI_SAISR_RODF_SHIFT)
0180 #define ESAI_SAISR_RODF (1 << ESAI_SAISR_RODF_SHIFT)
0181 #define ESAI_SAISR_REDF_SHIFT 9
0182 #define ESAI_SAISR_REDF_MASK (1 << ESAI_SAISR_REDF_SHIFT)
0183 #define ESAI_SAISR_REDF (1 << ESAI_SAISR_REDF_SHIFT)
0184 #define ESAI_SAISR_RDF_SHIFT 8
0185 #define ESAI_SAISR_RDF_MASK (1 << ESAI_SAISR_RDF_SHIFT)
0186 #define ESAI_SAISR_RDF (1 << ESAI_SAISR_RDF_SHIFT)
0187 #define ESAI_SAISR_ROE_SHIFT 7
0188 #define ESAI_SAISR_ROE_MASK (1 << ESAI_SAISR_ROE_SHIFT)
0189 #define ESAI_SAISR_ROE (1 << ESAI_SAISR_ROE_SHIFT)
0190 #define ESAI_SAISR_RFS_SHIFT 6
0191 #define ESAI_SAISR_RFS_MASK (1 << ESAI_SAISR_RFS_SHIFT)
0192 #define ESAI_SAISR_RFS (1 << ESAI_SAISR_RFS_SHIFT)
0193 #define ESAI_SAISR_IF2_SHIFT 2
0194 #define ESAI_SAISR_IF2_MASK (1 << ESAI_SAISR_IF2_SHIFT)
0195 #define ESAI_SAISR_IF2 (1 << ESAI_SAISR_IF2_SHIFT)
0196 #define ESAI_SAISR_IF1_SHIFT 1
0197 #define ESAI_SAISR_IF1_MASK (1 << ESAI_SAISR_IF1_SHIFT)
0198 #define ESAI_SAISR_IF1 (1 << ESAI_SAISR_IF1_SHIFT)
0199 #define ESAI_SAISR_IF0_SHIFT 0
0200 #define ESAI_SAISR_IF0_MASK (1 << ESAI_SAISR_IF0_SHIFT)
0201 #define ESAI_SAISR_IF0 (1 << ESAI_SAISR_IF0_SHIFT)
0202
0203
0204 #define ESAI_SAICR_ALC_SHIFT 8
0205 #define ESAI_SAICR_ALC_MASK (1 << ESAI_SAICR_ALC_SHIFT)
0206 #define ESAI_SAICR_ALC (1 << ESAI_SAICR_ALC_SHIFT)
0207 #define ESAI_SAICR_TEBE_SHIFT 7
0208 #define ESAI_SAICR_TEBE_MASK (1 << ESAI_SAICR_TEBE_SHIFT)
0209 #define ESAI_SAICR_TEBE (1 << ESAI_SAICR_TEBE_SHIFT)
0210 #define ESAI_SAICR_SYNC_SHIFT 6
0211 #define ESAI_SAICR_SYNC_MASK (1 << ESAI_SAICR_SYNC_SHIFT)
0212 #define ESAI_SAICR_SYNC (1 << ESAI_SAICR_SYNC_SHIFT)
0213 #define ESAI_SAICR_OF2_SHIFT 2
0214 #define ESAI_SAICR_OF2_MASK (1 << ESAI_SAICR_OF2_SHIFT)
0215 #define ESAI_SAICR_OF2 (1 << ESAI_SAICR_OF2_SHIFT)
0216 #define ESAI_SAICR_OF1_SHIFT 1
0217 #define ESAI_SAICR_OF1_MASK (1 << ESAI_SAICR_OF1_SHIFT)
0218 #define ESAI_SAICR_OF1 (1 << ESAI_SAICR_OF1_SHIFT)
0219 #define ESAI_SAICR_OF0_SHIFT 0
0220 #define ESAI_SAICR_OF0_MASK (1 << ESAI_SAICR_OF0_SHIFT)
0221 #define ESAI_SAICR_OF0 (1 << ESAI_SAICR_OF0_SHIFT)
0222
0223
0224
0225
0226
0227 #define ESAI_xCR_xLIE_SHIFT 23
0228 #define ESAI_xCR_xLIE_MASK (1 << ESAI_xCR_xLIE_SHIFT)
0229 #define ESAI_xCR_xLIE (1 << ESAI_xCR_xLIE_SHIFT)
0230 #define ESAI_xCR_xIE_SHIFT 22
0231 #define ESAI_xCR_xIE_MASK (1 << ESAI_xCR_xIE_SHIFT)
0232 #define ESAI_xCR_xIE (1 << ESAI_xCR_xIE_SHIFT)
0233 #define ESAI_xCR_xEDIE_SHIFT 21
0234 #define ESAI_xCR_xEDIE_MASK (1 << ESAI_xCR_xEDIE_SHIFT)
0235 #define ESAI_xCR_xEDIE (1 << ESAI_xCR_xEDIE_SHIFT)
0236 #define ESAI_xCR_xEIE_SHIFT 20
0237 #define ESAI_xCR_xEIE_MASK (1 << ESAI_xCR_xEIE_SHIFT)
0238 #define ESAI_xCR_xEIE (1 << ESAI_xCR_xEIE_SHIFT)
0239 #define ESAI_xCR_xPR_SHIFT 19
0240 #define ESAI_xCR_xPR_MASK (1 << ESAI_xCR_xPR_SHIFT)
0241 #define ESAI_xCR_xPR (1 << ESAI_xCR_xPR_SHIFT)
0242 #define ESAI_xCR_PADC_SHIFT 17
0243 #define ESAI_xCR_PADC_MASK (1 << ESAI_xCR_PADC_SHIFT)
0244 #define ESAI_xCR_PADC (1 << ESAI_xCR_PADC_SHIFT)
0245 #define ESAI_xCR_xFSR_SHIFT 16
0246 #define ESAI_xCR_xFSR_MASK (1 << ESAI_xCR_xFSR_SHIFT)
0247 #define ESAI_xCR_xFSR (1 << ESAI_xCR_xFSR_SHIFT)
0248 #define ESAI_xCR_xFSL_SHIFT 15
0249 #define ESAI_xCR_xFSL_MASK (1 << ESAI_xCR_xFSL_SHIFT)
0250 #define ESAI_xCR_xFSL (1 << ESAI_xCR_xFSL_SHIFT)
0251 #define ESAI_xCR_xSWS_SHIFT 10
0252 #define ESAI_xCR_xSWS_WIDTH 5
0253 #define ESAI_xCR_xSWS_MASK (((1 << ESAI_xCR_xSWS_WIDTH) - 1) << ESAI_xCR_xSWS_SHIFT)
0254 #define ESAI_xCR_xSWS(s, w) ((w < 24 ? (s - w + ((w - 8) >> 2)) : (s < 32 ? 0x1e : 0x1f)) << ESAI_xCR_xSWS_SHIFT)
0255 #define ESAI_xCR_xMOD_SHIFT 8
0256 #define ESAI_xCR_xMOD_WIDTH 2
0257 #define ESAI_xCR_xMOD_MASK (((1 << ESAI_xCR_xMOD_WIDTH) - 1) << ESAI_xCR_xMOD_SHIFT)
0258 #define ESAI_xCR_xMOD_ONDEMAND (0x1 << ESAI_xCR_xMOD_SHIFT)
0259 #define ESAI_xCR_xMOD_NETWORK (0x1 << ESAI_xCR_xMOD_SHIFT)
0260 #define ESAI_xCR_xMOD_AC97 (0x3 << ESAI_xCR_xMOD_SHIFT)
0261 #define ESAI_xCR_xWA_SHIFT 7
0262 #define ESAI_xCR_xWA_MASK (1 << ESAI_xCR_xWA_SHIFT)
0263 #define ESAI_xCR_xWA (1 << ESAI_xCR_xWA_SHIFT)
0264 #define ESAI_xCR_xSHFD_SHIFT 6
0265 #define ESAI_xCR_xSHFD_MASK (1 << ESAI_xCR_xSHFD_SHIFT)
0266 #define ESAI_xCR_xSHFD (1 << ESAI_xCR_xSHFD_SHIFT)
0267 #define ESAI_xCR_xE_SHIFT 0
0268 #define ESAI_xCR_TE_WIDTH 6
0269 #define ESAI_xCR_RE_WIDTH 4
0270 #define ESAI_xCR_TE_MASK (((1 << ESAI_xCR_TE_WIDTH) - 1) << ESAI_xCR_xE_SHIFT)
0271 #define ESAI_xCR_RE_MASK (((1 << ESAI_xCR_RE_WIDTH) - 1) << ESAI_xCR_xE_SHIFT)
0272 #define ESAI_xCR_TE(x) ((ESAI_xCR_TE_MASK >> (ESAI_xCR_TE_WIDTH - x)) & ESAI_xCR_TE_MASK)
0273 #define ESAI_xCR_RE(x) ((ESAI_xCR_RE_MASK >> (ESAI_xCR_RE_WIDTH - x)) & ESAI_xCR_RE_MASK)
0274
0275
0276
0277
0278
0279 #define ESAI_xCCR_xHCKD_SHIFT 23
0280 #define ESAI_xCCR_xHCKD_MASK (1 << ESAI_xCCR_xHCKD_SHIFT)
0281 #define ESAI_xCCR_xHCKD (1 << ESAI_xCCR_xHCKD_SHIFT)
0282 #define ESAI_xCCR_xFSD_SHIFT 22
0283 #define ESAI_xCCR_xFSD_MASK (1 << ESAI_xCCR_xFSD_SHIFT)
0284 #define ESAI_xCCR_xFSD (1 << ESAI_xCCR_xFSD_SHIFT)
0285 #define ESAI_xCCR_xCKD_SHIFT 21
0286 #define ESAI_xCCR_xCKD_MASK (1 << ESAI_xCCR_xCKD_SHIFT)
0287 #define ESAI_xCCR_xCKD (1 << ESAI_xCCR_xCKD_SHIFT)
0288 #define ESAI_xCCR_xHCKP_SHIFT 20
0289 #define ESAI_xCCR_xHCKP_MASK (1 << ESAI_xCCR_xHCKP_SHIFT)
0290 #define ESAI_xCCR_xHCKP (1 << ESAI_xCCR_xHCKP_SHIFT)
0291 #define ESAI_xCCR_xFSP_SHIFT 19
0292 #define ESAI_xCCR_xFSP_MASK (1 << ESAI_xCCR_xFSP_SHIFT)
0293 #define ESAI_xCCR_xFSP (1 << ESAI_xCCR_xFSP_SHIFT)
0294 #define ESAI_xCCR_xCKP_SHIFT 18
0295 #define ESAI_xCCR_xCKP_MASK (1 << ESAI_xCCR_xCKP_SHIFT)
0296 #define ESAI_xCCR_xCKP (1 << ESAI_xCCR_xCKP_SHIFT)
0297 #define ESAI_xCCR_xFP_SHIFT 14
0298 #define ESAI_xCCR_xFP_WIDTH 4
0299 #define ESAI_xCCR_xFP_MASK (((1 << ESAI_xCCR_xFP_WIDTH) - 1) << ESAI_xCCR_xFP_SHIFT)
0300 #define ESAI_xCCR_xFP(v) ((((v) - 1) << ESAI_xCCR_xFP_SHIFT) & ESAI_xCCR_xFP_MASK)
0301 #define ESAI_xCCR_xDC_SHIFT 9
0302 #define ESAI_xCCR_xDC_WIDTH 5
0303 #define ESAI_xCCR_xDC_MASK (((1 << ESAI_xCCR_xDC_WIDTH) - 1) << ESAI_xCCR_xDC_SHIFT)
0304 #define ESAI_xCCR_xDC(v) ((((v) - 1) << ESAI_xCCR_xDC_SHIFT) & ESAI_xCCR_xDC_MASK)
0305 #define ESAI_xCCR_xPSR_SHIFT 8
0306 #define ESAI_xCCR_xPSR_MASK (1 << ESAI_xCCR_xPSR_SHIFT)
0307 #define ESAI_xCCR_xPSR_BYPASS (1 << ESAI_xCCR_xPSR_SHIFT)
0308 #define ESAI_xCCR_xPSR_DIV8 (0 << ESAI_xCCR_xPSR_SHIFT)
0309 #define ESAI_xCCR_xPM_SHIFT 0
0310 #define ESAI_xCCR_xPM_WIDTH 8
0311 #define ESAI_xCCR_xPM_MASK (((1 << ESAI_xCCR_xPM_WIDTH) - 1) << ESAI_xCCR_xPM_SHIFT)
0312 #define ESAI_xCCR_xPM(v) ((((v) - 1) << ESAI_xCCR_xPM_SHIFT) & ESAI_xCCR_xPM_MASK)
0313
0314
0315 #define ESAI_xSMA_xS_SHIFT 0
0316 #define ESAI_xSMA_xS_WIDTH 16
0317 #define ESAI_xSMA_xS_MASK (((1 << ESAI_xSMA_xS_WIDTH) - 1) << ESAI_xSMA_xS_SHIFT)
0318 #define ESAI_xSMA_xS(v) ((v) & ESAI_xSMA_xS_MASK)
0319 #define ESAI_xSMB_xS_SHIFT 0
0320 #define ESAI_xSMB_xS_WIDTH 16
0321 #define ESAI_xSMB_xS_MASK (((1 << ESAI_xSMB_xS_WIDTH) - 1) << ESAI_xSMB_xS_SHIFT)
0322 #define ESAI_xSMB_xS(v) (((v) >> ESAI_xSMA_xS_WIDTH) & ESAI_xSMB_xS_MASK)
0323
0324
0325 #define ESAI_PRRC_PDC_SHIFT 0
0326 #define ESAI_PRRC_PDC_WIDTH 12
0327 #define ESAI_PRRC_PDC_MASK (((1 << ESAI_PRRC_PDC_WIDTH) - 1) << ESAI_PRRC_PDC_SHIFT)
0328 #define ESAI_PRRC_PDC(v) ((v) & ESAI_PRRC_PDC_MASK)
0329
0330
0331 #define ESAI_PCRC_PC_SHIFT 0
0332 #define ESAI_PCRC_PC_WIDTH 12
0333 #define ESAI_PCRC_PC_MASK (((1 << ESAI_PCRC_PC_WIDTH) - 1) << ESAI_PCRC_PC_SHIFT)
0334 #define ESAI_PCRC_PC(v) ((v) & ESAI_PCRC_PC_MASK)
0335
0336 #define ESAI_GPIO 0xfff
0337
0338
0339 #define ESAI_HCKT_FSYS 0
0340 #define ESAI_HCKT_EXTAL 1
0341 #define ESAI_HCKR_FSYS 2
0342 #define ESAI_HCKR_EXTAL 3
0343
0344
0345 #define ESAI_TX_DIV_PSR 0
0346 #define ESAI_TX_DIV_PM 1
0347 #define ESAI_TX_DIV_FP 2
0348 #define ESAI_RX_DIV_PSR 3
0349 #define ESAI_RX_DIV_PM 4
0350 #define ESAI_RX_DIV_FP 5
0351 #endif