linux/sound/soc/codecs/pcm3060.h

/* SPDX-License-Identifier: GPL-2.0 */
/*
 * PCM3060 codec driver
 *
 * Copyright (C) 2018 Kirill Marinushkin <[email protected]>
 */

#ifndef _SND_SOC_PCM3060_H
#define _SND_SOC_PCM3060_H

#include <linux/device.h>
#include <linux/regmap.h>

extern const struct regmap_config pcm3060_regmap;

#define PCM3060_DAI_ID_DAC
#define PCM3060_DAI_ID_ADC
#define PCM3060_DAI_IDS_NUM

/* ADC and DAC can be clocked from separate or same sources CLK1 and CLK2 */
#define PCM3060_CLK_DEF
#define PCM3060_CLK1
#define PCM3060_CLK2

struct pcm3060_priv_dai {};

struct pcm3060_priv {};

int pcm3060_probe(struct device *dev);
int pcm3060_remove(struct device *dev);

/* registers */

#define PCM3060_REG64
#define PCM3060_REG_MRST
#define PCM3060_REG_SRST
#define PCM3060_REG_ADPSV
#define PCM3060_REG_SHIFT_ADPSV
#define PCM3060_REG_DAPSV
#define PCM3060_REG_SHIFT_DAPSV
#define PCM3060_REG_SE

#define PCM3060_REG65
#define PCM3060_REG66
#define PCM3060_REG_AT2_MIN
#define PCM3060_REG_AT2_MAX

#define PCM3060_REG67
#define PCM3060_REG72
#define PCM3060_REG_CSEL
#define PCM3060_REG_MASK_MS
#define PCM3060_REG_MS_S
#define PCM3060_REG_MS_M768
#define PCM3060_REG_MS_M512
#define PCM3060_REG_MS_M384
#define PCM3060_REG_MS_M256
#define PCM3060_REG_MS_M192
#define PCM3060_REG_MS_M128
#define PCM3060_REG_MASK_FMT
#define PCM3060_REG_FMT_I2S
#define PCM3060_REG_FMT_LJ
#define PCM3060_REG_FMT_RJ

#define PCM3060_REG68
#define PCM3060_REG_OVER
#define PCM3060_REG_DREV2
#define PCM3060_REG_SHIFT_MUT21
#define PCM3060_REG_SHIFT_MUT22

#define PCM3060_REG69
#define PCM3060_REG_FLT
#define PCM3060_REG_MASK_DMF
#define PCM3060_REG_DMC
#define PCM3060_REG_ZREV
#define PCM3060_REG_AZRO

#define PCM3060_REG70
#define PCM3060_REG71
#define PCM3060_REG_AT1_MIN
#define PCM3060_REG_AT1_MAX

#define PCM3060_REG73
#define PCM3060_REG_ZCDD
#define PCM3060_REG_BYP
#define PCM3060_REG_DREV1
#define PCM3060_REG_SHIFT_MUT11
#define PCM3060_REG_SHIFT_MUT12

#endif /* _SND_SOC_PCM3060_H */