xref: /openbmc/linux/include/sound/cs35l33.h (revision 3333cb71)
13333cb71SPaul Handrigan /*
23333cb71SPaul Handrigan  * linux/sound/cs35l33.h -- Platform data for CS35l33
33333cb71SPaul Handrigan  *
43333cb71SPaul Handrigan  * Copyright (c) 2016 Cirrus Logic Inc.
53333cb71SPaul Handrigan  *
63333cb71SPaul Handrigan  * This program is free software; you can redistribute it and/or modify
73333cb71SPaul Handrigan  * it under the terms of the GNU General Public License version 2 as
83333cb71SPaul Handrigan  * published by the Free Software Foundation.
93333cb71SPaul Handrigan  */
103333cb71SPaul Handrigan 
113333cb71SPaul Handrigan #ifndef __CS35L33_H
123333cb71SPaul Handrigan #define __CS35L33_H
133333cb71SPaul Handrigan 
143333cb71SPaul Handrigan struct cs35l33_hg {
153333cb71SPaul Handrigan 	bool enable_hg_algo;
163333cb71SPaul Handrigan 	unsigned int mem_depth;
173333cb71SPaul Handrigan 	unsigned int release_rate;
183333cb71SPaul Handrigan 	unsigned int hd_rm;
193333cb71SPaul Handrigan 	unsigned int ldo_thld;
203333cb71SPaul Handrigan 	unsigned int ldo_path_disable;
213333cb71SPaul Handrigan 	unsigned int ldo_entry_delay;
223333cb71SPaul Handrigan 	bool vp_hg_auto;
233333cb71SPaul Handrigan 	unsigned int vp_hg;
243333cb71SPaul Handrigan 	unsigned int vp_hg_rate;
253333cb71SPaul Handrigan 	unsigned int vp_hg_va;
263333cb71SPaul Handrigan };
273333cb71SPaul Handrigan 
283333cb71SPaul Handrigan struct cs35l33_pdata {
293333cb71SPaul Handrigan 	/* Boost Controller Voltage Setting */
303333cb71SPaul Handrigan 	unsigned int boost_ctl;
313333cb71SPaul Handrigan 
323333cb71SPaul Handrigan 	/* Boost Controller Peak Current */
333333cb71SPaul Handrigan 	unsigned int boost_ipk;
343333cb71SPaul Handrigan 
353333cb71SPaul Handrigan 	/* Amplifier Drive Select */
363333cb71SPaul Handrigan 	unsigned int amp_drv_sel;
373333cb71SPaul Handrigan 
383333cb71SPaul Handrigan 	/* soft volume ramp */
393333cb71SPaul Handrigan 	unsigned int ramp_rate;
403333cb71SPaul Handrigan 
413333cb71SPaul Handrigan 	/* IMON adc scale */
423333cb71SPaul Handrigan 	unsigned int imon_adc_scale;
433333cb71SPaul Handrigan 
443333cb71SPaul Handrigan 	/* H/G algo configuration */
453333cb71SPaul Handrigan 	struct cs35l33_hg hg_config;
463333cb71SPaul Handrigan };
473333cb71SPaul Handrigan 
483333cb71SPaul Handrigan #endif /* __CS35L33_H */
49