AM263Px MCU+ SDK: APIs for I2C based EEPROM

| AM263Px MCU+ SDK 26.00.00 |

Data Structures | Functions | Typedefs | Macros
APIs for I2C based EEPROM
APIs for Board Specific Device Drivers

## Introduction

This module contains APIs to program and use the I2C based EEPROM module on the board like AT24CM01. See EEPROM for more details.

## Data Structures
struct | EEPROM_Params
| Parameters passed during EEPROM_open() More...
struct | EEPROM_Fxns
| Driver implementation callbacks. More...
struct | EEPROM_Attrs
| EEPROM device attributes, these are filled by SysCfg based on the device that is selected. More...
struct | EEPROM_Config
| EEPROM driver configuration, these are filled by SysCfg based on the device that is selected. More...
struct | EEPROM_Object
| EEPROM driver object - not to be used by application. More...

## Functions
void | EEPROM_Params_init (EEPROM_Params *params)
| Set default parameters in the EEPROM_Params_s structure. More...
EEPROM_Handle | EEPROM_open (uint32_t instanceId, const EEPROM_Params *params)
| Open EEPROM driver. More...
void | EEPROM_close (EEPROM_Handle handle)
| Open EEPROM driver. More...
int32_t | EEPROM_read (EEPROM_Handle handle, uint32_t offset, uint8_t *buf, uint32_t len)
| Read data from EEPROM. More...
int32_t | EEPROM_write (EEPROM_Handle handle, uint32_t offset, const uint8_t *buf, uint32_t len)
| Write to EEPROM. More...
const EEPROM_Attrs * | EEPROM_getAttrs (uint32_t instanceId)
| Return EEPROM attributes. More...

## Typedefs
typedef void * | EEPROM_Handle
| Handle to the EEPROM driver returned by EEPROM_open() More...

## Macros
#define | EEPROM_PAGE_SIZE (256U)
| Max EEPROM page size used to allocate temp write buffer so that address (offset) and data can be done in single I2C operation. More...
#define | EEPROM_WR_BUF_SIZE (2U + EEPROM_PAGE_SIZE)
| Temp write buffer to hold address offset and data for page write operation - 2 bytes for offset and remaining for one page data. More...

## EEPROM driver implementation callbacks
typedef int32_t(* | EEPROM_OpenFxn) (EEPROM_Config *config, const EEPROM_Params *params)
| Driver implementation to open a specific EEPROM driver. More...
typedef void(* | EEPROM_CloseFxn) (EEPROM_Config *config)
| Driver implementation to close a specific EEPROM driver. More...
typedef int32_t(* | EEPROM_ReadFxn) (EEPROM_Config *config, uint32_t offset, uint8_t *buf, uint32_t len)
| Driver implementation to read from EEPROM using a specific EEPROM driver. More...
typedef int32_t(* | EEPROM_WriteFxn) (EEPROM_Config *config, uint32_t offset, const uint8_t *buf, uint32_t len)
| Driver implementation to write to EEPROM using specific EEPROM driver. More...

## Macro Definition Documentation

## ◆ EEPROM_PAGE_SIZE

#define EEPROM_PAGE_SIZE (256U)

Max EEPROM page size used to allocate temp write buffer so that address (offset) and data can be done in single I2C operation.

## ◆ EEPROM_WR_BUF_SIZE

#define EEPROM_WR_BUF_SIZE (2U + EEPROM_PAGE_SIZE)

Temp write buffer to hold address offset and data for page write operation - 2 bytes for offset and remaining for one page data.

## Typedef Documentation

## ◆ EEPROM_Handle

typedef void* EEPROM_Handle

Handle to the EEPROM driver returned by EEPROM_open()

## ◆ EEPROM_OpenFxn

typedef int32_t(* EEPROM_OpenFxn) (EEPROM_Config *config, const EEPROM_Params *params)

Driver implementation to open a specific EEPROM driver.

Typically this callback is hidden from the end application and is implemented when a new type of EEPROM device needs to be implemented.

Parameters

  config | [IN] EEPROM configuration for the specific EEPROM device
  params | [IN] User controllable parameters when opening the EEPROM device

Returns
  SystemP_SUCCESS on success, else failure

## ◆ EEPROM_CloseFxn

typedef void(* EEPROM_CloseFxn) (EEPROM_Config *config)

Driver implementation to close a specific EEPROM driver.

