0001
0002
0003
0004
0005
0006
0007
0008 #ifndef SND_UNIPHIER_AIO_REG_H__
0009 #define SND_UNIPHIER_AIO_REG_H__
0010
0011 #include <linux/bitops.h>
0012
0013
0014 #define SG_AOUTEN 0x1c04
0015
0016
0017 #define A2CHNMAPCTR0(n) (0x00000 + 0x40 * (n))
0018 #define A2RBNMAPCTR0(n) (0x01000 + 0x40 * (n))
0019 #define A2IPORTNMAPCTR0(n) (0x02000 + 0x40 * (n))
0020 #define A2IPORTNMAPCTR1(n) (0x02004 + 0x40 * (n))
0021 #define A2IIFNMAPCTR0(n) (0x03000 + 0x40 * (n))
0022 #define A2OPORTNMAPCTR0(n) (0x04000 + 0x40 * (n))
0023 #define A2OPORTNMAPCTR1(n) (0x04004 + 0x40 * (n))
0024 #define A2OPORTNMAPCTR2(n) (0x04008 + 0x40 * (n))
0025 #define A2OIFNMAPCTR0(n) (0x05000 + 0x40 * (n))
0026 #define A2ATNMAPCTR0(n) (0x06000 + 0x40 * (n))
0027
0028 #define MAPCTR0_EN 0x80000000
0029
0030
0031 #define A2APLLCTR0 0x07000
0032 #define A2APLLCTR0_APLLXPOW_MASK GENMASK(3, 0)
0033 #define A2APLLCTR0_APLLXPOW_PWOFF (0x0 << 0)
0034 #define A2APLLCTR0_APLLXPOW_PWON (0xf << 0)
0035 #define A2APLLCTR1 0x07004
0036 #define A2APLLCTR1_APLLX_MASK 0x00010101
0037 #define A2APLLCTR1_APLLX_36MHZ 0x00000000
0038 #define A2APLLCTR1_APLLX_33MHZ 0x00000001
0039 #define A2EXMCLKSEL0 0x07030
0040 #define A2EXMCLKSEL0_EXMCLK_MASK GENMASK(2, 0)
0041 #define A2EXMCLKSEL0_EXMCLK_OUTPUT (0x0 << 0)
0042 #define A2EXMCLKSEL0_EXMCLK_INPUT (0x7 << 0)
0043 #define A2SSIFSW 0x07050
0044 #define A2CH22_2CTR 0x07054
0045 #define A2AIOINPUTSEL 0x070e0
0046 #define A2AIOINPUTSEL_RXSEL_PCMI1_MASK GENMASK(2, 0)
0047 #define A2AIOINPUTSEL_RXSEL_PCMI1_HDMIRX1 (0x2 << 0)
0048 #define A2AIOINPUTSEL_RXSEL_PCMI2_MASK GENMASK(6, 4)
0049 #define A2AIOINPUTSEL_RXSEL_PCMI2_SIF (0x7 << 4)
0050 #define A2AIOINPUTSEL_RXSEL_PCMI3_MASK GENMASK(10, 8)
0051 #define A2AIOINPUTSEL_RXSEL_PCMI3_EVEA (0x1 << 8)
0052 #define A2AIOINPUTSEL_RXSEL_IECI1_MASK GENMASK(14, 12)
0053 #define A2AIOINPUTSEL_RXSEL_IECI1_HDMIRX1 (0x2 << 12)
0054 #define A2AIOINPUTSEL_RXSEL_MASK (A2AIOINPUTSEL_RXSEL_PCMI1_MASK | \
0055 A2AIOINPUTSEL_RXSEL_PCMI2_MASK | \
0056 A2AIOINPUTSEL_RXSEL_PCMI3_MASK | \
0057 A2AIOINPUTSEL_RXSEL_IECI1_HDMIRX1)
0058
0059
0060 #define INTCHIM(m) (0x9028 + 0x80 * (m))
0061 #define INTRBIM(m) (0x9030 + 0x80 * (m))
0062 #define INTCHID(m) (0xa028 + 0x80 * (m))
0063 #define INTRBID(m) (0xa030 + 0x80 * (m))
0064
0065
0066 #define IPORTMXCTR1(n) (0x22000 + 0x400 * (n))
0067 #define IPORTMXCTR1_LRSEL_MASK GENMASK(11, 10)
0068 #define IPORTMXCTR1_LRSEL_RIGHT (0x0 << 10)
0069 #define IPORTMXCTR1_LRSEL_LEFT (0x1 << 10)
0070 #define IPORTMXCTR1_LRSEL_I2S (0x2 << 10)
0071 #define IPORTMXCTR1_OUTBITSEL_MASK (0x800003U << 8)
0072 #define IPORTMXCTR1_OUTBITSEL_32 (0x800000U << 8)
0073 #define IPORTMXCTR1_OUTBITSEL_24 (0x000000U << 8)
0074 #define IPORTMXCTR1_OUTBITSEL_20 (0x000001U << 8)
0075 #define IPORTMXCTR1_OUTBITSEL_16 (0x000002U << 8)
0076 #define IPORTMXCTR1_CHSEL_MASK GENMASK(6, 4)
0077 #define IPORTMXCTR1_CHSEL_ALL (0x0 << 4)
0078 #define IPORTMXCTR1_CHSEL_D0_D2 (0x1 << 4)
0079 #define IPORTMXCTR1_CHSEL_D0 (0x2 << 4)
0080 #define IPORTMXCTR1_CHSEL_D1 (0x3 << 4)
0081 #define IPORTMXCTR1_CHSEL_D2 (0x4 << 4)
0082 #define IPORTMXCTR1_CHSEL_DMIX (0x5 << 4)
0083 #define IPORTMXCTR1_FSSEL_MASK GENMASK(3, 0)
0084 #define IPORTMXCTR1_FSSEL_48 (0x0 << 0)
0085 #define IPORTMXCTR1_FSSEL_96 (0x1 << 0)
0086 #define IPORTMXCTR1_FSSEL_192 (0x2 << 0)
0087 #define IPORTMXCTR1_FSSEL_32 (0x3 << 0)
0088 #define IPORTMXCTR1_FSSEL_44_1 (0x4 << 0)
0089 #define IPORTMXCTR1_FSSEL_88_2 (0x5 << 0)
0090 #define IPORTMXCTR1_FSSEL_176_4 (0x6 << 0)
0091 #define IPORTMXCTR1_FSSEL_16 (0x8 << 0)
0092 #define IPORTMXCTR1_FSSEL_22_05 (0x9 << 0)
0093 #define IPORTMXCTR1_FSSEL_24 (0xa << 0)
0094 #define IPORTMXCTR1_FSSEL_8 (0xb << 0)
0095 #define IPORTMXCTR1_FSSEL_11_025 (0xc << 0)
0096 #define IPORTMXCTR1_FSSEL_12 (0xd << 0)
0097 #define IPORTMXCTR2(n) (0x22004 + 0x400 * (n))
0098 #define IPORTMXCTR2_ACLKSEL_MASK GENMASK(19, 16)
0099 #define IPORTMXCTR2_ACLKSEL_A1 (0x0 << 16)
0100 #define IPORTMXCTR2_ACLKSEL_F1 (0x1 << 16)
0101 #define IPORTMXCTR2_ACLKSEL_A2 (0x2 << 16)
0102 #define IPORTMXCTR2_ACLKSEL_F2 (0x3 << 16)
0103 #define IPORTMXCTR2_ACLKSEL_A2PLL (0x4 << 16)
0104 #define IPORTMXCTR2_ACLKSEL_RX1 (0x5 << 16)
0105 #define IPORTMXCTR2_ACLKSEL_RX2 (0x6 << 16)
0106 #define IPORTMXCTR2_MSSEL_MASK BIT(15)
0107 #define IPORTMXCTR2_MSSEL_SLAVE (0x0 << 15)
0108 #define IPORTMXCTR2_MSSEL_MASTER (0x1 << 15)
0109 #define IPORTMXCTR2_EXTLSIFSSEL_MASK BIT(14)
0110 #define IPORTMXCTR2_EXTLSIFSSEL_36 (0x0 << 14)
0111 #define IPORTMXCTR2_EXTLSIFSSEL_24 (0x1 << 14)
0112 #define IPORTMXCTR2_DACCKSEL_MASK GENMASK(9, 8)
0113 #define IPORTMXCTR2_DACCKSEL_1_2 (0x0 << 8)
0114 #define IPORTMXCTR2_DACCKSEL_1_3 (0x1 << 8)
0115 #define IPORTMXCTR2_DACCKSEL_1_1 (0x2 << 8)
0116 #define IPORTMXCTR2_DACCKSEL_2_3 (0x3 << 8)
0117 #define IPORTMXCTR2_REQEN_MASK BIT(0)
0118 #define IPORTMXCTR2_REQEN_DISABLE (0x0 << 0)
0119 #define IPORTMXCTR2_REQEN_ENABLE (0x1 << 0)
0120 #define IPORTMXCNTCTR(n) (0x22010 + 0x400 * (n))
0121 #define IPORTMXCOUNTER(n) (0x22014 + 0x400 * (n))
0122 #define IPORTMXCNTMONI(n) (0x22018 + 0x400 * (n))
0123 #define IPORTMXACLKSEL0EX(n) (0x22020 + 0x400 * (n))
0124 #define IPORTMXACLKSEL0EX_ACLKSEL0EX_MASK GENMASK(3, 0)
0125 #define IPORTMXACLKSEL0EX_ACLKSEL0EX_INTERNAL (0x0 << 0)
0126 #define IPORTMXACLKSEL0EX_ACLKSEL0EX_EXTERNAL (0xf << 0)
0127 #define IPORTMXEXNOE(n) (0x22070 + 0x400 * (n))
0128 #define IPORTMXEXNOE_PCMINOE_MASK BIT(0)
0129 #define IPORTMXEXNOE_PCMINOE_OUTPUT (0x0 << 0)
0130 #define IPORTMXEXNOE_PCMINOE_INPUT (0x1 << 0)
0131 #define IPORTMXMASK(n) (0x22078 + 0x400 * (n))
0132 #define IPORTMXMASK_IUXCKMSK_MASK GENMASK(18, 16)
0133 #define IPORTMXMASK_IUXCKMSK_ON (0x0 << 16)
0134 #define IPORTMXMASK_IUXCKMSK_OFF (0x7 << 16)
0135 #define IPORTMXMASK_XCKMSK_MASK GENMASK(2, 0)
0136 #define IPORTMXMASK_XCKMSK_ON (0x0 << 0)
0137 #define IPORTMXMASK_XCKMSK_OFF (0x7 << 0)
0138 #define IPORTMXRSTCTR(n) (0x2207c + 0x400 * (n))
0139 #define IPORTMXRSTCTR_RSTPI_MASK BIT(7)
0140 #define IPORTMXRSTCTR_RSTPI_RELEASE (0x0 << 7)
0141 #define IPORTMXRSTCTR_RSTPI_RESET (0x1 << 7)
0142
0143
0144 #define PBINMXCTR(n) (0x20200 + 0x40 * (n))
0145 #define PBINMXCTR_NCONNECT_MASK BIT(15)
0146 #define PBINMXCTR_NCONNECT_CONNECT (0x0 << 15)
0147 #define PBINMXCTR_NCONNECT_DISCONNECT (0x1 << 15)
0148 #define PBINMXCTR_INOUTSEL_MASK BIT(14)
0149 #define PBINMXCTR_INOUTSEL_IN (0x0 << 14)
0150 #define PBINMXCTR_INOUTSEL_OUT (0x1 << 14)
0151 #define PBINMXCTR_PBINSEL_SHIFT (8)
0152 #define PBINMXCTR_ENDIAN_MASK GENMASK(5, 4)
0153 #define PBINMXCTR_ENDIAN_3210 (0x0 << 4)
0154 #define PBINMXCTR_ENDIAN_0123 (0x1 << 4)
0155 #define PBINMXCTR_ENDIAN_1032 (0x2 << 4)
0156 #define PBINMXCTR_ENDIAN_2301 (0x3 << 4)
0157 #define PBINMXCTR_MEMFMT_MASK GENMASK(3, 0)
0158 #define PBINMXCTR_MEMFMT_D0 (0x0 << 0)
0159 #define PBINMXCTR_MEMFMT_5_1CH_DMIX (0x1 << 0)
0160 #define PBINMXCTR_MEMFMT_6CH (0x2 << 0)
0161 #define PBINMXCTR_MEMFMT_4CH (0x3 << 0)
0162 #define PBINMXCTR_MEMFMT_DMIX (0x4 << 0)
0163 #define PBINMXCTR_MEMFMT_1CH (0x5 << 0)
0164 #define PBINMXCTR_MEMFMT_16LR (0x6 << 0)
0165 #define PBINMXCTR_MEMFMT_7_1CH (0x7 << 0)
0166 #define PBINMXCTR_MEMFMT_7_1CH_DMIX (0x8 << 0)
0167 #define PBINMXCTR_MEMFMT_STREAM (0xf << 0)
0168 #define PBINMXPAUSECTR0(n) (0x20204 + 0x40 * (n))
0169 #define PBINMXPAUSECTR1(n) (0x20208 + 0x40 * (n))
0170
0171
0172 #define AOUTFADECTR0 0x40020
0173 #define AOUTENCTR0 0x40040
0174 #define AOUTENCTR1 0x40044
0175 #define AOUTENCTR2 0x40048
0176 #define AOUTRSTCTR0 0x40060
0177 #define AOUTRSTCTR1 0x40064
0178 #define AOUTRSTCTR2 0x40068
0179 #define AOUTSRCRSTCTR0 0x400c0
0180 #define AOUTSRCRSTCTR1 0x400c4
0181 #define AOUTSRCRSTCTR2 0x400c8
0182
0183
0184 #define OPORT_SLOT_MAX 5
0185
0186
0187 #define OPORTMXCTR1(n) (0x42000 + 0x400 * (n))
0188 #define OPORTMXCTR1_I2SLRSEL_MASK (0x11 << 10)
0189 #define OPORTMXCTR1_I2SLRSEL_RIGHT (0x00 << 10)
0190 #define OPORTMXCTR1_I2SLRSEL_LEFT (0x01 << 10)
0191 #define OPORTMXCTR1_I2SLRSEL_I2S (0x11 << 10)
0192 #define OPORTMXCTR1_OUTBITSEL_MASK (0x800003U << 8)
0193 #define OPORTMXCTR1_OUTBITSEL_32 (0x800000U << 8)
0194 #define OPORTMXCTR1_OUTBITSEL_24 (0x000000U << 8)
0195 #define OPORTMXCTR1_OUTBITSEL_20 (0x000001U << 8)
0196 #define OPORTMXCTR1_OUTBITSEL_16 (0x000002U << 8)
0197 #define OPORTMXCTR1_FSSEL_MASK GENMASK(3, 0)
0198 #define OPORTMXCTR1_FSSEL_48 (0x0 << 0)
0199 #define OPORTMXCTR1_FSSEL_96 (0x1 << 0)
0200 #define OPORTMXCTR1_FSSEL_192 (0x2 << 0)
0201 #define OPORTMXCTR1_FSSEL_32 (0x3 << 0)
0202 #define OPORTMXCTR1_FSSEL_44_1 (0x4 << 0)
0203 #define OPORTMXCTR1_FSSEL_88_2 (0x5 << 0)
0204 #define OPORTMXCTR1_FSSEL_176_4 (0x6 << 0)
0205 #define OPORTMXCTR1_FSSEL_16 (0x8 << 0)
0206 #define OPORTMXCTR1_FSSEL_22_05 (0x9 << 0)
0207 #define OPORTMXCTR1_FSSEL_24 (0xa << 0)
0208 #define OPORTMXCTR1_FSSEL_8 (0xb << 0)
0209 #define OPORTMXCTR1_FSSEL_11_025 (0xc << 0)
0210 #define OPORTMXCTR1_FSSEL_12 (0xd << 0)
0211 #define OPORTMXCTR2(n) (0x42004 + 0x400 * (n))
0212 #define OPORTMXCTR2_ACLKSEL_MASK GENMASK(19, 16)
0213 #define OPORTMXCTR2_ACLKSEL_A1 (0x0 << 16)
0214 #define OPORTMXCTR2_ACLKSEL_F1 (0x1 << 16)
0215 #define OPORTMXCTR2_ACLKSEL_A2 (0x2 << 16)
0216 #define OPORTMXCTR2_ACLKSEL_F2 (0x3 << 16)
0217 #define OPORTMXCTR2_ACLKSEL_A2PLL (0x4 << 16)
0218 #define OPORTMXCTR2_ACLKSEL_RX1 (0x5 << 16)
0219 #define OPORTMXCTR2_ACLKSEL_RX2 (0x6 << 16)
0220 #define OPORTMXCTR2_MSSEL_MASK BIT(15)
0221 #define OPORTMXCTR2_MSSEL_SLAVE (0x0 << 15)
0222 #define OPORTMXCTR2_MSSEL_MASTER (0x1 << 15)
0223 #define OPORTMXCTR2_EXTLSIFSSEL_MASK BIT(14)
0224 #define OPORTMXCTR2_EXTLSIFSSEL_36 (0x0 << 14)
0225 #define OPORTMXCTR2_EXTLSIFSSEL_24 (0x1 << 14)
0226 #define OPORTMXCTR2_DACCKSEL_MASK GENMASK(9, 8)
0227 #define OPORTMXCTR2_DACCKSEL_1_2 (0x0 << 8)
0228 #define OPORTMXCTR2_DACCKSEL_1_3 (0x1 << 8)
0229 #define OPORTMXCTR2_DACCKSEL_1_1 (0x2 << 8)
0230 #define OPORTMXCTR2_DACCKSEL_2_3 (0x3 << 8)
0231 #define OPORTMXCTR3(n) (0x42008 + 0x400 * (n))
0232 #define OPORTMXCTR3_IECTHUR_MASK BIT(19)
0233 #define OPORTMXCTR3_IECTHUR_IECOUT (0x0 << 19)
0234 #define OPORTMXCTR3_IECTHUR_IECIN (0x1 << 19)
0235 #define OPORTMXCTR3_SRCSEL_MASK GENMASK(18, 16)
0236 #define OPORTMXCTR3_SRCSEL_PCM (0x0 << 16)
0237 #define OPORTMXCTR3_SRCSEL_STREAM (0x1 << 16)
0238 #define OPORTMXCTR3_SRCSEL_CDDTS (0x2 << 16)
0239 #define OPORTMXCTR3_VALID_MASK BIT(12)
0240 #define OPORTMXCTR3_VALID_PCM (0x0 << 12)
0241 #define OPORTMXCTR3_VALID_STREAM (0x1 << 12)
0242 #define OPORTMXCTR3_PMSEL_MASK BIT(3)
0243 #define OPORTMXCTR3_PMSEL_MUTE (0x0 << 3)
0244 #define OPORTMXCTR3_PMSEL_PAUSE (0x1 << 3)
0245 #define OPORTMXCTR3_PMSW_MASK BIT(2)
0246 #define OPORTMXCTR3_PMSW_MUTE_OFF (0x0 << 2)
0247 #define OPORTMXCTR3_PMSW_MUTE_ON (0x1 << 2)
0248 #define OPORTMXSRC1CTR(n) (0x4200c + 0x400 * (n))
0249 #define OPORTMXSRC1CTR_FSIIPNUM_SHIFT (24)
0250 #define OPORTMXSRC1CTR_THMODE_MASK BIT(23)
0251 #define OPORTMXSRC1CTR_THMODE_SRC (0x0 << 23)
0252 #define OPORTMXSRC1CTR_THMODE_BYPASS (0x1 << 23)
0253 #define OPORTMXSRC1CTR_LOCK_MASK BIT(16)
0254 #define OPORTMXSRC1CTR_LOCK_UNLOCK (0x0 << 16)
0255 #define OPORTMXSRC1CTR_LOCK_LOCK (0x1 << 16)
0256 #define OPORTMXSRC1CTR_SRCPATH_MASK BIT(15)
0257 #define OPORTMXSRC1CTR_SRCPATH_BYPASS (0x0 << 15)
0258 #define OPORTMXSRC1CTR_SRCPATH_CALC (0x1 << 15)
0259 #define OPORTMXSRC1CTR_SYNC_MASK BIT(14)
0260 #define OPORTMXSRC1CTR_SYNC_ASYNC (0x0 << 14)
0261 #define OPORTMXSRC1CTR_SYNC_SYNC (0x1 << 14)
0262 #define OPORTMXSRC1CTR_FSOCK_MASK GENMASK(11, 10)
0263 #define OPORTMXSRC1CTR_FSOCK_44_1 (0x0 << 10)
0264 #define OPORTMXSRC1CTR_FSOCK_48 (0x1 << 10)
0265 #define OPORTMXSRC1CTR_FSOCK_32 (0x2 << 10)
0266 #define OPORTMXSRC1CTR_FSICK_MASK GENMASK(9, 8)
0267 #define OPORTMXSRC1CTR_FSICK_44_1 (0x0 << 8)
0268 #define OPORTMXSRC1CTR_FSICK_48 (0x1 << 8)
0269 #define OPORTMXSRC1CTR_FSICK_32 (0x2 << 8)
0270 #define OPORTMXSRC1CTR_FSIIPSEL_MASK GENMASK(5, 4)
0271 #define OPORTMXSRC1CTR_FSIIPSEL_INNER (0x0 << 4)
0272 #define OPORTMXSRC1CTR_FSIIPSEL_OUTER (0x1 << 4)
0273 #define OPORTMXSRC1CTR_FSISEL_MASK GENMASK(3, 0)
0274 #define OPORTMXSRC1CTR_FSISEL_ACLK (0x0 << 0)
0275 #define OPORTMXSRC1CTR_FSISEL_DD (0x1 << 0)
0276 #define OPORTMXDSDMUTEDAT(n) (0x42020 + 0x400 * (n))
0277 #define OPORTMXDXDFREQMODE(n) (0x42024 + 0x400 * (n))
0278 #define OPORTMXDSDSEL(n) (0x42028 + 0x400 * (n))
0279 #define OPORTMXDSDPORT(n) (0x4202c + 0x400 * (n))
0280 #define OPORTMXACLKSEL0EX(n) (0x42030 + 0x400 * (n))
0281 #define OPORTMXPATH(n) (0x42040 + 0x400 * (n))
0282 #define OPORTMXSYNC(n) (0x42044 + 0x400 * (n))
0283 #define OPORTMXREPET(n) (0x42050 + 0x400 * (n))
0284 #define OPORTMXREPET_STRLENGTH_AC3 SBF_(IEC61937_FRM_STR_AC3, 16)
0285 #define OPORTMXREPET_STRLENGTH_MPA SBF_(IEC61937_FRM_STR_MPA, 16)
0286 #define OPORTMXREPET_STRLENGTH_MP3 SBF_(IEC61937_FRM_STR_MP3, 16)
0287 #define OPORTMXREPET_STRLENGTH_DTS1 SBF_(IEC61937_FRM_STR_DTS1, 16)
0288 #define OPORTMXREPET_STRLENGTH_DTS2 SBF_(IEC61937_FRM_STR_DTS2, 16)
0289 #define OPORTMXREPET_STRLENGTH_DTS3 SBF_(IEC61937_FRM_STR_DTS3, 16)
0290 #define OPORTMXREPET_STRLENGTH_AAC SBF_(IEC61937_FRM_STR_AAC, 16)
0291 #define OPORTMXREPET_PMLENGTH_AC3 SBF_(IEC61937_FRM_PAU_AC3, 0)
0292 #define OPORTMXREPET_PMLENGTH_MPA SBF_(IEC61937_FRM_PAU_MPA, 0)
0293 #define OPORTMXREPET_PMLENGTH_MP3 SBF_(IEC61937_FRM_PAU_MP3, 0)
0294 #define OPORTMXREPET_PMLENGTH_DTS1 SBF_(IEC61937_FRM_PAU_DTS1, 0)
0295 #define OPORTMXREPET_PMLENGTH_DTS2 SBF_(IEC61937_FRM_PAU_DTS2, 0)
0296 #define OPORTMXREPET_PMLENGTH_DTS3 SBF_(IEC61937_FRM_PAU_DTS3, 0)
0297 #define OPORTMXREPET_PMLENGTH_AAC SBF_(IEC61937_FRM_PAU_AAC, 0)
0298 #define OPORTMXPAUDAT(n) (0x42054 + 0x400 * (n))
0299 #define OPORTMXPAUDAT_PAUSEPC_CMN (IEC61937_PC_PAUSE << 16)
0300 #define OPORTMXPAUDAT_PAUSEPD_AC3 (IEC61937_FRM_PAU_AC3 * 4)
0301 #define OPORTMXPAUDAT_PAUSEPD_MPA (IEC61937_FRM_PAU_MPA * 4)
0302 #define OPORTMXPAUDAT_PAUSEPD_MP3 (IEC61937_FRM_PAU_MP3 * 4)
0303 #define OPORTMXPAUDAT_PAUSEPD_DTS1 (IEC61937_FRM_PAU_DTS1 * 4)
0304 #define OPORTMXPAUDAT_PAUSEPD_DTS2 (IEC61937_FRM_PAU_DTS2 * 4)
0305 #define OPORTMXPAUDAT_PAUSEPD_DTS3 (IEC61937_FRM_PAU_DTS3 * 4)
0306 #define OPORTMXPAUDAT_PAUSEPD_AAC (IEC61937_FRM_PAU_AAC * 4)
0307 #define OPORTMXRATE_I(n) (0x420e4 + 0x400 * (n))
0308 #define OPORTMXRATE_I_EQU_MASK BIT(31)
0309 #define OPORTMXRATE_I_EQU_NOTEQUAL (0x0 << 31)
0310 #define OPORTMXRATE_I_EQU_EQUAL (0x1 << 31)
0311 #define OPORTMXRATE_I_SRCBPMD_MASK BIT(29)
0312 #define OPORTMXRATE_I_SRCBPMD_BYPASS (0x0 << 29)
0313 #define OPORTMXRATE_I_SRCBPMD_SRC (0x1 << 29)
0314 #define OPORTMXRATE_I_LRCKSTP_MASK BIT(24)
0315 #define OPORTMXRATE_I_LRCKSTP_START (0x0 << 24)
0316 #define OPORTMXRATE_I_LRCKSTP_STOP (0x1 << 24)
0317 #define OPORTMXRATE_I_ACLKSRC_MASK GENMASK(15, 12)
0318 #define OPORTMXRATE_I_ACLKSRC_APLL (0x0 << 12)
0319 #define OPORTMXRATE_I_ACLKSRC_USB (0x1 << 12)
0320 #define OPORTMXRATE_I_ACLKSRC_HSC (0x3 << 12)
0321
0322 #define OPORTMXRATE_I_ACLKSEL_MASK GENMASK(11, 8)
0323 #define OPORTMXRATE_I_ACLKSEL_APLLA1 (0x0 << 8)
0324 #define OPORTMXRATE_I_ACLKSEL_APLLF1 (0x1 << 8)
0325 #define OPORTMXRATE_I_ACLKSEL_APLLA2 (0x2 << 8)
0326 #define OPORTMXRATE_I_ACLKSEL_APLLF2 (0x3 << 8)
0327 #define OPORTMXRATE_I_ACLKSEL_APLL (0x4 << 8)
0328 #define OPORTMXRATE_I_ACLKSEL_HDMI1 (0x5 << 8)
0329 #define OPORTMXRATE_I_ACLKSEL_HDMI2 (0x6 << 8)
0330 #define OPORTMXRATE_I_ACLKSEL_AI1ADCCK (0xc << 8)
0331 #define OPORTMXRATE_I_ACLKSEL_AI2ADCCK (0xd << 8)
0332 #define OPORTMXRATE_I_ACLKSEL_AI3ADCCK (0xe << 8)
0333 #define OPORTMXRATE_I_MCKSEL_MASK GENMASK(7, 4)
0334 #define OPORTMXRATE_I_MCKSEL_36 (0x0 << 4)
0335 #define OPORTMXRATE_I_MCKSEL_33 (0x1 << 4)
0336 #define OPORTMXRATE_I_MCKSEL_HSC27 (0xb << 4)
0337 #define OPORTMXRATE_I_FSSEL_MASK GENMASK(3, 0)
0338 #define OPORTMXRATE_I_FSSEL_48 (0x0 << 0)
0339 #define OPORTMXRATE_I_FSSEL_96 (0x1 << 0)
0340 #define OPORTMXRATE_I_FSSEL_192 (0x2 << 0)
0341 #define OPORTMXRATE_I_FSSEL_32 (0x3 << 0)
0342 #define OPORTMXRATE_I_FSSEL_44_1 (0x4 << 0)
0343 #define OPORTMXRATE_I_FSSEL_88_2 (0x5 << 0)
0344 #define OPORTMXRATE_I_FSSEL_176_4 (0x6 << 0)
0345 #define OPORTMXRATE_I_FSSEL_16 (0x8 << 0)
0346 #define OPORTMXRATE_I_FSSEL_22_05 (0x9 << 0)
0347 #define OPORTMXRATE_I_FSSEL_24 (0xa << 0)
0348 #define OPORTMXRATE_I_FSSEL_8 (0xb << 0)
0349 #define OPORTMXRATE_I_FSSEL_11_025 (0xc << 0)
0350 #define OPORTMXRATE_I_FSSEL_12 (0xd << 0)
0351 #define OPORTMXEXNOE(n) (0x420f0 + 0x400 * (n))
0352 #define OPORTMXMASK(n) (0x420f8 + 0x400 * (n))
0353 #define OPORTMXMASK_IUDXMSK_MASK GENMASK(28, 24)
0354 #define OPORTMXMASK_IUDXMSK_ON (0x00 << 24)
0355 #define OPORTMXMASK_IUDXMSK_OFF (0x1f << 24)
0356 #define OPORTMXMASK_IUXCKMSK_MASK GENMASK(18, 16)
0357 #define OPORTMXMASK_IUXCKMSK_ON (0x0 << 16)
0358 #define OPORTMXMASK_IUXCKMSK_OFF (0x7 << 16)
0359 #define OPORTMXMASK_DXMSK_MASK GENMASK(12, 8)
0360 #define OPORTMXMASK_DXMSK_ON (0x00 << 8)
0361 #define OPORTMXMASK_DXMSK_OFF (0x1f << 8)
0362 #define OPORTMXMASK_XCKMSK_MASK GENMASK(2, 0)
0363 #define OPORTMXMASK_XCKMSK_ON (0x0 << 0)
0364 #define OPORTMXMASK_XCKMSK_OFF (0x7 << 0)
0365 #define OPORTMXDEBUG(n) (0x420fc + 0x400 * (n))
0366 #define OPORTMXTYVOLPARA1(n, m) (0x42100 + 0x400 * (n) + 0x20 * (m))
0367 #define OPORTMXTYVOLPARA1_SLOPEU_MASK GENMASK(31, 16)
0368 #define OPORTMXTYVOLPARA2(n, m) (0x42104 + 0x400 * (n) + 0x20 * (m))
0369 #define OPORTMXTYVOLPARA2_FADE_MASK GENMASK(17, 16)
0370 #define OPORTMXTYVOLPARA2_FADE_NOOP (0x0 << 16)
0371 #define OPORTMXTYVOLPARA2_FADE_FADEOUT (0x1 << 16)
0372 #define OPORTMXTYVOLPARA2_FADE_FADEIN (0x2 << 16)
0373 #define OPORTMXTYVOLPARA2_TARGET_MASK GENMASK(15, 0)
0374 #define OPORTMXTYVOLGAINSTATUS(n, m) (0x42108 + 0x400 * (n) + 0x20 * (m))
0375 #define OPORTMXTYVOLGAINSTATUS_CUR_MASK GENMASK(15, 0)
0376 #define OPORTMXTYSLOTCTR(n, m) (0x42114 + 0x400 * (n) + 0x20 * (m))
0377 #define OPORTMXTYSLOTCTR_MODE BIT(15)
0378 #define OPORTMXTYSLOTCTR_SLOTSEL_MASK GENMASK(11, 8)
0379 #define OPORTMXTYSLOTCTR_SLOTSEL_SLOT0 (0x8 << 8)
0380 #define OPORTMXTYSLOTCTR_SLOTSEL_SLOT1 (0x9 << 8)
0381 #define OPORTMXTYSLOTCTR_SLOTSEL_SLOT2 (0xa << 8)
0382 #define OPORTMXTYSLOTCTR_SLOTSEL_SLOT3 (0xb << 8)
0383 #define OPORTMXTYSLOTCTR_SLOTSEL_SLOT4 (0xc << 8)
0384 #define OPORTMXT0SLOTCTR_MUTEOFF_MASK BIT(1)
0385 #define OPORTMXT0SLOTCTR_MUTEOFF_MUTE (0x0 << 1)
0386 #define OPORTMXT0SLOTCTR_MUTEOFF_UNMUTE (0x1 << 1)
0387 #define OPORTMXTYRSTCTR(n, m) (0x4211c + 0x400 * (n) + 0x20 * (m))
0388 #define OPORTMXT0RSTCTR_RST_MASK BIT(1)
0389 #define OPORTMXT0RSTCTR_RST_OFF (0x0 << 1)
0390 #define OPORTMXT0RSTCTR_RST_ON (0x1 << 1)
0391
0392 #define SBF_(frame, shift) (((frame) * 2 - 1) << shift)
0393
0394
0395 #define PBOUTMXCTR0(n) (0x40200 + 0x40 * (n))
0396 #define PBOUTMXCTR0_ENDIAN_MASK GENMASK(5, 4)
0397 #define PBOUTMXCTR0_ENDIAN_3210 (0x0 << 4)
0398 #define PBOUTMXCTR0_ENDIAN_0123 (0x1 << 4)
0399 #define PBOUTMXCTR0_ENDIAN_1032 (0x2 << 4)
0400 #define PBOUTMXCTR0_ENDIAN_2301 (0x3 << 4)
0401 #define PBOUTMXCTR0_MEMFMT_MASK GENMASK(3, 0)
0402 #define PBOUTMXCTR0_MEMFMT_10CH (0x0 << 0)
0403 #define PBOUTMXCTR0_MEMFMT_8CH (0x1 << 0)
0404 #define PBOUTMXCTR0_MEMFMT_6CH (0x2 << 0)
0405 #define PBOUTMXCTR0_MEMFMT_4CH (0x3 << 0)
0406 #define PBOUTMXCTR0_MEMFMT_2CH (0x4 << 0)
0407 #define PBOUTMXCTR0_MEMFMT_STREAM (0x5 << 0)
0408 #define PBOUTMXCTR0_MEMFMT_1CH (0x6 << 0)
0409 #define PBOUTMXCTR1(n) (0x40204 + 0x40 * (n))
0410 #define PBOUTMXINTCTR(n) (0x40208 + 0x40 * (n))
0411
0412
0413 #define CDA2D_STRT0 0x10000
0414 #define CDA2D_STRT0_STOP_MASK BIT(31)
0415 #define CDA2D_STRT0_STOP_START (0x0 << 31)
0416 #define CDA2D_STRT0_STOP_STOP (0x1 << 31)
0417 #define CDA2D_STAT0 0x10020
0418 #define CDA2D_TEST 0x100a0
0419 #define CDA2D_TEST_DDR_MODE_MASK GENMASK(3, 2)
0420 #define CDA2D_TEST_DDR_MODE_EXTON0 (0x0 << 2)
0421 #define CDA2D_TEST_DDR_MODE_EXTOFF1 (0x3 << 2)
0422 #define CDA2D_STRTADRSLOAD 0x100b0
0423
0424 #define CDA2D_CHMXCTRL1(n) (0x12000 + 0x80 * (n))
0425 #define CDA2D_CHMXCTRL1_INDSIZE_MASK BIT(0)
0426 #define CDA2D_CHMXCTRL1_INDSIZE_FINITE (0x0 << 0)
0427 #define CDA2D_CHMXCTRL1_INDSIZE_INFINITE (0x1 << 0)
0428 #define CDA2D_CHMXCTRL2(n) (0x12004 + 0x80 * (n))
0429 #define CDA2D_CHMXSRCAMODE(n) (0x12020 + 0x80 * (n))
0430 #define CDA2D_CHMXDSTAMODE(n) (0x12024 + 0x80 * (n))
0431 #define CDA2D_CHMXAMODE_ENDIAN_MASK GENMASK(17, 16)
0432 #define CDA2D_CHMXAMODE_ENDIAN_3210 (0x0 << 16)
0433 #define CDA2D_CHMXAMODE_ENDIAN_0123 (0x1 << 16)
0434 #define CDA2D_CHMXAMODE_ENDIAN_1032 (0x2 << 16)
0435 #define CDA2D_CHMXAMODE_ENDIAN_2301 (0x3 << 16)
0436 #define CDA2D_CHMXAMODE_RSSEL_SHIFT (8)
0437 #define CDA2D_CHMXAMODE_AUPDT_MASK GENMASK(5, 4)
0438 #define CDA2D_CHMXAMODE_AUPDT_INC (0x0 << 4)
0439 #define CDA2D_CHMXAMODE_AUPDT_FIX (0x2 << 4)
0440 #define CDA2D_CHMXAMODE_TYPE_MASK GENMASK(3, 2)
0441 #define CDA2D_CHMXAMODE_TYPE_NORMAL (0x0 << 2)
0442 #define CDA2D_CHMXAMODE_TYPE_RING (0x1 << 2)
0443 #define CDA2D_CHMXSRCSTRTADRS(n) (0x12030 + 0x80 * (n))
0444 #define CDA2D_CHMXSRCSTRTADRSU(n) (0x12034 + 0x80 * (n))
0445 #define CDA2D_CHMXDSTSTRTADRS(n) (0x12038 + 0x80 * (n))
0446 #define CDA2D_CHMXDSTSTRTADRSU(n) (0x1203c + 0x80 * (n))
0447
0448
0449 #define CDA2D_RBFLUSH0 0x10040
0450 #define CDA2D_RBADRSLOAD 0x100b4
0451 #define CDA2D_RDPTRLOAD 0x100b8
0452 #define CDA2D_RDPTRLOAD_LSFLAG_LOAD (0x0 << 31)
0453 #define CDA2D_RDPTRLOAD_LSFLAG_STORE (0x1 << 31)
0454 #define CDA2D_WRPTRLOAD 0x100bc
0455 #define CDA2D_WRPTRLOAD_LSFLAG_LOAD (0x0 << 31)
0456 #define CDA2D_WRPTRLOAD_LSFLAG_STORE (0x1 << 31)
0457
0458 #define CDA2D_RBMXBGNADRS(n) (0x14000 + 0x80 * (n))
0459 #define CDA2D_RBMXBGNADRSU(n) (0x14004 + 0x80 * (n))
0460 #define CDA2D_RBMXENDADRS(n) (0x14008 + 0x80 * (n))
0461 #define CDA2D_RBMXENDADRSU(n) (0x1400c + 0x80 * (n))
0462 #define CDA2D_RBMXBTH(n) (0x14038 + 0x80 * (n))
0463 #define CDA2D_RBMXRTH(n) (0x1403c + 0x80 * (n))
0464 #define CDA2D_RBMXRDPTR(n) (0x14020 + 0x80 * (n))
0465 #define CDA2D_RBMXRDPTRU(n) (0x14024 + 0x80 * (n))
0466 #define CDA2D_RBMXWRPTR(n) (0x14028 + 0x80 * (n))
0467 #define CDA2D_RBMXWRPTRU(n) (0x1402c + 0x80 * (n))
0468 #define CDA2D_RBMXPTRU_PTRU_MASK GENMASK(1, 0)
0469 #define CDA2D_RBMXCNFG(n) (0x14030 + 0x80 * (n))
0470 #define CDA2D_RBMXIR(n) (0x14014 + 0x80 * (n))
0471 #define CDA2D_RBMXIE(n) (0x14018 + 0x80 * (n))
0472 #define CDA2D_RBMXID(n) (0x1401c + 0x80 * (n))
0473 #define CDA2D_RBMXIX_SPACE BIT(3)
0474 #define CDA2D_RBMXIX_REMAIN BIT(4)
0475
0476 #endif