blob: 80fff474422e227bf65ec3f3614010611f91ea37 [file] [log] [blame]
/*
* linux/sound/cs35l41.h -- Platform data for CS35L41
*
* Copyright (c) 2016 Cirrus Logic Inc.
*
* 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.
*/
#ifndef __CS35L41_H
#define __CS35L41_H
#include <sound/soc.h>
struct classh_cfg {
bool classh_bst_override;
bool classh_algo_enable;
int classh_bst_max_limit;
int classh_mem_depth;
int classh_release_rate;
int classh_headroom;
int classh_wk_fet_delay;
int classh_wk_fet_thld;
};
struct cs35l41_irq_cfg {
bool is_present;
bool irq_pol_inv;
bool irq_out_en;
int irq_src_sel;
};
struct cs35l41_platform_data {
bool sclk_frc;
bool lrclk_frc;
bool right_channel;
bool amp_gain_zc;
bool dsp_ng_enable;
bool inv_pcm;
bool use_fsync_errata;
int bst_ind;
int bst_vctrl;
int bst_ipk;
int temp_warn_thld;
int dsp_ng_pcm_thld;
int dsp_ng_delay;
int dout_hiz;
unsigned int hw_ng_sel;
unsigned int hw_ng_delay;
unsigned int hw_ng_thld;
unsigned int fixed_rate;
unsigned int fixed_width;
unsigned int fixed_wl;
bool fixed_params;
const char * dsp_part_name;
const char * mfd_suffix;
struct cs35l41_irq_cfg irq_config1;
struct cs35l41_irq_cfg irq_config2;
struct classh_cfg classh_config;
};
int cs35l41_reinit(struct snd_soc_codec *codec);
#endif /* __CS35L41_H */