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