2017-03-06 17:07:59 +03:00
/*
* linux / sound / cs35l35 . h - - Platform data for CS35l35
*
* 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 __CS35L35_H
# define __CS35L35_H
struct classh_cfg {
/*
* Class H Algorithm Control Variables
* You can either have it done
* automatically or you can adjust
* these variables for tuning
*
* if you do not enable the internal algorithm
* you will get a set of mixer controls for
* Class H tuning
*
* Section 4.3 of the datasheet
*/
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_disable ;
int classh_wk_fet_delay ;
int classh_wk_fet_thld ;
int classh_vpch_auto ;
int classh_vpch_rate ;
int classh_vpch_man ;
} ;
struct monitor_cfg {
/*
* Signal Monitor Data
* highly configurable signal monitoring
* data positioning and different types of
* monitoring data .
*
* Section 4.8 .2 - 4.8 .4 of the datasheet
*/
bool is_present ;
bool imon_specs ;
bool vmon_specs ;
bool vpmon_specs ;
bool vbstmon_specs ;
bool vpbrstat_specs ;
bool zerofill_specs ;
u8 imon_dpth ;
u8 imon_loc ;
u8 imon_frm ;
2017-04-13 18:52:09 +03:00
u8 imon_scale ;
2017-03-06 17:07:59 +03:00
u8 vmon_dpth ;
u8 vmon_loc ;
u8 vmon_frm ;
u8 vpmon_dpth ;
u8 vpmon_loc ;
u8 vpmon_frm ;
u8 vbstmon_dpth ;
u8 vbstmon_loc ;
u8 vbstmon_frm ;
u8 vpbrstat_dpth ;
u8 vpbrstat_loc ;
u8 vpbrstat_frm ;
u8 zerofill_dpth ;
u8 zerofill_loc ;
u8 zerofill_frm ;
} ;
struct cs35l35_platform_data {
/* Stereo (2 Device) */
bool stereo ;
/* serial port drive strength */
int sp_drv_str ;
2017-03-08 19:42:49 +03:00
/* serial port drive in unused slots */
int sp_drv_unused ;
2017-03-06 17:07:59 +03:00
/* Boost Power Down with FET */
bool bst_pdn_fet_on ;
/* Boost Voltage : used if ClassH Algo Enabled */
int bst_vctl ;
/* Boost Converter Peak Current CTRL */
int bst_ipk ;
/* Amp Gain Zero Cross */
bool gain_zc ;
/* Audio Input Location */
int aud_channel ;
/* Advisory Input Location */
int adv_channel ;
/* Shared Boost for stereo */
bool shared_bst ;
2017-04-06 15:52:13 +03:00
/* Specifies this amp is using an external boost supply */
bool ext_bst ;
2017-05-18 18:32:36 +03:00
/* Inductor Value */
int boost_ind ;
2017-03-06 17:07:59 +03:00
/* ClassH Algorithm */
struct classh_cfg classh_algo ;
/* Monitor Config */
struct monitor_cfg mon_cfg ;
} ;
# endif /* __CS35L35_H */