4.6. CDD_I2C Module

4.6.1. Acronyms and Definitions

Abbreviation/Term

Explanation

AUTOSAR

Automotive Open System Architecture

I2C

Inter Integrated Circuit

BSW

Basic Software

MCAL

Micro Controller Abstraction Layer

API

Application Programming Interface

DET

Default Error Tracer

MCU

Micro Controller Unit

OS

Operating System

4.6.2. Introduction

This document describes the functionality, API and configuration of the AUTOSAR BSW module I2C.

Supported AUTOSAR Release

4.3.1

Supported Configuration Variants

Pre-Compile

Vendor ID

CDD_I2C_VENDOR_ID (44)(TEXAS INSTRUMENTS)

Module ID

CDD_I2C_MODULE_ID (255)

Supported Platform

AM263Px

4.6.3. Functional Overview

The I2C component is a proprietary extension of AUTOSAR BSW. The I2C driver was designed similar to the SPI driver specifications and is compatible to AUTOSAR 4.3.1.

4.6.3.1. I2C Driver Architecture

The following figure shows where the I2C is located in the AUTOSAR architecture.

../_images/i2c_architecture.png

The expected flow for utilization of the driver as per the example application is interrupt registration (only required in case of interrupt mode), I2c driver initialization using Cdd_I2c_Init. Post initialization buffer set up linking is done to point channels to their respective buffers using Cdd_I2c_SetupEB and for writing data to slaves Cdd_I2c_AsyncTransmit() is used in both polling as well as interrupt mode.

For reception of data from I2c slaves Cdd_I2c_AsyncTransmit() can be used in interrupt mode. If polling mode is being used, use Cdd_I2c_PollingModeProcessing() and after these functional calls call Cdd_I2c_MainFunction to process any sequence in the queue and update the status of the queue to real time value.

4.6.3.2. Initialization

The driver I2C is initialized by calling Cdd_I2c_Init () with a null pointer passed as argument. To re-initialize the driver call I2c_DeInit () and then I2c_Init () again. Only pre-compile variant is supported for the driver, hence all configuration related parameters are provided through the GUI. The service for de-initialization is provided with the function Cdd_I2c_DeInit ().

4.6.3.3. States

I2C maintains states for:

  1. Driver

    • CDD_I2C_UNINIT

      • Driver is uninitialized

      • Cdd_I2c_Init () has not been called or Cdd_I2c_DeInit () has been called after initialization

    • CDD_I2C_IDLE

      • Driver is currently free, not in the middle of any transmission/reception process

    • CDD_I2C_BUSY

      • Driver is currently in use, transmission/reception in process

    The state for I2c driver is returned with Cdd_I2c_GetStaus() function call.

  2. Channels:-

    • CDD_I2C_CH_RESULT_OK

      • Channel transmission/reception not yet started

      • Channel transmission/reception successful

    • CDD_I2C_CH_RESULT_NOT_OK

      • Channel transmission/reception is not OK

    • CDD_I2C_CH_RESULT_IN_PROGRESS

      • Channel transmission/reception currently in progress

    • CDD_I2C_CH_RESULT_BUS_FAIL

      • Channel transmission/reception failed due to bus fault

    • CDD_I2C_CH_RESULT_ARBFAIL

      • Channel transmission/reception failed due to arbitration loss

    • CDD_I2C_CH_RESULT_NACKFAIL

      • Channel transmission/reception failed due to no acknowledge

    The channel status is returned with Cdd_I2c_GetResult() function call. In case incorrect channel ID is passed a DET error occur

  3. Sequences:-

    • CDD_I2C_SEQ_OK

      • Sequence transmission/reception not yet started

      • Sequence transmission/reception successful

    • CDD_I2C_SEQ_NOT_OK

      • Sequence transmission/reception in not OK

    • CDD_I2C_SEQ_PENDING

      • Sequence transmission/reception in progress

    • CDD_I2C_SEQ_QUEUED

      • Sequence queued

    • CDD_I2C_SEQ_NACK

      • Sequence failed due to no acknowledge

    • CDD_I2C_SEQ_FAILED

      • Sequence transmission/reception failed

    • CDD_I2C_SEQ_CANCELLED

      • Sequence cancelled

    The sequence status is returned with Cdd_I2c_GetSequenceResult

  4. Hardware Units:-

    • CDD_I2C_HW_UNIT_FREE

      • Hardware Unit not in use

    • CDD_I2C_HW_UNIT_BUSY

      • Hardware Unit busy

