#ifndef _SH3_DMACREG_H_
#define _SH3_DMACREG_H_
#include <sh3/devreg.h>
#define SH3_DMAC_SAR0 0xa4000020
#define SH3_DMAC_DAR0 0xa4000024
#define SH3_DMAC_DMATCR0 0xa4000028
#define SH3_DMAC_CHCR0 0xa400002c
#define SH3_DMAC_SAR1 0xa4000030
#define SH3_DMAC_DAR1 0xa4000034
#define SH3_DMAC_DMATCR1 0xa4000038
#define SH3_DMAC_CHCR1 0xa400003c
#define SH3_DMAC_SAR2 0xa4000040
#define SH3_DMAC_DAR2 0xa4000044
#define SH3_DMAC_DMATCR2 0xa4000048
#define SH3_DMAC_CHCR2 0xa400004c
#define SH3_DMAC_SAR3 0xa4000050
#define SH3_DMAC_DAR3 0xa4000054
#define SH3_DMAC_DMATCR3 0xa4000058
#define SH3_DMAC_CHCR3 0xa400005c
#define SH3_DMAC_DMAOR 0xa4000060
#define SH3_DMAC_CMT_CMSTR 0xa4000070
#define SH3_DMAC_CMT_CMCSR 0xa4000072
#define SH3_DMAC_CMT_CMCNT 0xa4000074
#define SH3_DMAC_CMT_CMCOR 0xa4000076
#define SH3_DMAC_DMATCR_MAX 0x01000000
#define SH3_DMAC_CHCR_DI 0x00100000
#define SH3_DMAC_CHCR_RO 0x00080000
#define SH3_DMAC_CHCR_RL 0x00040000
#define SH3_DMAC_CHCR_AM 0x00020000
#define SH3_DMAC_CHCR_AL 0x00010000
#define SH3_DMAC_CHCR_DM_MASK 0x0000c000
#define SH3_DMAC_CHCR_DM_FIXED 0x00000000
#define SH3_DMAC_CHCR_DM_INC 0x00004000
#define SH3_DMAC_CHCR_DM_DEC 0x00008000
#define SH3_DMAC_CHCR_SM_MASK 0x00003000
#define SH3_DMAC_CHCR_SM_FIXED 0x00000000
#define SH3_DMAC_CHCR_SM_INC 0x00001000
#define SH3_DMAC_CHCR_SM_DEC 0x00002000
#define SH3_DMAC_CHCR_RS_MASK 0x00000f00
#define SH3_DMAC_CHCR_RS_EXT_DUAL 0x00000000
#define SH3_DMAC_CHCR_RS_EXT_OUT 0x00000200
#define SH3_DMAC_CHCR_RS_EXT_IN 0x00000300
#define SH3_DMAC_CHCR_RS_AUTO 0x00000400
#define SH3_DMAC_CHCR_RS_IRDA_TX 0x00000a00
#define SH3_DMAC_CHCR_RS_IRDA_RX 0x00000b00
#define SH3_DMAC_CHCR_RS_SCIF_TX 0x00000c00
#define SH3_DMAC_CHCR_RS_SCIF_RX 0x00000d00
#define SH3_DMAC_CHCR_RS_ADC 0x00000e00
#define SH3_DMAC_CHCR_RS_CMT 0x00000f00
#define SH3_DMAC_CHCR_DS 0x00000040
#define SH3_DMAC_CHCR_TM 0x00000020
#define SH3_DMAC_CHCR_TS_MASK 0x00000018
#define SH3_DMAC_CHCR_TS_1 0x00000000
#define SH3_DMAC_CHCR_TS_2 0x00000008
#define SH3_DMAC_CHCR_TS_4 0x00000010
#define SH3_DMAC_CHCR_TS_16 0x00000018
#define SH3_DMAC_CHCR_IE 0x00000004
#define SH3_DMAC_CHCR_TE 0x00000002
#define SH3_DMAC_CHCR_DE 0x00000001
#define SH3_DMAC_CHCR_BITS "\177\20" \
"b\24DI\0" "b\23RO\0" "b\22RL\0" "b\21AM\0" "b\20AL\0" \
"f\16\2DM\0" ":\0(FIXED)\0" ":\1(INC)\0" ":\2(DEC)\0" \
"f\14\2SM\0" ":\0(FIXED)\0" ":\1(INC)\0" ":\2(DEC)\0" \
"f\10\4RS\0" ":\0(EXT_DUAL)\0" ":\2(EXT_OUT)\0" ":\3(EXT_IN)\0" \
":\4(AUTO)\0" \
":\12(IRTX)\0" ":\13(IRRX)\0" ":\14(SCTX)\0" \
":\15(SCRX)\0" ":\16(ADC)\0" ":\17(CMT)\0" \
"b\6DS\0" "b\5TM\0" \
"f\3\2TS\0" ":\0(1)\0" ":\1(2)\0" ":\2(4)\0" ":\3(16)\0" \
"b\2IE\0" "b\1TE\0" "b\0DE\0"
#define SH3_DMAC_DMAOR_PR_MASK 0x0300
#define SH3_DMAC_DMAOR_PR_0123 0x0000
#define SH3_DMAC_DMAOR_PR_0231 0x0100
#define SH3_DMAC_DMAOR_PR_2013 0x0200
#define SH3_DMAC_DMAOR_PR_RR 0x0300
#define SH3_DMAC_DMAOR_AE 0x0004
#define SH3_DMAC_DMAOR_NMIF 0x0002
#define SH3_DMAC_DMAOR_DME 0x0001
#define SH3_DMAC_DMAOR_BITS "\177\20" \
"f\10\2PR\0" ":\0(0123)\0" ":\1(0231)\0" ":\2(2013)\0" ":\3(RR)\0" \
"b\2AE\0" "b\1NMIF\0" "b\0DME\0"
#define SH3_DMAC_CMT_CMSTR_STR 0x0001
#define SH3_DMAC_CMT_CMCSR_CMF 0x0080
#define SH3_DMAC_CMT_CMCSR_CKS_MASK 0x0003
#define SH3_DMAC_CMT_CMCSR_CKS_4 0x0000
#define SH3_DMAC_CMT_CMCSR_CKS_8 0x0001
#define SH3_DMAC_CMT_CMCSR_CKS_16 0x0002
#define SH3_DMAC_CMT_CMCSR_CKS_64 0x0003
#define SH3_DMAC_CMT_CMCSR_BITS "\177\20" \
"b\7CMF\0" \
"f\0\2CKS\0" ":\0(1/4)\0" ":\1(1/8)\0" ":\2(1/16)\0" ":\3(1/64)\0"
#endif