cd.device: CD32 CDROM support
[AROS.git] / arch / m68k-amiga / devs / cd / cd32.h
blob0cf1159b9a46c702069f7df7fbeb388e310ba88c
1 /*
2 * Copyright (C) 2013, The AROS Development Team
3 * All right reserved.
4 * Author: Jason S. McMullan <jason.mcmullan@gmail.com>
6 * Licensed under the AROS PUBLIC LICENSE (APL) Version 1.1
7 */
9 #ifndef CD32_H
10 #define CD32_H
12 /* CD32 Akiko registers */
14 #define AKIKO_ID 0xb80002 /* u16 */
15 #define AKIKO_ID_MAGIC 0xCAFE
17 #define AKIKO_CDINTREQ 0xb80004 /* u32 */
18 #define AKIKO_CDINTENA 0xb80008 /* u32 */
19 #define AKIKO_CDINT_SUBCODE (1 << 31)
20 #define AKIKO_CDINT_DRIVEXMIT (1 << 30)
21 #define AKIKO_CDINT_DRIVERECV (1 << 29)
22 #define AKIKO_CDINT_RXDMA (1 << 28)
23 #define AKIKO_CDINT_TXDMA (1 << 27)
24 #define AKIKO_CDINT_PBX (1 << 26)
25 #define AKIKO_CDINT_OVERFLOW (1 << 25)
27 #define AKIKO_CDADRDATA 0xb80010 /* u32 */
28 /* Address must be on a 4K boundary, in the first 16M of address
29 * Sector data is aligned on 4K boundaries, regardless of
30 * the actual CD sector size.
31 * Address +0x000..0xbff Sector DMA index (u32), followed by sector data
32 * +0xc00..0xfff Sector error status
34 #define AKIKO_CDADRMISC 0xb80014 /* u32 Address for misc data */
35 /* Address must be on a 1K boundary, in the first 16M of address
36 * Address +0x000..0x0ff is Result buffer
37 * +0x100..0x1ff is Subcode data
38 * +0x200..0x2ff is Command buffer
40 #define AKIKO_CDSUBINX 0xb80018 /* u8 Bytes of subcode recieved */
41 #define AKIKO_CDTXINX 0xb80019 /* u8 Bytes of Command processed */
42 #define AKIKO_CDRXINX 0xb8001a /* u8 Bytes of Result processed */
43 #define AKIKO_CDTXCMP 0xb8001d /* u8 Bytes of Command expected */
44 #define AKIKO_CDRXCMP 0xb8001f /* u8 Bytes of Result expected */
45 #define AKIKO_CDPBX 0xb80020 /* u16 Sector mask */
47 #define AKIKO_CDFLAG 0xb80024 /* u32 */
48 #define AKIKO_CDFLAG_SUBCODE (1 << 31)
49 #define AKIKO_CDFLAG_TXD (1 << 30)
50 #define AKIKO_CDFLAG_RXD (1 << 29)
51 #define AKIKO_CDFLAG_CAS (1 << 28)
52 #define AKIKO_CDFLAG_PBX (1 << 27)
53 #define AKIKO_CDFLAG_ENABLE (1 << 26)
54 #define AKIKO_CDFLAG_RAW (1 << 25)
55 #define AKIKO_CDFLAG_MSB (1 << 24)
56 #define AKIKO_CDRESET 0xb80025 /* u8 0x80 = reset, 0x00 = normal */
58 #define AKIKO_NVRAM 0xb80030 /* u32 */
59 #define AKIKO_C2P 0xb80038 /* u32 */
62 #endif /* CD32_H */