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