xref: /freebsd-src/sys/contrib/device-tree/include/dt-bindings/sound/cs42l42.h (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot /* SPDX-License-Identifier: GPL-2.0-only */
2*c66ec88fSEmmanuel Vadot /*
3*c66ec88fSEmmanuel Vadot  * cs42l42.h -- CS42L42 ALSA SoC audio driver DT bindings header
4*c66ec88fSEmmanuel Vadot  *
5*c66ec88fSEmmanuel Vadot  * Copyright 2016 Cirrus Logic, Inc.
6*c66ec88fSEmmanuel Vadot  *
7*c66ec88fSEmmanuel Vadot  * Author: James Schulman <james.schulman@cirrus.com>
8*c66ec88fSEmmanuel Vadot  * Author: Brian Austin <brian.austin@cirrus.com>
9*c66ec88fSEmmanuel Vadot  * Author: Michael White <michael.white@cirrus.com>
10*c66ec88fSEmmanuel Vadot  */
11*c66ec88fSEmmanuel Vadot 
12*c66ec88fSEmmanuel Vadot #ifndef __DT_CS42L42_H
13*c66ec88fSEmmanuel Vadot #define __DT_CS42L42_H
14*c66ec88fSEmmanuel Vadot 
15*c66ec88fSEmmanuel Vadot /* HPOUT Load Capacity */
16*c66ec88fSEmmanuel Vadot #define CS42L42_HPOUT_LOAD_1NF		0
17*c66ec88fSEmmanuel Vadot #define CS42L42_HPOUT_LOAD_10NF		1
18*c66ec88fSEmmanuel Vadot 
19*c66ec88fSEmmanuel Vadot /* HPOUT Clamp to GND Override */
20*c66ec88fSEmmanuel Vadot #define CS42L42_HPOUT_CLAMP_EN		0
21*c66ec88fSEmmanuel Vadot #define CS42L42_HPOUT_CLAMP_DIS		1
22*c66ec88fSEmmanuel Vadot 
23*c66ec88fSEmmanuel Vadot /* Tip Sense Inversion */
24*c66ec88fSEmmanuel Vadot #define CS42L42_TS_INV_DIS			0
25*c66ec88fSEmmanuel Vadot #define CS42L42_TS_INV_EN			1
26*c66ec88fSEmmanuel Vadot 
27*c66ec88fSEmmanuel Vadot /* Tip Sense Debounce */
28*c66ec88fSEmmanuel Vadot #define CS42L42_TS_DBNCE_0			0
29*c66ec88fSEmmanuel Vadot #define CS42L42_TS_DBNCE_125			1
30*c66ec88fSEmmanuel Vadot #define CS42L42_TS_DBNCE_250			2
31*c66ec88fSEmmanuel Vadot #define CS42L42_TS_DBNCE_500			3
32*c66ec88fSEmmanuel Vadot #define CS42L42_TS_DBNCE_750			4
33*c66ec88fSEmmanuel Vadot #define CS42L42_TS_DBNCE_1000			5
34*c66ec88fSEmmanuel Vadot #define CS42L42_TS_DBNCE_1250			6
35*c66ec88fSEmmanuel Vadot #define CS42L42_TS_DBNCE_1500			7
36*c66ec88fSEmmanuel Vadot 
37*c66ec88fSEmmanuel Vadot /* Button Press Software Debounce Times */
38*c66ec88fSEmmanuel Vadot #define CS42L42_BTN_DET_INIT_DBNCE_MIN		0
39*c66ec88fSEmmanuel Vadot #define CS42L42_BTN_DET_INIT_DBNCE_DEFAULT	100
40*c66ec88fSEmmanuel Vadot #define CS42L42_BTN_DET_INIT_DBNCE_MAX		200
41*c66ec88fSEmmanuel Vadot 
42*c66ec88fSEmmanuel Vadot #define CS42L42_BTN_DET_EVENT_DBNCE_MIN		0
43*c66ec88fSEmmanuel Vadot #define CS42L42_BTN_DET_EVENT_DBNCE_DEFAULT	10
44*c66ec88fSEmmanuel Vadot #define CS42L42_BTN_DET_EVENT_DBNCE_MAX		20
45*c66ec88fSEmmanuel Vadot 
46*c66ec88fSEmmanuel Vadot /* Button Detect Level Sensitivities */
47*c66ec88fSEmmanuel Vadot #define CS42L42_NUM_BIASES		4
48*c66ec88fSEmmanuel Vadot 
49*c66ec88fSEmmanuel Vadot #define CS42L42_HS_DET_LEVEL_15		0x0F
50*c66ec88fSEmmanuel Vadot #define CS42L42_HS_DET_LEVEL_8		0x08
51*c66ec88fSEmmanuel Vadot #define CS42L42_HS_DET_LEVEL_4		0x04
52*c66ec88fSEmmanuel Vadot #define CS42L42_HS_DET_LEVEL_1		0x01
53*c66ec88fSEmmanuel Vadot 
54*c66ec88fSEmmanuel Vadot #define CS42L42_HS_DET_LEVEL_MIN	0
55*c66ec88fSEmmanuel Vadot #define CS42L42_HS_DET_LEVEL_MAX	0x3F
56*c66ec88fSEmmanuel Vadot 
57*c66ec88fSEmmanuel Vadot /* HS Bias Ramp Rate */
58*c66ec88fSEmmanuel Vadot 
59*c66ec88fSEmmanuel Vadot #define CS42L42_HSBIAS_RAMP_FAST_RISE_SLOW_FALL		0
60*c66ec88fSEmmanuel Vadot #define CS42L42_HSBIAS_RAMP_FAST			1
61*c66ec88fSEmmanuel Vadot #define CS42L42_HSBIAS_RAMP_SLOW			2
62*c66ec88fSEmmanuel Vadot #define CS42L42_HSBIAS_RAMP_SLOWEST			3
63*c66ec88fSEmmanuel Vadot 
64*c66ec88fSEmmanuel Vadot #define CS42L42_HSBIAS_RAMP_TIME0			10
65*c66ec88fSEmmanuel Vadot #define CS42L42_HSBIAS_RAMP_TIME1			40
66*c66ec88fSEmmanuel Vadot #define CS42L42_HSBIAS_RAMP_TIME2			90
67*c66ec88fSEmmanuel Vadot #define CS42L42_HSBIAS_RAMP_TIME3			170
68*c66ec88fSEmmanuel Vadot 
69*c66ec88fSEmmanuel Vadot #endif /* __DT_CS42L42_H */
70