Files
esp-idf/components/esp_hal_regi2c/README.md
T

32 lines
1.7 KiB
Markdown

# ESP Hardware Abstraction Layer for Analog I2C Master (REGI2C)
> [!NOTE]
> This component is currently in beta. Its API, behavior, and compatibility may change at any time and without notice; backward compatibility is not guaranteed. Use caution when integrating into production systems.
## Overview
The `esp_hal_regi2c` component provides the **Hardware Abstraction Layer** for the analog I2C master peripheral (commonly referred to as REGI2C) across ESP-IDF supported targets. This peripheral is used to access internal analog registers for calibration, PLL configuration, and other low-level analog operations.
## Architecture
The REGI2C HAL is organized in two layers:
1. **Implementation Layer (Upper)**: Per-target implementation sources (`regi2c_impl.c`) provides the interface to read and write to the analog i2c **device** registers.
2. **Low-Level Layer (Bottom)**: Per-target `regi2c_ctrl_ll.h` contains functions that configure analog I2C power, clock gating, reset, bus access.
## Usage
This HAL is consumed by ESP-IDF internal components to perform analog register access for calibration and configuration.
Developers may interact with the HAL directly: `regi2c_impl_write`, `regi2c_impl_write_mask`, `regi2c_impl_read`, and `regi2c_impl_read_mask` are supposed to be the only interfaces to do analog i2c register read and write operations. Atomicity and analog i2c clock needs to be taken care separately.
Or `esp_hw_support/regi2c_ctrl.h` provides fully wrapped macros `REGI2C_WRITE`, `REGI2C_WRITE_MASK`, `REGI2C_READ`, and `REGI2C_READ_MASK` that can be used directly.
API stability is not guaranteed during beta.
## Dependencies
- `soc`: SoC register definitions and analog I2C master constants
- `hal`: Common HAL utilities and macros