0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef _TLV320AIC23_H
0010 #define _TLV320AIC23_H
0011
0012 struct device;
0013 struct regmap_config;
0014
0015 extern const struct regmap_config tlv320aic23_regmap;
0016 int tlv320aic23_probe(struct device *dev, struct regmap *regmap);
0017
0018
0019 #define TLV320AIC23_LINVOL 0x00
0020 #define TLV320AIC23_RINVOL 0x01
0021 #define TLV320AIC23_LCHNVOL 0x02
0022 #define TLV320AIC23_RCHNVOL 0x03
0023 #define TLV320AIC23_ANLG 0x04
0024 #define TLV320AIC23_DIGT 0x05
0025 #define TLV320AIC23_PWR 0x06
0026 #define TLV320AIC23_DIGT_FMT 0x07
0027 #define TLV320AIC23_SRATE 0x08
0028 #define TLV320AIC23_ACTIVE 0x09
0029 #define TLV320AIC23_RESET 0x0F
0030
0031
0032 #define TLV320AIC23_LRS_ENABLED 0x0100
0033 #define TLV320AIC23_LIM_MUTED 0x0080
0034 #define TLV320AIC23_LIV_DEFAULT 0x0017
0035 #define TLV320AIC23_LIV_MAX 0x001f
0036 #define TLV320AIC23_LIV_MIN 0x0000
0037
0038
0039 #define TLV320AIC23_LZC_ON 0x0080
0040 #define TLV320AIC23_LHV_DEFAULT 0x0079
0041 #define TLV320AIC23_LHV_MAX 0x007f
0042 #define TLV320AIC23_LHV_MIN 0x0000
0043
0044
0045 #define TLV320AIC23_STA_REG(x) ((x)<<6)
0046 #define TLV320AIC23_STE_ENABLED 0x0020
0047 #define TLV320AIC23_DAC_SELECTED 0x0010
0048 #define TLV320AIC23_BYPASS_ON 0x0008
0049 #define TLV320AIC23_INSEL_MIC 0x0004
0050 #define TLV320AIC23_MICM_MUTED 0x0002
0051 #define TLV320AIC23_MICB_20DB 0x0001
0052
0053
0054 #define TLV320AIC23_DACM_MUTE 0x0008
0055 #define TLV320AIC23_DEEMP_32K 0x0002
0056 #define TLV320AIC23_DEEMP_44K 0x0004
0057 #define TLV320AIC23_DEEMP_48K 0x0006
0058 #define TLV320AIC23_ADCHP_ON 0x0001
0059
0060
0061 #define TLV320AIC23_DEVICE_PWR_OFF 0x0080
0062 #define TLV320AIC23_CLK_OFF 0x0040
0063 #define TLV320AIC23_OSC_OFF 0x0020
0064 #define TLV320AIC23_OUT_OFF 0x0010
0065 #define TLV320AIC23_DAC_OFF 0x0008
0066 #define TLV320AIC23_ADC_OFF 0x0004
0067 #define TLV320AIC23_MIC_OFF 0x0002
0068 #define TLV320AIC23_LINE_OFF 0x0001
0069
0070
0071 #define TLV320AIC23_MS_MASTER 0x0040
0072 #define TLV320AIC23_LRSWAP_ON 0x0020
0073 #define TLV320AIC23_LRP_ON 0x0010
0074 #define TLV320AIC23_IWL_16 0x0000
0075 #define TLV320AIC23_IWL_20 0x0004
0076 #define TLV320AIC23_IWL_24 0x0008
0077 #define TLV320AIC23_IWL_32 0x000C
0078 #define TLV320AIC23_FOR_I2S 0x0002
0079 #define TLV320AIC23_FOR_DSP 0x0003
0080 #define TLV320AIC23_FOR_LJUST 0x0001
0081
0082
0083 #define TLV320AIC23_CLKOUT_HALF 0x0080
0084 #define TLV320AIC23_CLKIN_HALF 0x0040
0085 #define TLV320AIC23_BOSR_384fs 0x0002
0086 #define TLV320AIC23_USB_CLK_ON 0x0001
0087 #define TLV320AIC23_SR_MASK 0xf
0088 #define TLV320AIC23_CLKOUT_SHIFT 7
0089 #define TLV320AIC23_CLKIN_SHIFT 6
0090 #define TLV320AIC23_SR_SHIFT 2
0091 #define TLV320AIC23_BOSR_SHIFT 1
0092
0093
0094 #define TLV320AIC23_ACT_ON 0x0001
0095
0096
0097
0098
0099
0100 #define TLV320AIC23_DEFAULT_OUT_VOL 0x70
0101 #define TLV320AIC23_DEFAULT_IN_VOLUME 0x10
0102
0103 #define TLV320AIC23_OUT_VOL_MIN TLV320AIC23_LHV_MIN
0104 #define TLV320AIC23_OUT_VOL_MAX TLV320AIC23_LHV_MAX
0105 #define TLV320AIC23_OUT_VO_RANGE (TLV320AIC23_OUT_VOL_MAX - \
0106 TLV320AIC23_OUT_VOL_MIN)
0107 #define TLV320AIC23_OUT_VOL_MASK TLV320AIC23_OUT_VOL_MAX
0108
0109 #define TLV320AIC23_IN_VOL_MIN TLV320AIC23_LIV_MIN
0110 #define TLV320AIC23_IN_VOL_MAX TLV320AIC23_LIV_MAX
0111 #define TLV320AIC23_IN_VOL_RANGE (TLV320AIC23_IN_VOL_MAX - \
0112 TLV320AIC23_IN_VOL_MIN)
0113 #define TLV320AIC23_IN_VOL_MASK TLV320AIC23_IN_VOL_MAX
0114
0115 #define TLV320AIC23_SIDETONE_MASK 0x1c0
0116 #define TLV320AIC23_SIDETONE_0 0x100
0117 #define TLV320AIC23_SIDETONE_6 0x000
0118 #define TLV320AIC23_SIDETONE_9 0x040
0119 #define TLV320AIC23_SIDETONE_12 0x080
0120 #define TLV320AIC23_SIDETONE_18 0x0c0
0121
0122 #endif