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