# I2C in QUP

Source: [https://docs.qualcomm.com/doc/80-88500-1/topic/41_I2C_in_QUP_v3.html](https://docs.qualcomm.com/doc/80-88500-1/topic/41_I2C_in_QUP_v3.html)

The I^2^C core supports the following:

- Multi-Master mode
- 10‑bit slave address and 10‑bit extend address
        
    Example: Any slave device should not use the 1111 0XX address listed in the I^2^C specification.
- High-Speed mode with 3.4 MHz clock frequency

## I^2^C bus driver structure

All non-HLOS peripheral drivers are present in the following directory structure and the APIs are exposed through `ddixxx.h` files as shown in the directory structure:

    +---buses
    |   |   
    |   +---api
    |   |   +---i2c
    |   |   |       ddii2c.h
    |   |   |       ....
    |   |   |       
    |   |   +---spi
    |   |   |       ddispi.h
    |   |   |       ....
    |   |   |       
    |   |   +---uart_lite
    |   |           uart.h
    |   |           ....
    |   |          
    |   +---build
    |   |       
    |   +---i2c
    |   |                   
    |   +---icb
    |   |               
    |   +---uart_lite
    |   |                   
    |   +---spiCopy to clipboard

- **[Configure I2C in kernel](https://docs.qualcomm.com/doc/80-88500-1/topic/42_Configure_I2C_in_kernel_.html)**
- **[Configure I2C in UEFI](https://docs.qualcomm.com/doc/80-88500-1/topic/44_Configure_I2C_in_UEFI.html)**
- **[Enable I2C bus in UEFI](https://docs.qualcomm.com/doc/80-88500-1/topic/45_Enable_I2C_bus_in_UEFI.html)**
- **[Configure I2C in sensor core as sensor low-power island (SLPI) processor](https://docs.qualcomm.com/doc/80-88500-1/topic/46_Configure_I2C_in_sensor_core_as_sensor_low_power_island__SLPI__processor.html)**
- **[Enable I2C bus in sensor low-power island (SLPI)](https://docs.qualcomm.com/doc/80-88500-1/topic/47_Enable_I2C_bus_in_SLPI.html)**
- **[Update QUP serial engine firmware for I2C](https://docs.qualcomm.com/doc/80-88500-1/topic/48_Update_QUP_v3_serial_engine_firmware_for_I2C.html)**
- **[Configure GPI as I2C](https://docs.qualcomm.com/doc/80-88500-1/topic/49_Configure_GPI_as_I2C.html)**
- **[Enable I2C bus in TrustZone](https://docs.qualcomm.com/doc/80-88500-1/topic/50_Enable_I2C_bus_in_TrustZone.html)**
- **[Enable I2C bus in aDSP](https://docs.qualcomm.com/doc/80-88500-1/topic/51_Enable_I2C_bus_in_aDSP.html)**
- **[Debug I2C in kernel](https://docs.qualcomm.com/doc/80-88500-1/topic/43_Debug_I2C_in_kernel.html)**
- **[Debug I2C in sensor core](https://docs.qualcomm.com/doc/80-88500-1/topic/52_Debug_I2C_in_sensor_core.html)**

**Parent Topic:** [Qualcomm universal peripheral (QUP)](https://docs.qualcomm.com/doc/80-88500-1/topic/16_Qualcomm_universal_peripheral__QUP_.html)

Last Published: Aug 18, 2023

[Previous Topic
Full-cycle timing mechanism of SPI bus](https://docs.qualcomm.com/bundle/publicresource/80-88500-1/topics/40_Full_cycle_timing_mechanism_of_SPI_bus.md) [Next Topic
Configure I2C in kernel](https://docs.qualcomm.com/bundle/publicresource/80-88500-1/topics/42_Configure_I2C_in_kernel_.md)