4.6.4. Hardware Features

On AM263Px platform, there are 4 I2C instances I2C0, I2C1, I2C2 and I2C3 each consisting of 25 registers for control, data transmission and reception.

4.6.4.1. Supported Features

  • Configurable Development error (Software supported)

  • Configurable No acknowledgement error check (Software supported)

  • Configurable Arbitration loss error check (Software supported)

  • Polling mode (Software supported)

  • Interrupt mode (Software supported)

  • Configurable multiple sequence in queue check (Software supported)

  • Configurable arbitration loss parameter (Software supported)

  • Configurable timeouts for reception, arbitration loss and queue (Software supported)

  • Configurable queue size (Software supported)

  • Configurable sequence size (Software supported)

  • Configurable channel size (Software supported)

  • Configurable data length (Software supported)

  • Configurable Hardware units (Hardware supported)

  • Configurable Channels (Software supported)

  • Configurable Sequences (Software supported)

  • Shareable channels (Software supported)

  • Channel in use checks (Software supported)

  • Sequence in use checks (Software supported)

  • Hardware unit in use checks (Software supported)

  • 7 and 10 bit address schemes (Hardware supported)

4.6.4.1.1. Configurable Development Error

  1. User configurable error check to report development errors.

  2. Blocking error

4.6.4.1.2. Configurable No Acknowledgement Error Check

  1. User configurable check to treat a no acknowledgement condition as a development error

  2. Applicable only when AM263Px is in master receiving mode

4.6.4.1.3. Configurable Arbitration Loss Error Check

  1. User configurable check to treat an arbitration loss condition as a development error.

  2. Applicable in both master receive and master transmit mode for AM263Px

4.6.4.1.4. Configurable Multiple Sequences in Queue Check

  1. User configurable check to process the same sequence multiple times or only once inside the queue

4.6.4.1.5. Configurable Arbitration Loss Parameter

  1. User configurable parameter to deal with arbitration loss condition

  2. Possible parameters

    • CDD_I2C_BURST_MODE

      I2c driver detaches from the bus without any recovery attempts.

    • CDD_I2C_RECURRENT_MODE

      I2c driver sends multiple stop signals on the bus in an attempt to free the bus and recover control.

../_images/i2c_config.png

4.6.4.1.6. Configurable Timeouts

  1. User configurable timeout for queue, reception in polling mode and arbitration loss

  2. All the timeout periods are in ticks

  3. It is user responsibility to initialize and start the timer in the application for timeouts to take effect

Note

CddI2cQueueTimeout parameter Value should be passed as number of ticks according to clock frequency. The clock source have changed from RTI timers which used 200MHz clock frequency to R5f timers which uses 400MHz clock frequency, so the timeout values need to be configured accordingly.

4.6.4.1.7. Configurable Queue, Sequence and Channel Size

  1. User configurable maximum size for Sequence, Queue and Channel

4.6.4.1.8. Configurable Hardware Units

  1. User configurable parameter to define how many Hardware Units (Instances) to use out of a maximum of 4

  2. User configurable parameter to specify which Hardware Unit to use

  3. User configurable parameter to specify Serial clock frequency (Channel bit rate)

  4. User configurable parameter to specify the frequency at which the Hardware Unit will operate internally

  5. User configurable input frequency to I2c module which will be used to set channel bit rate and I2c internal operational frequency. Please note that this frequency should be the same as the clock source selected in MCU module, this has to be maintained by the user.

../_images/i2c_confighw.png

4.6.4.1.9. Configurable Channels

  1. User configurable parameter to define channel direction (read or write), I2c Slave address, address scheme (7 bit slave address or 10 bit slave address) and chained channel implementation.

  2. A channel is the actual unit which contains the data to be transmitted along with direction(read/write) and slave address.

  3. The number of channels configured can not exceed the maximum number of channels defined in the general container.

  4. Data buffer is linked to channels in the application by provided API’s

  5. Same channels can be used by multiple sequences

../_images/i2c_configchannel.png

4.6.4.1.10. Configurable Sequences

  1. User configurable parameter to define which Hardware unit to use, number of channels present in the sequence, sequence complete callback function and sequence error notify callback function

  2. Sequences are accessible to the user and are passed as function parameters for transmission and reception

