Files
E3/e3_176_ref/drivers/include/asw/gama_regs.h
2025-10-21 19:40:27 +08:00

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__