AG903ライブラリリファレンス
内容インデックスホーム
Body Source
本文ソース
1: 9: 10: 14: 15: #ifndef _SSCPRM_H_ 16: #define _SSCPRM_H_ 17: 18: 19: #include <stdint.h> 20: #include "lib_common/AG903_common.h" 21: 22: #ifdef __cplusplus 23: extern "C" { 24: #endif 25: 26: #define AG903_SSC_SYSINT_CH_NUM (4) 27: #define AG903_SSC_PINFUNC_REG_NUM (2) 28: #define AG903_SSC_PIN_SETUP_INDEX_MAX (136) 29: #define AG903_SSC_GPIOEN_REG_NUM (4) 30: #define AG903_SSC_GPIOPU_REG_NUM (4) 31: #define AG903_SSC_GPIOPD_REG_NUM (4) 32: #define AG903_SSC_DMASEL_REG_NUM (4) 33: #define AG903_SSC_TICKCNT_CH_NUM (2) 34: #define AG903_SSC_CVBSDEC_CH_NUM (4) 35: 36: #define AG903_SSC_PINDIR_INPUT (0) 37: #define AG903_SSC_PINDIR_OUTPUT (1) 38: 39: #define AG903_SSC_SSPMODE_FLLDPLX (0) 40: #define AG903_SSC_SSPMODE_HLFDPLX (1) 41: 42: #define AG903_SSC_PBHWAIT_HWAIT (0) 43: #define AG903_SSC_PBHWAIT_BLP0BLGT (1) 44: 45: #define AG903_SSC_USBMODE_HOST (0) 46: #define AG903_SSC_USBMODE_DEVICE (1) 47: 48: 49: 50: #define AG903_SSC_PIN_SETUP_LS3V_POS (7) 51: #define AG903_SSC_PIN_SETUP_LS3V_MSK (0x1UL<<AG903_SSC_PIN_SETUP_LS3V_POS) 52: #define AG903_SSC_PIN_SETUP_DV_POS (5) 53: #define AG903_SSC_PIN_SETUP_DV_MSK (0x3UL<<AG903_SSC_PIN_SETUP_DV_POS) 54: #define AG903_SSC_PIN_SETUP_SR_POS (4) 55: #define AG903_SSC_PIN_SETUP_SR_MSK (0x1UL<<AG903_SSC_PIN_SETUP_SR_POS) 56: #define AG903_SSC_PIN_SETUP_SMT_POS (3) 57: #define AG903_SSC_PIN_SETUP_SMT_MSK (0x1UL<<AG903_SSC_PIN_SETUP_SMT_POS) 58: #define AG903_SSC_PIN_SETUP_LVST_POS (0) 59: #define AG903_SSC_PIN_SETUP_LVST_MSK (0x7UL<<AG903_SSC_PIN_SETUP_LVST_POS) 60: 61: 62: enum _AG903_SSC_WdtIntMode { 63: AG903_SSC_WDTINT_PULSE = 0, 64: AG903_SSC_WDTINT_LEVEL, 65: }; 66: 67: 68: enum _AG903_SSC_PINSETUP_LVST { 69: AG903_SSC_INPUT_DISABLE = 0, 70: AG903_SSC_INPUT_DISABLE_PLDWN, 71: AG903_SSC_INPUT_DISABLE_PLUP, 72: AG903_SSC_INPUT_ENABLE = 4, 73: AG903_SSC_INPUT_ENABLE_PLDWN, 74: AG903_SSC_INPUT_ENABLE_PLUP, 75: AG903_SSC_INPUT_ENABLE_LVKP, 76: }; 77: 78: 79: enum _AG903_SSC_TICK_SOURCE { 80: AG903_SSC_TICKSRC_SYSCLK = 0, 81: AG903_SSC_TICKSRC_INTERNAL, 82: AG903_SSC_TICKSRC_ALT0, 83: AG903_SSC_TICKSRC_ALT1, 84: AG903_SSC_TICKSRC_SSP0MCLK, 85: AG903_SSC_TICKSRC_SSP1MCLK, 86: AG903_SSC_TICKSRC_SSP2MCLK, 87: AG903_SSC_TICKSRC_SSP3MCLK, 88: }; 89: 90: 91: 92: 93: typedef struct _AG903_SSCPrmPinSetup{ 94: uint8_t io3v; 95: uint8_t drive; 96: uint8_t sr_slow; 97: uint8_t schmitt; 98: uint8_t lv_set; 99: uint8_t reserve[3]; 100: }AG903_SSCPrmPinSetup; 101: 102: 103: typedef struct _AG903_SSCPrmCpuRunStatus{ 104: uint8_t sev_op; 105: uint8_t wfi_stby; 106: uint8_t wfe_stby; 107: uint8_t reset; 108: uint8_t clk; 109: uint8_t reserve[3]; 110: }AG903_SSCPrmCpuRunStatus; 111: 112: 113: typedef struct _AG903_SSCPrmDspSetup{ 114: uint8_t vsync0; 115: uint8_t field0; 116: uint8_t dot0; 117: uint8_t vsync1; 118: uint8_t field1; 119: uint8_t dot1; 120: uint8_t reserve[2]; 121: }AG903_SSCPrmDspSetup; 122: 123: 124: typedef struct _AG903_SSCPrmSspSetup{ 125: uint8_t mclk_div; 126: uint8_t mclk_dir; 127: uint8_t mode; 128: uint8_t dir; 129: }AG903_SSCPrmSspSetup; 130: 131: 132: typedef struct _AG903_SSCPrmTdmParam{ 133: uint8_t enable; 134: uint8_t sclk_pol; 135: uint8_t fs_pol; 136: uint8_t fs_txpw; 137: uint8_t fs_dist; 138: uint8_t dir_tx; 139: uint8_t tdm_n; 140: uint8_t sclk_n; 141: } AG903_SSCPrmTdmParam; 142: 143: 144: typedef struct _AG903_SSCPrmTdmStatus{ 145: uint8_t rx_err; 146: uint8_t tx_stat; 147: uint8_t rx_stat; 148: uint8_t reserve[2]; 149: } AG903_SSCPrmTdmStatus; 150: 151: 152: typedef struct _AG903_SSCPrmVideoAdcParam{ 153: uint8_t acq_clr; 154: uint8_t acq_en; 155: uint8_t dat_en; 156: uint8_t clmp_tmg; 157: uint8_t clmp_lv; 158: uint8_t pga_ctl; 159: uint8_t reserve[2]; 160: } AG903_SSCPrmVideoAdcParam; 161: 162: 163: void AG903_SSCPrmGetRevesion(uint32_t* rev); 164: void AG903_SSCPrmGetModeStatus(uint8_t* btmode, uint8_t* bttest, uint8_t* status); 165: void AG903_SSCPrmClrModeStatus(uint8_t clr); 166: void AG903_SSCPrmGetIrqStatus(uint32_t* lower, uint32_t* upper); 167: void AG903_SSCPrmGetIntBusStatus(uint8_t* status); 168: void AG903_SSCPrmSetIntBusEnable(uint8_t enable); 169: void AG903_SSCPrmGetIntBusEnable(uint8_t* status); 170: void AG903_SSCPrmGetSysIntStatus(uint32_t* lower, uint32_t* middle, uint32_t* upper); 171: void AG903_SSCPrmSetSysIntEnable(uint8_t ch, uint32_t lower, uint32_t middle, uint32_t upper); 172: void AG903_SSCPrmGetSysIntEnable(uint8_t ch, uint32_t* lower, uint32_t* middle, uint32_t* upper); 173: void AG903_SSCPrmSetGfxClkDuty(uint8_t clk, uint8_t duty); 174: void AG903_SSCPrmGetGfxClkDuty(uint8_t* clk, uint8_t* duty); 175: void AG903_SSCPrmSetGvdClkDuty(uint8_t duty); 176: void AG903_SSCPrmGetGvdClkDuty(uint8_t* duty); 177: void AG903_SSCPrmSetWdtIntMode(uint8_t mode); 178: void AG903_SSCPrmGetWdtIntMode(uint8_t* mode); 179: void AG903_SSCPrmClrWdtInt(void); 180: void AG903_SSCPrmSetWdtOutputMode(uint8_t rst_ini, uint8_t rst_wdt, uint8_t wdt_ena, uint8_t wdt_od); 181: void AG903_SSCPrmGetWdtOutputMode(uint8_t* rst_ini, uint8_t* rst_wdt, uint8_t* wdt_ena, uint8_t* wdt_od); 182: void AG903_SSCPrmSetPinFunction(uint8_t reg_no, uint32_t val); 183: void AG903_SSCPrmGetPinFunction(uint8_t reg_no, uint32_t* val); 184: void AG903_SSCPrmSetPinSetup(uint8_t tbl_no, AG903_SSCPrmPinSetup* setup); 185: void AG903_SSCPrmGetPinSetup(uint8_t tbl_no, AG903_SSCPrmPinSetup* setup); 186: void AG903_SSCPrmSetPinGpioEnable(uint8_t reg_no, uint32_t val); 187: void AG903_SSCPrmGetPinGpioEnable(uint8_t reg_no, uint32_t* val); 188: void AG903_SSCPrmSetPinGpioPullUp(uint8_t reg_no, uint32_t val); 189: void AG903_SSCPrmGetPinGpioPullUp(uint8_t reg_no, uint32_t* val); 190: void AG903_SSCPrmSetPinGpioPullDown(uint8_t reg_no, uint32_t val); 191: void AG903_SSCPrmGetPinGpioPullDown(uint8_t reg_no, uint32_t* val); 192: void AG903_SSCPrmSetCpuSetup(uint8_t clk, uint8_t rst, uint8_t vbit); 193: void AG903_SSCPrmGetCpuSetup(uint8_t* clk, uint8_t* rst, uint8_t* vbit); 194: void AG903_SSCPrmClrCpuEventOutStatus(void); 195: void AG903_SSCPrmGetCpuStatus(AG903_SSCPrmCpuRunStatus* status); 196: void AG903_SSCPrmSetCpuAcpSetup(uint32_t acp_addr); 197: void AG903_SSCPrmGetCpuAcpSetup(uint32_t* acp_addr); 198: void AG903_SSCPrmSetDmaInterface(uint8_t reg_no, uint32_t val); 199: void AG903_SSCPrmGetDmaInterface(uint8_t reg_no, uint32_t* val); 200: void AG903_SSCPrmSetPbdDmaInterface(uint8_t val); 201: void AG903_SSCPrmGetPbdDmaInterface(uint8_t* val); 202: void AG903_SSCPrmSetDspPinDir(AG903_SSCPrmDspSetup* dir); 203: void AG903_SSCPrmGetDspPinDir(AG903_SSCPrmDspSetup* dir); 204: void AG903_SSCPrmSetTickSetup(uint8_t ch, uint8_t clksel, uint32_t div); 205: void AG903_SSCPrmGetTickSetup(uint8_t ch, uint8_t* clksel, uint32_t* div); 206: void AG903_SSCPrmSetTimerPinDir(uint8_t tim_dir); 207: void AG903_SSCPrmGetTimerPinDir(uint8_t* tim_dir); 208: void AG903_SSCPrmSetSspSetup(uint8_t ch, AG903_SSCPrmSspSetup* param); 209: void AG903_SSCPrmGetSspSetup(uint8_t ch, AG903_SSCPrmSspSetup* param); 210: void AG903_SSCPrmSetPbdCheckAddr(uint32_t sta_addr, uint32_t end_addr); 211: void AG903_SSCPrmGetPbdCheckAddr(uint32_t* sta_addr, uint32_t* end_addr); 212: void AG903_SSCPrmSetPbdAddrCheckEnable(uint8_t enable); 213: void AG903_SSCPrmGetPbdAddrCheckEnable(uint8_t* enable); 214: void AG903_SSCPrmGetPbdAddrCheckStatus(uint8_t* status); 215: void AG903_SSCPrmGetBmuStatus(uint16_t* src_req, uint16_t* src_rdy, uint8_t* snk_req, uint8_t* snk_rdy); 216: void AG903_SSCPrmSetBmuControl(uint16_t set_src, uint16_t clr_src, uint8_t set_snk, uint8_t clr_snk); 217: void AG903_SSCPrmGetBmuTriggerStatus(uint16_t* src_req, uint16_t* src_rdy, uint8_t* snk_req, uint8_t* snk_rdy); 218: void AG903_SSCPrmClrBmuTriggerStatus(uint16_t src_req, uint16_t src_rdy, uint8_t snk_req, uint8_t snk_rdy); 219: void AG903_SSCPrmSetPortWait(uint16_t wait); 220: void AG903_SSCPrmGetPortWait(uint16_t* wait); 221: void AG903_SSCPrmSetPbhMode(uint8_t wait_sel); 222: void AG903_SSCPrmGetPbhMode(uint8_t* wait_sel); 223: void AG903_SSCPrmSetTdmSetup(uint8_t ch, AG903_SSCPrmTdmParam* param); 224: void AG903_SSCPrmGetTdmSetup(uint8_t ch, AG903_SSCPrmTdmParam* param, AG903_SSCPrmTdmStatus* stat); 225: void AG903_SSCPrmSetUsbPowerSetup(uint8_t mode, uint8_t int_ena, uint8_t prtct_ena); 226: void AG903_SSCPrmGetUsbPowerSetup(uint8_t* mode, uint8_t* int_ena, uint8_t* prtct_ena); 227: void AG903_SSCPrmGetUsbPowerStatus(uint8_t* vbus_lv, uint8_t* prtct_lv, uint8_t* prtct_stat); 228: void AG903_SSCPrmClrUsbPowerStatus(void); 229: void AG903_SSCPrmSetSdPowerSetup(uint8_t int_ena, uint8_t prtct_ena); 230: void AG903_SSCPrmGetSdPowerSetup(uint8_t* int_ena, uint8_t* prtct_ena); 231: void AG903_SSCPrmGetSdPowerStatus(uint8_t* prtct_lv, uint8_t* prtct_stat); 232: void AG903_SSCPrmClrSdPowerStatus(void); 233: void AG903_SSCPrmSetVideoAdcSetup(AG903_SSCPrmVideoAdcParam* param); 234: void AG903_SSCPrmGetVideoAdcSetup(AG903_SSCPrmVideoAdcParam* param); 235: void AG903_SSCPrmWriteCmpstVideoDec(uint8_t ch, uint16_t reg, uint16_t data); 236: void AG903_SSCPrmReadCmpstVideoDec(uint8_t ch, uint16_t reg, uint16_t* data); 237: void AG903_SSCPrmGetVideoAdcMaxMin(uint8_t ch, uint16_t* max, uint16_t* min); 238: void AG903_SSCPrmGetSgiStatus(uint32_t* stat); 239: void AG903_SSCPrmSetSgi(uint32_t set); 240: void AG903_SSCPrmClrSgi(uint32_t clr); 241: void AG903_SSCPrmSetCpuJumpAddr(uint32_t addr); 242: void AG903_SSCPrmGetCpuJumpAddr(uint32_t* addr); 243: void AG903_SSCPrmSetFreeRunCnt(uint32_t upper, uint32_t lower); 244: void AG903_SSCPrmGetFreeRunCnt(uint32_t* upper, uint32_t* lower); 245: 246: #ifdef __cplusplus 247: } 248: #endif 249: #endif 250:
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.