Bridle API 4.1.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 <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
struct gpio_driver_config common
Common gpio_driver_config (needs to be first)
Definition gpio_sc16is75x.c:48
SC16IS75X GPIO controller data.
Definition gpio_sc16is75x.c:84

Function Documentation

◆ DT_INST_FOREACH_STATUS_OKAY()

DT_INST_FOREACH_STATUS_OKAY ( GPIO_SC16IS75X_DEFINE  )

◆ gpio_sc16is75x_cached_pin_dir()

static uint8_t gpio_sc16is75x_cached_pin_dir ( const struct device *  dev)
inlinestatic

◆ gpio_sc16is75x_cached_pin_state()

static uint8_t gpio_sc16is75x_cached_pin_state ( const struct device *  dev)
inlinestatic

◆ gpio_sc16is75x_init()

static int gpio_sc16is75x_init ( const struct device *  dev)
static

◆ gpio_sc16is75x_pin_configure()

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

◆ gpio_sc16is75x_pm_device_pm_action()

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

◆ gpio_sc16is75x_port_clear_bits_raw()

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

◆ gpio_sc16is75x_port_get_raw()

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

◆ gpio_sc16is75x_port_set_bits_raw()

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

◆ gpio_sc16is75x_port_set_masked_raw()

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

◆ gpio_sc16is75x_port_toggle_bits()

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

◆ gpio_sc16is75x_read_pin_dir()

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

◆ gpio_sc16is75x_read_pin_state()

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

◆ gpio_sc16is75x_write_pin_dir()

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

◆ gpio_sc16is75x_write_pin_state()

static 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 <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