Infuse-IoT SDK API 0.0.1
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
u_blox_i2c.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2024 Embeint Holdings Pty Ltd
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#include <zephyr/kernel.h>
8#include <zephyr/device.h>
9#include <zephyr/drivers/i2c.h>
10#include <zephyr/drivers/gpio.h>
11#include <zephyr/sys/ring_buffer.h>
12
13#include <zephyr/modem/pipe.h>
14
15#include "common.h"
16
17#ifndef INFUSE_MODEM_BACKEND_U_BLOX_I2C_
18#define INFUSE_MODEM_BACKEND_U_BLOX_I2C_
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
25 /* Common backend */
27 /* Pointer to I2C configuration */
28 const struct i2c_dt_spec *i2c;
29};
30
32 /* Bus to use */
33 const struct i2c_dt_spec *i2c;
34 /* GPIO that will transition to active when data is ready after @ref
35 * modem_backend_ublox_i2c_use_data_ready_gpio
36 */
37 const struct gpio_dt_spec *data_ready;
38 /* Period to poll for data before @ref modem_backend_ublox_i2c_use_data_ready_gpio */
39 k_timeout_t poll_period;
40};
41
50struct modem_pipe *
52 const struct modem_backend_ublox_i2c_config *config);
53
60
61#ifdef __cplusplus
62}
63#endif
64
65#endif /* INFUSE_MODEM_BACKEND_U_BLOX_I2C_ */
Definition common.h:14
Definition u_blox_i2c.h:31
const struct gpio_dt_spec * data_ready
Definition u_blox_i2c.h:37
k_timeout_t poll_period
Definition u_blox_i2c.h:39
const struct i2c_dt_spec * i2c
Definition u_blox_i2c.h:33
Definition u_blox_i2c.h:24
struct modem_backend_common common
Definition u_blox_i2c.h:26
const struct i2c_dt_spec * i2c
Definition u_blox_i2c.h:28
void modem_backend_ublox_i2c_use_data_ready_gpio(struct modem_backend_ublox_i2c *backend)
Transition from polling to interrupt driven mode.
struct modem_pipe * modem_backend_ublox_i2c_init(struct modem_backend_ublox_i2c *backend, const struct modem_backend_ublox_i2c_config *config)
Initialize modem backend.