linux/sound/soc/codecs/cs43130.h

/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * ALSA SoC CS43130 codec driver
 *
 * Copyright 2017 Cirrus Logic, Inc.
 *
 * Author: Li Xu <[email protected]>
 */

#ifndef __CS43130_H__
#define __CS43130_H__

#include <linux/math.h>

/* CS43130 registers addresses */
/* all reg address is shifted by a byte for control byte to be LSB */
#define CS43130_FIRSTREG
#define CS43130_LASTREG
#define CS43130_CHIP_ID
#define CS4399_CHIP_ID
#define CS43131_CHIP_ID
#define CS43198_CHIP_ID
#define CS43130_DEVID_AB
#define CS43130_DEVID_CD
#define CS43130_DEVID_E
#define CS43130_FAB_ID
#define CS43130_REV_ID
#define CS43130_SUBREV_ID
#define CS43130_SYS_CLK_CTL_1
#define CS43130_SP_SRATE
#define CS43130_SP_BITSIZE
#define CS43130_PAD_INT_CFG
#define CS43130_DXD1
#define CS43130_DXD7
#define CS43130_DXD19
#define CS43130_DXD17
#define CS43130_DXD18
#define CS43130_DXD12
#define CS43130_DXD8
#define CS43130_PWDN_CTL
#define CS43130_DXD2
#define CS43130_CRYSTAL_SET
#define CS43130_PLL_SET_1
#define CS43130_PLL_SET_2
#define CS43130_PLL_SET_3
#define CS43130_PLL_SET_4
#define CS43130_PLL_SET_5
#define CS43130_PLL_SET_6
#define CS43130_PLL_SET_7
#define CS43130_PLL_SET_8
#define CS43130_PLL_SET_9
#define CS43130_PLL_SET_10
#define CS43130_CLKOUT_CTL
#define CS43130_ASP_NUM_1
#define CS43130_ASP_NUM_2
#define CS43130_ASP_DEN_1
#define CS43130_ASP_DEN_2
#define CS43130_ASP_LRCK_HI_TIME_1
#define CS43130_ASP_LRCK_HI_TIME_2
#define CS43130_ASP_LRCK_PERIOD_1
#define CS43130_ASP_LRCK_PERIOD_2
#define CS43130_ASP_CLOCK_CONF
#define CS43130_ASP_FRAME_CONF
#define CS43130_XSP_NUM_1
#define CS43130_XSP_NUM_2
#define CS43130_XSP_DEN_1
#define CS43130_XSP_DEN_2
#define CS43130_XSP_LRCK_HI_TIME_1
#define CS43130_XSP_LRCK_HI_TIME_2
#define CS43130_XSP_LRCK_PERIOD_1
#define CS43130_XSP_LRCK_PERIOD_2
#define CS43130_XSP_CLOCK_CONF
#define CS43130_XSP_FRAME_CONF
#define CS43130_ASP_CH_1_LOC
#define CS43130_ASP_CH_2_LOC
#define CS43130_ASP_CH_1_SZ_EN
#define CS43130_ASP_CH_2_SZ_EN
#define CS43130_XSP_CH_1_LOC
#define CS43130_XSP_CH_2_LOC
#define CS43130_XSP_CH_1_SZ_EN
#define CS43130_XSP_CH_2_SZ_EN
#define CS43130_DSD_VOL_B
#define CS43130_DSD_VOL_A
#define CS43130_DSD_PATH_CTL_1
#define CS43130_DSD_INT_CFG
#define CS43130_DSD_PATH_CTL_2
#define CS43130_DSD_PCM_MIX_CTL
#define CS43130_DSD_PATH_CTL_3
#define CS43130_HP_OUT_CTL_1
#define CS43130_DXD16
#define CS43130_DXD13
#define CS43130_PCM_FILT_OPT
#define CS43130_PCM_VOL_B
#define CS43130_PCM_VOL_A
#define CS43130_PCM_PATH_CTL_1
#define CS43130_PCM_PATH_CTL_2
#define CS43130_DXD6
#define CS43130_CLASS_H_CTL
#define CS43130_DXD15
#define CS43130_DXD14
#define CS43130_DXD3
#define CS43130_DXD10
#define CS43130_DXD11
#define CS43130_DXD9
#define CS43130_DXD4
#define CS43130_DXD5
#define CS43130_HP_DETECT
#define CS43130_HP_STATUS
#define CS43130_HP_LOAD_1
#define CS43130_HP_MEAS_LOAD_1
#define CS43130_HP_MEAS_LOAD_2
#define CS43130_HP_DC_STAT_1
#define CS43130_HP_DC_STAT_2
#define CS43130_HP_AC_STAT_1
#define CS43130_HP_AC_STAT_2
#define CS43130_HP_LOAD_STAT
#define CS43130_INT_STATUS_1
#define CS43130_INT_STATUS_2
#define CS43130_INT_STATUS_3
#define CS43130_INT_STATUS_4
#define CS43130_INT_STATUS_5
#define CS43130_INT_MASK_1
#define CS43130_INT_MASK_2
#define CS43130_INT_MASK_3
#define CS43130_INT_MASK_4
#define CS43130_INT_MASK_5