../_images/i2c_configseq.png

4.6.4.1.11. Channel in Use Checks

  1. Channels in free state, i.e. not currently being transmitted by another sequence or the same sequence are available for transmission/reception

4.6.4.1.12. Sequence in Use Checks

  1. Sequence not in transmission currently are available for use.

4.6.4.1.13. Hardware Unit in Use Checks

  1. Hardware not in use, i.e. currently not transmitting/receiving any sequence is available for use.

4.6.4.2. Features Provided Beyond the AUTOSAR Standard

  1. Hardware configuration unit container to handle different hardware units

  2. Hardware configuration unit container to handle transfer speeds and hardware unit mapping. Parallel sequence and channel processing on different hardware units. Configure acknowledge and no acknowledge handling (ACK, NACK). Configurable addressing for standard (7bit) and extended (10bit) addresses.

  3. I2C chain channel feature.

  4. I2C sequence queuing feature.

  5. I2C support for parallel handling of hardware units if more than one is available.

  6. I2C improved error handling like:

    • Handling for SDA stuck scenario

    • Handling for SCL low held scenario

    • Handling for general communication timeout

4.6.4.3. Not supported Features

  • Multi master mode (Software limitation)

  • DMA mode (Software limitation)

4.6.5. Source files

Description of static files is provided below:

📦AM263Px
┣ 📂build
┣ 📂mcal
┃ ┣ 📂I2c
┃ ┃ ┣ 📂include
┃ ┃ ┃ ┣ 📜Cdd_I2c.h : Header file that contains all API relevant declarations
┃ ┃ ┃ ┗ 📜Cdd_I2c_Irq.h : Contains the declarations of the ISR handlers
┃ ┃ ┣ 📂src
┃ ┃ ┃ ┣ 📜Cdd_I2c.c : Source file that contains the API relevant implementation
┃ ┃ ┃ ┗ 📜Cdd_I2c_Irq.c : Contains the ISR implementation
┃ ┃ ┣ 📂V0
┃ ┃ ┃ ┣ 📜Cdd_I2c_hw_reg.h : Contains register offsets, mask values, shift values and specific bit set reset macros
┃ ┃ ┃ ┣ 📜Cdd_I2c_priv.c : Contains internal function definitions used to realize the driver
┃ ┃ ┃ ┗ 📜Cdd_I2c_priv.h : Contains internal function declarations used to realize the driver
┃ ┃ ┗ 📜Makefile
┣ 📂mcal_config
┣ 📂mcal_docs
┗ 📜README.txt

Description of generated files is provided below:

Plugin Files

Description

Cdd_I2c_Cfg.h

This file contains general container configuration parameters like DET error ON, Polling mode OFF, Sequence size, Queue size, Channel size etc.

Cdd_I2c_Cfg.c

Contains all channels Post-Build Configuration parameters

The below diagram shows the files structure for the I2C driver.

../_images/i2c_filestructure.png

4.6.6. Module requirements

4.6.6.1. Memory Mapping

The objects (e.g. variables, functions, constants) are declared by compiler independent definitions – the compiler abstraction definitions. Each compiler abstraction definition is assigned to a memory section. The following table contains the memory section names and the compiler abstraction definitions of the I2C and illustrates their assignment among each other.

Memory Mapping Sections

I2C_CODE

I2C_VAR1

I2C_VAR_NO_INIT

I2C_VAR_INIT

CDD_VAR_ZERO_INIT

I2C_CONST

I2C_PBCFG

I2C_APPL_CODE

I2C_APPL_DATA

I2C_START_SEC_CODE

x

I2C_STOP_SEC_CODE

x

I2C_START_SEC_CODE_ISR

x

I2C_STOP_SEC_CODE_ISR

x

I2C_START_SEC_PBCFG_ROOT

x

I2C_STOP_SEC_PBCFG_ROOT

x

I2C_START_SEC_PBCFG

x

I2C_STOP_SEC_PBCFG

x

I2C_START_SEC_CONST_32BIT (.text)

x

I2C_STOP_SEC_CONST_32BIT

x

I2C_START_SEC_CONST_UNSPECIFIED

x

I2C_STOP_SEC_CONST_UNSPECIFIED

x

I2C_START_SEC_VAR_NOINIT_UNSPECIFIED

x

