108 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * linux/sound/cs35l35.h -- Platform data for CS35l354 *5 * Copyright (c) 2016 Cirrus Logic Inc.6 */7 8#ifndef __CS35L35_H9#define __CS35L35_H10 11struct classh_cfg {12 /*13 * Class H Algorithm Control Variables14 * You can either have it done15 * automatically or you can adjust16 * these variables for tuning17 *18 * if you do not enable the internal algorithm19 * you will get a set of mixer controls for20 * Class H tuning21 *22 * Section 4.3 of the datasheet23 */24 bool classh_bst_override;25 bool classh_algo_enable;26 int classh_bst_max_limit;27 int classh_mem_depth;28 int classh_release_rate;29 int classh_headroom;30 int classh_wk_fet_disable;31 int classh_wk_fet_delay;32 int classh_wk_fet_thld;33 int classh_vpch_auto;34 int classh_vpch_rate;35 int classh_vpch_man;36};37 38struct monitor_cfg {39 /*40 * Signal Monitor Data41 * highly configurable signal monitoring42 * data positioning and different types of43 * monitoring data.44 *45 * Section 4.8.2 - 4.8.4 of the datasheet46 */47 bool is_present;48 bool imon_specs;49 bool vmon_specs;50 bool vpmon_specs;51 bool vbstmon_specs;52 bool vpbrstat_specs;53 bool zerofill_specs;54 u8 imon_dpth;55 u8 imon_loc;56 u8 imon_frm;57 u8 imon_scale;58 u8 vmon_dpth;59 u8 vmon_loc;60 u8 vmon_frm;61 u8 vpmon_dpth;62 u8 vpmon_loc;63 u8 vpmon_frm;64 u8 vbstmon_dpth;65 u8 vbstmon_loc;66 u8 vbstmon_frm;67 u8 vpbrstat_dpth;68 u8 vpbrstat_loc;69 u8 vpbrstat_frm;70 u8 zerofill_dpth;71 u8 zerofill_loc;72 u8 zerofill_frm;73};74 75struct cs35l35_platform_data {76 77 /* Stereo (2 Device) */78 bool stereo;79 /* serial port drive strength */80 int sp_drv_str;81 /* serial port drive in unused slots */82 int sp_drv_unused;83 /* Boost Power Down with FET */84 bool bst_pdn_fet_on;85 /* Boost Voltage : used if ClassH Algo Enabled */86 int bst_vctl;87 /* Boost Converter Peak Current CTRL */88 int bst_ipk;89 /* Amp Gain Zero Cross */90 bool gain_zc;91 /* Audio Input Location */92 int aud_channel;93 /* Advisory Input Location */94 int adv_channel;95 /* Shared Boost for stereo */96 bool shared_bst;97 /* Specifies this amp is using an external boost supply */98 bool ext_bst;99 /* Inductor Value */100 int boost_ind;101 /* ClassH Algorithm */102 struct classh_cfg classh_algo;103 /* Monitor Config */104 struct monitor_cfg mon_cfg;105};106 107#endif /* __CS35L35_H */108