#define CS43130_MCLK_SRC_SEL_MASK
#define CS43130_MCLK_SRC_SEL_SHIFT
#define CS43130_MCLK_INT_MASK
#define CS43130_MCLK_INT_SHIFT
#define CS43130_CH_BITSIZE_MASK
#define CS43130_CH_EN_MASK
#define CS43130_CH_EN_SHIFT
#define CS43130_ASP_BITSIZE_MASK
#define CS43130_XSP_BITSIZE_MASK
#define CS43130_XSP_BITSIZE_SHIFT
#define CS43130_SP_BITSIZE_ASP_SHIFT
#define CS43130_HP_DETECT_CTRL_SHIFT
#define CS43130_HP_DETECT_CTRL_MASK
#define CS43130_HP_DETECT_INV_SHIFT
#define CS43130_HP_DETECT_INV_MASK

/* CS43130_INT_MASK_1 */
#define CS43130_HP_PLUG_INT_SHIFT
#define CS43130_HP_PLUG_INT
#define CS43130_HP_UNPLUG_INT_SHIFT
#define CS43130_HP_UNPLUG_INT
#define CS43130_XTAL_RDY_INT_SHIFT
#define CS43130_XTAL_RDY_INT_MASK
#define CS43130_XTAL_RDY_INT
#define CS43130_XTAL_ERR_INT_SHIFT
#define CS43130_XTAL_ERR_INT
#define CS43130_PLL_RDY_INT_MASK
#define CS43130_PLL_RDY_INT_SHIFT
#define CS43130_PLL_RDY_INT

/* CS43130_INT_MASK_4 */
#define CS43130_INT_MASK_ALL
#define CS43130_HPLOAD_NO_DC_INT_SHIFT
#define CS43130_HPLOAD_NO_DC_INT
#define CS43130_HPLOAD_UNPLUG_INT_SHIFT
#define CS43130_HPLOAD_UNPLUG_INT
#define CS43130_HPLOAD_OOR_INT_SHIFT
#define CS43130_HPLOAD_OOR_INT
#define CS43130_HPLOAD_AC_INT_SHIFT
#define CS43130_HPLOAD_AC_INT
#define CS43130_HPLOAD_DC_INT_SHIFT
#define CS43130_HPLOAD_DC_INT
#define CS43130_HPLOAD_OFF_INT_SHIFT
#define CS43130_HPLOAD_OFF_INT
#define CS43130_HPLOAD_ON_INT

/* CS43130_HP_LOAD_1 */
#define CS43130_HPLOAD_EN_SHIFT
#define CS43130_HPLOAD_EN
#define CS43130_HPLOAD_CHN_SEL_SHIFT
#define CS43130_HPLOAD_CHN_SEL
#define CS43130_HPLOAD_AC_START_SHIFT
#define CS43130_HPLOAD_AC_START
#define CS43130_HPLOAD_DC_START

/* Reg CS43130_SP_BITSIZE */
#define CS43130_SP_BIT_SIZE_8
#define CS43130_SP_BIT_SIZE_16
#define CS43130_SP_BIT_SIZE_24
#define CS43130_SP_BIT_SIZE_32

/* Reg CS43130_SP_CH_SZ_EN */
#define CS43130_CH_BIT_SIZE_8
#define CS43130_CH_BIT_SIZE_16
#define CS43130_CH_BIT_SIZE_24
#define CS43130_CH_BIT_SIZE_32

/* PLL */
#define CS43130_PLL_START_MASK
#define CS43130_PLL_MODE_MASK
#define CS43130_PLL_MODE_SHIFT

#define CS43130_PLL_REF_PREDIV_MASK

#define CS43130_SP_STP_MASK
#define CS43130_SP_STP_SHIFT
#define CS43130_SP_5050_MASK
#define CS43130_SP_5050_SHIFT
#define CS43130_SP_FSD_MASK

#define CS43130_SP_MODE_MASK
#define CS43130_SP_MODE_SHIFT
#define CS43130_SP_SCPOL_OUT_MASK
#define CS43130_SP_SCPOL_OUT_SHIFT
#define CS43130_SP_SCPOL_IN_MASK
#define CS43130_SP_SCPOL_IN_SHIFT
#define CS43130_SP_LCPOL_OUT_MASK
#define CS43130_SP_LCPOL_OUT_SHIFT
#define CS43130_SP_LCPOL_IN_MASK
#define CS43130_SP_LCPOL_IN_SHIFT

/* Reg CS43130_PWDN_CTL */
#define CS43130_PDN_XSP_MASK
#define CS43130_PDN_XSP_SHIFT
#define CS43130_PDN_ASP_MASK
#define CS43130_PDN_ASP_SHIFT
#define CS43130_PDN_DSPIF_MASK
#define CS43130_PDN_DSDIF_SHIFT
#define CS43130_PDN_HP_MASK
#define CS43130_PDN_HP_SHIFT
#define CS43130_PDN_XTAL_MASK
#define CS43130_PDN_XTAL_SHIFT
#define CS43130_PDN_PLL_MASK
#define CS43130_PDN_PLL_SHIFT
#define CS43130_PDN_CLKOUT_MASK
#define CS43130_PDN_CLKOUT_SHIFT

