forked from Minki/linux
d2912cb15b
Based on 2 normalized pattern(s): 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 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 # extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 4122 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Enrico Weigelt <info@metux.net> Reviewed-by: Kate Stewart <kstewart@linuxfoundation.org> Reviewed-by: Allison Randal <allison@lohutok.net> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081206.933168790@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
108 lines
2.2 KiB
C
108 lines
2.2 KiB
C
/* 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 */
|