123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550 |
- // SPDX-License-Identifier: GPL-2.0
- /*
- * cs35l43-tables.c -- CS35L43 ALSA SoC audio driver
- *
- * Copyright 2021 Cirrus Logic, Inc.
- *
- * Author: David Rhodes <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- */
- #include <linux/regmap.h>
- #include <linux/regulator/consumer.h>
- #include "wm_adsp.h"
- #include "cs35l43.h"
- #include <sound/cs35l43.h>
- bool cs35l43_readable_reg(struct device *dev, unsigned int reg)
- {
- switch (reg) {
- case CS35L43_DEVID:
- case CS35L43_REVID:
- case CS35L43_FABID:
- case CS35L43_RELID:
- case CS35L43_OTPID:
- case CS35L43_SFT_RESET:
- case CS35L43_TEST_KEY_CTRL:
- case CS35L43_USER_KEY_CTRL:
- case CS35L43_CTRL_ASYNC0:
- case CS35L43_CTRL_ASYNC1:
- case CS35L43_CTRL_ASYNC2:
- case CS35L43_CTRL_ASYNC3:
- case CS35L43_CTRL_IF_CONFIG1:
- case CS35L43_CTRL_IF_STATUS1:
- case CS35L43_CTRL_IF_STATUS2:
- case CS35L43_CTRL_IF_CONFIG2:
- case CS35L43_CTRL_IF_DEBUG1:
- case CS35L43_CTRL_IF_DEBUG2:
- case CS35L43_CTRL_IF_DEBUG3:
- case CS35L43_CIF_MON1:
- case CS35L43_CIF_MON2:
- case CS35L43_CIF_MON_PADDR:
- case CS35L43_CTRL_IF_SPARE1:
- case CS35L43_CTRL_IF_I2C:
- case CS35L43_CTRL_IF_I2C_1_CONTROL:
- case CS35L43_CTRL_IF_I2C_1_BROADCAST:
- case CS35L43_APB_MSTR_DSP_BRIDGE_ERR:
- case CS35L43_CIF1_BRIDGE_ERR:
- case CS35L43_CIF2_BRIDGE_ERR:
- case CS35L43_OTP_MEM0 ... CS35L43_OTP_MEM31:
- case CS35L43_OTP_CTRL0:
- case CS35L43_OTP_CTRL1:
- case CS35L43_OTP_CTRL3:
- case CS35L43_OTP_CTRL4:
- case CS35L43_OTP_CTRL5:
- case CS35L43_OTP_CTRL6:
- case CS35L43_OTP_CTRL7:
- case CS35L43_OTP_CTRL8:
- case CS35L43_DEVICE_ID:
- case CS35L43_FAB_ID:
- case CS35L43_REV_ID:
- case CS35L43_GLOBAL_ENABLES:
- case CS35L43_BLOCK_ENABLES:
- case CS35L43_BLOCK_ENABLES2:
- case CS35L43_GLOBAL_OVERRIDES:
- case CS35L43_GLOBAL_SYNC:
- case CS35L43_GLOBAL_STATUS:
- case CS35L43_DISCH_FILT:
- case CS35L43_OSC_TRIM:
- case CS35L43_ERROR_RELEASE:
- case CS35L43_PLL_OVERRIDE:
- case CS35L43_CHIP_STATUS:
- case CS35L43_CHIP_STATUS2:
- case CS35L43_TST_OSC:
- case CS35L43_LRCK_PAD_CONTROL:
- case CS35L43_SCLK_PAD_CONTROL:
- case CS35L43_SDIN_PAD_CONTROL:
- case CS35L43_SDOUT_PAD_CONTROL:
- case CS35L43_GPIO_PAD_CONTROL:
- case CS35L43_GPIO_GLOBAL_ENABLE_CONTROL:
- case CS35L43_PWRMGT_CTL:
- case CS35L43_WAKESRC_CTL:
- case CS35L43_WAKEI2C_CTL:
- case CS35L43_PWRMGT_STS:
- case CS35L43_PWRMGT_RST:
- case CS35L43_TEST_CTL:
- case CS35L43_REFCLK_INPUT:
- case CS35L43_DSP_CLOCK_GEARING:
- case CS35L43_GLOBAL_SAMPLE_RATE:
- case CS35L43_FS_MON_0:
- case CS35L43_DSP1_SAMPLE_RATE_RX1:
- case CS35L43_DSP1_SAMPLE_RATE_RX2:
- case CS35L43_DSP1_SAMPLE_RATE_TX1:
- case CS35L43_DSP1_SAMPLE_RATE_TX2:
- case CS35L43_LDOA_CTRL:
- case CS35L43_SYNC_TX_RX_ENABLES:
- case CS35L43_VBST_CTL_1:
- case CS35L43_VBST_CTL_2:
- case CS35L43_BST_IPK_CTL:
- case CS35L43_SOFT_RAMP:
- case CS35L43_BST_LOOP_COEFF:
- case CS35L43_LBST_SLOPE:
- case CS35L43_BST_SW_FREQ:
- case CS35L43_BST_DCM_CTL:
- case CS35L43_DCM_FORCE:
- case CS35L43_VBST_OVP:
- case CS35L43_BST_RSVD_1:
- case CS35L43_MONITOR_FILT:
- case CS35L43_WARN_LIMIT_THRESHOLD:
- case CS35L43_CONFIGURATION:
- case CS35L43_STATUS:
- case CS35L43_ENABLES_AND_CODES_ANA:
- case CS35L43_ENABLES_AND_CODES_DIG:
- case CS35L43_ASP_ENABLES1:
- case CS35L43_ASP_CONTROL1:
- case CS35L43_ASP_CONTROL2:
- case CS35L43_ASP_CONTROL3:
- case CS35L43_ASP_FRAME_CONTROL1:
- case CS35L43_ASP_FRAME_CONTROL5:
- case CS35L43_ASP_DATA_CONTROL1:
- case CS35L43_ASP_DATA_CONTROL5:
- case CS35L43_DACPCM1_INPUT:
- case CS35L43_DACPCM2_INPUT:
- case CS35L43_ASPTX1_INPUT:
- case CS35L43_ASPTX2_INPUT:
- case CS35L43_ASPTX3_INPUT:
- case CS35L43_ASPTX4_INPUT:
- case CS35L43_DSP1RX1_INPUT:
- case CS35L43_DSP1RX2_INPUT:
- case CS35L43_DSP1RX3_INPUT:
- case CS35L43_DSP1RX4_INPUT:
- case CS35L43_DSP1RX5_INPUT:
- case CS35L43_DSP1RX6_INPUT:
- case CS35L43_NGATE1_INPUT:
- case CS35L43_NGATE2_INPUT:
- case CS35L43_AMP_CTRL:
- case CS35L43_HPF_TST:
- case CS35L43_VC_TST1:
- case CS35L43_VC_TST2:
- case CS35L43_INTP_TST:
- case CS35L43_SRC_MAGCOMP_TST:
- case CS35L43_SRC_MAGCOMP_B0_OVERRIDE:
- case CS35L43_SRC_MAGCOMP_B1_OVERRIDE:
- case CS35L43_SRC_MAGCOMP_A1_N_OVERRIDE:
- case CS35L43_VPBR_CONFIG:
- case CS35L43_VBBR_CONFIG:
- case CS35L43_VPBR_STATUS:
- case CS35L43_VBBR_STATUS:
- case CS35L43_OTW_CONFIG:
- case CS35L43_AMP_ERROR_VOL_SEL:
- case CS35L43_VOL_STATUS_TO_DSP:
- case CS35L43_CLASSH_CONFIG:
- case CS35L43_WKFET_AMP_CONFIG:
- case CS35L43_NG_CONFIG:
- case CS35L43_AMP_GAIN:
- case CS35L43_DAC_MSM_CONFIG:
- case CS35L43_TST_DAC_MSM_CONFIG:
- case CS35L43_ALIVE_DCIN_WD:
- case CS35L43_SPKMON_OTP_3:
- case CS35L43_IRQ1_CFG:
- case CS35L43_IRQ1_STATUS:
- case CS35L43_IRQ1_EINT_1:
- case CS35L43_IRQ1_EINT_2:
- case CS35L43_IRQ1_EINT_3:
- case CS35L43_IRQ1_EINT_4:
- case CS35L43_IRQ1_EINT_5:
- case CS35L43_IRQ1_STS_1:
- case CS35L43_IRQ1_STS_2:
- case CS35L43_IRQ1_STS_3:
- case CS35L43_IRQ1_STS_4:
- case CS35L43_IRQ1_STS_5:
- case CS35L43_IRQ1_MASK_1:
- case CS35L43_IRQ1_MASK_2:
- case CS35L43_IRQ1_MASK_3:
- case CS35L43_IRQ1_MASK_4:
- case CS35L43_IRQ1_MASK_5:
- case CS35L43_IRQ1_FRC_1:
- case CS35L43_IRQ1_FRC_2:
- case CS35L43_IRQ1_FRC_3:
- case CS35L43_IRQ1_FRC_4:
- case CS35L43_IRQ1_FRC_5:
- case CS35L43_IRQ1_EDGE_1:
- case CS35L43_IRQ1_EDGE_4:
- case CS35L43_IRQ1_POL_1:
- case CS35L43_IRQ1_POL_2:
- case CS35L43_IRQ1_POL_3:
- case CS35L43_IRQ1_POL_4:
- case CS35L43_IRQ1_DB_2:
- case CS35L43_GPIO_STATUS1:
- case CS35L43_GPIO_FORCE:
- case CS35L43_GPIO1_CTRL1:
- case CS35L43_GPIO2_CTRL1:
- case CS35L43_GPIO3_CTRL1:
- case CS35L43_GPIO4_CTRL1:
- case CS35L43_MIXER_NGATE_CFG:
- case CS35L43_MIXER_NGATE_CH1_CFG:
- case CS35L43_MIXER_NGATE_CH2_CFG:
- case CS35L43_DSP_MBOX_1:
- case CS35L43_DSP_MBOX_2:
- case CS35L43_DSP_MBOX_3:
- case CS35L43_DSP_MBOX_4:
- case CS35L43_DSP_MBOX_5:
- case CS35L43_DSP_MBOX_6:
- case CS35L43_DSP_MBOX_7:
- case CS35L43_DSP_MBOX_8:
- case CS35L43_DSP_VIRTUAL1_MBOX_1:
- case CS35L43_DSP_VIRTUAL1_MBOX_2:
- case CS35L43_DSP_VIRTUAL1_MBOX_3:
- case CS35L43_DSP_VIRTUAL1_MBOX_4:
- case CS35L43_DSP_VIRTUAL1_MBOX_5:
- case CS35L43_DSP_VIRTUAL1_MBOX_6:
- case CS35L43_DSP_VIRTUAL1_MBOX_7:
- case CS35L43_DSP_VIRTUAL1_MBOX_8:
- case CS35L43_DSP_VIRTUAL2_MBOX_1:
- case CS35L43_DSP_VIRTUAL2_MBOX_2:
- case CS35L43_DSP_VIRTUAL2_MBOX_3:
- case CS35L43_DSP_VIRTUAL2_MBOX_4:
- case CS35L43_DSP_VIRTUAL2_MBOX_5:
- case CS35L43_DSP_VIRTUAL2_MBOX_6:
- case CS35L43_DSP_VIRTUAL2_MBOX_7:
- case CS35L43_DSP_VIRTUAL2_MBOX_8:
- case CS35L43_DSP1_SYS_INFO_ID:
- case CS35L43_DSP1_CLOCK_FREQ:
- case CS35L43_DSP1_CORE_SOFT_RESET:
- case CS35L43_DSP1_SCRATCH1:
- case CS35L43_DSP1_SCRATCH2:
- case CS35L43_DSP1_SCRATCH3:
- case CS35L43_DSP1_SCRATCH4:
- case CS35L43_DSP1_CCM_CORE_CONTROL:
- case CS35L43_DSP1_MPU_LOCK_STATE:
- case CS35L43_DSP1_MPU_XM_VIO_STATUS:
- case CS35L43_DSP1_MPU_YM_VIO_STATUS:
- case CS35L43_DSP1_MPU_PM_VIO_STATUS:
- case CS35L43_DSP1_WDT_CONTROL:
- case CS35L43_DSP1_WDT_STATUS:
- case CS35L43_DSP1_XMEM_PACKED_0 ... CS35L43_DSP1_XMEM_PACKED_6143:
- case CS35L43_DSP1_XMEM_UNPACKED32_0 ...
- CS35L43_DSP1_XMEM_UNPACKED32_4095:
- case CS35L43_DSP1_XMEM_UNPACKED24_0 ...
- CS35L43_DSP1_XMEM_UNPACKED24_8191:
- case CS35L43_DSP1_XROM_UNPACKED24_0 ...
- CS35L43_DSP1_XROM_UNPACKED24_6141:
- case CS35L43_DSP1_YMEM_PACKED_0 ... CS35L43_DSP1_YMEM_PACKED_1532:
- case CS35L43_DSP1_YMEM_UNPACKED32_0 ...
- CS35L43_DSP1_YMEM_UNPACKED32_1022:
- case CS35L43_DSP1_YMEM_UNPACKED24_0 ...
- CS35L43_DSP1_YMEM_UNPACKED24_2045:
- case CS35L43_DSP1_PMEM_0 ... CS35L43_DSP1_PMEM_5114:
- return true;
- default:
- return false;
- }
- }
- bool cs35l43_precious_reg(struct device *dev, unsigned int reg)
- {
- switch (reg) {
- case CS35L43_DSP1_XMEM_PACKED_0 ... CS35L43_DSP1_XMEM_PACKED_6143:
- case CS35L43_DSP1_XMEM_UNPACKED32_0 ...
- CS35L43_DSP1_XMEM_UNPACKED32_4095:
- case CS35L43_DSP1_XROM_UNPACKED24_0 ...
- CS35L43_DSP1_XROM_UNPACKED24_6141:
- case CS35L43_DSP1_YMEM_PACKED_0 ... CS35L43_DSP1_YMEM_PACKED_1532:
- case CS35L43_DSP1_YMEM_UNPACKED32_0 ...
- CS35L43_DSP1_YMEM_UNPACKED32_1022:
- case CS35L43_DSP1_PMEM_0 ... CS35L43_DSP1_PMEM_5114:
- return true;
- default:
- return false;
- }
- return false;
- }
- bool cs35l43_volatile_reg(struct device *dev, unsigned int reg)
- {
- switch (reg) {
- case CS35L43_GLOBAL_STATUS:
- case CS35L43_CHIP_STATUS:
- case CS35L43_CHIP_STATUS2:
- case CS35L43_STATUS:
- case CS35L43_ENABLES_AND_CODES_ANA:
- case CS35L43_ENABLES_AND_CODES_DIG:
- case CS35L43_VBST_CTL_1:
- case CS35L43_VBST_CTL_2:
- case CS35L43_VPBR_STATUS:
- case CS35L43_VBBR_STATUS:
- case CS35L43_SPKMON_OTP_3:
- case CS35L43_IRQ1_STATUS:
- case CS35L43_IRQ1_EINT_1:
- case CS35L43_IRQ1_EINT_2:
- case CS35L43_IRQ1_EINT_3:
- case CS35L43_IRQ1_EINT_4:
- case CS35L43_IRQ1_EINT_5:
- case CS35L43_IRQ1_STS_1:
- case CS35L43_IRQ1_STS_2:
- case CS35L43_IRQ1_STS_3:
- case CS35L43_IRQ1_STS_4:
- case CS35L43_IRQ1_STS_5:
- case CS35L43_GPIO_STATUS1:
- case CS35L43_DSP_MBOX_1:
- case CS35L43_DSP_MBOX_2:
- case CS35L43_DSP_MBOX_3:
- case CS35L43_DSP_MBOX_4:
- case CS35L43_DSP_MBOX_5:
- case CS35L43_DSP_MBOX_6:
- case CS35L43_DSP_MBOX_7:
- case CS35L43_DSP_MBOX_8:
- case CS35L43_DSP_VIRTUAL1_MBOX_1:
- case CS35L43_DSP_VIRTUAL1_MBOX_2:
- case CS35L43_DSP_VIRTUAL1_MBOX_3:
- case CS35L43_DSP_VIRTUAL1_MBOX_4:
- case CS35L43_DSP_VIRTUAL1_MBOX_5:
- case CS35L43_DSP_VIRTUAL1_MBOX_6:
- case CS35L43_DSP_VIRTUAL1_MBOX_7:
- case CS35L43_DSP_VIRTUAL1_MBOX_8:
- case CS35L43_DSP_VIRTUAL2_MBOX_1:
- case CS35L43_DSP_VIRTUAL2_MBOX_2:
- case CS35L43_DSP_VIRTUAL2_MBOX_3:
- case CS35L43_DSP_VIRTUAL2_MBOX_4:
- case CS35L43_DSP_VIRTUAL2_MBOX_5:
- case CS35L43_DSP_VIRTUAL2_MBOX_6:
- case CS35L43_DSP_VIRTUAL2_MBOX_7:
- case CS35L43_DSP_VIRTUAL2_MBOX_8:
- case CS35L43_DSP1_CORE_SOFT_RESET:
- case CS35L43_DSP1_SCRATCH1:
- case CS35L43_DSP1_SCRATCH2:
- case CS35L43_DSP1_SCRATCH3:
- case CS35L43_DSP1_SCRATCH4:
- case CS35L43_DSP1_MPU_LOCK_STATE:
- case CS35L43_DSP1_MPU_XM_VIO_STATUS:
- case CS35L43_DSP1_MPU_YM_VIO_STATUS:
- case CS35L43_DSP1_MPU_PM_VIO_STATUS:
- case CS35L43_DSP1_WDT_STATUS:
- case CS35L43_DSP1_XMEM_PACKED_0 ...
- CS35L43_DSP1_XMEM_PACKED_6143:
- case CS35L43_DSP1_XMEM_UNPACKED32_0 ...
- CS35L43_DSP1_XMEM_UNPACKED32_4095:
- case CS35L43_DSP1_XMEM_UNPACKED24_0 ...
- CS35L43_DSP1_XMEM_UNPACKED24_8191:
- case CS35L43_DSP1_XROM_UNPACKED24_0 ...
- CS35L43_DSP1_XROM_UNPACKED24_6141:
- case CS35L43_DSP1_YMEM_PACKED_0 ...
- CS35L43_DSP1_YMEM_PACKED_1532:
- case CS35L43_DSP1_YMEM_UNPACKED32_0 ...
- CS35L43_DSP1_YMEM_UNPACKED32_1022:
- case CS35L43_DSP1_YMEM_UNPACKED24_0 ...
- CS35L43_DSP1_YMEM_UNPACKED24_2045:
- case CS35L43_DSP1_PMEM_0 ...
- CS35L43_DSP1_PMEM_5114:
- return true;
- default:
- return false;
- }
- }
- const struct reg_default cs35l43_reg[CS35L43_NUM_DEFAULTS] = {
- { CS35L43_CTRL_ASYNC0, 0x00000000 },
- { CS35L43_CTRL_ASYNC1, 0x00000004 },
- { CS35L43_CTRL_ASYNC2, 0x00000000 },
- { CS35L43_CTRL_ASYNC3, 0x00000000 },
- { CS35L43_CTRL_IF_CONFIG1, 0x00020002 },
- { CS35L43_CTRL_IF_STATUS1, 0x00000000 },
- { CS35L43_CTRL_IF_STATUS2, 0x00000000 },
- { CS35L43_CTRL_IF_CONFIG2, 0x00000000 },
- { CS35L43_CTRL_IF_DEBUG1, 0x00000000 },
- { CS35L43_CTRL_IF_DEBUG2, 0x00000000 },
- { CS35L43_CTRL_IF_DEBUG3, 0x00000000 },
- { CS35L43_CIF_MON1, 0x00002003 },
- { CS35L43_CIF_MON2, 0x00000000 },
- { CS35L43_CIF_MON_PADDR, 0x00000000 },
- { CS35L43_CTRL_IF_SPARE1, 0x00000000 },
- { CS35L43_CTRL_IF_I2C, 0x00000004 },
- { CS35L43_CTRL_IF_I2C_1_CONTROL, 0x00000040 },
- { CS35L43_CTRL_IF_I2C_1_BROADCAST, 0x00000088 },
- { CS35L43_APB_MSTR_DSP_BRIDGE_ERR, 0x00000000 },
- { CS35L43_CIF1_BRIDGE_ERR, 0x00000000 },
- { CS35L43_CIF2_BRIDGE_ERR, 0x00000000 },
- { CS35L43_LRCK_PAD_CONTROL, 0x00000007 },
- { CS35L43_SCLK_PAD_CONTROL, 0x00000007 },
- { CS35L43_SDIN_PAD_CONTROL, 0x00000007 },
- { CS35L43_HPF_TST, 0x00000000 },
- { CS35L43_VC_TST1, 0x00000000 },
- { CS35L43_VC_TST2, 0x00000000 },
- { CS35L43_INTP_TST, 0x00000680 },
- { CS35L43_SRC_MAGCOMP_TST, 0x0000000D },
- { CS35L43_SRC_MAGCOMP_B0_OVERRIDE, 0x00000000 },
- { CS35L43_SRC_MAGCOMP_B1_OVERRIDE, 0x00000000 },
- { CS35L43_SRC_MAGCOMP_A1_N_OVERRIDE, 0x00000000 },
- { CS35L43_OTW_CONFIG, 0x00000001 },
- { CS35L43_AMP_ERROR_VOL_SEL, 0x00000000 },
- { CS35L43_VOL_STATUS_TO_DSP, 0x00000000 },
- { CS35L43_IRQ1_POL_1, 0x00000000 },
- { CS35L43_IRQ1_POL_2, 0x00000000 },
- { CS35L43_IRQ1_POL_3, 0x00000000 },
- { CS35L43_IRQ1_POL_4, 0x00000000 },
- { CS35L43_GPIO3_CTRL1, 0x80000001 },
- { CS35L43_GPIO4_CTRL1, 0x80000001 },
- };
- const unsigned int cs35l43_hibernate_update_regs[CS35L43_POWER_SEQ_LENGTH] = {
- CS35L43_ASPTX1_INPUT,
- CS35L43_ASPTX2_INPUT,
- CS35L43_ASPTX3_INPUT,
- CS35L43_ASPTX4_INPUT,
- CS35L43_DSP1RX1_INPUT,
- CS35L43_DSP1RX2_INPUT,
- CS35L43_DSP1RX3_INPUT,
- CS35L43_DSP1RX4_INPUT,
- CS35L43_DSP1RX5_INPUT,
- CS35L43_DSP1RX6_INPUT,
- CS35L43_DACPCM1_INPUT,
- CS35L43_DACPCM2_INPUT,
- CS35L43_ASP_FRAME_CONTROL1,
- CS35L43_ASP_FRAME_CONTROL5,
- CS35L43_AMP_CTRL,
- CS35L43_AMP_GAIN,
- CS35L43_GLOBAL_SAMPLE_RATE,
- CS35L43_DSP1_SAMPLE_RATE_RX1,
- CS35L43_DSP1_SAMPLE_RATE_RX2,
- CS35L43_DSP1_SAMPLE_RATE_TX1,
- CS35L43_DSP1_SAMPLE_RATE_TX2,
- CS35L43_ALIVE_DCIN_WD,
- CS35L43_MONITOR_FILT,
- CS35L43_DAC_MSM_CONFIG,
- CS35L43_ASP_CONTROL2,
- CS35L43_ASP_CONTROL3,
- CS35L43_ASP_DATA_CONTROL1,
- CS35L43_ASP_DATA_CONTROL5,
- CS35L43_GPIO_PAD_CONTROL,
- CS35L43_VBST_CTL_1,
- CS35L43_VBST_CTL_2,
- CS35L43_BST_IPK_CTL,
- CS35L43_VPBR_CONFIG,
- CS35L43_GLOBAL_SYNC,
- CS35L43_BLOCK_ENABLES,
- CS35L43_BLOCK_ENABLES2,
- CS35L43_NG_CONFIG,
- CS35L43_MIXER_NGATE_CH1_CFG,
- CS35L43_MIXER_NGATE_CH2_CFG,
- CS35L43_FS_MON_0,
- CS35L43_TST_DAC_MSM_CONFIG,
- };
- const struct cs35l43_pll_sysclk_config cs35l43_pll_sysclk[64] = {
- { 32768, 0x00 },
- { 8000, 0x01 },
- { 11025, 0x02 },
- { 12000, 0x03 },
- { 16000, 0x04 },
- { 22050, 0x05 },
- { 24000, 0x06 },
- { 32000, 0x07 },
- { 44100, 0x08 },
- { 48000, 0x09 },
- { 88200, 0x0A },
- { 96000, 0x0B },
- { 128000, 0x0C },
- { 176400, 0x0D },
- { 192000, 0x0E },
- { 256000, 0x0F },
- { 352800, 0x10 },
- { 384000, 0x11 },
- { 512000, 0x12 },
- { 705600, 0x13 },
- { 750000, 0x14 },
- { 768000, 0x15 },
- { 1000000, 0x16 },
- { 1024000, 0x17 },
- { 1200000, 0x18 },
- { 1411200, 0x19 },
- { 1500000, 0x1A },
- { 1536000, 0x1B },
- { 2000000, 0x1C },
- { 2048000, 0x1D },
- { 2400000, 0x1E },
- { 2822400, 0x1F },
- { 3000000, 0x20 },
- { 3072000, 0x21 },
- { 3200000, 0x22 },
- { 4000000, 0x23 },
- { 4096000, 0x24 },
- { 4800000, 0x25 },
- { 5644800, 0x26 },
- { 6000000, 0x27 },
- { 6144000, 0x28 },
- { 6250000, 0x29 },
- { 6400000, 0x2A },
- { 6500000, 0x2B },
- { 6750000, 0x2C },
- { 7526400, 0x2D },
- { 8000000, 0x2E },
- { 8192000, 0x2F },
- { 9600000, 0x30 },
- { 11289600, 0x31 },
- { 12000000, 0x32 },
- { 12288000, 0x33 },
- { 12500000, 0x34 },
- { 12800000, 0x35 },
- { 13000000, 0x36 },
- { 13500000, 0x37 },
- { 19200000, 0x38 },
- { 22579200, 0x39 },
- { 24000000, 0x3A },
- { 24576000, 0x3B },
- { 25000000, 0x3C },
- { 25600000, 0x3D },
- { 26000000, 0x3E },
- { 27000000, 0x3F },
- };
- const struct cs35l43_fs_mon_config cs35l43_fs_mon[7] = {
- { 705600, 154, 244 },
- { 768000, 141, 224 },
- { 1411200, 77, 125 },
- { 1536000, 71, 115 },
- { 2822400, 39, 65 },
- { 3072000, 36, 60 },
- { 5644800, 20, 35 },
- };
- const u8 cs35l43_write_seq_op_sizes[CS35L43_POWER_SEQ_NUM_OPS][2] = {
- { CS35L43_POWER_SEQ_OP_WRITE_REG_FULL,
- CS35L43_POWER_SEQ_OP_WRITE_REG_FULL_WORDS},
- { CS35L43_POWER_SEQ_OP_WRITE_FIELD,
- CS35L43_POWER_SEQ_OP_WRITE_FIELD_WORDS},
- { CS35L43_POWER_SEQ_OP_WRITE_REG_ADDR8,
- CS35L43_POWER_SEQ_OP_WRITE_REG_ADDR8_WORDS},
- { CS35L43_POWER_SEQ_OP_WRITE_REG_INCR,
- CS35L43_POWER_SEQ_OP_WRITE_REG_INCR_WORDS},
- { CS35L43_POWER_SEQ_OP_WRITE_REG_L16,
- CS35L43_POWER_SEQ_OP_WRITE_REG_L16_WORDS},
- { CS35L43_POWER_SEQ_OP_WRITE_REG_H16,
- CS35L43_POWER_SEQ_OP_WRITE_REG_H16_WORDS},
- { CS35L43_POWER_SEQ_OP_DELAY,
- CS35L43_POWER_SEQ_OP_DELAY_WORDS},
- { CS35L43_POWER_SEQ_OP_END,
- CS35L43_POWER_SEQ_OP_END_WORDS},
- };
- const struct dev_pm_ops cs35l43_pm_ops = {
- SET_RUNTIME_PM_OPS(cs35l43_suspend_runtime, cs35l43_resume_runtime, NULL)
- SET_SYSTEM_SLEEP_PM_OPS(cs35l43_sys_suspend, cs35l43_sys_resume)
- SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(cs35l43_sys_suspend_noirq, cs35l43_sys_resume_noirq)
- };
|