root/include/sound/cs35l35.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-only */
   2 /*
   3  * linux/sound/cs35l35.h -- Platform data for CS35l35
   4  *
   5  * Copyright (c) 2016 Cirrus Logic Inc.
   6  */
   7 
   8 #ifndef __CS35L35_H
   9 #define __CS35L35_H
  10 
  11 struct classh_cfg {
  12         /*
  13          * Class H Algorithm Control Variables
  14          * You can either have it done
  15          * automatically or you can adjust
  16          * these variables for tuning
  17          *
  18          * if you do not enable the internal algorithm
  19          * you will get a set of mixer controls for
  20          * Class H tuning
  21          *
  22          * Section 4.3 of the datasheet
  23          */
  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 
  38 struct monitor_cfg {
  39         /*
  40          * Signal Monitor Data
  41          * highly configurable signal monitoring
  42          * data positioning and different types of
  43          * monitoring data.
  44          *
  45          * Section 4.8.2 - 4.8.4 of the datasheet
  46          */
  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 
  75 struct 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 */

/* [<][>][^][v][top][bottom][index][help] */