forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
2.2 KiB
107 lines
2.2 KiB
/* SPDX-License-Identifier: GPL-2.0-only */ |
|
/* |
|
* linux/sound/cs35l35.h -- Platform data for CS35l35 |
|
* |
|
* Copyright (c) 2016 Cirrus Logic Inc. |
|
*/ |
|
|
|
#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 */
|
|
|