// SPDX-License-Identifier: GPL-2.0-only // // Regmap tables and other data for Cirrus Logic CS48L32 audio DSP. // // Copyright (C) 2018, 2020, 2022, 2025 Cirrus Logic, Inc. and // Cirrus Logic International Semiconductor Ltd.
staticbool cs48l32_readable_register(struct device *dev, unsignedint reg)
{ switch (reg) { case CS48L32_DEVID: case CS48L32_REVID: case CS48L32_OTPID: case CS48L32_SFT_RESET: case CS48L32_CTRL_IF_DEBUG3: case CS48L32_MCU_CTRL1: case CS48L32_GPIO1_CTRL1 ... CS48L32_GPIO16_CTRL1: case CS48L32_OUTPUT_SYS_CLK: case CS48L32_AUXPDM_CTRL: case CS48L32_AUXPDM_CTRL2: case CS48L32_CLOCK32K: case CS48L32_SYSTEM_CLOCK1 ... CS48L32_SYSTEM_CLOCK2: case CS48L32_SAMPLE_RATE1 ... CS48L32_SAMPLE_RATE4: case CS48L32_FLL1_CONTROL1 ... CS48L32_FLL1_GPIO_CLOCK: case CS48L32_CHARGE_PUMP1: case CS48L32_LDO2_CTRL1: case CS48L32_MICBIAS_CTRL1: case CS48L32_MICBIAS_CTRL5: case CS48L32_IRQ1_CTRL_AOD: case CS48L32_INPUT_CONTROL: case CS48L32_INPUT_STATUS: case CS48L32_INPUT_RATE_CONTROL: case CS48L32_INPUT_CONTROL2: case CS48L32_INPUT_CONTROL3: case CS48L32_INPUT1_CONTROL1: case CS48L32_IN1L_CONTROL1 ... CS48L32_IN1L_CONTROL2: case CS48L32_IN1R_CONTROL1 ... CS48L32_IN1R_CONTROL2: case CS48L32_INPUT2_CONTROL1: case CS48L32_IN2L_CONTROL1 ... CS48L32_IN2L_CONTROL2: case CS48L32_IN2R_CONTROL1 ... CS48L32_IN2R_CONTROL2: case CS48L32_INPUT_HPF_CONTROL: case CS48L32_INPUT_VOL_CONTROL: case CS48L32_AUXPDM_CONTROL1: case CS48L32_AUXPDM_CONTROL2: case CS48L32_AUXPDM1_CONTROL1: case CS48L32_AUXPDM2_CONTROL1: case CS48L32_ADC1L_ANA_CONTROL1: case CS48L32_ADC1R_ANA_CONTROL1: case CS48L32_ASP1_ENABLES1 ... CS48L32_ASP1_DATA_CONTROL5: case CS48L32_ASP2_ENABLES1 ... CS48L32_ASP2_DATA_CONTROL5: case CS48L32_ASP1TX1_INPUT1 ... CS48L32_ASP1TX8_INPUT4: case CS48L32_ASP2TX1_INPUT1 ... CS48L32_ASP2TX4_INPUT4: case CS48L32_ISRC1INT1_INPUT1 ... CS48L32_ISRC1DEC4_INPUT1: case CS48L32_ISRC2INT1_INPUT1 ... CS48L32_ISRC2DEC2_INPUT1: case CS48L32_ISRC3INT1_INPUT1 ... CS48L32_ISRC3DEC2_INPUT1: case CS48L32_EQ1_INPUT1 ... CS48L32_EQ4_INPUT4: case CS48L32_DRC1L_INPUT1 ... CS48L32_DRC1R_INPUT4: case CS48L32_DRC2L_INPUT1 ... CS48L32_DRC2R_INPUT4: case CS48L32_LHPF1_INPUT1 ... CS48L32_LHPF1_INPUT4: case CS48L32_LHPF2_INPUT1 ... CS48L32_LHPF2_INPUT4: case CS48L32_LHPF3_INPUT1 ... CS48L32_LHPF3_INPUT4: case CS48L32_LHPF4_INPUT1 ... CS48L32_LHPF4_INPUT4: case CS48L32_DSP1RX1_INPUT1 ... CS48L32_DSP1RX8_INPUT4: case CS48L32_ISRC1_CONTROL1 ... CS48L32_ISRC1_CONTROL2: case CS48L32_ISRC2_CONTROL1 ... CS48L32_ISRC2_CONTROL2: case CS48L32_ISRC3_CONTROL1 ... CS48L32_ISRC3_CONTROL2: case CS48L32_FX_SAMPLE_RATE: case CS48L32_EQ_CONTROL1 ... CS48L32_EQ_CONTROL2: case CS48L32_EQ1_GAIN1 ... CS48L32_EQ1_BAND5_PG: case CS48L32_EQ2_GAIN1 ... CS48L32_EQ2_BAND5_PG: case CS48L32_EQ3_GAIN1 ... CS48L32_EQ3_BAND5_PG: case CS48L32_EQ4_GAIN1 ... CS48L32_EQ4_BAND5_PG: case CS48L32_LHPF_CONTROL1 ... CS48L32_LHPF_CONTROL2: case CS48L32_LHPF1_COEFF ... CS48L32_LHPF4_COEFF: case CS48L32_DRC1_CONTROL1 ... CS48L32_DRC1_CONTROL4: case CS48L32_DRC2_CONTROL1 ... CS48L32_DRC2_CONTROL4: case CS48L32_TONE_GENERATOR1 ... CS48L32_TONE_GENERATOR2: case CS48L32_COMFORT_NOISE_GENERATOR: case CS48L32_US_CONTROL: case CS48L32_US1_CONTROL: case CS48L32_US1_DET_CONTROL: case CS48L32_US2_CONTROL: case CS48L32_US2_DET_CONTROL: case CS48L32_DSP1_XM_SRAM_IBUS_SETUP_0 ... CS48L32_DSP1_XM_SRAM_IBUS_SETUP_24: case CS48L32_DSP1_YM_SRAM_IBUS_SETUP_0 ... CS48L32_DSP1_YM_SRAM_IBUS_SETUP_8: case CS48L32_DSP1_PM_SRAM_IBUS_SETUP_0 ... CS48L32_DSP1_PM_SRAM_IBUS_SETUP_7: case CS48L32_IRQ1_STATUS: case CS48L32_IRQ1_EINT_1 ... CS48L32_IRQ1_EINT_11: case CS48L32_IRQ1_STS_1 ... CS48L32_IRQ1_STS_11: case CS48L32_IRQ1_MASK_1 ... CS48L32_IRQ1_MASK_11: case CS48L32_DSP1_XMEM_PACKED_0 ... CS48L32_DSP1_XMEM_PACKED_LAST: case CS48L32_DSP1_SYS_INFO_ID ... CS48L32_DSP1_AHBM_WINDOW_DEBUG_1: case CS48L32_DSP1_XMEM_UNPACKED24_0 ... CS48L32_DSP1_XMEM_UNPACKED24_LAST: case CS48L32_DSP1_CLOCK_FREQ ... CS48L32_DSP1_SAMPLE_RATE_TX8: case CS48L32_DSP1_SCRATCH1 ... CS48L32_DSP1_SCRATCH4: case CS48L32_DSP1_CCM_CORE_CONTROL ... CS48L32_DSP1_STREAM_ARB_RESYNC_MSK1: case CS48L32_DSP1_YMEM_PACKED_0 ... CS48L32_DSP1_YMEM_PACKED_LAST: case CS48L32_DSP1_YMEM_UNPACKED24_0 ... CS48L32_DSP1_YMEM_UNPACKED24_LAST: case CS48L32_DSP1_PMEM_0 ... CS48L32_DSP1_PMEM_LAST: returntrue; default: returnfalse;
}
}
staticbool cs48l32_volatile_register(struct device *dev, unsignedint reg)
{ switch (reg) { case CS48L32_DEVID: case CS48L32_REVID: case CS48L32_OTPID: case CS48L32_SFT_RESET: case CS48L32_CTRL_IF_DEBUG3: case CS48L32_MCU_CTRL1: case CS48L32_SYSTEM_CLOCK2: case CS48L32_FLL1_CONTROL5: case CS48L32_FLL1_CONTROL6: case CS48L32_INPUT_STATUS: case CS48L32_INPUT_CONTROL3: case CS48L32_DSP1_XM_SRAM_IBUS_SETUP_0 ... CS48L32_DSP1_XM_SRAM_IBUS_SETUP_24: case CS48L32_DSP1_YM_SRAM_IBUS_SETUP_0 ... CS48L32_DSP1_YM_SRAM_IBUS_SETUP_8: case CS48L32_DSP1_PM_SRAM_IBUS_SETUP_0 ... CS48L32_DSP1_PM_SRAM_IBUS_SETUP_7: case CS48L32_IRQ1_STATUS: case CS48L32_IRQ1_EINT_1 ... CS48L32_IRQ1_EINT_11: case CS48L32_IRQ1_STS_1 ... CS48L32_IRQ1_STS_11: case CS48L32_DSP1_XMEM_PACKED_0 ... CS48L32_DSP1_XMEM_PACKED_LAST: case CS48L32_DSP1_SYS_INFO_ID ... CS48L32_DSP1_AHBM_WINDOW_DEBUG_1: case CS48L32_DSP1_XMEM_UNPACKED24_0 ... CS48L32_DSP1_XMEM_UNPACKED24_LAST: case CS48L32_DSP1_CLOCK_FREQ ... CS48L32_DSP1_SAMPLE_RATE_TX8: case CS48L32_DSP1_SCRATCH1 ... CS48L32_DSP1_SCRATCH4: case CS48L32_DSP1_CCM_CORE_CONTROL ... CS48L32_DSP1_STREAM_ARB_RESYNC_MSK1: case CS48L32_DSP1_YMEM_PACKED_0 ... CS48L32_DSP1_YMEM_PACKED_LAST: case CS48L32_DSP1_YMEM_UNPACKED24_0 ... CS48L32_DSP1_YMEM_UNPACKED24_LAST: case CS48L32_DSP1_PMEM_0 ... CS48L32_DSP1_PMEM_LAST: returntrue; default: returnfalse;
}
}
/* * The bus bridge requires DSP packed memory registers to be accessed in * aligned block multiples. * Mark precious to prevent regmap debugfs causing an illegal bus transaction.
*/ staticbool cs48l32_precious_register(struct device *dev, unsignedint reg)
{ switch (reg) { case CS48L32_DSP1_XMEM_PACKED_0 ... CS48L32_DSP1_XMEM_PACKED_LAST: case CS48L32_DSP1_YMEM_PACKED_0 ... CS48L32_DSP1_YMEM_PACKED_LAST: case CS48L32_DSP1_PMEM_0 ... CS48L32_DSP1_PMEM_LAST: returntrue; default: returnfalse;
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.