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