1 /* 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 16 extern const struct dev_pm_ops pcm3168a_pm_ops; 17 extern const struct regmap_config pcm3168a_regmap; 18 19 extern int pcm3168a_probe(struct device *dev, struct regmap *regmap); 20 extern 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 101