11#ifndef ZEPHYR_DRIVERS_I2C_SC18IS604_H_
12#define ZEPHYR_DRIVERS_I2C_SC18IS604_H_
23#include <zephyr/kernel.h>
24#include <zephyr/device.h>
25#include <zephyr/drivers/gpio.h>
26#include <zephyr/drivers/i2c.h>
47 const struct device *
dev;
84int await_signal(
struct k_poll_signal *signal,
int *result, k_timeout_t timeout);
98 uint16_t addr, i2c_callback_t cb,
void *userdata);
int i2c_sc18is604_transfer_cb(const struct device *dev, struct i2c_msg *msgs, uint8_t num_msgs, uint16_t addr, i2c_callback_t cb, void *userdata)
Transfer I2C messages asynchronously.
Definition i2c_sc18is604_callback.c:343
int await_signal(struct k_poll_signal *signal, int *result, k_timeout_t timeout)
Await a signal being raised.
Definition i2c_sc18is604.c:43
SC18IM604 I2C controller configuration data.
Definition i2c_sc18is604.h:34
const struct device * parent_dev
Parent MFD device for real operations on hardware.
Definition i2c_sc18is604.h:36
Struct for passing data between interrupt handling work items.
Definition i2c_sc18is604.h:62
struct k_poll_signal signal
Definition i2c_sc18is604.h:64
uint8_t i2cstat
Definition i2c_sc18is604.h:63
SC18IS604 I2C controller data.
Definition i2c_sc18is604.h:45
const struct device * dev
Back-reference to driver instance.
Definition i2c_sc18is604.h:47
struct k_work_delayable interrupt_work_final
Definition i2c_sc18is604.h:60
struct k_sem interrupt_lock
Lock for ongoing interrupt handling.
Definition i2c_sc18is604.h:55
struct i2c_sc18is604_data::sc18is604_interrupt_handling_data interrupt_handling_data
k_thread_stack_t * work_queue_stack
Stack for driver workqueue.
Definition i2c_sc18is604.h:69
struct k_sem lock
Lock for transactions.
Definition i2c_sc18is604.h:51
struct gpio_callback interrupt_cb
Interrupt handling callback.
Definition i2c_sc18is604.h:53
struct k_work_q work_queue
Driver workqueue.
Definition i2c_sc18is604.h:67
uint32_t i2c_config
I2C bus configuration flags.
Definition i2c_sc18is604.h:49
struct k_poll_signal interrupt_signal
Signal for waiting on interrupts.
Definition i2c_sc18is604.h:57
struct k_work interrupt_work_initial
Work items for interrupt handling.
Definition i2c_sc18is604.h:59