391 lines
9.9 KiB
C
391 lines
9.9 KiB
C
/**
|
|
* @file gama_regs.h
|
|
* @brief SemiDrive asw regs header file.
|
|
*
|
|
* @copyright Copyright (c) 2022 Semidrive Semiconductor.
|
|
* All rights reserved.
|
|
*/
|
|
|
|
#ifndef __GAMA_REGS_H__
|
|
#define __GAMA_REGS_H__
|
|
|
|
#define GAMA_LB_JUMP 0x00200000
|
|
#define GAMA_IB_JUMP 0x00100000
|
|
#define GAMA_IRQST_JUMP 0x000F0000
|
|
#define GAMA_ASW_JUMP 0x00030000
|
|
#define GAMA_DMA_JUMP 0x00020000
|
|
#define GAMA_FRS_JUMP 0x00011000
|
|
#define GAMA_VS_JUMP 0x00010000
|
|
#define GAMA_STN_CFG_JUMP 0x00000000
|
|
|
|
#define ASW_REG(x) ((x) + GAMA_ASW_JUMP)
|
|
|
|
/* GAMA ASW registers (RMW mode) definition */
|
|
|
|
/* ASW_RA000 */
|
|
#define ASW_RA000 ASW_REG(0x0)
|
|
#define ASW_SHIFT00_RA000 0
|
|
#define ASW_MASK00_RA000 0x1 << ASW_SHIFT00_RA000
|
|
|
|
/*ASW_RA004*/
|
|
#define ASW_RA004 ASW_REG(0x4)
|
|
#define ASW_SHIFT00_RA004 0
|
|
#define ASW_MASK00_RA004 0x1 << ASW_SHIFT00_RA004
|
|
|
|
/*ASW_RA008*/
|
|
#define ASW_RA008 ASW_REG(0x8)
|
|
#define ASW_SHIFT20_RA008 20
|
|
#define ASW_MASK20_RA008 0xFFFUL << ASW_SHIFT20_RA008
|
|
#define ASW_SHIFT12_RA008 12
|
|
#define ASW_MASK12_RA008 0x3 << ASW_SHIFT12_RA008
|
|
#define ASW_SHIFT11_RA008 11
|
|
#define ASW_MASK11_RA008 0x1 << ASW_SHIFT11_RA008
|
|
#define ASW_SHIFT10_RA008 10
|
|
#define ASW_MASK10_RA008 0x1 << ASW_SHIFT10_RA008
|
|
#define ASW_SHIFT08_RA008 8
|
|
#define ASW_MASK08_RA008 0x3 << ASW_SHIFT08_RA008
|
|
#define ASW_SHIFT04_RA008 4
|
|
#define ASW_MASK04_RA008 0xF << ASW_SHIFT04_RA008
|
|
#define ASW_SHIFT01_RA008 1
|
|
#define ASW_MASK01_RA008 0x7 << ASW_SHIFT01_RA008
|
|
#define ASW_SHIFT00_RA008 0
|
|
#define ASW_MASK00_RA008 0x1 << ASW_SHIFT00_RA008
|
|
|
|
/*ASW_RA00C*/
|
|
#define ASW_RA00C ASW_REG(0xc)
|
|
#define ASW_SHIFT12_RA00C 12
|
|
#define ASW_MASK12_RA00C 0x3 << ASW_SHIFT12_RA00C
|
|
#define ASW_SHIFT10_RA00C 10
|
|
#define ASW_MASK10_RA00C 0x3 << ASW_SHIFT10_RA00C
|
|
#define ASW_SHIFT04_RA00C 4
|
|
#define ASW_MASK04_RA00C 0x3F << ASW_SHIFT04_RA00C
|
|
#define ASW_SHIFT00_RA00C 0
|
|
#define ASW_MASK00_RA00C 0xF << ASW_SHIFT00_RA00C
|
|
|
|
/*ASW_RA010*/
|
|
#define ASW_RA010 ASW_REG(0x10)
|
|
#define ASW_SHIFT16_RA010 16
|
|
#define ASW_MASK16_RA010 0xFFF << ASW_SHIFT16_RA010
|
|
#define ASW_SHIFT00_RA010 0
|
|
#define ASW_MASK00_RA010 0xFFF << ASW_SHIFT00_RA010
|
|
|
|
/*ASW_RA014*/
|
|
#define ASW_RA014 ASW_REG(0x14)
|
|
#define ASW_SHIFT16_RA014 16
|
|
#define ASW_MASK16_RA014 0xFFF << ASW_SHIFT16_RA014
|
|
#define ASW_SHIFT00_RA014 0
|
|
#define ASW_MASK00_RA014 0xFFF << ASW_SHIFT00_RA014
|
|
|
|
/*ASW_RA018*/
|
|
#define ASW_RA018 ASW_REG(0x18)
|
|
#define ASW_SHIFT25_RA018 25
|
|
#define ASW_MASK25_RA018 0x1 << ASW_SHIFT25_RA018
|
|
#define ASW_SHIFT24_RA018 24
|
|
#define ASW_MASK24_RA018 0x1 << ASW_SHIFT24_RA018
|
|
#define ASW_SHIFT16_RA018 16
|
|
#define ASW_MASK16_RA018 0xF << ASW_SHIFT16_RA018
|
|
#define ASW_SHIFT09_RA018 9
|
|
#define ASW_MASK09_RA018 0x1 << ASW_SHIFT09_RA018
|
|
#define ASW_SHIFT08_RA018 8
|
|
#define ASW_MASK08_RA018 0x1 << ASW_SHIFT08_RA018
|
|
#define ASW_SHIFT00_RA018 0
|
|
#define ASW_MASK00_RA018 0xF << ASW_SHIFT00_RA018
|
|
|
|
/*ASW_CFG_PROT*/
|
|
#define ASW_RA01C ASW_REG(0x1c)
|
|
#define ASW_SHIFT01_RA01C 1
|
|
#define ASW_MASK01_RA01C 0x1 << ASW_SHIFT01_RA01C
|
|
#define ASW_SHIFT00_RA01C 0
|
|
#define ASW_MASK00_RA01C 0x1 << ASW_SHIFT00_RA01C
|
|
|
|
/*ASW_RA020*/
|
|
#define ASW_RA020 ASW_REG(0x20)
|
|
#define ASW_SHIFT16_RA020 16
|
|
#define ASW_MASK16_RA020 0x3FF << ASW_SHIFT16_RA020
|
|
#define ASW_SHIFT00_RA020 0
|
|
#define ASW_MASK00_RA020 0x3FF << ASW_SHIFT00_RA020
|
|
|
|
/*ASW_RA024*/
|
|
#define ASW_RA024 ASW_REG(0x24)
|
|
#define ASW_SHIFT16_RA024 16
|
|
#define ASW_MASK16_RA024 0xFFF << ASW_SHIFT16_RA024
|
|
#define ASW_SHIFT00_RA024 0
|
|
#define ASW_MASK00_RA024 0xFFF << ASW_SHIFT00_RA024
|
|
|
|
/*ASW_RA028*/
|
|
#define ASW_RA028 ASW_REG(0x28)
|
|
#define ASW_SHIFT00_RA028 0
|
|
#define ASW_MASK00_RA028 0xFFFFF << ASW_SHIFT00_RA028
|
|
|
|
/*ASW_RA02C*/
|
|
#define ASW_RA02C ASW_REG(0x2c)
|
|
#define LUT_SETPV_RECP_VAL_SHIFT 0
|
|
#define LUT_SETPV_RECP_VAL_MASK 0xFFFFF << LUT_SETPV_RECP_VAL_SHIFT
|
|
|
|
/*ASW_RA030*/
|
|
#define ASW_RA030 ASW_REG(0x30)
|
|
|
|
/*ASW_RA034*/
|
|
#define ASW_RA034 ASW_REG(0x34)
|
|
|
|
/*ASW_RA038*/
|
|
#define ASW_RA038 ASW_REG(0x38)
|
|
|
|
/*ASW_RA040*/
|
|
#define ASW_RA040 ASW_REG(0x40)
|
|
|
|
/*ASW_RA044*/
|
|
#define ASW_RA044 ASW_REG(0x44)
|
|
|
|
/*ASW_RA048*/
|
|
#define ASW_RA048 ASW_REG(0x48)
|
|
|
|
/*ASW_RA04C*/
|
|
#define ASW_RA04C ASW_REG(0x4c)
|
|
|
|
/*ASW_RA050*/
|
|
#define ASW_RA050 ASW_REG(0x50)
|
|
|
|
/*ASW_RA058*/
|
|
#define ASW_RA058 ASW_REG(0x58)
|
|
|
|
/*ASW_RA060*/
|
|
#define ASW_RA060 ASW_REG(0x60)
|
|
|
|
/*ASW_RA064*/
|
|
#define ASW_RA064 ASW_REG(0x64)
|
|
|
|
/*ASW_RA068*/
|
|
#define ASW_RA068 ASW_REG(0x68)
|
|
|
|
/*ASW_RA06C*/
|
|
#define ASW_RA06C ASW_REG(0x6c)
|
|
|
|
/*ASW_RA070*/
|
|
#define ASW_RA070 ASW_REG(0x70)
|
|
|
|
/*ASW_RA074*/
|
|
#define ASW_RA074 ASW_REG(0x74)
|
|
|
|
/*ASW_RA080*/
|
|
#define ASW_RA080 ASW_REG(0x80)
|
|
|
|
/*ASW_RA084*/
|
|
#define ASW_RA084 ASW_REG(0x84)
|
|
|
|
/*ASW_RA088*/
|
|
#define ASW_RA088 ASW_REG(0x88)
|
|
#define ASW_SHIFT24_RA088 24
|
|
#define ASW_MASK24_RA088 0xFF << ASW_SHIFT24_RA088
|
|
#define ASW_SHIFT16_RA088 16
|
|
#define ASW_MASK16_RA088 0xFF << ASW_SHIFT16_RA088
|
|
#define ASW_SHIFT08_RA088 8
|
|
#define ASW_MASK08_RA088 0xFF << ASW_SHIFT08_RA088
|
|
#define ASW_SHIFT00_RA088 0
|
|
#define ASW_MASK00_RA088 0xFF << ASW_SHIFT00_RA088
|
|
|
|
/*ASW_RA090*/
|
|
#define ASW_RA090 ASW_REG(0x90)
|
|
|
|
/*ASW_RA094*/
|
|
#define ASW_RA094 ASW_REG(0x94)
|
|
|
|
/*ASW_RA098*/
|
|
#define ASW_RA098 ASW_REG(0x98)
|
|
|
|
/*ASW_RA09C*/
|
|
#define ASW_RA09C ASW_REG(0x9c)
|
|
|
|
/*ASW_RA0A0*/
|
|
#define ASW_RA0A0 ASW_REG(0xa0)
|
|
|
|
/*ASW_RA0A4*/
|
|
#define ASW_RA0A4 ASW_REG(0xa4)
|
|
|
|
/*ASW_RA0A8*/
|
|
#define ASW_RA0A8 ASW_REG(0xa8)
|
|
|
|
/*ASW_RA0AC*/
|
|
#define ASW_RA0AC ASW_REG(0xac)
|
|
|
|
/*ASW_RA0B0*/
|
|
#define ASW_RA0B0 ASW_REG(0xb0)
|
|
|
|
/*ASW_RA0B4*/
|
|
#define ASW_RA0B4 ASW_REG(0xb4)
|
|
|
|
/*ASW_RA0B8*/
|
|
#define ASW_RA0B8 ASW_REG(0xb8)
|
|
|
|
/*ASW_RA0AC*/
|
|
#define ASW_RA0BC ASW_REG(0xbc)
|
|
|
|
/*ASW_RA0E0*/
|
|
#define ASW_RA0E0 ASW_REG(0xe0)
|
|
#define ASW_SHIFT02_RA0E0 2
|
|
#define ASW_MASK02_RA0E0 0x3 << ASW_SHIFT02_RA0E0
|
|
#define ASW_SHIFT01_RA0E0 1
|
|
#define ASW_MASK01_RA0E0 00x1 << ASW_SHIFT01_RA0E0
|
|
#define ASW_SHIFT00_RA0E0 0
|
|
#define ASW_MASK00_RA0E0 0x1 << ASW_SHIFT00_RA0E0
|
|
|
|
/*ASW_RA0E4*/
|
|
#define ASW_RA0E4 ASW_REG(0xe4)
|
|
|
|
/*ASW_RA0F0*/
|
|
#define ASW_RA0F0 ASW_REG(0xf0)
|
|
|
|
/*ASW_RA0F4*/
|
|
#define ASW_RA0F4 ASW_REG(0xf4)
|
|
|
|
/*ASW_RA0F8*/
|
|
#define ASW_RA0F8 ASW_REG(0xf8)
|
|
|
|
/*ASW_RA0FC*/
|
|
#define ASW_RA0FC ASW_REG(0xfc)
|
|
|
|
/*ASW_RA100*/
|
|
#define ASW_RA100 ASW_REG(0x100)
|
|
|
|
/*ASW_RA104*/
|
|
#define ASW_RA104 ASW_REG(0x104)
|
|
|
|
/*ASW_RA108*/
|
|
#define ASW_RA108 ASW_REG(0x108)
|
|
|
|
/*ASW_RA10C*/
|
|
#define ASW_RA10C ASW_REG(0x10c)
|
|
|
|
/*ASW_RA110*/
|
|
#define ASW_RA110 ASW_REG(0x110)
|
|
|
|
/*ASW_RA114*/
|
|
#define ASW_RA114 ASW_REG(0x114)
|
|
|
|
/*ASW_RA118*/
|
|
#define ASW_RA118 ASW_REG(0x118)
|
|
|
|
/*ASW_RA11C*/
|
|
#define ASW_RA11C ASW_REG(0x11c)
|
|
|
|
/*ASW_RA120*/
|
|
#define ASW_RA120 ASW_REG(0x120)
|
|
|
|
/*ASW_RA124*/
|
|
#define ASW_RA124 ASW_REG(0x124)
|
|
|
|
/*ASW_RA128*/
|
|
#define ASW_RA128 ASW_REG(0x128)
|
|
|
|
/*ASW_RA12C*/
|
|
#define ASW_RA12C ASW_REG(0x12c)
|
|
|
|
/****irqst ab0*****/
|
|
|
|
#define IRQST_REG(x) ((x) + GAMA_IRQST_JUMP)
|
|
|
|
/*ASW_RB010*/
|
|
#define ASW_RB010 IRQST_REG(0x10)
|
|
#define ASW_SHIFT26_RB010 26
|
|
#define ASW_MASK26_RB010 0x3F << ASW_SHIFT26_RB010
|
|
#define ASW_SHIFT20_RB010 20
|
|
#define ASW_MASK20_RB010 0x3F << ASW_SHIFT20_RB010
|
|
#define ASW_SHIFT14_RB010 14
|
|
#define ASW_MASK14_RB010 0x3F << ASW_SHIFT14_RB010
|
|
#define ASW_SHIFT12_RB010 12
|
|
#define ASW_MASK12_RB010 0x3 << ASW_SHIFT12_RB010
|
|
#define ASW_SHIFT11_RB010 11
|
|
#define ASW_MASK11_RB010 0x1 << ASW_SHIFT11_RB010
|
|
#define ASW_SHIFT10_RB010 10
|
|
#define ASW_MASK10_RB010 0x1 << ASW_SHIFT10_RB010
|
|
#define ASW_SHIFT09_RB010 9
|
|
#define ASW_MASK09_RB010 0x1 << ASW_SHIFT09_RB010
|
|
#define ASW_SHIFT02_RB010 2
|
|
#define ASW_MASK02_RB010 0x1 << ASW_SHIFT02_RB010
|
|
#define ASW_SHIFT01_RB010 1
|
|
#define ASW_MASK01_RB010 0x1 << ASW_SHIFT01_RB010
|
|
#define ASW_SHIFT00_RB010 0
|
|
#define ASW_MASK00_RB010 0x1 << ASW_SHIFT00_RB010
|
|
|
|
/*irqst ab0*/
|
|
|
|
#define ASW_RC024 IRQST_REG(0x1024)
|
|
#define ASW_RC028 IRQST_REG(0x1028)
|
|
#define ASW_RC02C IRQST_REG(0x102c)
|
|
#define ASW_RC030 IRQST_REG(0x1030)
|
|
#define ASW_RC034 IRQST_REG(0x1034)
|
|
|
|
#define WRITE_OUT_FRM_DONE_SHIFT 0
|
|
#define WRITE_OUT_FRM_DONE_MASK 1 << WRITE_OUT_FRM_DONE_SHIFT
|
|
|
|
/*dma*/
|
|
|
|
#define DMA_REG(x) ((x) + GAMA_DMA_JUMP)
|
|
#define RD_CHN_NUM 3
|
|
#define RD_CHN_JUMP 0x40
|
|
#define WD_CHN_NUM 2
|
|
#define WD_CHN_JUMP 0x40
|
|
|
|
#define ASW_RD000(i) (DMA_REG(0x0) + RD_CHN_JUMP * (i))
|
|
#define ASW_RD00C(i) (DMA_REG(0xc) + WD_CHN_JUMP * (i))
|
|
#define ASW_SHIFT30_RD00X 30
|
|
#define ASW_MASK30_RD00X 0x3 << ASW_SHIFT30_RD00X
|
|
#define ASW_SHIFT20_RD00X 20
|
|
#define ASW_MASK20_RD00X 0xF << ASW_SHIFT20_RD00X
|
|
#define ASW_SHIFT00_RD00X 0
|
|
#define ASW_MASK00_RD00X 0xFFFFF << ASW_SHIFT00_RD00X
|
|
|
|
#define ASW_RD010(i) (DMA_REG(0x10) + RD_CHN_JUMP * (i))
|
|
#define ASW_RD014(i) (DMA_REG(0x14) + RD_CHN_JUMP * (i))
|
|
|
|
#define ASW_RD018(i) (DMA_REG(0x18) + RD_CHN_JUMP * (i))
|
|
#define ASW_SHIFT04_RD018 4
|
|
#define ASW_MASK04_RD018 0x3 << ASW_SHIFT04_RD018
|
|
#define ASW_SHIFT00_RD018 0
|
|
#define ASW_MASK00_RD018 0xF << ASW_SHIFT00_RD018
|
|
|
|
#define ASW_RD01C(i) (DMA_REG(0x1c) + RD_CHN_JUMP * (i))
|
|
#define ASW_RD020(i) (DMA_REG(0x20) + RD_CHN_JUMP * (i))
|
|
|
|
#define ASW_RD024(i) (DMA_REG(0x24) + RD_CHN_JUMP * (i))
|
|
#define ASW_SHIFT01_RD024 1
|
|
#define ASW_MASK01_RD024 0x7 << ASW_SHIFT01_RD024
|
|
#define ASW_SHIFT00_RD024 0
|
|
#define ASW_MASK00_RD024 0x1 << ASW_SHIFT00_RD024
|
|
|
|
#define ASW_RE000 DMA_REG(0x1000)
|
|
#define ASW_SHIFT01_RE000 1
|
|
#define ASW_MASK01_RE000 0x1 << ASW_SHIFT01_RE000
|
|
#define ASW_SHIFT00_RE000 0
|
|
#define ASW_MASK00_RE000 0x1 << ASW_SHIFT00_RE000
|
|
|
|
#define ASW_RF000(i) (DMA_REG(0x2000) + WD_CHN_JUMP * (i))
|
|
#define ASW_RF004(i) (DMA_REG(0x2004) + WD_CHN_JUMP * (i))
|
|
|
|
#define ASW_RF008(i) (DMA_REG(0x2008) + WD_CHN_JUMP * (i))
|
|
#define ASW_SHIFT07_RF008 7
|
|
#define ASW_MASK07_RF008 0x1 << ASW_SHIFT07_RF008
|
|
#define ASW_SHIFT06_RF008 6
|
|
#define ASW_MASK06_RF008 0x7F << ASW_SHIFT06_RF008
|
|
#define ASW_SHIFT04_RF008 4
|
|
#define ASW_MASK04_RF008 0x3 << ASW_SHIFT04_RF008
|
|
#define ASW_SHIFT00_RF008 0
|
|
#define ASW_MASK00_RF008 0xF << ASW_SHIFT00_RF008
|
|
|
|
#define ASW_RF00C(i) (DMA_REG(0x200c) + WD_CHN_JUMP * (i))
|
|
#define ASW_RF010(i) (DMA_REG(0x2010) + WD_CHN_JUMP * (i))
|
|
|
|
#define ASW_RF014(i) (DMA_REG(0x2014) + WD_CHN_JUMP * (i))
|
|
#define ASW_SHIFT01_RF014 1
|
|
#define ASW_MASK01_RF014 0x7 << ASW_SHIFT01_RF014
|
|
#define ASW_SHIFT00_RF014 0
|
|
#define ASW_MASK00_RF014 0x1 << ASW_SHIFT00_RF014
|
|
|
|
#define ASW_RG000 DMA_REG(0x3000)
|
|
#define ASW_SHIFT01_RG000 1
|
|
#define ASW_MASK01_RG000 0x1 << ASW_SHIFT01_RG000
|
|
#define ASW_SHIFT00_RG000 0
|
|
#define ASW_MASK00_RG000 0x1 << ASW_SHIFT00_RG000
|
|
|
|
#endif //__GAMA_REGS_H__
|