1/*
2 * Definitions for ADB (Apple Desktop Bus) support.
3 */
4#ifndef _UAPI__ADB_H
5#define _UAPI__ADB_H
6
7/* ADB commands */
8#define ADB_BUSRESET		0
9#define ADB_FLUSH(id)		(0x01 | ((id) << 4))
10#define ADB_WRITEREG(id, reg)	(0x08 | (reg) | ((id) << 4))
11#define ADB_READREG(id, reg)	(0x0C | (reg) | ((id) << 4))
12
13/* ADB default device IDs (upper 4 bits of ADB command byte) */
14#define ADB_DONGLE	1	/* "software execution control" devices */
15#define ADB_KEYBOARD	2
16#define ADB_MOUSE	3
17#define ADB_TABLET	4
18#define ADB_MODEM	5
19#define ADB_MISC	7	/* maybe a monitor */
20
21#define ADB_RET_OK	0
22#define ADB_RET_TIMEOUT	3
23
24/* The kind of ADB request. The controller may emulate some
25   or all of those CUDA/PMU packet kinds */
26#define ADB_PACKET	0
27#define CUDA_PACKET	1
28#define ERROR_PACKET	2
29#define TIMER_PACKET	3
30#define POWER_PACKET	4
31#define MACIIC_PACKET	5
32#define PMU_PACKET	6
33#define ADB_QUERY	7
34
35/* ADB queries */
36
37/* ADB_QUERY_GETDEVINFO
38 * Query ADB slot for device presence
39 * data[2] = id, rep[0] = orig addr, rep[1] = handler_id
40 */
41#define ADB_QUERY_GETDEVINFO	1
42
43
44#endif /* _UAPI__ADB_H */
45