/* Reg CS43130_HP_OUT_CTL_1 */
#define CS43130_HP_IN_EN_SHIFT
#define CS43130_HP_IN_EN_MASK

/* Reg CS43130_PAD_INT_CFG */
#define CS43130_ASP_3ST_MASK
#define CS43130_XSP_3ST_MASK

/* Reg CS43130_PLL_SET_2 */
#define CS43130_PLL_DIV_DATA_MASK
#define CS43130_PLL_DIV_FRAC_0_DATA_SHIFT

/* Reg CS43130_PLL_SET_3 */
#define CS43130_PLL_DIV_FRAC_1_DATA_SHIFT

/* Reg CS43130_PLL_SET_4 */
#define CS43130_PLL_DIV_FRAC_2_DATA_SHIFT

/* Reg CS43130_SP_DEN_1 */
#define CS43130_SP_M_LSB_DATA_MASK
#define CS43130_SP_M_LSB_DATA_SHIFT

/* Reg CS43130_SP_DEN_2 */
#define CS43130_SP_M_MSB_DATA_MASK
#define CS43130_SP_M_MSB_DATA_SHIFT

/* Reg CS43130_SP_NUM_1 */
#define CS43130_SP_N_LSB_DATA_MASK
#define CS43130_SP_N_LSB_DATA_SHIFT

/* Reg CS43130_SP_NUM_2 */
#define CS43130_SP_N_MSB_DATA_MASK
#define CS43130_SP_N_MSB_DATA_SHIFT

/* Reg CS43130_SP_LRCK_HI_TIME_1 */
#define CS43130_SP_LCHI_DATA_MASK
#define CS43130_SP_LCHI_LSB_DATA_SHIFT

/* Reg CS43130_SP_LRCK_HI_TIME_2 */
#define CS43130_SP_LCHI_MSB_DATA_SHIFT

/* Reg CS43130_SP_LRCK_PERIOD_1 */
#define CS43130_SP_LCPR_DATA_MASK
#define CS43130_SP_LCPR_LSB_DATA_SHIFT

/* Reg CS43130_SP_LRCK_PERIOD_2 */
#define CS43130_SP_LCPR_MSB_DATA_SHIFT

#define CS43130_PCM_FORMATS

#define CS43130_DOP_FORMATS

/* Reg CS43130_CRYSTAL_SET */
#define CS43130_XTAL_IBIAS_MASK

/* Reg CS43130_PATH_CTL_1 */
#define CS43130_MUTE_MASK
#define CS43130_MUTE_EN

/* Reg CS43130_DSD_INT_CFG */
#define CS43130_DSD_MASTER

/* Reg CS43130_DSD_PATH_CTL_2 */
#define CS43130_DSD_SRC_MASK
#define CS43130_DSD_SRC_SHIFT
#define CS43130_DSD_EN_SHIFT
#define CS43130_DSD_SPEED_MASK
#define CS43130_DSD_SPEED_SHIFT

/* Reg CS43130_DSD_PCM_MIX_CTL	*/
#define CS43130_MIX_PCM_PREP_SHIFT
#define CS43130_MIX_PCM_PREP_MASK

#define CS43130_MIX_PCM_DSD_SHIFT
#define CS43130_MIX_PCM_DSD_MASK

/* Reg CS43130_HP_MEAS_LOAD */
#define CS43130_HP_MEAS_LOAD_MASK
#define CS43130_HP_MEAS_LOAD_1_SHIFT
#define CS43130_HP_MEAS_LOAD_2_SHIFT

#define CS43130_MCLK_22M
#define CS43130_MCLK_24M

#define CS43130_LINEOUT_LOAD
#define CS43130_JACK_LINEOUT
#define CS43130_JACK_HEADPHONE
#define CS43130_JACK_MASK

enum cs43130_dsd_src {};

enum cs43130_asp_rate {};

enum cs43130_mclk_src_sel {};

enum cs43130_mclk_int_freq {};

enum cs43130_xtal_ibias {};

enum cs43130_dai_id {};

struct cs43130_clk_gen {};

/* frm_size = 16 */
static const struct cs43130_clk_gen cs43130_16_clk_gen[] =;

/* frm_size = 32 */
static const struct cs43130_clk_gen cs43130_32_clk_gen[] =;

/* frm_size = 48 */
static const struct cs43130_clk_gen cs43130_48_clk_gen[] =;

/* frm_size = 64 */
static const struct cs43130_clk_gen cs43130_64_clk_gen[] =;

struct cs43130_bitwidth_map {};

struct cs43130_rate_map {};

#define HP_LEFT
#define HP_RIGHT
#define CS43130_AC_FREQ
#define CS43130_DC_THRESHOLD

#define CS43130_NUM_SUPPLIES
static const char *const cs43130_supply_names[CS43130_NUM_SUPPLIES] =;

#define CS43130_NUM_INT

struct cs43130_dai {};

struct	cs43130_private {};

#endif	/* __CS43130_H__ */