Bridle API 4.2.99
A Zephyr based application framework
Loading...
Searching...
No Matches
SC16IS75x GPIO Controller

GPIO controller part of an SC16IS75x bridge. More...

Data Structures

struct  gpio_sc16is75x_config
 SC16IS75X GPIO controller configuration data. More...
struct  gpio_sc16is75x_data
 SC16IS75X GPIO controller data. More...

Macros

#define GPIO_SC16IS75X_DEFINE(inst)

Functions

static uint8_t gpio_sc16is75x_cached_pin_dir (const struct device *dev)
static int gpio_sc16is75x_write_pin_dir (const struct device *dev, const uint8_t dir)
static int gpio_sc16is75x_read_pin_dir (const struct device *dev, uint8_t *dir)
static uint8_t gpio_sc16is75x_cached_pin_state (const struct device *dev)
static int gpio_sc16is75x_write_pin_state (const struct device *dev, uint8_t state)
static int gpio_sc16is75x_read_pin_state (const struct device *dev, uint8_t *state)
static int gpio_sc16is75x_pin_configure (const struct device *dev, gpio_pin_t pin, gpio_flags_t flags)
static int gpio_sc16is75x_port_get_raw (const struct device *dev, gpio_port_value_t *value)
static int gpio_sc16is75x_port_set_masked_raw (const struct device *dev, const gpio_port_pins_t mask, const gpio_port_value_t value)
static int gpio_sc16is75x_port_set_bits_raw (const struct device *dev, const gpio_port_pins_t pins)
static int gpio_sc16is75x_port_clear_bits_raw (const struct device *dev, const gpio_port_pins_t pins)
static int gpio_sc16is75x_port_toggle_bits (const struct device *dev, const gpio_port_pins_t pins)
static int gpio_sc16is75x_pm_device_pm_action (const struct device *dev, enum pm_device_action action)
static int gpio_sc16is75x_init (const struct device *dev)
 DT_INST_FOREACH_STATUS_OKAY (GPIO_SC16IS75X_DEFINE)

Variables

static const struct gpio_driver_api gpio_sc16is75x_api

Detailed Description

GPIO controller part of an SC16IS75x bridge.

Since
3.7
Version
1.0.0

The GPIO controller part based on the MFD interface to the SC16IS75x SPI/I2C to UART and GPIO controller bridge.

Macro Definition Documentation

◆ GPIO_SC16IS75X_DEFINE

#define GPIO_SC16IS75X_DEFINE ( inst)

#include </__w/bridle/bridle/workspace/bridle/drivers/gpio/gpio_sc16is75x.c>

