cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

cs35l35.h (2267B)


      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
     11struct 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
     38struct 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
     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 */