Skip to content

File syn_port_i2c.h

File List > port > syn_port_i2c.h

Go to the documentation of this file

#ifndef SYN_PORT_I2C_H
#define SYN_PORT_I2C_H

#include "../common/syn_defs.h"

#include <stddef.h>
#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif

/* ── I2C configuration ──────────────────────────────────────────────────── */

typedef struct {
    uint8_t bus;       
    uint32_t clock_hz; 
} SYN_I2C_Config;

/* ── Port functions (user implements) ───────────────────────────────────── */

SYN_Status syn_port_i2c_init(const SYN_I2C_Config *cfg);

SYN_Status syn_port_i2c_deinit(uint8_t bus);

SYN_Status syn_port_i2c_write(uint8_t bus, uint8_t addr, const uint8_t *data, size_t len);

SYN_Status syn_port_i2c_read(uint8_t bus, uint8_t addr, uint8_t *data, size_t len);

SYN_Status syn_port_i2c_write_read(uint8_t bus, uint8_t addr, const uint8_t *tx_data, size_t tx_len,
                                   uint8_t *rx_data, size_t rx_len);

#ifdef __cplusplus
}
#endif

#endif /* SYN_PORT_I2C_H */