AG903ライブラリリファレンス
内容インデックスホーム
Body Source
本文ソース
1: 11: 12: 16: 17: #ifndef _SSPPRM_H_ 18: #define _SSPPRM_H_ 19: 20: 21: #include <stdint.h> 22: #include "lib_common/AG903_common.h" 23: 24: #ifdef __cplusplus 25: extern "C" { 26: #endif 27: 28: 29: #define AG903_SSP_CH_NUM (4) 30: 31: 32: #define AG903_SSP_SDL_MAX (128) 33: 34: 41: #define AG903_SSP_USERBIT_REGMAX (12) 42: 43: 44: #define AG903_SSP_FIFO_DEPTH (16) 45: 46: 47: #define AG903_SSP_FIFO_BITSIZE (32) 48: 49: 50: enum _AG903_SspFormatType { 51: AG903_SSP_FORMAT_SSP = 0, 52: AG903_SSP_FORMAT_SPI, 53: AG903_SSP_FORMAT_MICROWIRE, 54: AG903_SSP_FORMAT_I2S, 55: AG903_SSP_FORMAT_RESERVE, 56: AG903_SSP_FORMAT_SPDIF, 57: AG903_SSP_FORMAT_TYPENUM, 58: }; 59: 60: 61: enum _AG903_SspOperationType { 62: AG903_SSP_OPM_SLAVE = 0, 63: AG903_SSP_OPM_SLAVE_STEREO, 64: AG903_SSP_OPM_MASTER, 65: AG903_SSP_OPM_MASTER_STEREO, 66: AG903_SSP_OPM_NUM, 67: }; 68: 69: #define AG903_SSP_INTSTS_TFTHIBIT (1<<3) 70: #define AG903_SSP_INTSTS_RFTHIBIT (1<<2) 71: #define AG903_SSP_INTSTS_TFURIBIT (1<<1) 72: #define AG903_SSP_INTSTS_RFORIBIT (1<<0) 73: 74: 75: typedef struct _AG903_SSPPrmCtrl{ 76: uint16_t sclk_div; 77: uint8_t pdl; 78: uint8_t sdl; 79: 80: 81: uint8_t spi_fspo; 82: uint8_t format; 83: uint8_t spi_flash; 84: uint8_t validity; 85: uint8_t fsdist; 86: 87: uint8_t lsb; 88: uint8_t fspo; 89: uint8_t fsjstfy; 90: uint8_t opm; 91: uint8_t sclkpo; 92: uint8_t sclkph; 93: uint8_t reserve; 94: } AG903_SSPPrmCtrl; 95: 96: 97: typedef struct _AG903_SSPPrmCtrl2 { 98: uint8_t fsos; 99: uint8_t fs; 100: uint8_t txen; 101: uint8_t rxen; 102: uint8_t ssprst; 103: 104: 105: uint8_t txfclr; 106: uint8_t rxfclr; 107: uint8_t txdoe; 108: uint8_t sspen; 109: } AG903_SSPPrmCtrl2; 110: 111: 112: typedef struct _AG903_SSPPrmStatus{ 113: uint8_t txfifo_num; 114: uint8_t rxfifo_num; 115: uint8_t busy; 116: uint8_t txfifo_notfull; 117: uint8_t rxfifo_full; 118: uint8_t reserve[3]; 119: } AG903_SSPPrmStatus; 120: 121: 122: typedef struct _AG903_SSPPrmIntCtrl{ 123: uint8_t tfthod; 124: uint8_t rfthod; 125: uint8_t tfdmaen; 126: uint8_t rfdmaen; 127: uint8_t tfthien; 128: uint8_t rfthien; 129: uint8_t tfurien; 130: uint8_t rforien; 131: } AG903_SSPPrmIntCtrl; 132: 133: void AG903_SSPPrmSetControl(uint8_t ch, AG903_SSPPrmCtrl* param); 134: void AG903_SSPPrmGetControl2(uint8_t ch, AG903_SSPPrmCtrl2* param); 135: void AG903_SSPPrmSetControl2(uint8_t ch, AG903_SSPPrmCtrl2* param); 136: void AG903_SSPPrmEnableOutput(uint8_t ch); 137: void AG903_SSPPrmDisableOutput(uint8_t ch); 138: void AG903_SSPPrmEnableTransfer(uint8_t ch); 139: void AG903_SSPPrmDisableTransfer(uint8_t ch); 140: void AG903_SSPPrmCheckEnable(uint8_t ch, uint8_t* enable); 141: void AG903_SSPPrmEnableTxFunc(uint8_t ch); 142: void AG903_SSPPrmDisbleTxFunc(uint8_t ch); 143: void AG903_SSPPrmEnableRxFunc(uint8_t ch); 144: void AG903_SSPPrmDisbleRxFunc(uint8_t ch); 145: void AG903_SSPPrmGetTxFifoEntry(uint8_t ch, uint8_t* entry); 146: void AG903_SSPPrmGetRxFifoEntry(uint8_t ch, uint8_t* entry); 147: void AG903_SSPPrmSetTxFifoThreshold(uint8_t ch, uint8_t val); 148: void AG903_SSPPrmSetRxFifoThreshold(uint8_t ch, uint8_t val); 149: void AG903_SSPPrmClearTxFifo(uint8_t ch); 150: void AG903_SSPPrmClearRxFifo(uint8_t ch); 151: void AG903_SSPPrmReset(uint8_t ch); 152: void AG903_SSPPrmSetStatusBit(uint8_t ch, uint32_t status_0, uint32_t status_1); 153: void AG903_SSPPrmSetUserBit(uint8_t ch, uint8_t offset, uint32_t val); 154: void AG903_SSPPrmEnableTxInt(uint8_t ch); 155: void AG903_SSPPrmDisbleTxInt(uint8_t ch); 156: void AG903_SSPPrmEnableRxInt(uint8_t ch); 157: void AG903_SSPPrmDisbleRxInt(uint8_t ch); 158: void AG903_SSPPrmEnableTxDmareq(uint8_t ch); 159: void AG903_SSPPrmDisableTxDmareq(uint8_t ch); 160: void AG903_SSPPrmEnableRxDmareq(uint8_t ch); 161: void AG903_SSPPrmDisableRxDmareq(uint8_t ch); 162: void AG903_SSPPrmSetData(uint8_t ch, uint32_t val); 163: void AG903_SSPPrmGetData(uint8_t ch, uint32_t* val); 164: void AG903_SSPPrmGetStatus(uint8_t ch, AG903_SSPPrmStatus* status); 165: void AG903_SSPPrmSetIntControl(uint8_t ch, AG903_SSPPrmIntCtrl* param); 166: void AG903_SSPPrmGetIntControl(uint8_t ch, AG903_SSPPrmIntCtrl* param); 167: void AG903_SSPPrmGetIntStatus(uint8_t ch, uint32_t* status); 168: 169: 170: #ifdef __cplusplus 171: } 172: #endif 173: #endif
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.