diff options
Diffstat (limited to 'sys/dev/cesa/cesa.h')
-rw-r--r-- | sys/dev/cesa/cesa.h | 37 |
1 files changed, 24 insertions, 13 deletions
diff --git a/sys/dev/cesa/cesa.h b/sys/dev/cesa/cesa.h index 4383648..8fedb7e 100644 --- a/sys/dev/cesa/cesa.h +++ b/sys/dev/cesa/cesa.h @@ -93,10 +93,15 @@ mtx_assert(&(sc)->sc_ ## what ## _lock, MA_OWNED) /* Registers read/write macros */ -#define CESA_READ(sc, reg) \ - bus_space_read_4((sc)->sc_bst, (sc)->sc_bsh, (reg)) -#define CESA_WRITE(sc, reg, val) \ - bus_space_write_4((sc)->sc_bst, (sc)->sc_bsh, (reg), (val)) +#define CESA_REG_READ(sc, reg) \ + bus_read_4((sc)->sc_res[RES_CESA_REGS], (reg)) +#define CESA_REG_WRITE(sc, reg, val) \ + bus_write_4((sc)->sc_res[RES_CESA_REGS], (reg), (val)) + +#define CESA_TDMA_READ(sc, reg) \ + bus_read_4((sc)->sc_res[RES_TDMA_REGS], (reg)) +#define CESA_TDMA_WRITE(sc, reg, val) \ + bus_write_4((sc)->sc_res[RES_TDMA_REGS], (reg), (val)) /* Generic allocator for objects */ #define CESA_GENERIC_ALLOC_LOCKED(sc, obj, pool) do { \ @@ -126,6 +131,14 @@ #define CESA_DATA(offset) \ (sizeof(struct cesa_sa_hdesc) + sizeof(struct cesa_sa_data) + offset) +/* CESA memory and IRQ resources */ +enum cesa_res_type { + RES_TDMA_REGS, + RES_CESA_REGS, + RES_CESA_IRQ, + RES_CESA_NUM +}; + struct cesa_tdma_hdesc { uint16_t cthd_byte_count; uint16_t cthd_flags; @@ -220,11 +233,9 @@ struct cesa_packet { struct cesa_softc { device_t sc_dev; int32_t sc_cid; - struct resource *sc_res[2]; + struct resource *sc_res[RES_CESA_NUM]; void *sc_icookie; bus_dma_tag_t sc_data_dtag; - bus_space_tag_t sc_bst; - bus_space_handle_t sc_bsh; int sc_error; int sc_tperr; @@ -303,11 +314,11 @@ struct cesa_chain_info { #define CESA_CSHD_FRAG_MIDDLE (3U << 30) /* CESA registers definitions */ -#define CESA_ICR 0xDE20 +#define CESA_ICR 0x0E20 #define CESA_ICR_ACCTDMA (1 << 7) #define CESA_ICR_TPERR (1 << 12) -#define CESA_ICM 0xDE24 +#define CESA_ICM 0x0E24 #define CESA_ICM_ACCTDMA CESA_ICR_ACCTDMA #define CESA_ICM_TPERR CESA_ICR_TPERR @@ -341,17 +352,17 @@ struct cesa_chain_info { #define MV_WIN_CESA_MAX 4 /* CESA SA registers definitions */ -#define CESA_SA_CMD 0xDE00 +#define CESA_SA_CMD 0x0E00 #define CESA_SA_CMD_ACTVATE (1 << 0) -#define CESA_SA_DPR 0xDE04 +#define CESA_SA_DPR 0x0E04 -#define CESA_SA_CR 0xDE08 +#define CESA_SA_CR 0x0E08 #define CESA_SA_CR_WAIT_FOR_TDMA (1 << 7) #define CESA_SA_CR_ACTIVATE_TDMA (1 << 9) #define CESA_SA_CR_MULTI_MODE (1 << 11) -#define CESA_SA_SR 0xDE0C +#define CESA_SA_SR 0x0E0C #define CESA_SA_SR_ACTIVE (1 << 0) #endif |