130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/*
230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Definitions for ADB (Apple Desktop Bus) support.
330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */
430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef _UAPI__ADB_H
530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define _UAPI__ADB_H
630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* ADB commands */
830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ADB_BUSRESET		0
930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ADB_FLUSH(id)		(0x01 | ((id) << 4))
1030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ADB_WRITEREG(id, reg)	(0x08 | (reg) | ((id) << 4))
1130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ADB_READREG(id, reg)	(0x0C | (reg) | ((id) << 4))
1230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
1330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* ADB default device IDs (upper 4 bits of ADB command byte) */
1430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ADB_DONGLE	1	/* "software execution control" devices */
1530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ADB_KEYBOARD	2
1630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ADB_MOUSE	3
1730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ADB_TABLET	4
1830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ADB_MODEM	5
1930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ADB_MISC	7	/* maybe a monitor */
2030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
2130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ADB_RET_OK	0
2230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ADB_RET_TIMEOUT	3
2330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
2430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* The kind of ADB request. The controller may emulate some
2530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   or all of those CUDA/PMU packet kinds */
2630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ADB_PACKET	0
2730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CUDA_PACKET	1
2830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ERROR_PACKET	2
2930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define TIMER_PACKET	3
3030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define POWER_PACKET	4
3130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define MACIIC_PACKET	5
3230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define PMU_PACKET	6
3330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ADB_QUERY	7
3430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
3530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* ADB queries */
3630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
3730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* ADB_QUERY_GETDEVINFO
3830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Query ADB slot for device presence
3930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * data[2] = id, rep[0] = orig addr, rep[1] = handler_id
4030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */
4130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ADB_QUERY_GETDEVINFO	1
4230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
4330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
4430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif /* _UAPI__ADB_H */
45