I2C_STOP_SEC_VAR_NOINIT_UNSPECIFIED

x

I2C_START_SEC_VAR_INIT_UNSPECIFIED

x

I2C_STOP_SEC_VAR_INIT_UNSPECIFIED

x

I2C_START_SEC_VAR_ZERO_INIT_UNSPECIFIED

x

I2C_STOP_SEC_VAR_ZERO_INIT_UNSPECIFIED

x

Application buffers passed to I2C

x

Notification called from I2C

x

4.6.6.2. Scheduling

4.6.6.2.1. SchM (Optional)

Beside the OSEK / AUTOSAR OS the Schedule Manager provides functions that module I2C calls at begin and end of critical sections

4.6.6.3. Error handling

4.6.6.3.1. Development Error Reporting

By default, development errors are reported to the DET using the service Det_ReportError (), If development error reporting is enabled (i.e. precompile parameter CDD_I2C_DEV_ERROR_DETECT==STD_ON). If another module is used for development error reporting, the function prototype for reporting the error can be configured by the integrator, but must have the same signature as the service Det_ReportError (). The reported I2C ID is 255

4.6.6.4. Error codes

Will be updated in future release:

4.6.6.4.1. Services used by I2C driver

Service ID

Service

0x00

CDD_I2C_Init

0x01

CDD_I2c_DeInit

0x02

CDD_I2c_GetVersionInfo

0x03

CDD_I2c_SetupEB

0x04

CDD_I2c_SetupEBDynamic

0x05

CDD_I2c_AsyncTransmit

0x06

CDD_I2c_Cancel

0x07

CDD_I2c_GetResult

0x08

CDD_I2c_GetSequenceResult

0x09

CDD_I2c_MainFunction

0x0A

CDD_2c_PollingModeProcessing

0x0B

Cdd_I2c_SetHandling

4.6.7. Used resources

4.6.7.1. Interrupt Handling

Will be updated in future release:

4.6.8. Integration description

4.6.8.1. Dependent modules

4.6.8.1.1. DET

The module I2C depends on the DET (by default) in order to report development errors. Detection and reporting of development errors can be enabled or disabled by the switch “Enable Development Error Detection” on the “General” container within the module I2C. The DET can be replaced optionally by an equivalent component which is responsible to recognize development errors, if no DET component is available.

4.6.8.1.2. MCU

The module MCU powers up the microcontroller’s peripherals at startup time and initializes clock source. Since the peripherals are also containing the registers for I/O functionality they have to be activated if it is intended to use them.

4.6.8.1.3. PORT

The module PORT enables the I2C lines at startup time. To operate the I2C properly, the PORT driver has to be configured. The PORT driver sets the Pins to the required values for the I2C to operate. The Pins used are SDA (serial data line) and SCL (serial clock). An open drain configuration is recommended. Some I2C drivers require the PORT for switching from I2C functionality to DIO functionality – to use the “clock free” procedure - and back.

4.6.8.1.4. Configurable callback functions

4.6.8.1.4.1. Notifications

At its configurable interfaces the I2C defines notifications that can be mapped to callback functions in case completion of a sequence or failure of a sequence. The mapping is not statically defined by the I2C but can be performed at configuration time.

4.6.8.1.4.2. I2c_SequenceCompleteNotification

Sequence transfer successful notification function. Can be configured in the configuration tool.

Particularities and Limitations: It is advised to keep the code execution in the notification function as short as possible.

Call context: Interrupt as well as polling

4.6.8.1.4.3. I2c_SequenceErrorNotification

Sequence transfer error notification function. If the I2c detects an error, this function notifies the application about a communication failure. Can be configured in the configuration tool.

Particularities and Limitations: It is advised to keep the code execution in the notification function as short as possible.

Call context: Interrupt as well as polling

For the Following API’s it is possible to be called from the sequence notifications:

  1. Cdd_I2c_DeInit

  2. Cdd_I2c_GetVersionInfo

  3. Cdd_I2c_SetupEB

  4. Cdd_I2c_SetupEBDynamic

  5. Cdd_I2c_AsyncTransmit

  6. CDD_I2c_Cancel

  7. Cdd_I2c_GetResult

  8. Cdd_I2c_GetSequenceResult

  9. Cdd_I2c_MainFunction

  10. Cdd_I2c_PollingModeProcessing

  11. Cdd_I2c_SetHandling

  12. Cdd_I2c_GetStatus

