54 #ifndef ti_drivers_i2s_PDMCC26XX_I2S__include 55 #define ti_drivers_i2s_PDMCC26XX_I2S__include 61 #include <ti/drivers/pin/PINCC26XX.h> 62 #include <ti/drivers/Power.h> 63 #include <ti/drivers/power/PowerCC26XX.h> 69 #define ti_sysbios_family_arm_m3_Hwi__nolocalnames 70 #include <ti/sysbios/knl/Semaphore.h> 71 #include <ti/sysbios/family/arm/m3/Hwi.h> 84 #define PDMCC26XX_I2S_MIN_ALLOWED_QUEUE_SIZE 3 90 #define I2S_BLOCK_OVERHEAD_IN_BYTES 16 92 #define I2S_BLOCK_OVERHEAD_IN_BYTES 12 96 #define PDMCC26XX_I2S_CMD_SUCCESS 0 98 #define PDMCC26XX_I2S_CMD_UNDEFINED -1 100 #define PDMCC26XX_I2S_CMD_NO_SUCCESS -2 103 #define PDMCC26XX_I2S_GENERIC_DISABLED 0 105 #define PDMCC26XX_I2S_GENERIC_ENABLED 1 112 typedef void *(*PDMCC26XX_I2S_MallocFxn)(
size_t memSize);
181 #define PDMCC26XX_I2S_DEFAULT_SAMPLE_STAMP_MOD 0x0000FFFF 196 #define PDMCC26XX_I2S_WordClockPhase_Single 0 200 #define PDMCC26XX_I2S_WordClockPhase_Dual 1 204 #define PDMCC26XX_I2S_WordClockPhase_UserDefined 2 214 #define PDMCC26XX_I2S_SampleEdge_Negative 0 218 #define PDMCC26XX_I2S_SampleEdge_Postive 1 228 #define PDMCC26XX_I2S_WordClockSource_Ext 1 232 #define PDMCC26XX_I2S_WordClockSource_Int 2 242 #define PDMCC26XX_I2S_BitClockSource_Ext 0 246 #define PDMCC26XX_I2S_BitClockSource_Int 1 256 #define PDMCC26XX_I2S_ClockSource_Normal 0 260 #define PDMCC26XX_I2S_ClockSource_Inverted 1 271 #define PDMCC26XX_I2S_ADUsageDisabled 0 275 #define PDMCC26XX_I2S_ADUsageInput 1 279 #define PDMCC26XX_I2S_ADUsageOutput 2 299 #define PDMCC26XX_I2S_CHAN0_ACT 0x00000001 301 #define PDMCC26XX_I2S_CHAN1_ACT 0x00000002 303 #define PDMCC26XX_I2S_CHAN2_ACT 0x00000004 305 #define PDMCC26XX_I2S_CHAN3_ACT 0x00000008 307 #define PDMCC26XX_I2S_CHAN4_ACT 0x00000010 309 #define PDMCC26XX_I2S_CHAN5_ACT 0x00000020 311 #define PDMCC26XX_I2S_CHAN6_ACT 0x00000040 313 #define PDMCC26XX_I2S_CHAN7_ACT 0x00000080 315 #define PDMCC26XX_I2S_MONO_MODE 0x00000001 317 #define PDMCC26XX_I2S_STEREO_MODE 0x00000003 319 #define PDMCC26XX_I2S_DISABLED_MODE 0x00000000 321 #define PDMCC26XX_I2S_CHAN_CFG_MASK 0x000000FF 332 #define PDMCC26XX_I2S_WordLengthMin 8 334 #define PDMCC26XX_I2S_WordLength16 16 336 #define PDMCC26XX_I2S_WordLengthMax 24 346 #define PDMCC26XX_I2S_SinglePhase 0 348 #define PDMCC26XX_I2S_DualPhase 1 359 #define PDMCC26XX_I2S_NegativeEdge 0 361 #define PDMCC26XX_I2S_PositiveEdge 1 375 #define PDMCC26XX_I2S_MemLen16bit 0 377 #define PDMCC26XX_I2S_MemLen24bit 1 397 #define PDMCC26XX_I2S_FormatLJF 0 399 #define PDMCC26XX_I2S_FormatI2SandDSP 1 401 #define PDMCC26XX_I2S_FormatRJFmin 2 403 #define PDMCC26XX_I2S_FormatRJFmax 255 493 uint16_t sampleOnPositiveEdge:1;
495 uint16_t wclkPhase:2;
497 uint16_t wclkInverted:1;
499 uint16_t wclkSource:2;
505 uint16_t bclkSource:1;
544 uint8_t enableMclkPin:1;
548 uint8_t ad1NumOfChannels:4;
554 uint8_t enableWclkPin:1;
556 uint8_t enableBclkPin:1;
558 uint8_t ad0NumOfChannels:4;
566 #define PDMCC26XX_I2S_DIR_CHA_M (I2S_LINE_MASK | I2S_CHAN_CFG_MASK) 586 uint8_t wordLength:5;
590 uint8_t sampleEdge:1;
715 ti_sysbios_family_arm_m3_Hwi_Struct
hwi;
895 #undef ti_sysbios_family_arm_m3_Hwi__nolocalnames PIN_Id wclkPin
Definition: PDMCC26XX_util.h:460
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.
PDMCC26XX_I2S_AudioPinConfig audioPinCfg
Definition: PDMCC26XX_util.h:714
uint8_t ad0ChannelMask
Definition: PDMCC26XX_util.h:560
bool PDMCC26XX_I2S_requestBuffer(PDMCC26XX_I2S_Handle handle, PDMCC26XX_I2S_BufferRequest *bufferRequest)
Function for requesting buffer.
PDMCC26XX_I2S_Mode
Definitions for various PDMCC26XX_I2S modes of operation.
Definition: PDMCC26XX_util.h:168
void * arg
Definition: PDMCC26XX_util.h:625
Semaphore_Struct blockComplete
Definition: PDMCC26XX_util.h:716
struct PDMCC26XX_I2S_Config PDMCC26XX_I2S_Config
The PDMCC26XX_I2S_Config structure contains a set of pointers used to characterize the PDMCC26XX_I2S ...
PDMCC26XX_I2S_TransferSize blockSizeInSamples
Definition: PDMCC26XX_util.h:679
uint8_t intNum
Definition: PDMCC26XX_util.h:450
struct PDMCC26XX_I2S_AudioClockConfig PDMCC26XX_I2S_AudioClockConfig
PDMCC26XX_I2S Audio Clock configuration.
uint16_t ad0
Definition: PDMCC26XX_util.h:537
Definition: PDMCC26XX_util.h:134
Definition: PDMCC26XX_util.h:149
uint16_t blockSizeInBytes
Definition: PDMCC26XX_util.h:701
uint8_t ad1ChannelMask
Definition: PDMCC26XX_util.h:550
PDMCC26XX_I2S_FreeFxn freeFxn
Definition: PDMCC26XX_util.h:689
struct PDMCC26XX_I2S_Config * PDMCC26XX_I2S_Handle
A handle that is returned from a PDMCC26XX_I2S_open() call.
Definition: PDMCC26XX_util.h:125
PIN_Id bclkPin
Definition: PDMCC26XX_util.h:458
uint32_t requestTimeout
Definition: PDMCC26XX_util.h:677
PDMCC26XX_I2S_MallocFxn mallocFxn
Definition: PDMCC26XX_util.h:688
Semaphore_Struct semStopping
Definition: PDMCC26XX_util.h:717
Definition: PDMCC26XX_util.h:616
uint32_t baseAddr
Definition: PDMCC26XX_util.h:464
Definition: PDMCC26XX_util.h:610
PDMCC26XX_I2S_MallocFxn mallocFxn
Definition: PDMCC26XX_util.h:710
A PDMCC26XX_I2S_BufferRequest data structure is used with PDMCC26XX_I2S_requestBuffer().
Definition: PDMCC26XX_util.h:646
Definition: PDMCC26XX_util.h:137
Definition: PDMCC26XX_util.h:132
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:669
Definition: PDMCC26XX_util.h:131
Definition: PDMCC26XX_util.h:152
PDMCC26XX_I2S_Status status
Definition: PDMCC26XX_util.h:626
Definition: PDMCC26XX_util.h:170
A PDMCC26XX_I2S_BufferRelease data structure is used with PDMCC26XX_I2S_releaseBuffer().
Definition: PDMCC26XX_util.h:659
Definition: PDMCC26XX_util.h:145
struct PDMCC26XX_I2S_AudioFormatConfig PDMCC26XX_I2S_AudioFormatConfig
PDMCC26XX_I2S Hardware configuration.
PDMCC26XX_I2S_RequestMode
PDMCC26XX_I2S Object.
Definition: PDMCC26XX_util.h:605
Void PDMCC26XX_I2S_releaseBuffer(PDMCC26XX_I2S_Handle handle, PDMCC26XX_I2S_BufferRelease *bufferRelease)
Function for releasing buffer.
uint8_t blockCount
Definition: PDMCC26XX_util.h:676
PDMCC26XX_I2S_AudioFormatConfig audioFmtCfg
Definition: PDMCC26XX_util.h:713
void * bufferHandleIn
Definition: PDMCC26XX_util.h:660
PDMCC26XX_I2S_CallbackFxn callbackFxn
Definition: PDMCC26XX_util.h:686
struct PDMCC26XX_I2S_BufferRequest PDMCC26XX_I2S_BufferRequest
A PDMCC26XX_I2S_BufferRequest data structure is used with PDMCC26XX_I2S_requestBuffer().
bool PDMCC26XX_I2S_stopStream(PDMCC26XX_I2S_Handle handle)
Function for stopping an I2S interface.
PIN_Handle pinHandle
Definition: PDMCC26XX_util.h:705
Definition: PDMCC26XX_util.h:158
void * object
Definition: PDMCC26XX_util.h:415
PDMCC26XX_I2S_RequestMode requestMode
Definition: PDMCC26XX_util.h:678
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:675
uint16_t wclkDiv
Definition: PDMCC26XX_util.h:489
void * bufferHandleIn
Definition: PDMCC26XX_util.h:648
PDMCC26XX_I2S_CallbackFxn callbackFxn
Definition: PDMCC26XX_util.h:709
PIN_State pinState
Definition: PDMCC26XX_util.h:718
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:120
PDMCC26XX_I2S_Status status
Definition: PDMCC26XX_util.h:649
PDMCC26XX_I2S_Status
Status codes that are set by the I2S driver.
Definition: PDMCC26XX_util.h:130
void * bufferIn
Definition: PDMCC26XX_util.h:647
bool isOpen
Definition: PDMCC26XX_util.h:699
uint8_t intPriority
Definition: PDMCC26XX_util.h:452
PDMCC26XX_I2S Object.
Definition: PDMCC26XX_util.h:698
bool PDMCC26XX_I2S_startStream(PDMCC26XX_I2S_Handle handle)
Function for starting an I2S interface.
Definition: PDMCC26XX_util.h:169
void PDMCC26XX_I2S_close(PDMCC26XX_I2S_Handle handle)
Function to close a given CC26XX I2S peripheral specified by the I2S handle.
PDMCC26XX_I2S_TransferSize blockSizeInSamples
Definition: PDMCC26XX_util.h:706
uint16_t ad1
Definition: PDMCC26XX_util.h:535
Definition: PDMCC26XX_util.h:133
PDMCC26XX_I2S_AudioClockConfig audioClkCfg
Definition: PDMCC26XX_util.h:719
PDMCC26XX_I2S Audio Clock configuration.
Definition: PDMCC26XX_util.h:487
PowerCC26XX_Resource powerMngrId
Definition: PDMCC26XX_util.h:454
A PDMCC26XX_I2S_StreamNotification data structure is used with PDMCC26XX_I2S_CallbackFxn(). Provides notification about available buffers and potential errors.
Definition: PDMCC26XX_util.h:624
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:448
PDMCC26XX_I2S_StreamNotification * currentStream
Definition: PDMCC26XX_util.h:712
PDMCC26XX_I2S_FreeFxn freeFxn
Definition: PDMCC26XX_util.h:711
The PDMCC26XX_I2S_Config structure contains a set of pointers used to characterize the PDMCC26XX_I2S ...
Definition: PDMCC26XX_util.h:413
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.
Definition: PDMCC26XX_util.h:142
PDMCC26XX_I2S Audio Pin configuration.
Definition: PDMCC26XX_util.h:531
int32_t sampleRate
Definition: PDMCC26XX_util.h:704
PIN_Id mclkPin
Definition: PDMCC26XX_util.h:456
ti_sysbios_family_arm_m3_Hwi_Struct hwi
Definition: PDMCC26XX_util.h:715
union PDMCC26XX_I2S_AudioPinConfig PDMCC26XX_I2S_AudioPinConfig
PDMCC26XX_I2S Audio Pin configuration.
PIN_Id ad0Pin
Definition: PDMCC26XX_util.h:462
uint32_t requestTimeout
Definition: PDMCC26XX_util.h:703
bool PDMCC26XX_I2S_Params_init(PDMCC26XX_I2S_Params *params, PDMCC26XX_I2S_Mode mode, void *modeSpecificParams)
Function to set initialization parameters for the audio interface.
PDMCC26XX_I2S_RequestMode requestMode
Definition: PDMCC26XX_util.h:702
void const * hwAttrs
Definition: PDMCC26XX_util.h:418
uint32_t PDMCC26XX_I2S_TransferSize
Definition: PDMCC26XX_util.h:406
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:112
const PDMCC26XX_I2S_Config PDMCC26XX_I2S_config[]
void PDMCC26XX_I2S_init(PDMCC26XX_I2S_Handle handle)
I2S CC26XX initialization.
PDMCC26XX_I2S_StreamNotification * currentStream
Definition: PDMCC26XX_util.h:690
uint8_t blockCount
Definition: PDMCC26XX_util.h:700