123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- /*
- * 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;
- u8 imon_scale;
- 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;
- /* serial port drive in unused slots */
- int sp_drv_unused;
- /* 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;
- /* Specifies this amp is using an external boost supply */
- bool ext_bst;
- /* Inductor Value */
- int boost_ind;
- /* ClassH Algorithm */
- struct classh_cfg classh_algo;
- /* Monitor Config */
- struct monitor_cfg mon_cfg;
- };
- #endif /* __CS35L35_H */
|