#include <linux/array_size.h>
#include <linux/firmware/cirrus/wmfw.h>
#include <linux/gpio/consumer.h>
#include <linux/regmap.h>
#include <linux/regulator/consumer.h>
#include <linux/types.h>
#include <sound/cs-amp-lib.h>
#include "cs35l56.h"
static const struct reg_sequence cs35l56_patch[] = …;
int cs35l56_set_patch(struct cs35l56_base *cs35l56_base)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
static const struct reg_default cs35l56_reg_defaults[] = …;
static bool cs35l56_is_dsp_memory(unsigned int reg)
{ … }
static bool cs35l56_readable_reg(struct device *dev, unsigned int reg)
{ … }
static bool cs35l56_precious_reg(struct device *dev, unsigned int reg)
{ … }
static bool cs35l56_volatile_reg(struct device *dev, unsigned int reg)
{ … }
int cs35l56_mbox_send(struct cs35l56_base *cs35l56_base, unsigned int command)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
int cs35l56_firmware_shutdown(struct cs35l56_base *cs35l56_base)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
int cs35l56_wait_for_firmware_boot(struct cs35l56_base *cs35l56_base)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
void cs35l56_wait_control_port_ready(void)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
void cs35l56_wait_min_reset_pulse(void)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
static const struct reg_sequence cs35l56_system_reset_seq[] = …;
void cs35l56_system_reset(struct cs35l56_base *cs35l56_base, bool is_soundwire)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
int cs35l56_irq_request(struct cs35l56_base *cs35l56_base, int irq)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
irqreturn_t cs35l56_irq(int irq, void *data)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
int cs35l56_is_fw_reload_needed(struct cs35l56_base *cs35l56_base)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
static const struct reg_sequence cs35l56_hibernate_seq[] = …;
static const struct reg_sequence cs35l56_hibernate_wake_seq[] = …;
static void cs35l56_issue_wake_event(struct cs35l56_base *cs35l56_base)
{ … }
int cs35l56_runtime_suspend_common(struct cs35l56_base *cs35l56_base)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
int cs35l56_runtime_resume_common(struct cs35l56_base *cs35l56_base, bool is_soundwire)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
static const struct cs_dsp_region cs35l56_dsp1_regions[] = …;
void cs35l56_init_cs_dsp(struct cs35l56_base *cs35l56_base, struct cs_dsp *cs_dsp)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
struct cs35l56_pte { … } __packed;
static_assert(…);
static int cs35l56_read_silicon_uid(struct cs35l56_base *cs35l56_base, u64 *uid)
{ … }
const struct cirrus_amp_cal_controls cs35l56_calibration_controls = …;
EXPORT_SYMBOL_NS_GPL(…);
int cs35l56_get_calibration(struct cs35l56_base *cs35l56_base)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
int cs35l56_read_prot_status(struct cs35l56_base *cs35l56_base,
bool *fw_missing, unsigned int *fw_version)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
int cs35l56_hw_init(struct cs35l56_base *cs35l56_base)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
int cs35l56_get_speaker_id(struct cs35l56_base *cs35l56_base)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
static const u32 cs35l56_bclk_valid_for_pll_freq_table[] = …;
int cs35l56_get_bclk_freq_id(unsigned int freq)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
static const char * const cs35l56_supplies[] = …;
void cs35l56_fill_supply_names(struct regulator_bulk_data *data)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
const char * const cs35l56_tx_input_texts[] = …;
EXPORT_SYMBOL_NS_GPL(…);
const unsigned int cs35l56_tx_input_values[] = …;
EXPORT_SYMBOL_NS_GPL(…);
struct regmap_config cs35l56_regmap_i2c = …;
EXPORT_SYMBOL_NS_GPL(…);
struct regmap_config cs35l56_regmap_spi = …;
EXPORT_SYMBOL_NS_GPL(…);
struct regmap_config cs35l56_regmap_sdw = …;
EXPORT_SYMBOL_NS_GPL(…);
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
MODULE_IMPORT_NS(…);