Value:
\
static struct gpio_sc16is75x_config gpio_sc16is75x_config_##inst = { \
.common = \
{ \
.port_pin_mask = GPIO_PORT_PIN_MASK_FROM_DT_INST(inst), \
}, \
.bus = DEVICE_DT_GET(DT_INST_BUS(inst)), \
.num_pins = DT_INST_PROP(inst, ngpios), \
}; \
BUILD_ASSERT(DT_INST_PROP(inst, ngpios) <= SC16IS75X_IO_NUM_PINS_MAX, "Too many ngpios"); \
\
static struct gpio_sc16is75x_data gpio_sc16is75x_data_##inst; \
\
PM_DEVICE_DT_INST_DEFINE(inst, gpio_sc16is75x_pm_device_pm_action); \
\
DEVICE_DT_INST_DEFINE(inst, gpio_sc16is75x_init, PM_DEVICE_DT_INST_GET(inst), \
&gpio_sc16is75x_data_##inst, &gpio_sc16is75x_config_##inst, \
POST_KERNEL, CONFIG_GPIO_SC16IS75X_INIT_PRIORITY, \
static int gpio_sc16is75x_init(const struct device *dev)
Definition gpio_sc16is75x.c:499
static int gpio_sc16is75x_pm_device_pm_action(const struct device *dev, enum pm_device_action action)
Definition gpio_sc16is75x.c:479
static const struct gpio_driver_api gpio_sc16is75x_api
Definition gpio_sc16is75x.c:466
#define SC16IS75X_IO_NUM_PINS_MAX
Maximum programmable I/O pins.
Definition sc16is75x.h:268
SC16IS75X GPIO controller configuration data.
Definition gpio_sc16is75x.c:46

Function Documentation

◆ DT_INST_FOREACH_STATUS_OKAY()

◆ gpio_sc16is75x_cached_pin_dir()

uint8_t gpio_sc16is75x_cached_pin_dir ( const struct device * dev)
inlinestatic

◆ gpio_sc16is75x_cached_pin_state()

uint8_t gpio_sc16is75x_cached_pin_state ( const struct device * dev)
inlinestatic

◆ gpio_sc16is75x_init()

int gpio_sc16is75x_init ( const struct device * dev)
static

◆ gpio_sc16is75x_pin_configure()

int gpio_sc16is75x_pin_configure ( const struct device * dev,
gpio_pin_t pin,
gpio_flags_t flags )
static

◆ gpio_sc16is75x_pm_device_pm_action()

int gpio_sc16is75x_pm_device_pm_action ( const struct device * dev,
enum pm_device_action action )
static

◆ gpio_sc16is75x_port_clear_bits_raw()

int gpio_sc16is75x_port_clear_bits_raw ( const struct device * dev,
const gpio_port_pins_t pins )
static

◆ gpio_sc16is75x_port_get_raw()

int gpio_sc16is75x_port_get_raw ( const struct device * dev,
gpio_port_value_t * value )
static

◆ gpio_sc16is75x_port_set_bits_raw()

int gpio_sc16is75x_port_set_bits_raw ( const struct device * dev,
const gpio_port_pins_t pins )
static

◆ gpio_sc16is75x_port_set_masked_raw()

int gpio_sc16is75x_port_set_masked_raw ( const struct device * dev,
const gpio_port_pins_t mask,
const gpio_port_value_t value )
static

◆ gpio_sc16is75x_port_toggle_bits()

int gpio_sc16is75x_port_toggle_bits ( const struct device * dev,
const gpio_port_pins_t pins )
static

◆ gpio_sc16is75x_read_pin_dir()

int gpio_sc16is75x_read_pin_dir ( const struct device * dev,
uint8_t * dir )
inlinestatic

◆ gpio_sc16is75x_read_pin_state()

int gpio_sc16is75x_read_pin_state ( const struct device * dev,
uint8_t * state )
inlinestatic

◆ gpio_sc16is75x_write_pin_dir()

int gpio_sc16is75x_write_pin_dir ( const struct device * dev,
const uint8_t dir )
inlinestatic

◆ gpio_sc16is75x_write_pin_state()

int gpio_sc16is75x_write_pin_state ( const struct device * dev,
uint8_t state )
inlinestatic

Variable Documentation

◆ gpio_sc16is75x_api

const struct gpio_driver_api gpio_sc16is75x_api
static

#include </__w/bridle/bridle/workspace/bridle/drivers/gpio/gpio_sc16is75x.c>

Initial value:
= {
.pin_configure = gpio_sc16is75x_pin_configure,
.port_get_raw = gpio_sc16is75x_port_get_raw,
.port_set_masked_raw = gpio_sc16is75x_port_set_masked_raw,
.port_set_bits_raw = gpio_sc16is75x_port_set_bits_raw,
.port_clear_bits_raw = gpio_sc16is75x_port_clear_bits_raw,
.port_toggle_bits = gpio_sc16is75x_port_toggle_bits,
}
static int gpio_sc16is75x_port_toggle_bits(const struct device *dev, const gpio_port_pins_t pins)
Definition gpio_sc16is75x.c:304
static int gpio_sc16is75x_port_set_masked_raw(const struct device *dev, const gpio_port_pins_t mask, const gpio_port_value_t value)
Definition gpio_sc16is75x.c:277
static int gpio_sc16is75x_port_clear_bits_raw(const struct device *dev, const gpio_port_pins_t pins)
Definition gpio_sc16is75x.c:299
static int gpio_sc16is75x_pin_configure(const struct device *dev, gpio_pin_t pin, gpio_flags_t flags)
Definition gpio_sc16is75x.c:195
static int gpio_sc16is75x_port_set_bits_raw(const struct device *dev, const gpio_port_pins_t pins)
Definition gpio_sc16is75x.c:294
static int gpio_sc16is75x_port_get_raw(const struct device *dev, gpio_port_value_t *value)
Definition gpio_sc16is75x.c:264