1951a39d68df598db08dfced8b4707755864a0492Ying Wang/****************************************************************************
2951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************
3951a39d68df598db08dfced8b4707755864a0492Ying Wang ***
4951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   This header was automatically generated from a Linux kernel header
5951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   of the same name, to make information necessary for userspace to
6951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   call into the kernel available to libc.  It contains only constants,
7951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   structures, and macros generated from the original header, and thus,
8951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   contains no copyrightable information.
9951a39d68df598db08dfced8b4707755864a0492Ying Wang ***
10951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************
11951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************/
12951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifndef TELEPHONY_H
13951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TELEPHONY_H
14951a39d68df598db08dfced8b4707755864a0492Ying Wang
15951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TELEPHONY_VERSION 3013
16951a39d68df598db08dfced8b4707755864a0492Ying Wang
17951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_VENDOR_IXJ 1
18951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_VENDOR_QUICKNET PHONE_VENDOR_IXJ
19951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_VENDOR_VOICETRONIX 2
20951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_VENDOR_ACULAB 3
21951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_VENDOR_DIGI 4
22951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_VENDOR_FRANKLIN 5
23951a39d68df598db08dfced8b4707755864a0492Ying Wang
24951a39d68df598db08dfced8b4707755864a0492Ying Wang#define QTI_PHONEJACK 100
25951a39d68df598db08dfced8b4707755864a0492Ying Wang#define QTI_LINEJACK 300
26951a39d68df598db08dfced8b4707755864a0492Ying Wang#define QTI_PHONEJACK_LITE 400
27951a39d68df598db08dfced8b4707755864a0492Ying Wang#define QTI_PHONEJACK_PCI 500
28951a39d68df598db08dfced8b4707755864a0492Ying Wang#define QTI_PHONECARD 600
29951a39d68df598db08dfced8b4707755864a0492Ying Wang
30951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef enum {
31951a39d68df598db08dfced8b4707755864a0492Ying Wang vendor = 0,
32951a39d68df598db08dfced8b4707755864a0492Ying Wang device,
33951a39d68df598db08dfced8b4707755864a0492Ying Wang port,
34951a39d68df598db08dfced8b4707755864a0492Ying Wang codec,
35951a39d68df598db08dfced8b4707755864a0492Ying Wang dsp
36951a39d68df598db08dfced8b4707755864a0492Ying Wang} phone_cap;
37951a39d68df598db08dfced8b4707755864a0492Ying Wang
38951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct phone_capability {
39951a39d68df598db08dfced8b4707755864a0492Ying Wang char desc[80];
40951a39d68df598db08dfced8b4707755864a0492Ying Wang phone_cap captype;
41951a39d68df598db08dfced8b4707755864a0492Ying Wang int cap;
42951a39d68df598db08dfced8b4707755864a0492Ying Wang int handle;
43951a39d68df598db08dfced8b4707755864a0492Ying Wang};
44951a39d68df598db08dfced8b4707755864a0492Ying Wang
45951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef enum {
46951a39d68df598db08dfced8b4707755864a0492Ying Wang pots = 0,
47951a39d68df598db08dfced8b4707755864a0492Ying Wang pstn,
48951a39d68df598db08dfced8b4707755864a0492Ying Wang handset,
49951a39d68df598db08dfced8b4707755864a0492Ying Wang speaker
50951a39d68df598db08dfced8b4707755864a0492Ying Wang} phone_ports;
51951a39d68df598db08dfced8b4707755864a0492Ying Wang
52951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_CAPABILITIES _IO ('q', 0x80)
53951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_CAPABILITIES_LIST _IOR ('q', 0x81, struct phone_capability *)
54951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_CAPABILITIES_CHECK _IOW ('q', 0x82, struct phone_capability *)
55951a39d68df598db08dfced8b4707755864a0492Ying Wang
56951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef struct {
57951a39d68df598db08dfced8b4707755864a0492Ying Wang char month[3];
58951a39d68df598db08dfced8b4707755864a0492Ying Wang char day[3];
59951a39d68df598db08dfced8b4707755864a0492Ying Wang char hour[3];
60951a39d68df598db08dfced8b4707755864a0492Ying Wang char min[3];
61951a39d68df598db08dfced8b4707755864a0492Ying Wang int numlen;
62951a39d68df598db08dfced8b4707755864a0492Ying Wang char number[11];
63951a39d68df598db08dfced8b4707755864a0492Ying Wang int namelen;
64951a39d68df598db08dfced8b4707755864a0492Ying Wang char name[80];
65951a39d68df598db08dfced8b4707755864a0492Ying Wang} PHONE_CID;
66951a39d68df598db08dfced8b4707755864a0492Ying Wang
67951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_RING _IO ('q', 0x83)
68951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_HOOKSTATE _IO ('q', 0x84)
69951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_MAXRINGS _IOW ('q', 0x85, char)
70951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_RING_CADENCE _IOW ('q', 0x86, short)
71951a39d68df598db08dfced8b4707755864a0492Ying Wang#define OLD_PHONE_RING_START _IO ('q', 0x87)
72951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_RING_START _IOW ('q', 0x87, PHONE_CID *)
73951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_RING_STOP _IO ('q', 0x88)
74951a39d68df598db08dfced8b4707755864a0492Ying Wang
75951a39d68df598db08dfced8b4707755864a0492Ying Wang#define USA_RING_CADENCE 0xC0C0
76951a39d68df598db08dfced8b4707755864a0492Ying Wang
77951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_REC_CODEC _IOW ('q', 0x89, int)
78951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_REC_START _IO ('q', 0x8A)
79951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_REC_STOP _IO ('q', 0x8B)
80951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_REC_DEPTH _IOW ('q', 0x8C, int)
81951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_FRAME _IOW ('q', 0x8D, int)
82951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_REC_VOLUME _IOW ('q', 0x8E, int)
83951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_REC_VOLUME_LINEAR _IOW ('q', 0xDB, int)
84951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_REC_LEVEL _IO ('q', 0x8F)
85951a39d68df598db08dfced8b4707755864a0492Ying Wang
86951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_PLAY_CODEC _IOW ('q', 0x90, int)
87951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_PLAY_START _IO ('q', 0x91)
88951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_PLAY_STOP _IO ('q', 0x92)
89951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_PLAY_DEPTH _IOW ('q', 0x93, int)
90951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_PLAY_VOLUME _IOW ('q', 0x94, int)
91951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_PLAY_VOLUME_LINEAR _IOW ('q', 0xDC, int)
92951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_PLAY_LEVEL _IO ('q', 0x95)
93951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_DTMF_READY _IOR ('q', 0x96, int)
94951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_GET_DTMF _IOR ('q', 0x97, int)
95951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_GET_DTMF_ASCII _IOR ('q', 0x98, int)
96951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_DTMF_OOB _IOW ('q', 0x99, int)
97951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_EXCEPTION _IOR ('q', 0x9A, int)
98951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_PLAY_TONE _IOW ('q', 0x9B, char)
99951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_SET_TONE_ON_TIME _IOW ('q', 0x9C, int)
100951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_SET_TONE_OFF_TIME _IOW ('q', 0x9D, int)
101951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_GET_TONE_ON_TIME _IO ('q', 0x9E)
102951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_GET_TONE_OFF_TIME _IO ('q', 0x9F)
103951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_GET_TONE_STATE _IO ('q', 0xA0)
104951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_BUSY _IO ('q', 0xA1)
105951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_RINGBACK _IO ('q', 0xA2)
106951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_DIALTONE _IO ('q', 0xA3)
107951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_CPT_STOP _IO ('q', 0xA4)
108951a39d68df598db08dfced8b4707755864a0492Ying Wang
109951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_PSTN_SET_STATE _IOW ('q', 0xA4, int)
110951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_PSTN_GET_STATE _IO ('q', 0xA5)
111951a39d68df598db08dfced8b4707755864a0492Ying Wang
112951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PSTN_ON_HOOK 0
113951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PSTN_RINGING 1
114951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PSTN_OFF_HOOK 2
115951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PSTN_PULSE_DIAL 3
116951a39d68df598db08dfced8b4707755864a0492Ying Wang
117951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_WINK_DURATION _IOW ('q', 0xA6, int)
118951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_WINK _IOW ('q', 0xAA, int)
119951a39d68df598db08dfced8b4707755864a0492Ying Wang
120951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef enum {
121951a39d68df598db08dfced8b4707755864a0492Ying Wang G723_63 = 1,
122951a39d68df598db08dfced8b4707755864a0492Ying Wang G723_53 = 2,
123951a39d68df598db08dfced8b4707755864a0492Ying Wang TS85 = 3,
124951a39d68df598db08dfced8b4707755864a0492Ying Wang TS48 = 4,
125951a39d68df598db08dfced8b4707755864a0492Ying Wang TS41 = 5,
126951a39d68df598db08dfced8b4707755864a0492Ying Wang G728 = 6,
127951a39d68df598db08dfced8b4707755864a0492Ying Wang G729 = 7,
128951a39d68df598db08dfced8b4707755864a0492Ying Wang ULAW = 8,
129951a39d68df598db08dfced8b4707755864a0492Ying Wang ALAW = 9,
130951a39d68df598db08dfced8b4707755864a0492Ying Wang LINEAR16 = 10,
131951a39d68df598db08dfced8b4707755864a0492Ying Wang LINEAR8 = 11,
132951a39d68df598db08dfced8b4707755864a0492Ying Wang WSS = 12,
133951a39d68df598db08dfced8b4707755864a0492Ying Wang G729B = 13
134951a39d68df598db08dfced8b4707755864a0492Ying Wang} phone_codec;
135951a39d68df598db08dfced8b4707755864a0492Ying Wang
136951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct phone_codec_data
137951a39d68df598db08dfced8b4707755864a0492Ying Wang{
138951a39d68df598db08dfced8b4707755864a0492Ying Wang phone_codec type;
139951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned short buf_min, buf_opt, buf_max;
140951a39d68df598db08dfced8b4707755864a0492Ying Wang};
141951a39d68df598db08dfced8b4707755864a0492Ying Wang
142951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_QUERY_CODEC _IOWR ('q', 0xA7, struct phone_codec_data *)
143951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_PSTN_LINETEST _IO ('q', 0xA8)
144951a39d68df598db08dfced8b4707755864a0492Ying Wang
145951a39d68df598db08dfced8b4707755864a0492Ying Wang#define PHONE_VAD _IOW ('q', 0xA9, int)
146951a39d68df598db08dfced8b4707755864a0492Ying Wang
147951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct phone_except
148951a39d68df598db08dfced8b4707755864a0492Ying Wang{
149951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned int dtmf_ready:1;
150951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned int hookstate:1;
151951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned int pstn_ring:1;
152951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned int caller_id:1;
153951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned int pstn_wink:1;
154951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned int f0:1;
155951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned int f1:1;
156951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned int f2:1;
157951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned int f3:1;
158951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned int flash:1;
159951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned int fc0:1;
160951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned int fc1:1;
161951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned int fc2:1;
162951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned int fc3:1;
163951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned int reserved:18;
164951a39d68df598db08dfced8b4707755864a0492Ying Wang};
165951a39d68df598db08dfced8b4707755864a0492Ying Wang
166951a39d68df598db08dfced8b4707755864a0492Ying Wangunion telephony_exception {
167951a39d68df598db08dfced8b4707755864a0492Ying Wang struct phone_except bits;
168951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned int bytes;
169951a39d68df598db08dfced8b4707755864a0492Ying Wang};
170951a39d68df598db08dfced8b4707755864a0492Ying Wang
171951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif
172951a39d68df598db08dfced8b4707755864a0492Ying Wang
173