aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/mach-ux500/include/mach/ab8500-accdet.h
blob: b1b157e317ebf1681c5a38a61adb8cbfd2d7aa3f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
/*
 * Copyright ST-Ericsson 2011.
 *
 * Author: Jarmo K. Kuronen <jarmo.kuronen@symbio.com> for ST Ericsson.
 * Licensed under GPLv2.
 */

#ifndef _AB8500_ACCDET_H
#define _AB8500_ACCDET_H

/*
* Debounce times for AccDet1 input
* @0x880 [2:0]
*/
#define ACCDET1_DB_0ms		0x00
#define ACCDET1_DB_10ms		0x01
#define ACCDET1_DB_20ms		0x02
#define ACCDET1_DB_30ms		0x03
#define ACCDET1_DB_40ms		0x04
#define ACCDET1_DB_50ms		0x05
#define ACCDET1_DB_60ms		0x06
#define ACCDET1_DB_70ms		0x07

/*
* Voltage threshold for AccDet1 input
* @0x880 [6:3]
*/
#define ACCDET1_TH_1100mV	0x40
#define ACCDET1_TH_1200mV	0x48
#define ACCDET1_TH_1300mV	0x50
#define ACCDET1_TH_1400mV	0x58
#define ACCDET1_TH_1500mV	0x60
#define ACCDET1_TH_1600mV	0x68
#define ACCDET1_TH_1700mV	0x70
#define ACCDET1_TH_1800mV	0x78

/*
* Voltage threshold for AccDet21 input
* @0x881 [3:0]
*/
#define ACCDET21_TH_300mV	0x00
#define ACCDET21_TH_400mV	0x01
#define ACCDET21_TH_500mV	0x02
#define ACCDET21_TH_600mV	0x03
#define ACCDET21_TH_700mV	0x04
#define ACCDET21_TH_800mV	0x05
#define ACCDET21_TH_900mV	0x06
#define ACCDET21_TH_1000mV	0x07
#define ACCDET21_TH_1100mV	0x08
#define ACCDET21_TH_1200mV	0x09
#define ACCDET21_TH_1300mV	0x0a
#define ACCDET21_TH_1400mV	0x0b
#define ACCDET21_TH_1500mV	0x0c
#define ACCDET21_TH_1600mV	0x0d
#define ACCDET21_TH_1700mV	0x0e
#define ACCDET21_TH_1800mV	0x0f

/*
* Voltage threshold for AccDet22 input
* @0x881 [7:4]
*/
#define ACCDET22_TH_300mV	0x00
#define ACCDET22_TH_400mV	0x10
#define ACCDET22_TH_500mV	0x20
#define ACCDET22_TH_600mV	0x30
#define ACCDET22_TH_700mV	0x40
#define ACCDET22_TH_800mV	0x50
#define ACCDET22_TH_900mV	0x60
#define ACCDET22_TH_1000mV	0x70
#define ACCDET22_TH_1100mV	0x80
#define ACCDET22_TH_1200mV	0x90
#define ACCDET22_TH_1300mV	0xa0
#define ACCDET22_TH_1400mV	0xb0
#define ACCDET22_TH_1500mV	0xc0
#define ACCDET22_TH_1600mV	0xd0
#define ACCDET22_TH_1700mV	0xe0
#define ACCDET22_TH_1800mV	0xf0

/**
 * struct ab8500_accdet_platform_data - AV Accessory detection specific
 * platform data
 * @btn_keycode		Keycode to be sent when accessory button is pressed.
 * @accdet1_dbth	Debounce time + voltage threshold for accdet 1 input.
 * @accdet2122_th	Voltage thresholds for accdet21 and accdet22 inputs.
 * @is_detection_inverted	Whether the accessory insert/removal, button
 * press/release irq's are inverted.
 */
struct ab8500_accdet_platform_data {
	int btn_keycode;
	u8 accdet1_dbth;
	u8 accdet2122_th;
	unsigned int video_ctrl_gpio;
	bool is_detection_inverted;
};

#endif /* _AB8500_ACCDET_H */