- hal2_reg_t tx_stat[1]; /* Status register */
- hal2_reg_t tx_cr[3]; /* Control registers */
- hal2_reg_t tx_ud[4]; /* User data window */
- hal2_reg_t tx_st[24]; /* Channel status data */
-};
-
-typedef struct stru_hal2_vol_regs hal2_vol_regs_t;
-struct stru_hal2_vol_regs {
- hal2_reg_t right; /* 0x00 Right volume */
- hal2_reg_t left; /* 0x04 Left volume */
-};
-
-typedef struct stru_hal2_syn_regs hal2_syn_regs_t;
-struct stru_hal2_syn_regs {
- hal2_reg_t _unused0[2];
- hal2_reg_t page; /* DOC Page register */
- hal2_reg_t regsel; /* DOC Register selection */
- hal2_reg_t dlow; /* DOC Data low */
- hal2_reg_t dhigh; /* DOC Data high */
- hal2_reg_t irq; /* IRQ Status */
- hal2_reg_t dram; /* DRAM Access */
-};
-
-/* HAL2 specific structures */
-
-typedef struct stru_hal2_pbus hal2_pbus_t;
-struct stru_hal2_pbus {
- struct hpc3_pbus_dmacregs *pbus;
- int pbusnr;
- unsigned int ctrl; /* Current state of pbus->pbdma_ctrl */
-};
-
-typedef struct stru_hal2_binfo hal2_binfo_t;
-typedef struct stru_hal2_buffer hal2_buf_t;
-struct stru_hal2_binfo {
- volatile struct hpc_dma_desc desc;
- hal2_buf_t *next; /* pointer to next buffer */
- int cnt; /* bytes in buffer */
-};
-#define H2_BUFFER_SIZE (PAGE_SIZE - \
- ((sizeof(hal2_binfo_t) - 1) / 8 + 1) * 8)
-struct stru_hal2_buffer {
- hal2_binfo_t info;
- char data[H2_BUFFER_SIZE] __attribute__((aligned(8)));