4.6.8.2. Multi-core and Resource allocator

Not Supported

4.6.9. Configuration

4.6.9.1. Configuration Parameters

Parameter

Description

Default Value

Range

Unit

CddI2cDevErrorDetect

I2c Dev Error ON/OFF

TRUE

TRUE\FALSE

BOOLEAN

CddI2cUseInterrupts

Switches to activate or deactivate interrupt controlled job processing(ON/OFF)

FALSE

TRUE\FALSE

BOOLEAN

CddI2cVersionInfoApi

Pre-processor switch to enable/disable the API to read out the modules version information

TRUE

TRUE\FALSE

BOOLEAN

CddI2cArbitrationLossCheck

Switches to activate or deactivate Arbitration loss interrupt(ON/OFF)

FALSE

TRUE\FALSE

BOOLEAN

CddI2cNackAsErrorCheck

Switches to activate or deactivate NACK error check(ON/OFF)

FALSE

TRUE\FALSE

BOOLEAN

CddI2cCancelCheck

Switches to activate or deactivate the Cancel channel transmission API(ON/OFF)

FALSE

TRUE\FALSE

BOOLEAN

CddI2cStatusCheck

Switches to activate or deactivate Cdd_I2c_GetStatus API(ON/OFF)

FALSE

TRUE\FALSE

BOOLEAN

CddI2cMultipleSequenceInQueueProcessCheck

Switches to activate or deactivate functionality to process same sequence in queue multiple times (ON/OFF)

FALSE

TRUE\FALSE

BOOLEAN

CddI2cArbitrationLossParam

CDD_I2C Arbitration loss condition parameter, possible values are

CDD_I2C_BURST_MODE (for detaching from bus) or

CDD_I2C_RECURRENT_MODE (For sending 9 clock pulses to the slave in order to synchronize the bus)

CDD_I2C_BURST_MODE

CDD_I2C_BURST_MODE

CDD_I2C_RECURRENT_MODE

ENUMERATION

CddIrqType

Type of Isr function: void functionname(void) CAT1 : interrupt void func(void) CAT2 : ISR(func)

CDD_I2C_ISR_VOID

CDD_I2C_ISR_VOID

CDD_I2C_ISR_CAT1

CDD_I2C_ISR_CAT2

ENUMERATION

CddI2cOsCounterRef

This parameter contains a reference to the OsCounter, which is used by the CddI2c driver

ASPathDataOfSchema:/AUTOSAR/EcucDefs/Os/OsCounter

ASPathDataOfSchema:/AUTOSAR/EcucDefs/Os/OsCounter

REFERENCE

CddI2cDefaultOSCounterId

Default Os Counter Id if node reference to OsCounter ref CddI2cOsCounterRef is not set

0

0-16

INTEGER

CddI2cArbitrationLossTimeout

I2C timeout - used for timing I2C arbitration loss wait wait

1000

1 - 4294967295

INTEGER

CddI2cPollTimeout

I2C timeout - used for I2C polling timeouts

1000

1 - 4294967295

INTEGER

CddI2cQueueTimeout

I2C timeout - used for queue timeouts. Unit is in clock ticks.

Configure the timeout according to r5f clock frequency(400MHz/200MHz)

1000

1 - 4294967295

INTEGER

CddI2cQueueSize

Define I2c driver max queue size

10

0 - 255

INTEGER

CddI2cMaxlengthByte

Maximum Length of byte to be write or read

1

0 - 255

INTEGER

CddI2cHwUnitsUsed

Maximum number of I2c hardware units used

1

1 to 4

INTEGER

CddI2cHwUnitType

I2c HW unit to use

CDD_I2C_HW_UNIT_0

CDD_I2C_HW_UNIT_0

CDD_I2C_HW_UNIT_1

CDD_I2C_HW_UNIT_2

CDD_I2C_HW_UNIT_3

ENUMERATION

CddI2cChannelBitRate

Selection of Channel Bit Rate

CDD_I2C_100KHZ

CDD_I2C_100KHZ

CDD_I2C_400KHZ

CDD_I2C_1P0MHZ

CDD_I2C_3P4MHZ

ENUMERATION

CddI2cHwUnitFrequency

Frequency which the HW unit will utilise, please note that this differs from the bus frequency used for communication

96000000

NA

INTEGER

CddI2cClkInputSrc

