TT Zephyr Platforms 18.11.99
Tenstorrent Firmware
Loading...
Searching...
No Matches
dw_apb_i2c.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2024 Tenstorrent AI ULC
3 * SPDX-License-Identifier: Apache-2.0
4 */
5
6#ifndef DW_APB_I2C_H
7#define DW_APB_I2C_H
8
9#include <stdint.h>
10#include <zephyr/drivers/i2c.h>
11
12#define I2C_WRITE_BIT 0
13#define I2C_READ_BIT 1
14
15typedef enum {
16 I2CMst = 0,
17 I2CSlv = 1,
18} I2CMode;
19
20typedef enum {
24
26void I2CInitGPIO(uint32_t id);
27void I2CInit(I2CMode mode, uint32_t slave_addr, I2CSpeedMode speed, uint32_t id);
28void I2CReset(void);
29uint32_t I2CReadRxFifo(uint32_t id, uint8_t *p_read_buf);
30uint32_t I2CTransaction(uint32_t id, const uint8_t *write_data, uint32_t write_len,
31 uint8_t *read_data, uint32_t read_len);
32uint32_t I2CWriteBytes(uint32_t id, uint16_t command, uint32_t command_byte_size,
33 const uint8_t *p_write_buf, uint32_t data_byte_size);
34uint32_t I2CReadBytes(uint32_t id, uint16_t command, uint32_t command_byte_size,
35 uint8_t *p_read_buf, uint32_t data_byte_size, uint8_t flip_bytes);
36uint32_t I2CRMWV(uint32_t id, uint16_t command, uint32_t command_byte_size, const uint8_t *p_data,
37 const uint8_t *p_mask, uint32_t data_byte_size);
38void SetI2CSlaveCallbacks(uint32_t id, const struct i2c_target_callbacks *cb);
39void PollI2CSlave(uint32_t id);
40void I2CRecoverBus(uint32_t id);
41#endif
uint32_t I2CReadBytes(uint32_t id, uint16_t command, uint32_t command_byte_size, uint8_t *p_read_buf, uint32_t data_byte_size, uint8_t flip_bytes)
Definition dw_apb_i2c.c:549
void SetI2CSlaveCallbacks(uint32_t id, const struct i2c_target_callbacks *cb)
Definition dw_apb_i2c.c:601
uint32_t I2CTransaction(uint32_t id, const uint8_t *write_data, uint32_t write_len, uint8_t *read_data, uint32_t read_len)
Definition dw_apb_i2c.c:488
I2CSpeedMode
Definition dw_apb_i2c.h:20
@ I2CFastMode
Definition dw_apb_i2c.h:22
@ I2CStandardMode
Definition dw_apb_i2c.h:21
bool IsValidI2CMasterId(uint32_t id)
Definition dw_apb_i2c.c:172
void I2CReset(void)
Definition dw_apb_i2c.c:475
uint32_t I2CRMWV(uint32_t id, uint16_t command, uint32_t command_byte_size, const uint8_t *p_data, const uint8_t *p_mask, uint32_t data_byte_size)
I2C Read-Modify-Write-Verify.
Definition dw_apb_i2c.c:563
void I2CRecoverBus(uint32_t id)
Definition dw_apb_i2c.c:213
I2CMode
Definition dw_apb_i2c.h:15
@ I2CSlv
Definition dw_apb_i2c.h:17
@ I2CMst
Definition dw_apb_i2c.h:16
void I2CInitGPIO(uint32_t id)
Definition dw_apb_i2c.c:398
void I2CInit(I2CMode mode, uint32_t slave_addr, I2CSpeedMode speed, uint32_t id)
Definition dw_apb_i2c.c:414
void PollI2CSlave(uint32_t id)
Definition dw_apb_i2c.c:609
uint32_t I2CReadRxFifo(uint32_t id, uint8_t *p_read_buf)
Definition dw_apb_i2c.c:372
uint32_t I2CWriteBytes(uint32_t id, uint16_t command, uint32_t command_byte_size, const uint8_t *p_write_buf, uint32_t data_byte_size)
Definition dw_apb_i2c.c:531
__UINT32_TYPE__ uint32_t
__UINT8_TYPE__ uint8_t
__UINT16_TYPE__ uint16_t