#ifndef _ES1370_REG_H
#define _ES1370_REG_H
#define ES1370_REG_CONTROL 0x00
#define ES1370_REG_STATUS 0x04
#define ES1370_REG_UART_DATA 0x08
#define ES1370_REG_UART_STATUS 0x09
#define ES1370_REG_UART_CONTROL 0x09
#define ES1370_REG_UART_TEST 0x0a
#define ES1370_REG_MEMPAGE 0x0c
#define ES1370_REG_CODEC 0x10
#define CODEC_INDEX_SHIFT 8
#define ES1370_REG_SERIAL_CONTROL 0x20
#define ES1370_REG_DAC1_SCOUNT 0x24
#define ES1370_REG_DAC2_SCOUNT 0x28
#define ES1370_REG_ADC_SCOUNT 0x2c
#define ES1370_REG_DAC1_FRAMEADR 0xc30
#define ES1370_REG_DAC1_FRAMECNT 0xc34
#define ES1370_REG_DAC2_FRAMEADR 0xc38
#define ES1370_REG_DAC2_FRAMECNT 0xc3c
#define ES1370_REG_ADC_FRAMEADR 0xd30
#define ES1370_REG_ADC_FRAMECNT 0xd34
#define DAC2_SRTODIV(x) (((1411200 + (x) / 2) / (x) - 2) & 0x1fff)
#define DAC2_DIVTOSR(x) (1411200 / ((x) + 2))
#define CTRL_ADC_STOP 0x80000000
#define CTRL_XCTL1 0x40000000
#define CTRL_OPEN 0x20000000
#define CTRL_PCLKDIV 0x1fff0000
#define CTRL_SH_PCLKDIV 16
#define CTRL_MSFMTSEL 0x00008000
#define CTRL_M_SBB 0x00004000
#define CTRL_WTSRSEL 0x00003000
#define CTRL_SH_WTSRSEL 12
#define CTRL_DAC_SYNC 0x00000800
#define CTRL_CCB_INTRM 0x00000400
#define CTRL_M_CB 0x00000200
#define CTRL_XCTL0 0x00000100
#define CTRL_BREQ 0x00000080
#define CTRL_DAC1_EN 0x00000040
#define CTRL_DAC2_EN 0x00000020
#define CTRL_ADC_EN 0x00000010
#define CTRL_UART_EN 0x00000008
#define CTRL_JYSTK_EN 0x00000004
#define CTRL_CDC_EN 0x00000002
#define CTRL_SERR_DIS 0x00000001
#define SCTRL_P2ENDINC 0x00380000
#define SCTRL_SH_P2ENDINC 19
#define SCTRL_P2STINC 0x00070000
#define SCTRL_SH_P2STINC 16
#define SCTRL_R1LOOPSEL 0x00008000
#define SCTRL_P2LOOPSEL 0x00004000
#define SCTRL_P1LOOPSEL 0x00002000
#define SCTRL_P2PAUSE 0x00001000
#define SCTRL_P1PAUSE 0x00000800
#define SCTRL_R1INTEN 0x00000400
#define SCTRL_P2INTEN 0x00000200
#define SCTRL_P1INTEN 0x00000100
#define SCTRL_P1SCTRLD 0x00000080
#define SCTRL_P2DACSEN 0x00000040
#define SCTRL_R1SEB 0x00000020
#define SCTRL_R1SMB 0x00000010
#define SCTRL_R1FMT 0x00000030
#define SCTRL_SH_R1FMT 4
#define SCTRL_P2SEB 0x00000008
#define SCTRL_P2SMB 0x00000004
#define SCTRL_P2FMT 0x0000000c
#define SCTRL_SH_P2FMT 2
#define SCTRL_P1SEB 0x00000002
#define SCTRL_P1SMB 0x00000001
#define SCTRL_P1FMT 0x00000003
#define SCTRL_SH_P1FMT 0
#define STAT_INTR 0x80000000
#define STAT_CSTAT 0x00000400
#define STAT_CBUSY 0x00000200
#define STAT_CWRIP 0x00000100
#define STAT_VC 0x00000060
#define STAT_SH_VC 5
#define STAT_MCCB 0x00000010
#define STAT_UART 0x00000008
#define STAT_DAC1 0x00000004
#define STAT_DAC2 0x00000002
#define STAT_ADC 0x00000001
#define CODEC_MASTER_VOL_L 0x00
#define CODEC_MASTER_VOL_R 0x01
#define CODEC_VOICE_VOL_L 0x02
#define CODEC_VOICE_VOL_R 0x03
#define CODEC_FM_VOL_L 0x04
#define CODEC_FM_VOL_R 0x05
#define CODEC_CD_VOL_L 0x06
#define CODEC_CD_VOL_R 0x07
#define CODEC_LINE_VOL_L 0x08
#define CODEC_LINE_VOL_R 0x09
#define CODEC_AUX_VOL_L 0x0A
#define CODEC_AUX_VOL_R 0x0B
#define CODEC_MONO1_VOL 0x0C
#define CODEC_MONO2_VOL 0x0D
#define CODEC_MIC_VOL 0x0E
#define CODEC_MONO_OUT_VOL 0x0F
#define CODEC_OUTPUT_MIX1 0x10
#define CODEC_OUTPUT_MIX2 0x11
#define CODEC_L_INPUT_MIX1 0x12
#define CODEC_R_INPUT_MIX1 0x13
#define CODEC_L_INPUT_MIX2 0x14
#define CODEC_R_INPUT_MIX2 0x15
#define CODEC_RESET_PWRDWN 0x16
#define CODEC_CLOCK_SEL 0x17
#define CODEC_AD_INPUT_SEL 0x18
#define CODEC_MIC_AMP_GAIN 0x19
#define ES1370_OUTPUT_MIX1_FML (1<<6)
#define ES1370_OUTPUT_MIX1_FMR (1<<5)
#define ES1370_OUTPUT_MIX1_LINEL (1<<4)
#define ES1370_OUTPUT_MIX1_LINER (1<<3)
#define ES1370_OUTPUT_MIX1_CDL (1<<2)
#define ES1370_OUTPUT_MIX1_CDR (1<<1)
#define ES1370_OUTPUT_MIX1_MIC (1<<0)
#define ES1370_OUTPUT_MIX2_AUXL (1<<5)
#define ES1370_OUTPUT_MIX2_AUXR (1<<4)
#define ES1370_OUTPUT_MIX2_VOICEL (1<<3)
#define ES1370_OUTPUT_MIX2_VOICER (1<<2)
#define ES1370_OUTPUT_MIX2_MONO2 (1<<1)
#define ES1370_OUTPUT_MIX2_MONO1 (1<<0)
#define CODEC_ID_SESHIFT 10
#define CODEC_ID_SEMASK 0x1f
#define CODEC_PIRD 0x00800000
#define CODEC_PIADD_MASK 0x007f0000
#define CODEC_PIADD_SHIFT 16
#define CODEC_PIDAT_MASK 0x0000ffff
#define CODEC_PIDAT_SHIFT 0
#define CODEC_PORD 0x00800000
#define CODEC_POADD_MASK 0x007f0000
#define CODEC_POADD_SHIFT 16
#define CODEC_PODAT_MASK 0x0000ffff
#define CODEC_PODAT_SHIFT 0
#define CODEC_RDY 0x80000000
#define CODEC_WIP 0x40000000
#define ES1370_REG_CONTROL 0x00
#define ES1370_REG_SERIAL_CONTROL 0x20
#define ES1371_REG_CODEC 0x14
#define ES1371_REG_LEGACY 0x18
#define ES1371_REG_SMPRATE 0x10
#define ES1371_SYNC_RES (1<<14)
#define ES1371_DIS_R1 (1<<19)
#define ES1371_DIS_P2 (1<<20)
#define ES1371_DIS_P1 (1<<21)
#define ES1371_DIS_SRC (1<<22)
#define ES1371_SRC_RAM_BUSY (1<<23)
#define ES1371_SRC_RAM_WE (1<<24)
#define ES1371_SRC_RAM_ADDRO(o) (((o)&0x7f)<<25)
#define ES1371_SRC_RAM_DATAO(o) (((o)&0xffff)<<0)
#define ES1371_SRC_RAM_DATAI(i) (((i)>>0)&0xffff)
#define RECEN_B 0x08000000
#define SPDIFEN_B 0x04000000
#define ENABLE_SPDIF 0x00040000
#define TEST_SPDIF 0x00020000
#define ES_SMPREG_DAC1 0x70
#define ES_SMPREG_DAC2 0x74
#define ES_SMPREG_ADC 0x78
#define ES_SMPREG_TRUNC_N 0x00
#define ES_SMPREG_INT_REGS 0x01
#define ES_SMPREG_VFREQ_FRAC 0x03
#define ES_SMPREG_VOL_ADC 0x6c
#define ES_SMPREG_VOL_DAC1 0x7c
#define ES_SMPREG_VOL_DAC2 0x7e
#endif