Please ensure that the frequency used here should be the same as mcu clk settings for I2c,

as this is required internally to calculate pre-scalar which is needed to set the bus frequency

200000000

0 - 4294967295

INTEGER

CddI2cChannelDirection

Selection of Channel direction

CDD_I2C_WRITE

CDD_I2C_WRITE

CDD_I2C_READ

ENUMERATION

CddI2cChannelSlaveAddress

Set slave address for channel

50

0 - 65535

INTEGER

I2cSlaveAddressScheme

Specifies whether channel is 7 bit or 10 bit

CDD_I2C_7_BIT_ADDRESS

CDD_I2C_7_BIT_ADDRESS

CDD_I2C_10_BIT_ADDRESS

ENUMERATION

CddI2cSequenceHwUnitType

I2c HW unit to use

CDD_I2C_HW_UNIT_0

CDD_I2C_HW_UNIT_0

CDD_I2C_HW_UNIT_1

CDD_I2C_HW_UNIT_2

CDD_I2C_HW_UNIT_3

ENUMERATION

CddI2cNumberOfChannelsInSequence

Set the number of channels in the sequence

1

1 - 255

INTEGER

CddI2cSequenceCompleteNotify

Function pointer to callback function sequence complete notify

NA

NA

FUNCTION

CddI2cSequenceErrorNotify

Function pointer to callback function sequence complete notify

NA

NA

FUNCTION

I2cChannelIndex

This parameter specifies the order of Channels within the Sequence.

NA

0 - 255

INTEGER

I2cChannelAssignment

A Sequence reference to a I2c channel

ASPathDataOfSchema:/AUTOSAR/EcucDefs/Cdd_I2c/CddI2cChannelConfig

ASPathDataOfSchema:/AUTOSAR/EcucDefs/Cdd_I2c/CddI2cChannelConfig

REFERENCE

4.6.10. Examples

The example applications demonstrates use of I2C module, the list below identifies key steps performed in the example.

4.6.10.1. Overview

Will be updated in future release:

4.6.10.2. Setup required to run example

Will be updated in future release:

4.6.10.3. How to run examples

I2C example application demonstrating the MCAL I2C driver features is in folder <MCAL_ROOT>/examples /I2C.
This application can be built from the root folder by giving “gmake -s I2c_app PLATFORM=am263px”.

4.6.10.4. Sample Log


I2cApp: Sample Application - STARTS !!!
I2cApp: gI2cAppMcuClockConfig[0].Mcu_ClockSourceId = 2 gI2cAppMcuClockConfig[0].Mcu_ClockDiv = 0  :
I2cApp: Vendor ID: 44
I2cApp: Module ID: 255
I2cApp: SW Major version ID: 10
I2cApp: SW Minor version ID: 0
I2cApp: SW Patch version ID: 0
I2cApp: Temperature write SuccessFull 
I2cApp: Message written to EEPROM: I2C read/write test passed 
I2cApp: EEPROM address pointer reset to start read from location : 0
I2cApp: Temperature sensor reading : 38.500000 (celcius)
I2cApp: Message read from EEPROM: I2C read/write test passed
All tests have passed

4.6.10.5. File Structure

📦AM263Px
┣ 📂build
┣ 📂mcal
┃ ┣ 📂examples
┃ ┃ ┣ 📂I2c
┃ ┃ ┃ ┣ 📂soc
┃ ┃ ┃ ┣ 📜I2capp.c : Contains I2c test example
┃ ┃ ┃ ┗ 📜Makefile
┃ ┣ 📂examples_config
┃ ┃ ┣ 📂I2c_Demo_Cfg
┃ ┃ ┃ ┗ 📂soc
┃ ┃ ┃ ┃ ┣ 📂am263px
┃ ┃ ┃ ┃ ┃ ┗ 📂r5f0_0
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂include
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗📜Cdd_I2c_Cfg.h : Contains the configuration parameters
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂src
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜Cdd_I2c_Cfg.c : Contains all Pre-Compile Configured parameters
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂swcd
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜Cdd_I2c_Bswmd.arxml : contains the arxml description file
┃ 📂mcal_config
┃ 📂mcal_docs
┗ 📜README.txt

4.6.10.6. Test Report

Please refer AM26x CDD I2c Driver Test Case Report as part of CSP provided in the release package.

4.6.11. References

Technical Reference Manual