![]()  | 
  
    MCUXpresso SDK API Reference Manual
    Rev. 0
    
   NXP Semiconductors 
   | 
 
The sgtl5000 driver provide codec control interface.
Modules | |
| sgtl5000 adapter | |
Data Structures | |
| struct | sgtl_audio_format_t | 
| Audio format configuration.  More... | |
| struct | sgtl_config_t | 
| Initailize structure of sgtl5000.  More... | |
| struct | sgtl_handle_t | 
| SGTL codec handler.  More... | |
Macros | |
| #define | CHIP_ID 0x0000 | 
| Define the register address of sgtl5000.  More... | |
| #define | SGTL5000_I2C_ADDR 0x0A | 
| SGTL5000 I2C address.  More... | |
| #define | SGTL_I2C_HANDLER_SIZE CODEC_I2C_MASTER_HANDLER_SIZE | 
| sgtl handle size  | |
| #define | SGTL_I2C_BITRATE 100000U | 
| sgtl i2c baudrate  | |
Functions | |
| status_t | SGTL_Init (sgtl_handle_t *handle, sgtl_config_t *config) | 
| sgtl5000 initialize function.  More... | |
| status_t | SGTL_SetDataRoute (sgtl_handle_t *handle, sgtl_route_t route) | 
| Set audio data route in sgtl5000.  More... | |
| status_t | SGTL_SetProtocol (sgtl_handle_t *handle, sgtl_protocol_t protocol) | 
| Set the audio transfer protocol.  More... | |
| void | SGTL_SetMasterSlave (sgtl_handle_t *handle, bool master) | 
| Set sgtl5000 as master or slave.  More... | |
| status_t | SGTL_SetVolume (sgtl_handle_t *handle, sgtl_module_t module, uint32_t volume) | 
| Set the volume of different modules in sgtl5000.  More... | |
| uint32_t | SGTL_GetVolume (sgtl_handle_t *handle, sgtl_module_t module) | 
| Get the volume of different modules in sgtl5000.  More... | |
| status_t | SGTL_SetMute (sgtl_handle_t *handle, sgtl_module_t module, bool mute) | 
| Mute/unmute modules in sgtl5000.  More... | |
| status_t | SGTL_EnableModule (sgtl_handle_t *handle, sgtl_module_t module) | 
| Enable expected devices.  More... | |
| status_t | SGTL_DisableModule (sgtl_handle_t *handle, sgtl_module_t module) | 
| Disable expected devices.  More... | |
| status_t | SGTL_Deinit (sgtl_handle_t *handle) | 
| Deinit the sgtl5000 codec.  More... | |
| status_t | SGTL_ConfigDataFormat (sgtl_handle_t *handle, uint32_t mclk, uint32_t sample_rate, uint32_t bits) | 
| Configure the data format of audio data.  More... | |
| status_t | SGTL_SetPlay (sgtl_handle_t *handle, uint32_t playSource) | 
| select SGTL codec play source.  More... | |
| status_t | SGTL_SetRecord (sgtl_handle_t *handle, uint32_t recordSource) | 
| select SGTL codec record source.  More... | |
| status_t | SGTL_WriteReg (sgtl_handle_t *handle, uint16_t reg, uint16_t val) | 
| Write register to sgtl using I2C.  More... | |
| status_t | SGTL_ReadReg (sgtl_handle_t *handle, uint16_t reg, uint16_t *val) | 
| Read register from sgtl using I2C.  More... | |
| status_t | SGTL_ModifyReg (sgtl_handle_t *handle, uint16_t reg, uint16_t clr_mask, uint16_t val) | 
| Modify some bits in the register using I2C.  More... | |
Driver version | |
| #define | FSL_SGTL5000_DRIVER_VERSION (MAKE_VERSION(2, 1, 0)) | 
| CLOCK driver version 2.1.0.  More... | |
| struct sgtl_audio_format_t | 
Data Fields | |
| uint32_t | mclk_HZ | 
| master clock  | |
| uint32_t | sampleRate | 
| Sample rate.  | |
| uint32_t | bitWidth | 
| Bit width.  | |
| sgtl_sclk_edge_t | sclkEdge | 
| sclk valid edge  | |
| struct sgtl_config_t | 
Data Fields | |
| sgtl_route_t | route | 
| Audio data route.  More... | |
| sgtl_protocol_t | bus | 
| Audio transfer protocol.  | |
| bool | master_slave | 
| Master or slave.  More... | |
| sgtl_audio_format_t | format | 
| audio format  | |
| uint8_t | slaveAddress | 
| code device slave address  | |
| codec_i2c_config_t | i2cConfig | 
| i2c bus configuration  | |
| sgtl_route_t sgtl_config_t::route | 
| bool sgtl_config_t::master_slave | 
True means master, false means slave.
| struct sgtl_handle_t | 
Data Fields | |
| sgtl_config_t * | config | 
| sgtl config pointer  | |
| uint8_t | i2cHandle [SGTL_I2C_HANDLER_SIZE] | 
| i2c handle  | |
| #define FSL_SGTL5000_DRIVER_VERSION (MAKE_VERSION(2, 1, 0)) | 
| #define CHIP_ID 0x0000 | 
| #define SGTL5000_I2C_ADDR 0x0A | 
| enum sgtl_module_t | 
| enum sgtl_route_t | 
| enum sgtl_protocol_t | 
| enum _sgtl_play_channel | 
| enum _sgtl_record_source | 
| enum _stgl_play_source | 
| enum sgtl_sclk_edge_t | 
| status_t SGTL_Init | ( | sgtl_handle_t * | handle, | 
| sgtl_config_t * | config | ||
| ) | 
This function calls SGTL_I2CInit(), and in this function, some configurations are fixed. The second parameter can be NULL. If users want to change the SGTL5000 settings, a configure structure should be prepared.
| handle | Sgtl5000 handle structure. | 
| config | sgtl5000 configuration structure. If this pointer equals to NULL, it means using the default configuration. | 
| status_t SGTL_SetDataRoute | ( | sgtl_handle_t * | handle, | 
| sgtl_route_t | route | ||
| ) | 
This function would set the data route according to route. The route cannot be combined, as all route would enable different modules.
| handle | Sgtl5000 handle structure. | 
| route | Audio data route in sgtl5000. | 
| status_t SGTL_SetProtocol | ( | sgtl_handle_t * | handle, | 
| sgtl_protocol_t | protocol | ||
| ) | 
Sgtl5000 only supports I2S, I2S left, I2S right, PCM A, PCM B format.
| handle | Sgtl5000 handle structure. | 
| protocol | Audio data transfer protocol. | 
| void SGTL_SetMasterSlave | ( | sgtl_handle_t * | handle, | 
| bool | master | ||
| ) | 
| handle | Sgtl5000 handle structure. | 
| master | 1 represent master, 0 represent slave. | 
| status_t SGTL_SetVolume | ( | sgtl_handle_t * | handle, | 
| sgtl_module_t | module, | ||
| uint32_t | volume | ||
| ) | 
This function would set the volume of sgtl5000 modules. This interface set module volume. The function assume that left channel and right channel has the same volume.
| handle | Sgtl5000 handle structure. | 
| module | Sgtl5000 module, such as DAC, ADC and etc. | 
| volume | Volume value need to be set. The value is the exact value in register. | 
| uint32_t SGTL_GetVolume | ( | sgtl_handle_t * | handle, | 
| sgtl_module_t | module | ||
| ) | 
This function gets the volume of sgtl5000 modules. This interface get DAC module volume. The function assume that left channel and right channel has the same volume.
| handle | Sgtl5000 handle structure. | 
| module | Sgtl5000 module, such as DAC, ADC and etc. | 
| status_t SGTL_SetMute | ( | sgtl_handle_t * | handle, | 
| sgtl_module_t | module, | ||
| bool | mute | ||
| ) | 
| handle | Sgtl5000 handle structure. | 
| module | Sgtl5000 module, such as DAC, ADC and etc. | 
| mute | True means mute, and false means unmute. | 
| status_t SGTL_EnableModule | ( | sgtl_handle_t * | handle, | 
| sgtl_module_t | module | ||
| ) | 
| handle | Sgtl5000 handle structure. | 
| module | Module expected to enable. | 
| status_t SGTL_DisableModule | ( | sgtl_handle_t * | handle, | 
| sgtl_module_t | module | ||
| ) | 
| handle | Sgtl5000 handle structure. | 
| module | Module expected to enable. | 
| status_t SGTL_Deinit | ( | sgtl_handle_t * | handle | ) | 
Shut down Sgtl5000 modules.
| handle | Sgtl5000 handle structure pointer. | 
| status_t SGTL_ConfigDataFormat | ( | sgtl_handle_t * | handle, | 
| uint32_t | mclk, | ||
| uint32_t | sample_rate, | ||
| uint32_t | bits | ||
| ) | 
This function would configure the registers about the sample rate, bit depths.
| handle | Sgtl5000 handle structure pointer. | 
| mclk | Master clock frequency of I2S. | 
| sample_rate | Sample rate of audio file running in sgtl5000. Sgtl5000 now supports 8k, 11.025k, 12k, 16k, 22.05k, 24k, 32k, 44.1k, 48k and 96k sample rate. | 
| bits | Bit depth of audio file (Sgtl5000 only supports 16bit, 20bit, 24bit and 32 bit in HW). | 
| status_t SGTL_SetPlay | ( | sgtl_handle_t * | handle, | 
| uint32_t | playSource | ||
| ) | 
| handle | Sgtl5000 handle structure pointer. | 
| playSource | play source value, reference _sgtl_play_source. | 
| status_t SGTL_SetRecord | ( | sgtl_handle_t * | handle, | 
| uint32_t | recordSource | ||
| ) | 
| handle | Sgtl5000 handle structure pointer. | 
| recordSource | record source value, reference _sgtl_record_source. | 
| status_t SGTL_WriteReg | ( | sgtl_handle_t * | handle, | 
| uint16_t | reg, | ||
| uint16_t | val | ||
| ) | 
| handle | Sgtl5000 handle structure. | 
| reg | The register address in sgtl. | 
| val | Value needs to write into the register. | 
| status_t SGTL_ReadReg | ( | sgtl_handle_t * | handle, | 
| uint16_t | reg, | ||
| uint16_t * | val | ||
| ) | 
| handle | Sgtl5000 handle structure. | 
| reg | The register address in sgtl. | 
| val | Value written to. | 
| status_t SGTL_ModifyReg | ( | sgtl_handle_t * | handle, | 
| uint16_t | reg, | ||
| uint16_t | clr_mask, | ||
| uint16_t | val | ||
| ) | 
| handle | Sgtl5000 handle structure. | 
| reg | The register address in sgtl. | 
| clr_mask | The mask code for the bits want to write. The bit you want to write should be 0. | 
| val | Value needs to write into the register. |