Files
ss/include/rvl/EXI/EXIHardware.h
T
Elijah Thomas 26af4db82d update from dtk-template - clangd :) (#66)
* update from dtk-template and start work towards using clangd

* include <a> -> "a"

* Update build.yml

* remove/add non-trivial class in union warning
2024-10-16 15:36:02 -04:00

39 lines
859 B
C

#ifndef RVL_SDK_EXI_HARDWARE_H
#define RVL_SDK_EXI_HARDWARE_H
#include "common.h"
#include "rvl/EXI/EXICommon.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* Documentation from:
* https://www.gc-forever.com/yagcd/chap5.html#sec5.9
*/
typedef struct ExiChannelControl {
u32 csr; // at 0x0
void *dmaAddr; // at 0x4
u32 dmaLen; // at 0x8
u32 cr; // at 0xC
u32 imm; // at 0x10
} ExiChannelControl;
volatile ExiChannelControl EXI_CHAN_CTRL[EXI_MAX_CHAN] AT_ADDRESS(0xCD006800);
// CSR - Control Status Register
#define EXI_CSR_EXIINTMASK (1 << 0)
#define EXI_CSR_EXIINT (1 << 1)
#define EXI_CSR_TCINTMASK (1 << 2)
#define EXI_CSR_TCINT (1 << 3)
#define EXI_CSR_EXTINTMASK (1 << 10)
#define EXI_CSR_EXTINT (1 << 11)
#define EXI_CSR_EXT (1 << 12)
#define EXI_CSR_ROMDIS (1 << 13)
#ifdef __cplusplus
}
#endif
#endif