/* SPDX-License-Identifier: GPL-2.0 */
/*
* Socionext UniPhier AIO ALSA driver.
*
* Copyright (c) 2016-2018 Socionext Inc.
*/
#ifndef SND_UNIPHIER_AIO_REG_H__
#define SND_UNIPHIER_AIO_REG_H__
#include <linux/bitops.h>
/* soc-glue */
#define SG_AOUTEN 0 x1c04
/* SW view */
#define A2CHNMAPCTR0(n) (0 x00000 + 0 x40 * (n))
#define A2RBNMAPCTR0(n) (0 x01000 + 0 x40 * (n))
#define A2IPORTNMAPCTR0(n) (0 x02000 + 0 x40 * (n))
#define A2IPORTNMAPCTR1(n) (0 x02004 + 0 x40 * (n))
#define A2IIFNMAPCTR0(n) (0 x03000 + 0 x40 * (n))
#define A2OPORTNMAPCTR0(n) (0 x04000 + 0 x40 * (n))
#define A2OPORTNMAPCTR1(n) (0 x04004 + 0 x40 * (n))
#define A2OPORTNMAPCTR2(n) (0 x04008 + 0 x40 * (n))
#define A2OIFNMAPCTR0(n) (0 x05000 + 0 x40 * (n))
#define A2ATNMAPCTR0(n) (0 x06000 + 0 x40 * (n))
#define MAPCTR0_EN 0 x80000000
/* CTL */
#define A2APLLCTR0 0 x07000
#define A2APLLCTR0_APLLXPOW_MASK GENMASK(3 , 0 )
#define A2APLLCTR0_APLLXPOW_PWOFF (0 x0 << 0 )
#define A2APLLCTR0_APLLXPOW_PWON (0 xf << 0 )
#define A2APLLCTR1 0 x07004
#define A2APLLCTR1_APLLX_MASK 0 x00010101
#define A2APLLCTR1_APLLX_36MHZ 0 x00000000
#define A2APLLCTR1_APLLX_33MHZ 0 x00000001
#define A2EXMCLKSEL0 0 x07030
#define A2EXMCLKSEL0_EXMCLK_MASK GENMASK(2 , 0 )
#define A2EXMCLKSEL0_EXMCLK_OUTPUT (0 x0 << 0 )
#define A2EXMCLKSEL0_EXMCLK_INPUT (0 x7 << 0 )
#define A2SSIFSW 0 x07050
#define A2CH22_2CTR 0 x07054
#define A2AIOINPUTSEL 0 x070e0
#define A2AIOINPUTSEL_RXSEL_PCMI1_MASK GENMASK(2 , 0 )
#define A2AIOINPUTSEL_RXSEL_PCMI1_HDMIRX1 (0 x2 << 0 )
#define A2AIOINPUTSEL_RXSEL_PCMI2_MASK GENMASK(6 , 4 )
#define A2AIOINPUTSEL_RXSEL_PCMI2_SIF (0 x7 << 4 )
#define A2AIOINPUTSEL_RXSEL_PCMI3_MASK GENMASK(10 , 8 )
#define A2AIOINPUTSEL_RXSEL_PCMI3_EVEA (0 x1 << 8 )
#define A2AIOINPUTSEL_RXSEL_IECI1_MASK GENMASK(14 , 12 )
#define A2AIOINPUTSEL_RXSEL_IECI1_HDMIRX1 (0 x2 << 12 )
#define A2AIOINPUTSEL_RXSEL_MASK (A2AIOINPUTSEL_RXSEL_PCMI1_MASK | \
A2AIOINPUTSEL_RXSEL_PCMI2_MASK | \
A2AIOINPUTSEL_RXSEL_PCMI3_MASK | \
A2AIOINPUTSEL_RXSEL_IECI1_HDMIRX1)
/* INTC */
#define INTCHIM(m) (0 x9028 + 0 x80 * (m))
#define INTRBIM(m) (0 x9030 + 0 x80 * (m))
#define INTCHID(m) (0 xa028 + 0 x80 * (m))
#define INTRBID(m) (0 xa030 + 0 x80 * (m))
/* AIN(PCMINN) */
#define IPORTMXCTR1(n) (0 x22000 + 0 x400 * (n))
#define IPORTMXCTR1_LRSEL_MASK GENMASK(11 , 10 )
#define IPORTMXCTR1_LRSEL_RIGHT (0 x0 << 10 )
#define IPORTMXCTR1_LRSEL_LEFT (0 x1 << 10 )
#define IPORTMXCTR1_LRSEL_I2S (0 x2 << 10 )
#define IPORTMXCTR1_OUTBITSEL_MASK (0 x800003U << 8 )
#define IPORTMXCTR1_OUTBITSEL_32 (0 x800000U << 8 )
#define IPORTMXCTR1_OUTBITSEL_24 (0 x000000U << 8 )
#define IPORTMXCTR1_OUTBITSEL_20 (0 x000001U << 8 )
#define IPORTMXCTR1_OUTBITSEL_16 (0 x000002U << 8 )
#define IPORTMXCTR1_CHSEL_MASK GENMASK(6 , 4 )
#define IPORTMXCTR1_CHSEL_ALL (0 x0 << 4 )
#define IPORTMXCTR1_CHSEL_D0_D2 (0 x1 << 4 )
#define IPORTMXCTR1_CHSEL_D0 (0 x2 << 4 )
#define IPORTMXCTR1_CHSEL_D1 (0 x3 << 4 )
#define IPORTMXCTR1_CHSEL_D2 (0 x4 << 4 )
#define IPORTMXCTR1_CHSEL_DMIX (0 x5 << 4 )
#define IPORTMXCTR1_FSSEL_MASK GENMASK(3 , 0 )
#define IPORTMXCTR1_FSSEL_48 (0 x0 << 0 )
#define IPORTMXCTR1_FSSEL_96 (0 x1 << 0 )
#define IPORTMXCTR1_FSSEL_192 (0 x2 << 0 )
#define IPORTMXCTR1_FSSEL_32 (0 x3 << 0 )
#define IPORTMXCTR1_FSSEL_44_1 (0 x4 << 0 )
#define IPORTMXCTR1_FSSEL_88_2 (0 x5 << 0 )
#define IPORTMXCTR1_FSSEL_176_4 (0 x6 << 0 )
#define IPORTMXCTR1_FSSEL_16 (0 x8 << 0 )
#define IPORTMXCTR1_FSSEL_22_05 (0 x9 << 0 )
#define IPORTMXCTR1_FSSEL_24 (0 xa << 0 )
#define IPORTMXCTR1_FSSEL_8 (0 xb << 0 )
#define IPORTMXCTR1_FSSEL_11_025 (0 xc << 0 )
#define IPORTMXCTR1_FSSEL_12 (0 xd << 0 )
#define IPORTMXCTR2(n) (0 x22004 + 0 x400 * (n))
#define IPORTMXCTR2_ACLKSEL_MASK GENMASK(19 , 16 )
#define IPORTMXCTR2_ACLKSEL_A1 (0 x0 << 16 )
#define IPORTMXCTR2_ACLKSEL_F1 (0 x1 << 16 )
#define IPORTMXCTR2_ACLKSEL_A2 (0 x2 << 16 )
#define IPORTMXCTR2_ACLKSEL_F2 (0 x3 << 16 )
#define IPORTMXCTR2_ACLKSEL_A2PLL (0 x4 << 16 )
#define IPORTMXCTR2_ACLKSEL_RX1 (0 x5 << 16 )
#define IPORTMXCTR2_ACLKSEL_RX2 (0 x6 << 16 )
#define IPORTMXCTR2_MSSEL_MASK BIT(15 )
#define IPORTMXCTR2_MSSEL_SLAVE (0 x0 << 15 )
#define IPORTMXCTR2_MSSEL_MASTER (0 x1 << 15 )
#define IPORTMXCTR2_EXTLSIFSSEL_MASK BIT(14 )
#define IPORTMXCTR2_EXTLSIFSSEL_36 (0 x0 << 14 )
#define IPORTMXCTR2_EXTLSIFSSEL_24 (0 x1 << 14 )
#define IPORTMXCTR2_DACCKSEL_MASK GENMASK(9 , 8 )
#define IPORTMXCTR2_DACCKSEL_1_2 (0 x0 << 8 )
#define IPORTMXCTR2_DACCKSEL_1_3 (0 x1 << 8 )
#define IPORTMXCTR2_DACCKSEL_1_1 (0 x2 << 8 )
#define IPORTMXCTR2_DACCKSEL_2_3 (0 x3 << 8 )
#define IPORTMXCTR2_REQEN_MASK BIT(0 )
#define IPORTMXCTR2_REQEN_DISABLE (0 x0 << 0 )
#define IPORTMXCTR2_REQEN_ENABLE (0 x1 << 0 )
#define IPORTMXCNTCTR(n) (0 x22010 + 0 x400 * (n))
#define IPORTMXCOUNTER(n) (0 x22014 + 0 x400 * (n))
#define IPORTMXCNTMONI(n) (0 x22018 + 0 x400 * (n))
#define IPORTMXACLKSEL0EX(n) (0 x22020 + 0 x400 * (n))
#define IPORTMXACLKSEL0EX_ACLKSEL0EX_MASK GENMASK(3 , 0 )
#define IPORTMXACLKSEL0EX_ACLKSEL0EX_INTERNAL (0 x0 << 0 )
#define IPORTMXACLKSEL0EX_ACLKSEL0EX_EXTERNAL (0 xf << 0 )
#define IPORTMXEXNOE(n) (0 x22070 + 0 x400 * (n))
#define IPORTMXEXNOE_PCMINOE_MASK BIT(0 )
#define IPORTMXEXNOE_PCMINOE_OUTPUT (0 x0 << 0 )
#define IPORTMXEXNOE_PCMINOE_INPUT (0 x1 << 0 )
#define IPORTMXMASK(n) (0 x22078 + 0 x400 * (n))
#define IPORTMXMASK_IUXCKMSK_MASK GENMASK(18 , 16 )
#define IPORTMXMASK_IUXCKMSK_ON (0 x0 << 16 )
#define IPORTMXMASK_IUXCKMSK_OFF (0 x7 << 16 )
#define IPORTMXMASK_XCKMSK_MASK GENMASK(2 , 0 )
#define IPORTMXMASK_XCKMSK_ON (0 x0 << 0 )
#define IPORTMXMASK_XCKMSK_OFF (0 x7 << 0 )
#define IPORTMXRSTCTR(n) (0 x2207c + 0 x400 * (n))
#define IPORTMXRSTCTR_RSTPI_MASK BIT(7 )
#define IPORTMXRSTCTR_RSTPI_RELEASE (0 x0 << 7 )
#define IPORTMXRSTCTR_RSTPI_RESET (0 x1 << 7 )
/* AIN(PBinMX) */
#define PBINMXCTR(n) (0 x20200 + 0 x40 * (n))
#define PBINMXCTR_NCONNECT_MASK BIT(15 )
#define PBINMXCTR_NCONNECT_CONNECT (0 x0 << 15 )
#define PBINMXCTR_NCONNECT_DISCONNECT (0 x1 << 15 )
#define PBINMXCTR_INOUTSEL_MASK BIT(14 )
#define PBINMXCTR_INOUTSEL_IN (0 x0 << 14 )
#define PBINMXCTR_INOUTSEL_OUT (0 x1 << 14 )
#define PBINMXCTR_PBINSEL_SHIFT (8 )
#define PBINMXCTR_ENDIAN_MASK GENMASK(5 , 4 )
#define PBINMXCTR_ENDIAN_3210 (0 x0 << 4 )
#define PBINMXCTR_ENDIAN_0123 (0 x1 << 4 )
#define PBINMXCTR_ENDIAN_1032 (0 x2 << 4 )
#define PBINMXCTR_ENDIAN_2301 (0 x3 << 4 )
#define PBINMXCTR_MEMFMT_MASK GENMASK(3 , 0 )
#define PBINMXCTR_MEMFMT_D0 (0 x0 << 0 )
#define PBINMXCTR_MEMFMT_5_1CH_DMIX (0 x1 << 0 )
#define PBINMXCTR_MEMFMT_6CH (0 x2 << 0 )
#define PBINMXCTR_MEMFMT_4CH (0 x3 << 0 )
#define PBINMXCTR_MEMFMT_DMIX (0 x4 << 0 )
#define PBINMXCTR_MEMFMT_1CH (0 x5 << 0 )
#define PBINMXCTR_MEMFMT_16LR (0 x6 << 0 )
#define PBINMXCTR_MEMFMT_7_1CH (0 x7 << 0 )
#define PBINMXCTR_MEMFMT_7_1CH_DMIX (0 x8 << 0 )
#define PBINMXCTR_MEMFMT_STREAM (0 xf << 0 )
#define PBINMXPAUSECTR0(n) (0 x20204 + 0 x40 * (n))
#define PBINMXPAUSECTR1(n) (0 x20208 + 0 x40 * (n))
/* AOUT */
#define AOUTFADECTR0 0 x40020
#define AOUTENCTR0 0 x40040
#define AOUTENCTR1 0 x40044
#define AOUTENCTR2 0 x40048
#define AOUTRSTCTR0 0 x40060
#define AOUTRSTCTR1 0 x40064
#define AOUTRSTCTR2 0 x40068
#define AOUTSRCRSTCTR0 0 x400c0
#define AOUTSRCRSTCTR1 0 x400c4
#define AOUTSRCRSTCTR2 0 x400c8
/* AOUT PCMOUT has 5 slots, slot0-3: D0-3, slot4: DMIX */
#define OPORT_SLOT_MAX 5
/* AOUT(PCMOUTN) */
#define OPORTMXCTR1(n) (0 x42000 + 0 x400 * (n))
#define OPORTMXCTR1_I2SLRSEL_MASK (0 x11 << 10 )
#define OPORTMXCTR1_I2SLRSEL_RIGHT (0 x00 << 10 )
#define OPORTMXCTR1_I2SLRSEL_LEFT (0 x01 << 10 )
#define OPORTMXCTR1_I2SLRSEL_I2S (0 x11 << 10 )
#define OPORTMXCTR1_OUTBITSEL_MASK (0 x800003U << 8 )
#define OPORTMXCTR1_OUTBITSEL_32 (0 x800000U << 8 )
#define OPORTMXCTR1_OUTBITSEL_24 (0 x000000U << 8 )
#define OPORTMXCTR1_OUTBITSEL_20 (0 x000001U << 8 )
#define OPORTMXCTR1_OUTBITSEL_16 (0 x000002U << 8 )
#define OPORTMXCTR1_FSSEL_MASK GENMASK(3 , 0 )
#define OPORTMXCTR1_FSSEL_48 (0 x0 << 0 )
#define OPORTMXCTR1_FSSEL_96 (0 x1 << 0 )
#define OPORTMXCTR1_FSSEL_192 (0 x2 << 0 )
#define OPORTMXCTR1_FSSEL_32 (0 x3 << 0 )
#define OPORTMXCTR1_FSSEL_44_1 (0 x4 << 0 )
#define OPORTMXCTR1_FSSEL_88_2 (0 x5 << 0 )
#define OPORTMXCTR1_FSSEL_176_4 (0 x6 << 0 )
#define OPORTMXCTR1_FSSEL_16 (0 x8 << 0 )
#define OPORTMXCTR1_FSSEL_22_05 (0 x9 << 0 )
#define OPORTMXCTR1_FSSEL_24 (0 xa << 0 )
#define OPORTMXCTR1_FSSEL_8 (0 xb << 0 )
#define OPORTMXCTR1_FSSEL_11_025 (0 xc << 0 )
#define OPORTMXCTR1_FSSEL_12 (0 xd << 0 )
#define OPORTMXCTR2(n) (0 x42004 + 0 x400 * (n))
#define OPORTMXCTR2_ACLKSEL_MASK GENMASK(19 , 16 )
#define OPORTMXCTR2_ACLKSEL_A1 (0 x0 << 16 )
#define OPORTMXCTR2_ACLKSEL_F1 (0 x1 << 16 )
#define OPORTMXCTR2_ACLKSEL_A2 (0 x2 << 16 )
#define OPORTMXCTR2_ACLKSEL_F2 (0 x3 << 16 )
#define OPORTMXCTR2_ACLKSEL_A2PLL (0 x4 << 16 )
#define OPORTMXCTR2_ACLKSEL_RX1 (0 x5 << 16 )
#define OPORTMXCTR2_ACLKSEL_RX2 (0 x6 << 16 )
#define OPORTMXCTR2_MSSEL_MASK BIT(15 )
#define OPORTMXCTR2_MSSEL_SLAVE (0 x0 << 15 )
#define OPORTMXCTR2_MSSEL_MASTER (0 x1 << 15 )
#define OPORTMXCTR2_EXTLSIFSSEL_MASK BIT(14 )
#define OPORTMXCTR2_EXTLSIFSSEL_36 (0 x0 << 14 )
#define OPORTMXCTR2_EXTLSIFSSEL_24 (0 x1 << 14 )
#define OPORTMXCTR2_DACCKSEL_MASK GENMASK(9 , 8 )
#define OPORTMXCTR2_DACCKSEL_1_2 (0 x0 << 8 )
#define OPORTMXCTR2_DACCKSEL_1_3 (0 x1 << 8 )
#define OPORTMXCTR2_DACCKSEL_1_1 (0 x2 << 8 )
#define OPORTMXCTR2_DACCKSEL_2_3 (0 x3 << 8 )
#define OPORTMXCTR3(n) (0 x42008 + 0 x400 * (n))
#define OPORTMXCTR3_IECTHUR_MASK BIT(19 )
#define OPORTMXCTR3_IECTHUR_IECOUT (0 x0 << 19 )
#define OPORTMXCTR3_IECTHUR_IECIN (0 x1 << 19 )
#define OPORTMXCTR3_SRCSEL_MASK GENMASK(18 , 16 )
#define OPORTMXCTR3_SRCSEL_PCM (0 x0 << 16 )
#define OPORTMXCTR3_SRCSEL_STREAM (0 x1 << 16 )
#define OPORTMXCTR3_SRCSEL_CDDTS (0 x2 << 16 )
#define OPORTMXCTR3_VALID_MASK BIT(12 )
#define OPORTMXCTR3_VALID_PCM (0 x0 << 12 )
#define OPORTMXCTR3_VALID_STREAM (0 x1 << 12 )
#define OPORTMXCTR3_PMSEL_MASK BIT(3 )
#define OPORTMXCTR3_PMSEL_MUTE (0 x0 << 3 )
#define OPORTMXCTR3_PMSEL_PAUSE (0 x1 << 3 )
#define OPORTMXCTR3_PMSW_MASK BIT(2 )
#define OPORTMXCTR3_PMSW_MUTE_OFF (0 x0 << 2 )
#define OPORTMXCTR3_PMSW_MUTE_ON (0 x1 << 2 )
#define OPORTMXSRC1CTR(n) (0 x4200c + 0 x400 * (n))
#define OPORTMXSRC1CTR_FSIIPNUM_SHIFT (24 )
#define OPORTMXSRC1CTR_THMODE_MASK BIT(23 )
#define OPORTMXSRC1CTR_THMODE_SRC (0 x0 << 23 )
#define OPORTMXSRC1CTR_THMODE_BYPASS (0 x1 << 23 )
#define OPORTMXSRC1CTR_LOCK_MASK BIT(16 )
#define OPORTMXSRC1CTR_LOCK_UNLOCK (0 x0 << 16 )
#define OPORTMXSRC1CTR_LOCK_LOCK (0 x1 << 16 )
#define OPORTMXSRC1CTR_SRCPATH_MASK BIT(15 )
#define OPORTMXSRC1CTR_SRCPATH_BYPASS (0 x0 << 15 )
#define OPORTMXSRC1CTR_SRCPATH_CALC (0 x1 << 15 )
#define OPORTMXSRC1CTR_SYNC_MASK BIT(14 )
#define OPORTMXSRC1CTR_SYNC_ASYNC (0 x0 << 14 )
#define OPORTMXSRC1CTR_SYNC_SYNC (0 x1 << 14 )
#define OPORTMXSRC1CTR_FSOCK_MASK GENMASK(11 , 10 )
#define OPORTMXSRC1CTR_FSOCK_44_1 (0 x0 << 10 )
#define OPORTMXSRC1CTR_FSOCK_48 (0 x1 << 10 )
#define OPORTMXSRC1CTR_FSOCK_32 (0 x2 << 10 )
#define OPORTMXSRC1CTR_FSICK_MASK GENMASK(9 , 8 )
#define OPORTMXSRC1CTR_FSICK_44_1 (0 x0 << 8 )
#define OPORTMXSRC1CTR_FSICK_48 (0 x1 << 8 )
#define OPORTMXSRC1CTR_FSICK_32 (0 x2 << 8 )
#define OPORTMXSRC1CTR_FSIIPSEL_MASK GENMASK(5 , 4 )
#define OPORTMXSRC1CTR_FSIIPSEL_INNER (0 x0 << 4 )
#define OPORTMXSRC1CTR_FSIIPSEL_OUTER (0 x1 << 4 )
#define OPORTMXSRC1CTR_FSISEL_MASK GENMASK(3 , 0 )
#define OPORTMXSRC1CTR_FSISEL_ACLK (0 x0 << 0 )
#define OPORTMXSRC1CTR_FSISEL_DD (0 x1 << 0 )
#define OPORTMXDSDMUTEDAT(n) (0 x42020 + 0 x400 * (n))
#define OPORTMXDXDFREQMODE(n) (0 x42024 + 0 x400 * (n))
#define OPORTMXDSDSEL(n) (0 x42028 + 0 x400 * (n))
#define OPORTMXDSDPORT(n) (0 x4202c + 0 x400 * (n))
#define OPORTMXACLKSEL0EX(n) (0 x42030 + 0 x400 * (n))
#define OPORTMXPATH(n) (0 x42040 + 0 x400 * (n))
#define OPORTMXSYNC(n) (0 x42044 + 0 x400 * (n))
#define OPORTMXREPET(n) (0 x42050 + 0 x400 * (n))
#define OPORTMXREPET_STRLENGTH_AC3 SBF_(IEC61937_FRM_STR_AC3, 16 )
#define OPORTMXREPET_STRLENGTH_MPA SBF_(IEC61937_FRM_STR_MPA, 16 )
#define OPORTMXREPET_STRLENGTH_MP3 SBF_(IEC61937_FRM_STR_MP3, 16 )
#define OPORTMXREPET_STRLENGTH_DTS1 SBF_(IEC61937_FRM_STR_DTS1, 16 )
#define OPORTMXREPET_STRLENGTH_DTS2 SBF_(IEC61937_FRM_STR_DTS2, 16 )
#define OPORTMXREPET_STRLENGTH_DTS3 SBF_(IEC61937_FRM_STR_DTS3, 16 )
#define OPORTMXREPET_STRLENGTH_AAC SBF_(IEC61937_FRM_STR_AAC, 16 )
#define OPORTMXREPET_PMLENGTH_AC3 SBF_(IEC61937_FRM_PAU_AC3, 0 )
#define OPORTMXREPET_PMLENGTH_MPA SBF_(IEC61937_FRM_PAU_MPA, 0 )
#define OPORTMXREPET_PMLENGTH_MP3 SBF_(IEC61937_FRM_PAU_MP3, 0 )
#define OPORTMXREPET_PMLENGTH_DTS1 SBF_(IEC61937_FRM_PAU_DTS1, 0 )
#define OPORTMXREPET_PMLENGTH_DTS2 SBF_(IEC61937_FRM_PAU_DTS2, 0 )
#define OPORTMXREPET_PMLENGTH_DTS3 SBF_(IEC61937_FRM_PAU_DTS3, 0 )
#define OPORTMXREPET_PMLENGTH_AAC SBF_(IEC61937_FRM_PAU_AAC, 0 )
#define OPORTMXPAUDAT(n) (0 x42054 + 0 x400 * (n))
#define OPORTMXPAUDAT_PAUSEPC_CMN (IEC61937_PC_PAUSE << 16 )
#define OPORTMXPAUDAT_PAUSEPD_AC3 (IEC61937_FRM_PAU_AC3 * 4 )
#define OPORTMXPAUDAT_PAUSEPD_MPA (IEC61937_FRM_PAU_MPA * 4 )
#define OPORTMXPAUDAT_PAUSEPD_MP3 (IEC61937_FRM_PAU_MP3 * 4 )
#define OPORTMXPAUDAT_PAUSEPD_DTS1 (IEC61937_FRM_PAU_DTS1 * 4 )
#define OPORTMXPAUDAT_PAUSEPD_DTS2 (IEC61937_FRM_PAU_DTS2 * 4 )
#define OPORTMXPAUDAT_PAUSEPD_DTS3 (IEC61937_FRM_PAU_DTS3 * 4 )
#define OPORTMXPAUDAT_PAUSEPD_AAC (IEC61937_FRM_PAU_AAC * 4 )
#define OPORTMXRATE_I(n) (0 x420e4 + 0 x400 * (n))
#define OPORTMXRATE_I_EQU_MASK BIT(31 )
#define OPORTMXRATE_I_EQU_NOTEQUAL (0 x0 << 31 )
#define OPORTMXRATE_I_EQU_EQUAL (0 x1 << 31 )
#define OPORTMXRATE_I_SRCBPMD_MASK BIT(29 )
#define OPORTMXRATE_I_SRCBPMD_BYPASS (0 x0 << 29 )
#define OPORTMXRATE_I_SRCBPMD_SRC (0 x1 << 29 )
#define OPORTMXRATE_I_LRCKSTP_MASK BIT(24 )
#define OPORTMXRATE_I_LRCKSTP_START (0 x0 << 24 )
#define OPORTMXRATE_I_LRCKSTP_STOP (0 x1 << 24 )
#define OPORTMXRATE_I_ACLKSRC_MASK GENMASK(15 , 12 )
#define OPORTMXRATE_I_ACLKSRC_APLL (0 x0 << 12 )
#define OPORTMXRATE_I_ACLKSRC_USB (0 x1 << 12 )
#define OPORTMXRATE_I_ACLKSRC_HSC (0 x3 << 12 )
/* if OPORTMXRATE_I_ACLKSRC_APLL */
#define OPORTMXRATE_I_ACLKSEL_MASK GENMASK(11 , 8 )
#define OPORTMXRATE_I_ACLKSEL_APLLA1 (0 x0 << 8 )
#define OPORTMXRATE_I_ACLKSEL_APLLF1 (0 x1 << 8 )
#define OPORTMXRATE_I_ACLKSEL_APLLA2 (0 x2 << 8 )
#define OPORTMXRATE_I_ACLKSEL_APLLF2 (0 x3 << 8 )
#define OPORTMXRATE_I_ACLKSEL_APLL (0 x4 << 8 )
#define OPORTMXRATE_I_ACLKSEL_HDMI1 (0 x5 << 8 )
#define OPORTMXRATE_I_ACLKSEL_HDMI2 (0 x6 << 8 )
#define OPORTMXRATE_I_ACLKSEL_AI1ADCCK (0 xc << 8 )
#define OPORTMXRATE_I_ACLKSEL_AI2ADCCK (0 xd << 8 )
#define OPORTMXRATE_I_ACLKSEL_AI3ADCCK (0 xe << 8 )
#define OPORTMXRATE_I_MCKSEL_MASK GENMASK(7 , 4 )
#define OPORTMXRATE_I_MCKSEL_36 (0 x0 << 4 )
#define OPORTMXRATE_I_MCKSEL_33 (0 x1 << 4 )
#define OPORTMXRATE_I_MCKSEL_HSC27 (0 xb << 4 )
#define OPORTMXRATE_I_FSSEL_MASK GENMASK(3 , 0 )
#define OPORTMXRATE_I_FSSEL_48 (0 x0 << 0 )
#define OPORTMXRATE_I_FSSEL_96 (0 x1 << 0 )
#define OPORTMXRATE_I_FSSEL_192 (0 x2 << 0 )
#define OPORTMXRATE_I_FSSEL_32 (0 x3 << 0 )
#define OPORTMXRATE_I_FSSEL_44_1 (0 x4 << 0 )
#define OPORTMXRATE_I_FSSEL_88_2 (0 x5 << 0 )
#define OPORTMXRATE_I_FSSEL_176_4 (0 x6 << 0 )
#define OPORTMXRATE_I_FSSEL_16 (0 x8 << 0 )
#define OPORTMXRATE_I_FSSEL_22_05 (0 x9 << 0 )
#define OPORTMXRATE_I_FSSEL_24 (0 xa << 0 )
#define OPORTMXRATE_I_FSSEL_8 (0 xb << 0 )
#define OPORTMXRATE_I_FSSEL_11_025 (0 xc << 0 )
#define OPORTMXRATE_I_FSSEL_12 (0 xd << 0 )
#define OPORTMXEXNOE(n) (0 x420f0 + 0 x400 * (n))
#define OPORTMXMASK(n) (0 x420f8 + 0 x400 * (n))
#define OPORTMXMASK_IUDXMSK_MASK GENMASK(28 , 24 )
#define OPORTMXMASK_IUDXMSK_ON (0 x00 << 24 )
#define OPORTMXMASK_IUDXMSK_OFF (0 x1f << 24 )
#define OPORTMXMASK_IUXCKMSK_MASK GENMASK(18 , 16 )
#define OPORTMXMASK_IUXCKMSK_ON (0 x0 << 16 )
#define OPORTMXMASK_IUXCKMSK_OFF (0 x7 << 16 )
#define OPORTMXMASK_DXMSK_MASK GENMASK(12 , 8 )
#define OPORTMXMASK_DXMSK_ON (0 x00 << 8 )
#define OPORTMXMASK_DXMSK_OFF (0 x1f << 8 )
#define OPORTMXMASK_XCKMSK_MASK GENMASK(2 , 0 )
#define OPORTMXMASK_XCKMSK_ON (0 x0 << 0 )
#define OPORTMXMASK_XCKMSK_OFF (0 x7 << 0 )
#define OPORTMXDEBUG(n) (0 x420fc + 0 x400 * (n))
#define OPORTMXTYVOLPARA1(n, m) (0 x42100 + 0 x400 * (n) + 0 x20 * (m))
#define OPORTMXTYVOLPARA1_SLOPEU_MASK GENMASK(31 , 16 )
#define OPORTMXTYVOLPARA2(n, m) (0 x42104 + 0 x400 * (n) + 0 x20 * (m))
#define OPORTMXTYVOLPARA2_FADE_MASK GENMASK(17 , 16 )
#define OPORTMXTYVOLPARA2_FADE_NOOP (0 x0 << 16 )
#define OPORTMXTYVOLPARA2_FADE_FADEOUT (0 x1 << 16 )
#define OPORTMXTYVOLPARA2_FADE_FADEIN (0 x2 << 16 )
#define OPORTMXTYVOLPARA2_TARGET_MASK GENMASK(15 , 0 )
#define OPORTMXTYVOLGAINSTATUS(n, m) (0 x42108 + 0 x400 * (n) + 0 x20 * (m))
#define OPORTMXTYVOLGAINSTATUS_CUR_MASK GENMASK(15 , 0 )
#define OPORTMXTYSLOTCTR(n, m) (0 x42114 + 0 x400 * (n) + 0 x20 * (m))
#define OPORTMXTYSLOTCTR_MODE BIT(15 )
#define OPORTMXTYSLOTCTR_SLOTSEL_MASK GENMASK(11 , 8 )
#define OPORTMXTYSLOTCTR_SLOTSEL_SLOT0 (0 x8 << 8 )
#define OPORTMXTYSLOTCTR_SLOTSEL_SLOT1 (0 x9 << 8 )
#define OPORTMXTYSLOTCTR_SLOTSEL_SLOT2 (0 xa << 8 )
#define OPORTMXTYSLOTCTR_SLOTSEL_SLOT3 (0 xb << 8 )
#define OPORTMXTYSLOTCTR_SLOTSEL_SLOT4 (0 xc << 8 )
#define OPORTMXT0SLOTCTR_MUTEOFF_MASK BIT(1 )
#define OPORTMXT0SLOTCTR_MUTEOFF_MUTE (0 x0 << 1 )
#define OPORTMXT0SLOTCTR_MUTEOFF_UNMUTE (0 x1 << 1 )
#define OPORTMXTYRSTCTR(n, m) (0 x4211c + 0 x400 * (n) + 0 x20 * (m))
#define OPORTMXT0RSTCTR_RST_MASK BIT(1 )
#define OPORTMXT0RSTCTR_RST_OFF (0 x0 << 1 )
#define OPORTMXT0RSTCTR_RST_ON (0 x1 << 1 )
#define SBF_(frame, shift) (((frame) * 2 - 1 ) << shift)
/* AOUT(PBoutMX) */
#define PBOUTMXCTR0(n) (0 x40200 + 0 x40 * (n))
#define PBOUTMXCTR0_ENDIAN_MASK GENMASK(5 , 4 )
#define PBOUTMXCTR0_ENDIAN_3210 (0 x0 << 4 )
#define PBOUTMXCTR0_ENDIAN_0123 (0 x1 << 4 )
#define PBOUTMXCTR0_ENDIAN_1032 (0 x2 << 4 )
#define PBOUTMXCTR0_ENDIAN_2301 (0 x3 << 4 )
#define PBOUTMXCTR0_MEMFMT_MASK GENMASK(3 , 0 )
#define PBOUTMXCTR0_MEMFMT_10CH (0 x0 << 0 )
#define PBOUTMXCTR0_MEMFMT_8CH (0 x1 << 0 )
#define PBOUTMXCTR0_MEMFMT_6CH (0 x2 << 0 )
#define PBOUTMXCTR0_MEMFMT_4CH (0 x3 << 0 )
#define PBOUTMXCTR0_MEMFMT_2CH (0 x4 << 0 )
#define PBOUTMXCTR0_MEMFMT_STREAM (0 x5 << 0 )
#define PBOUTMXCTR0_MEMFMT_1CH (0 x6 << 0 )
#define PBOUTMXCTR1(n) (0 x40204 + 0 x40 * (n))
#define PBOUTMXINTCTR(n) (0 x40208 + 0 x40 * (n))
/* A2D(subsystem) */
#define CDA2D_STRT0 0 x10000
#define CDA2D_STRT0_STOP_MASK BIT(31 )
#define CDA2D_STRT0_STOP_START (0 x0 << 31 )
#define CDA2D_STRT0_STOP_STOP (0 x1 << 31 )
#define CDA2D_STAT0 0 x10020
#define CDA2D_TEST 0 x100a0
#define CDA2D_TEST_DDR_MODE_MASK GENMASK(3 , 2 )
#define CDA2D_TEST_DDR_MODE_EXTON0 (0 x0 << 2 )
#define CDA2D_TEST_DDR_MODE_EXTOFF1 (0 x3 << 2 )
#define CDA2D_STRTADRSLOAD 0 x100b0
#define CDA2D_CHMXCTRL1(n) (0 x12000 + 0 x80 * (n))
#define CDA2D_CHMXCTRL1_INDSIZE_MASK BIT(0 )
#define CDA2D_CHMXCTRL1_INDSIZE_FINITE (0 x0 << 0 )
#define CDA2D_CHMXCTRL1_INDSIZE_INFINITE (0 x1 << 0 )
#define CDA2D_CHMXCTRL2(n) (0 x12004 + 0 x80 * (n))
#define CDA2D_CHMXSRCAMODE(n) (0 x12020 + 0 x80 * (n))
#define CDA2D_CHMXDSTAMODE(n) (0 x12024 + 0 x80 * (n))
#define CDA2D_CHMXAMODE_ENDIAN_MASK GENMASK(17 , 16 )
#define CDA2D_CHMXAMODE_ENDIAN_3210 (0 x0 << 16 )
#define CDA2D_CHMXAMODE_ENDIAN_0123 (0 x1 << 16 )
#define CDA2D_CHMXAMODE_ENDIAN_1032 (0 x2 << 16 )
#define CDA2D_CHMXAMODE_ENDIAN_2301 (0 x3 << 16 )
#define CDA2D_CHMXAMODE_RSSEL_SHIFT (8 )
#define CDA2D_CHMXAMODE_AUPDT_MASK GENMASK(5 , 4 )
#define CDA2D_CHMXAMODE_AUPDT_INC (0 x0 << 4 )
#define CDA2D_CHMXAMODE_AUPDT_FIX (0 x2 << 4 )
#define CDA2D_CHMXAMODE_TYPE_MASK GENMASK(3 , 2 )
#define CDA2D_CHMXAMODE_TYPE_NORMAL (0 x0 << 2 )
#define CDA2D_CHMXAMODE_TYPE_RING (0 x1 << 2 )
#define CDA2D_CHMXSRCSTRTADRS(n) (0 x12030 + 0 x80 * (n))
#define CDA2D_CHMXSRCSTRTADRSU(n) (0 x12034 + 0 x80 * (n))
#define CDA2D_CHMXDSTSTRTADRS(n) (0 x12038 + 0 x80 * (n))
#define CDA2D_CHMXDSTSTRTADRSU(n) (0 x1203c + 0 x80 * (n))
/* A2D(ring buffer) */
#define CDA2D_RBFLUSH0 0 x10040
#define CDA2D_RBADRSLOAD 0 x100b4
#define CDA2D_RDPTRLOAD 0 x100b8
#define CDA2D_RDPTRLOAD_LSFLAG_LOAD (0 x0 << 31 )
#define CDA2D_RDPTRLOAD_LSFLAG_STORE (0 x1 << 31 )
#define CDA2D_WRPTRLOAD 0 x100bc
#define CDA2D_WRPTRLOAD_LSFLAG_LOAD (0 x0 << 31 )
#define CDA2D_WRPTRLOAD_LSFLAG_STORE (0 x1 << 31 )
#define CDA2D_RBMXBGNADRS(n) (0 x14000 + 0 x80 * (n))
#define CDA2D_RBMXBGNADRSU(n) (0 x14004 + 0 x80 * (n))
#define CDA2D_RBMXENDADRS(n) (0 x14008 + 0 x80 * (n))
#define CDA2D_RBMXENDADRSU(n) (0 x1400c + 0 x80 * (n))
#define CDA2D_RBMXBTH(n) (0 x14038 + 0 x80 * (n))
#define CDA2D_RBMXRTH(n) (0 x1403c + 0 x80 * (n))
#define CDA2D_RBMXRDPTR(n) (0 x14020 + 0 x80 * (n))
#define CDA2D_RBMXRDPTRU(n) (0 x14024 + 0 x80 * (n))
#define CDA2D_RBMXWRPTR(n) (0 x14028 + 0 x80 * (n))
#define CDA2D_RBMXWRPTRU(n) (0 x1402c + 0 x80 * (n))
#define CDA2D_RBMXPTRU_PTRU_MASK GENMASK(1 , 0 )
#define CDA2D_RBMXCNFG(n) (0 x14030 + 0 x80 * (n))
#define CDA2D_RBMXIR(n) (0 x14014 + 0 x80 * (n))
#define CDA2D_RBMXIE(n) (0 x14018 + 0 x80 * (n))
#define CDA2D_RBMXID(n) (0 x1401c + 0 x80 * (n))
#define CDA2D_RBMXIX_SPACE BIT(3 )
#define CDA2D_RBMXIX_REMAIN BIT(4 )
#endif /* SND_UNIPHIER_AIO_REG_H__ */
Messung V0.5 in Prozent C=96 H=93 G=94
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-06-07)
¤
*© Formatika GbR, Deutschland