1/* SPDX-License-Identifier: GPL-2.0-only */
2/*
3 * PCM3168A codec driver header
4 *
5 * Copyright (C) 2015 Imagination Technologies Ltd.
6 *
7 * Author: Damien Horsley <Damien.Horsley@imgtec.com>
8 */
9
10#ifndef __PCM3168A_H__
11#define __PCM3168A_H__
12
13extern const struct dev_pm_ops pcm3168a_pm_ops;
14extern const struct regmap_config pcm3168a_regmap;
15
16extern int pcm3168a_probe(struct device *dev, struct regmap *regmap);
17extern void pcm3168a_remove(struct device *dev);
18
19#define PCM3168A_RST_SMODE 0x40
20#define PCM3168A_MRST_MASK 0x80
21#define PCM3168A_SRST_MASK 0x40
22#define PCM3168A_DAC_SRDA_SHIFT 0
23#define PCM3168A_DAC_SRDA_MASK 0x3
24
25#define PCM3168A_DAC_PWR_MST_FMT 0x41
26#define PCM3168A_DAC_PSMDA_SHIFT 7
27#define PCM3168A_DAC_PSMDA_MASK 0x80
28#define PCM3168A_DAC_MSDA_SHIFT 4
29#define PCM3168A_DAC_MSDA_MASK 0x70
30#define PCM3168A_DAC_FMT_SHIFT 0
31#define PCM3168A_DAC_FMT_MASK 0xf
32
33#define PCM3168A_DAC_OP_FLT 0x42
34#define PCM3168A_DAC_OPEDA_SHIFT 4
35#define PCM3168A_DAC_OPEDA_MASK 0xf0
36#define PCM3168A_DAC_FLT_SHIFT 0
37#define PCM3168A_DAC_FLT_MASK 0xf
38
39#define PCM3168A_DAC_INV 0x43
40
41#define PCM3168A_DAC_MUTE 0x44
42
43#define PCM3168A_DAC_ZERO 0x45
44
45#define PCM3168A_DAC_ATT_DEMP_ZF 0x46
46#define PCM3168A_DAC_ATMDDA_MASK 0x80
47#define PCM3168A_DAC_ATMDDA_SHIFT 7
48#define PCM3168A_DAC_ATSPDA_MASK 0x40
49#define PCM3168A_DAC_ATSPDA_SHIFT 6
50#define PCM3168A_DAC_DEMP_SHIFT 4
51#define PCM3168A_DAC_DEMP_MASK 0x30
52#define PCM3168A_DAC_AZRO_SHIFT 1
53#define PCM3168A_DAC_AZRO_MASK 0xe
54#define PCM3168A_DAC_ZREV_MASK 0x1
55#define PCM3168A_DAC_ZREV_SHIFT 0
56
57#define PCM3168A_DAC_VOL_MASTER 0x47
58
59#define PCM3168A_DAC_VOL_CHAN_START 0x48
60
61#define PCM3168A_ADC_SMODE 0x50
62#define PCM3168A_ADC_SRAD_SHIFT 0
63#define PCM3168A_ADC_SRAD_MASK 0x3
64
65#define PCM3168A_ADC_MST_FMT 0x51
66#define PCM3168A_ADC_MSAD_SHIFT 4
67#define PCM3168A_ADC_MSAD_MASK 0x70
68#define PCM3168A_ADC_FMTAD_SHIFT 0
69#define PCM3168A_ADC_FMTAD_MASK 0x7
70
71#define PCM3168A_ADC_PWR_HPFB 0x52
72#define PCM3168A_ADC_PSVAD_SHIFT 4
73#define PCM3168A_ADC_PSVAD_MASK 0x70
74#define PCM3168A_ADC_BYP_SHIFT 0
75#define PCM3168A_ADC_BYP_MASK 0x7
76
77#define PCM3168A_ADC_SEAD 0x53
78
79#define PCM3168A_ADC_INV 0x54
80
81#define PCM3168A_ADC_MUTE 0x55
82
83#define PCM3168A_ADC_OV 0x56
84
85#define PCM3168A_ADC_ATT_OVF 0x57
86#define PCM3168A_ADC_ATMDAD_MASK 0x80
87#define PCM3168A_ADC_ATMDAD_SHIFT 7
88#define PCM3168A_ADC_ATSPAD_MASK 0x40
89#define PCM3168A_ADC_ATSPAD_SHIFT 6
90#define PCM3168A_ADC_OVFP_MASK 0x1
91#define PCM3168A_ADC_OVFP_SHIFT 0
92
93#define PCM3168A_ADC_VOL_MASTER 0x58
94
95#define PCM3168A_ADC_VOL_CHAN_START 0x59
96
97#endif
98

source code of linux/sound/soc/codecs/pcm3168a.h