xref: /openbmc/linux/include/sound/cs35l33.h (revision 3333cb7187b9c8d28f7a6405bbe9cec7a10efdc8)
1*3333cb71SPaul Handrigan /*
2*3333cb71SPaul Handrigan  * linux/sound/cs35l33.h -- Platform data for CS35l33
3*3333cb71SPaul Handrigan  *
4*3333cb71SPaul Handrigan  * Copyright (c) 2016 Cirrus Logic Inc.
5*3333cb71SPaul Handrigan  *
6*3333cb71SPaul Handrigan  * This program is free software; you can redistribute it and/or modify
7*3333cb71SPaul Handrigan  * it under the terms of the GNU General Public License version 2 as
8*3333cb71SPaul Handrigan  * published by the Free Software Foundation.
9*3333cb71SPaul Handrigan  */
10*3333cb71SPaul Handrigan 
11*3333cb71SPaul Handrigan #ifndef __CS35L33_H
12*3333cb71SPaul Handrigan #define __CS35L33_H
13*3333cb71SPaul Handrigan 
14*3333cb71SPaul Handrigan struct cs35l33_hg {
15*3333cb71SPaul Handrigan 	bool enable_hg_algo;
16*3333cb71SPaul Handrigan 	unsigned int mem_depth;
17*3333cb71SPaul Handrigan 	unsigned int release_rate;
18*3333cb71SPaul Handrigan 	unsigned int hd_rm;
19*3333cb71SPaul Handrigan 	unsigned int ldo_thld;
20*3333cb71SPaul Handrigan 	unsigned int ldo_path_disable;
21*3333cb71SPaul Handrigan 	unsigned int ldo_entry_delay;
22*3333cb71SPaul Handrigan 	bool vp_hg_auto;
23*3333cb71SPaul Handrigan 	unsigned int vp_hg;
24*3333cb71SPaul Handrigan 	unsigned int vp_hg_rate;
25*3333cb71SPaul Handrigan 	unsigned int vp_hg_va;
26*3333cb71SPaul Handrigan };
27*3333cb71SPaul Handrigan 
28*3333cb71SPaul Handrigan struct cs35l33_pdata {
29*3333cb71SPaul Handrigan 	/* Boost Controller Voltage Setting */
30*3333cb71SPaul Handrigan 	unsigned int boost_ctl;
31*3333cb71SPaul Handrigan 
32*3333cb71SPaul Handrigan 	/* Boost Controller Peak Current */
33*3333cb71SPaul Handrigan 	unsigned int boost_ipk;
34*3333cb71SPaul Handrigan 
35*3333cb71SPaul Handrigan 	/* Amplifier Drive Select */
36*3333cb71SPaul Handrigan 	unsigned int amp_drv_sel;
37*3333cb71SPaul Handrigan 
38*3333cb71SPaul Handrigan 	/* soft volume ramp */
39*3333cb71SPaul Handrigan 	unsigned int ramp_rate;
40*3333cb71SPaul Handrigan 
41*3333cb71SPaul Handrigan 	/* IMON adc scale */
42*3333cb71SPaul Handrigan 	unsigned int imon_adc_scale;
43*3333cb71SPaul Handrigan 
44*3333cb71SPaul Handrigan 	/* H/G algo configuration */
45*3333cb71SPaul Handrigan 	struct cs35l33_hg hg_config;
46*3333cb71SPaul Handrigan };
47*3333cb71SPaul Handrigan 
48*3333cb71SPaul Handrigan #endif /* __CS35L33_H */
49