162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * ADB through the IOP
462306a36Sopenharmony_ci * Written by Joshua M. Thompson
562306a36Sopenharmony_ci */
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci/* IOP number and channel number for ADB */
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#define ADB_IOP		IOP_NUM_ISM
1062306a36Sopenharmony_ci#define ADB_CHAN	2
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci/* From the A/UX headers...maybe important, maybe not */
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci#define ADB_IOP_LISTEN	0x01
1562306a36Sopenharmony_ci#define ADB_IOP_TALK	0x02
1662306a36Sopenharmony_ci#define ADB_IOP_EXISTS	0x04
1762306a36Sopenharmony_ci#define ADB_IOP_FLUSH	0x08
1862306a36Sopenharmony_ci#define ADB_IOP_RESET	0x10
1962306a36Sopenharmony_ci#define ADB_IOP_INT	0x20
2062306a36Sopenharmony_ci#define ADB_IOP_POLL	0x40
2162306a36Sopenharmony_ci#define ADB_IOP_UNINT	0x80
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci#define AIF_RESET	0x00
2462306a36Sopenharmony_ci#define AIF_FLUSH	0x01
2562306a36Sopenharmony_ci#define AIF_LISTEN	0x08
2662306a36Sopenharmony_ci#define AIF_TALK	0x0C
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci/* Flag bits in struct adb_iopmsg */
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci#define ADB_IOP_EXPLICIT	0x80	/* nonzero if explicit command */
3162306a36Sopenharmony_ci#define ADB_IOP_AUTOPOLL	0x40	/* auto/SRQ polling enabled    */
3262306a36Sopenharmony_ci#define ADB_IOP_SET_AUTOPOLL	0x20	/* set autopoll device list    */
3362306a36Sopenharmony_ci#define ADB_IOP_SRQ		0x04	/* SRQ detected                */
3462306a36Sopenharmony_ci#define ADB_IOP_TIMEOUT		0x02	/* nonzero if timeout          */
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci#ifndef __ASSEMBLY__
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_cistruct adb_iopmsg {
3962306a36Sopenharmony_ci	__u8 flags;		/* ADB flags         */
4062306a36Sopenharmony_ci	__u8 count;		/* no. of data bytes */
4162306a36Sopenharmony_ci	__u8 cmd;		/* ADB command       */
4262306a36Sopenharmony_ci	__u8 data[8];		/* ADB data          */
4362306a36Sopenharmony_ci	__u8 spare[21];		/* spare             */
4462306a36Sopenharmony_ci};
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci#endif /* __ASSEMBLY__ */
47