Bridle API 4.1.99
A Zephyr based application framework
Loading...
Searching...
No Matches
i2c_sc18is604.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2024 TiaC Systems
3 * SPDX-License-Identifier: Apache-2.0
4 */
5
11#ifndef ZEPHYR_DRIVERS_I2C_SC18IS604_H_
12#define ZEPHYR_DRIVERS_I2C_SC18IS604_H_
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
23#include <zephyr/kernel.h>
24#include <zephyr/device.h>
25#include <zephyr/drivers/gpio.h>
26#include <zephyr/drivers/i2c.h>
27
36 const struct device *parent_dev;
37};
38
47 const struct device *dev;
49 uint32_t i2c_config;
51 struct k_sem lock;
53 struct gpio_callback interrupt_cb;
55 struct k_sem interrupt_lock;
57 struct k_poll_signal interrupt_signal;
60 struct k_work_delayable interrupt_work_final;
67 struct k_work_q work_queue;
69 k_thread_stack_t *work_queue_stack;
70};
71
84int await_signal(struct k_poll_signal *signal, int *result, k_timeout_t timeout);
85
97int i2c_sc18is604_transfer_cb(const struct device *dev, struct i2c_msg *msgs, uint8_t num_msgs,
98 uint16_t addr, i2c_callback_t cb, void *userdata);
99
102#ifdef __cplusplus
103}
104#endif
105
106#endif /* ZEPHYR_DRIVERS_I2C_SC18IS604_H_ */
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