root/sound/soc/codecs/uda1342.h
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Audio support for NXP UDA1342
 *
 * Copyright (c) 2005 Giorgio Padrin <giorgio@mandarinlogiq.org>
 * Copyright (c) 2024 Binbin Zhou <zhoubinbin@loongson.cn>
 */

#ifndef _UDA1342_H
#define _UDA1342_H

#define UDA1342_CLK             0x00
#define UDA1342_IFACE           0x01
#define UDA1342_PM              0x02
#define UDA1342_AMIX            0x03
#define UDA1342_HP              0x04
#define UDA1342_MVOL            0x11
#define UDA1342_MIXVOL          0x12
#define UDA1342_MODE            0x12
#define UDA1342_DEEMP           0x13
#define UDA1342_MIXER           0x14
#define UDA1342_INTSTAT         0x18
#define UDA1342_DEC             0x20
#define UDA1342_PGA             0x21
#define UDA1342_ADC             0x22
#define UDA1342_AGC             0x23
#define UDA1342_DECSTAT         0x28
#define UDA1342_RESET           0x7f

/* Register flags */
#define R00_EN_ADC              0x0800
#define R00_EN_DEC              0x0400
#define R00_EN_DAC              0x0200
#define R00_EN_INT              0x0100
#define R00_DAC_CLK             0x0010
#define R01_SFORI_I2S           0x0000
#define R01_SFORI_LSB16         0x0100
#define R01_SFORI_LSB18         0x0200
#define R01_SFORI_LSB20         0x0300
#define R01_SFORI_MSB           0x0500
#define R01_SFORI_MASK          0x0700
#define R01_SFORO_I2S           0x0000
#define R01_SFORO_LSB16         0x0001
#define R01_SFORO_LSB18         0x0002
#define R01_SFORO_LSB20         0x0003
#define R01_SFORO_LSB24         0x0004
#define R01_SFORO_MSB           0x0005
#define R01_SFORO_MASK          0x0007
#define R01_SEL_SOURCE          0x0040
#define R01_SIM                 0x0010
#define R02_PON_PLL             0x8000
#define R02_PON_HP              0x2000
#define R02_PON_DAC             0x0400
#define R02_PON_BIAS            0x0100
#define R02_EN_AVC              0x0080
#define R02_PON_AVC             0x0040
#define R02_PON_LNA             0x0010
#define R02_PON_PGAL            0x0008
#define R02_PON_ADCL            0x0004
#define R02_PON_PGAR            0x0002
#define R02_PON_ADCR            0x0001
#define R13_MTM                 0x4000
#define R14_SILENCE             0x0080
#define R14_SDET_ON             0x0040
#define R21_MT_ADC              0x8000
#define R22_SEL_LNA             0x0008
#define R22_SEL_MIC             0x0004
#define R22_SKIP_DCFIL          0x0002
#define R23_AGC_EN              0x0001

#define UDA1342_DAI_DUPLEX      0 /* playback and capture on single DAI */
#define UDA1342_DAI_PLAYBACK    1 /* playback DAI */
#define UDA1342_DAI_CAPTURE     2 /* capture DAI */

#define STATUS0_DAIFMT_MASK (~(7 << 1))
#define STATUS0_SYSCLK_MASK (~(3 << 4))

#endif /* _UDA1342_H */