Typically this callback is hidden from the end application and is implemented when a new type of EEPROM device needs to be implemented.

Parameters

  config | [IN] EEPROM configuration for the specific EEPROM device

Returns
  SystemP_SUCCESS on success, else failure

## ◆ EEPROM_ReadFxn

typedef int32_t(* EEPROM_ReadFxn) (EEPROM_Config *config, uint32_t offset, uint8_t *buf, uint32_t len)

Driver implementation to read from EEPROM using a specific EEPROM driver.

Typically this callback is hidden from the end application and is implemented when a new type of EEPROM device needs to be implemented.

Parameters

  config | [IN] EEPROM configuration for the specific EEPROM device
  offset | [IN] Offset in the EEPROM from where to start the read
  buf | [IN] Buffer into which to read the data into
  len | [IN] Length of the data to read, in bytes

Returns
  SystemP_SUCCESS on success, else failure

## ◆ EEPROM_WriteFxn

typedef int32_t(* EEPROM_WriteFxn) (EEPROM_Config *config, uint32_t offset, const uint8_t *buf, uint32_t len)

Driver implementation to write to EEPROM using specific EEPROM driver.

Typically this callback is hidden from the end application and is implemented when a new type of EEPROM device needs to be implemented.

Parameters

  config | [IN] EEPROM configuration for the specific EEPROM device
  offset | [IN] Offset in the EEPROM from where to start the write.
  buf | [IN] Buffer which has the data to write.
  len | [IN] Length of the data to write, in bytes

Returns
  SystemP_SUCCESS on success, else failure

## Function Documentation

## ◆ EEPROM_Params_init()

void EEPROM_Params_init | ( | EEPROM_Params * | params | ) |

Set default parameters in the EEPROM_Params_s structure.

Call this API to set defaults and then override the fields as needed before calling EEPROM_open.

Parameters

  params | [OUT] Initialized parameters

## ◆ EEPROM_open()

EEPROM_Handle EEPROM_open | ( | uint32_t | instanceId,
|  | const EEPROM_Params * | params
| ) |  |

Open EEPROM driver.

Make sure the SOC peripheral driver is open'ed before calling this API. Drivers_open function generated by SysCfg opens the underlying SOC peripheral driver, e.g I2C.

Global variables `EEPROM_Config gEepromConfig[]` and `uint32_t gEepromConfigNum` is instantiated by SysCfg to describe the EEPROM configuration based on user selection in SysCfg.

Parameters

  instanceId | [IN] Index within `EEPROM_Config gEepromConfig[]` denoting the EEPROM driver to open
  params | [IN] Open parameters

Returns
  Handle to EEPROM driver which should be used in subsequent API call Else returns NULL in case of failure

## ◆ EEPROM_close()

void EEPROM_close | ( | EEPROM_Handle | handle | ) |

Open EEPROM driver.

Parameters

  handle | [IN] EEPROM driver handle from EEPROM_open

## ◆ EEPROM_read()

int32_t EEPROM_read | ( | EEPROM_Handle | handle,
|  | uint32_t | offset,
|  | uint8_t * | buf,
|  | uint32_t | len
| ) |  |

Read data from EEPROM.

Parameters

  handle | [IN] EEPROM driver handle from EEPROM_open
  offset | [IN] Offset in the EEPROM from where to start the read
  buf | [IN] Buffer into which to read the data into
  len | [IN] Length of the data to read, in bytes

Returns
  SystemP_SUCCESS on success, else failure

## ◆ EEPROM_write()

int32_t EEPROM_write | ( | EEPROM_Handle | handle,
|  | uint32_t | offset,
|  | const uint8_t * | buf,
|  | uint32_t | len
| ) |  |

Write to EEPROM.

Make sure the block is erased before writing

Parameters

  handle | [IN] EEPROM driver handle from EEPROM_open
  offset | [IN] Offset in the EEPROM from where to start the write.
  buf | [IN] Buffer which has the data to write.
  len | [IN] Length of the data to write, in bytes

Returns
  SystemP_SUCCESS on success, else failure

## ◆ EEPROM_getAttrs()

const EEPROM_Attrs* EEPROM_getAttrs | ( | uint32_t | instanceId | ) |

Return EEPROM attributes.

Parameters

  instanceId | [IN] EEPROM instance ID

Returns
  EEPROM_Attrs, else NULL if instanceId is invalid