|  | /* | 
|  | * 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 */ |