54 #ifndef ti_drivers_i2s_PDMCC26XX_I2S__include 55 #define ti_drivers_i2s_PDMCC26XX_I2S__include 65 #include <ti/drivers/dpl/HwiP.h> 66 #include <ti/drivers/dpl/SemaphoreP.h> 79 #define PDMCC26XX_I2S_MIN_ALLOWED_QUEUE_SIZE 3 85 #define I2S_BLOCK_OVERHEAD_IN_BYTES 16 87 #define I2S_BLOCK_OVERHEAD_IN_BYTES 12 91 #define PDMCC26XX_I2S_CMD_SUCCESS 0 93 #define PDMCC26XX_I2S_CMD_UNDEFINED -1 95 #define PDMCC26XX_I2S_CMD_NO_SUCCESS -2 98 #define PDMCC26XX_I2S_GENERIC_DISABLED 0 100 #define PDMCC26XX_I2S_GENERIC_ENABLED 1 107 typedef void *(*PDMCC26XX_I2S_MallocFxn)(
size_t memSize);
176 #define PDMCC26XX_I2S_DEFAULT_SAMPLE_STAMP_MOD 0x0000FFFF 191 #define PDMCC26XX_I2S_WordClockPhase_Single 0 195 #define PDMCC26XX_I2S_WordClockPhase_Dual 1 199 #define PDMCC26XX_I2S_WordClockPhase_UserDefined 2 209 #define PDMCC26XX_I2S_SampleEdge_Negative 0 213 #define PDMCC26XX_I2S_SampleEdge_Postive 1 223 #define PDMCC26XX_I2S_WordClockSource_Ext 1 227 #define PDMCC26XX_I2S_WordClockSource_Int 2 237 #define PDMCC26XX_I2S_BitClockSource_Ext 0 241 #define PDMCC26XX_I2S_BitClockSource_Int 1 251 #define PDMCC26XX_I2S_ClockSource_Normal 0 255 #define PDMCC26XX_I2S_ClockSource_Inverted 1 266 #define PDMCC26XX_I2S_ADUsageDisabled 0 270 #define PDMCC26XX_I2S_ADUsageInput 1 274 #define PDMCC26XX_I2S_ADUsageOutput 2 294 #define PDMCC26XX_I2S_CHAN0_ACT 0x00000001 296 #define PDMCC26XX_I2S_CHAN1_ACT 0x00000002 298 #define PDMCC26XX_I2S_CHAN2_ACT 0x00000004 300 #define PDMCC26XX_I2S_CHAN3_ACT 0x00000008 302 #define PDMCC26XX_I2S_CHAN4_ACT 0x00000010 304 #define PDMCC26XX_I2S_CHAN5_ACT 0x00000020 306 #define PDMCC26XX_I2S_CHAN6_ACT 0x00000040 308 #define PDMCC26XX_I2S_CHAN7_ACT 0x00000080 310 #define PDMCC26XX_I2S_MONO_MODE 0x00000001 312 #define PDMCC26XX_I2S_STEREO_MODE 0x00000003 314 #define PDMCC26XX_I2S_DISABLED_MODE 0x00000000 316 #define PDMCC26XX_I2S_CHAN_CFG_MASK 0x000000FF 327 #define PDMCC26XX_I2S_WordLengthMin 8 329 #define PDMCC26XX_I2S_WordLength16 16 331 #define PDMCC26XX_I2S_WordLengthMax 24 341 #define PDMCC26XX_I2S_SinglePhase 0 343 #define PDMCC26XX_I2S_DualPhase 1 354 #define PDMCC26XX_I2S_NegativeEdge 0 356 #define PDMCC26XX_I2S_PositiveEdge 1 370 #define PDMCC26XX_I2S_MemLen16bit 0 372 #define PDMCC26XX_I2S_MemLen24bit 1 392 #define PDMCC26XX_I2S_FormatLJF 0 394 #define PDMCC26XX_I2S_FormatI2SandDSP 1 396 #define PDMCC26XX_I2S_FormatRJFmin 2 398 #define PDMCC26XX_I2S_FormatRJFmax 255 488 uint16_t sampleOnPositiveEdge:1;
490 uint16_t wclkPhase:2;
492 uint16_t wclkInverted:1;
494 uint16_t wclkSource:2;
500 uint16_t bclkSource:1;
539 uint8_t enableMclkPin:1;
543 uint8_t ad1NumOfChannels:4;
549 uint8_t enableWclkPin:1;
551 uint8_t enableBclkPin:1;
553 uint8_t ad0NumOfChannels:4;
561 #define PDMCC26XX_I2S_DIR_CHA_M (I2S_LINE_MASK | I2S_CHAN_CFG_MASK) 581 uint8_t wordLength:5;
585 uint8_t sampleEdge:1;
uint8_t PIN_Id
Pin identifier data type.
Definition: PIN.h:577
void PDMCC26XX_I2S_releaseBuffer(PDMCC26XX_I2S_Handle handle, PDMCC26XX_I2S_BufferRelease *bufferRelease)
Function for releasing buffer.
SemaphoreP_Struct blockComplete
Definition: PDMCC26XX_util.h:711
PDMCC26XX_I2S_Handle PDMCC26XX_I2S_open(PDMCC26XX_I2S_Handle handle, PDMCC26XX_I2S_Params *params)
Function to open a given CC26XX I2S peripheral specified by the I2S handle.
bool PDMCC26XX_I2S_requestBuffer(PDMCC26XX_I2S_Handle handle, PDMCC26XX_I2S_BufferRequest *bufferRequest)
Function for requesting buffer.
uint8_t blockCount
Definition: PDMCC26XX_util.h:671
PDMCC26XX_I2S_Status status
Definition: PDMCC26XX_util.h:644
PDMCC26XX_I2S_Mode
Definitions for various PDMCC26XX_I2S modes of operation.
Definition: PDMCC26XX_util.h:163
PDMCC26XX_I2S_TransferSize blockSizeInSamples
Definition: PDMCC26XX_util.h:701
struct PDMCC26XX_I2S_Config PDMCC26XX_I2S_Config
The PDMCC26XX_I2S_Config structure contains a set of pointers used to characterize the PDMCC26XX_I2S ...
struct PDMCC26XX_I2S_AudioClockConfig PDMCC26XX_I2S_AudioClockConfig
PDMCC26XX_I2S Audio Clock configuration.
Definition: PDMCC26XX_util.h:129
Definition: PDMCC26XX_util.h:144
void * bufferHandleIn
Definition: PDMCC26XX_util.h:655
struct PDMCC26XX_I2S_Config * PDMCC26XX_I2S_Handle
A handle that is returned from a PDMCC26XX_I2S_open() call.
Definition: PDMCC26XX_util.h:120
PDMCC26XX_I2S_MallocFxn mallocFxn
Definition: PDMCC26XX_util.h:705
PDMCC26XX_I2S_StreamNotification * currentStream
Definition: PDMCC26XX_util.h:685
Power manager interface for CC26XX/CC13XX.
void const * hwAttrs
Definition: PDMCC26XX_util.h:413
uint16_t ad0
Definition: PDMCC26XX_util.h:532
PDMCC26XX_I2S_AudioPinConfig audioPinCfg
Definition: PDMCC26XX_util.h:709
Definition: PDMCC26XX_util.h:611
uint32_t requestTimeout
Definition: PDMCC26XX_util.h:698
PIN_Id ad0Pin
Definition: PDMCC26XX_util.h:457
PDMCC26XX_I2S_RequestMode requestMode
Definition: PDMCC26XX_util.h:697
Definition: PDMCC26XX_util.h:605
PDMCC26XX_I2S_FreeFxn freeFxn
Definition: PDMCC26XX_util.h:684
PDMCC26XX_I2S_MallocFxn mallocFxn
Definition: PDMCC26XX_util.h:683
A PDMCC26XX_I2S_BufferRequest data structure is used with PDMCC26XX_I2S_requestBuffer().
Definition: PDMCC26XX_util.h:641
Definition: PDMCC26XX_util.h:132
PDMCC26XX_I2S_RequestMode requestMode
Definition: PDMCC26XX_util.h:673
Definition: PDMCC26XX_util.h:127
uint16_t ad1
Definition: PDMCC26XX_util.h:530
void(* PDMCC26XX_I2S_CallbackFxn)(PDMCC26XX_I2S_Handle handle, PDMCC26XX_I2S_StreamNotification *notification)
The definition of a callback function used when wakeup on chip select is enabled. ...
Definition: PDMCC26XX_util.h:664
PIN_Id wclkPin
Definition: PDMCC26XX_util.h:455
Definition: PDMCC26XX_util.h:126
Definition: PDMCC26XX_util.h:147
Definition: PDMCC26XX_util.h:165
PDMCC26XX_I2S_CallbackFxn callbackFxn
Definition: PDMCC26XX_util.h:681
A PDMCC26XX_I2S_BufferRelease data structure is used with PDMCC26XX_I2S_releaseBuffer().
Definition: PDMCC26XX_util.h:654
PIN_Id mclkPin
Definition: PDMCC26XX_util.h:451
void * bufferHandleIn
Definition: PDMCC26XX_util.h:643
Definition: PDMCC26XX_util.h:140
struct PDMCC26XX_I2S_AudioFormatConfig PDMCC26XX_I2S_AudioFormatConfig
PDMCC26XX_I2S Hardware configuration.
bool isOpen
Definition: PDMCC26XX_util.h:694
uint8_t blockCount
Definition: PDMCC26XX_util.h:695
PDMCC26XX_I2S_RequestMode
PDMCC26XX_I2S Object.
Definition: PDMCC26XX_util.h:600
Device-specific pin & GPIO driver for CC26xx family [def].
struct PDMCC26XX_I2S_BufferRequest PDMCC26XX_I2S_BufferRequest
A PDMCC26XX_I2S_BufferRequest data structure is used with PDMCC26XX_I2S_requestBuffer().
uint32_t requestTimeout
Definition: PDMCC26XX_util.h:672
bool PDMCC26XX_I2S_stopStream(PDMCC26XX_I2S_Handle handle)
Function for stopping an I2S interface.
uint16_t wclkDiv
Definition: PDMCC26XX_util.h:484
PDMCC26XX_I2S_StreamNotification * currentStream
Definition: PDMCC26XX_util.h:707
uint16_t blockSizeInBytes
Definition: PDMCC26XX_util.h:696
PDMCC26XX_I2S_AudioClockConfig audioClkCfg
Definition: PDMCC26XX_util.h:714
Definition: PDMCC26XX_util.h:153
PDMCC26XX_I2S_TransferSize blockSizeInSamples
Definition: PDMCC26XX_util.h:674
SemaphoreP_Struct semStopping
Definition: PDMCC26XX_util.h:712
struct PDMCC26XX_I2S_Params PDMCC26XX_I2S_Params
PDMCC26XX I2S Parameters are used when calling PDMCC26XX_I2S_open().
PDMCC26XX I2S Parameters are used when calling PDMCC26XX_I2S_open().
Definition: PDMCC26XX_util.h:670
void(* PDMCC26XX_I2S_FreeFxn)(void *ptr, size_t memSize)
PDMCC26XX_I2S_FreeFxn is a function pointer for the free function to be used by the driver...
Definition: PDMCC26XX_util.h:115
int32_t sampleRate
Definition: PDMCC26XX_util.h:699
PIN_State pinState
Definition: PDMCC26XX_util.h:713
void * arg
Definition: PDMCC26XX_util.h:620
PDMCC26XX_I2S_Status
Status codes that are set by the I2S driver.
Definition: PDMCC26XX_util.h:125
underlying data structure for type PIN_State
Definition: PIN.h:707
PDMCC26XX_I2S Object.
Definition: PDMCC26XX_util.h:693
bool PDMCC26XX_I2S_startStream(PDMCC26XX_I2S_Handle handle)
Function for starting an I2S interface.
Definition: PDMCC26XX_util.h:164
void PDMCC26XX_I2S_close(PDMCC26XX_I2S_Handle handle)
Function to close a given CC26XX I2S peripheral specified by the I2S handle.
Definition: PDMCC26XX_util.h:128
void * object
Definition: PDMCC26XX_util.h:410
PDMCC26XX_I2S_FreeFxn freeFxn
Definition: PDMCC26XX_util.h:706
PDMCC26XX_I2S Audio Clock configuration.
Definition: PDMCC26XX_util.h:482
uint8_t ad0ChannelMask
Definition: PDMCC26XX_util.h:555
HwiP_Struct hwi
Definition: PDMCC26XX_util.h:710
PowerCC26XX_Resource powerMngrId
Definition: PDMCC26XX_util.h:449
A PDMCC26XX_I2S_StreamNotification data structure is used with PDMCC26XX_I2S_CallbackFxn(). Provides notification about available buffers and potential errors.
Definition: PDMCC26XX_util.h:619
void * bufferIn
Definition: PDMCC26XX_util.h:642
struct PDMCC26XX_I2S_HWAttrs PDMCC26XX_I2S_HWAttrs
PDMCC26XX_I2S Hardware attributes.
struct PDMCC26XX_I2S_BufferRelease PDMCC26XX_I2S_BufferRelease
A PDMCC26XX_I2S_BufferRelease data structure is used with PDMCC26XX_I2S_releaseBuffer().
PDMCC26XX_I2S Hardware attributes.
Definition: PDMCC26XX_util.h:443
PIN_Handle pinHandle
Definition: PDMCC26XX_util.h:700
The PDMCC26XX_I2S_Config structure contains a set of pointers used to characterize the PDMCC26XX_I2S ...
Definition: PDMCC26XX_util.h:408
struct PDMCC26XX_I2S_StreamNotification PDMCC26XX_I2S_StreamNotification
A PDMCC26XX_I2S_StreamNotification data structure is used with PDMCC26XX_I2S_CallbackFxn(). Provides notification about available buffers and potential errors.
uint8_t ad1ChannelMask
Definition: PDMCC26XX_util.h:545
Definition: PDMCC26XX_util.h:137
PDMCC26XX_I2S Audio Pin configuration.
Definition: PDMCC26XX_util.h:526
PDMCC26XX_I2S_AudioFormatConfig audioFmtCfg
Definition: PDMCC26XX_util.h:708
uint8_t intNum
Definition: PDMCC26XX_util.h:445
uint8_t intPriority
Definition: PDMCC26XX_util.h:447
union PDMCC26XX_I2S_AudioPinConfig PDMCC26XX_I2S_AudioPinConfig
PDMCC26XX_I2S Audio Pin configuration.
uint32_t PDMCC26XX_I2S_TransferSize
Definition: PDMCC26XX_util.h:401
struct PDMCC26XX_I2S_Object PDMCC26XX_I2S_Object
PDMCC26XX_I2S Object.
void *(* PDMCC26XX_I2S_MallocFxn)(size_t memSize)
PDMCC26XX_I2S_MallocFxn is a function pointer for the malloc function to be used by the driver...
Definition: PDMCC26XX_util.h:107
PDMCC26XX_I2S_Status status
Definition: PDMCC26XX_util.h:621
uint32_t baseAddr
Definition: PDMCC26XX_util.h:459
const PDMCC26XX_I2S_Config PDMCC26XX_I2S_config[]
PIN_Id bclkPin
Definition: PDMCC26XX_util.h:453
void PDMCC26XX_I2S_init(PDMCC26XX_I2S_Handle handle)
I2S CC26XX initialization.
PDMCC26XX_I2S_CallbackFxn callbackFxn
Definition: PDMCC26XX_util.h:704