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

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

Data Structures

struct  gpio_sc18is604_config
 SC18IM604 GPIO controller configuration data. More...
struct  gpio_sc18is604_data
 SC18IM604 GPIO controller data. More...

Macros

#define GPIO_SC18IS604_DEFINE(inst)

Functions

static int gpio_sc18is604_pin_write_config (const struct device *dev, uint8_t val)
static int gpio_sc18is604_pin_read_config (const struct device *dev, uint8_t *val)
static int gpio_sc18is604_pin_write_state (const struct device *dev, uint8_t val)
static int gpio_sc18is604_pin_read_state (const struct device *dev, uint8_t *val)
static int gpio_sc18is604_pin_configure (const struct device *dev, gpio_pin_t pin, gpio_flags_t flags)
static int gpio_sc18is604_get_raw (const struct device *dev, uint32_t *value)
static int gpio_sc18is604_set_masked_raw (const struct device *dev, uint32_t mask, uint32_t value)
static int gpio_sc18is604_set_bits_raw (const struct device *dev, uint32_t pins)
static int gpio_sc18is604_clear_bits_raw (const struct device *dev, uint32_t pins)
static int gpio_sc18is604_toggle_bits (const struct device *dev, uint32_t pins)
static int gpio_sc18is604_pm_device_pm_action (const struct device *dev, enum pm_device_action action)
static int gpio_sc18is604_init (const struct device *dev)
 DT_INST_FOREACH_STATUS_OKAY (GPIO_SC18IS604_DEFINE)

Variables

static const struct gpio_driver_api gpio_sc18is604_api

Detailed Description

GPIO controller part of an SC18IM604 bridge.

Since
3.7
Version
1.0.0

The GPIO controller part based on the MFD interface to the SC18IM604 SPI to I2C and GPIO controller bridge.

Macro Definition Documentation

◆ GPIO_SC18IS604_DEFINE

#define GPIO_SC18IS604_DEFINE ( inst)

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

Value:
\
static const struct gpio_sc18is604_config gpio_sc18is604_config_##inst = { \
.common = \
{ \
.port_pin_mask = GPIO_PORT_PIN_MASK_FROM_DT_INST(inst), \
}, \
.num_pins = DT_INST_PROP(inst, ngpios), \
.bridge = DEVICE_DT_GET(DT_INST_BUS(inst)), \
}; \
BUILD_ASSERT(DT_INST_PROP(inst, ngpios) <= SC18IS604_IO_NUM_PINS_MAX, "Too many ngpios"); \
\
static struct gpio_sc18is604_data gpio_sc18is604_data_##inst; \
\
PM_DEVICE_DT_INST_DEFINE(inst, gpio_sc18is604_pm_device_pm_action); \
\
DEVICE_DT_INST_DEFINE(inst, gpio_sc18is604_init, PM_DEVICE_DT_INST_GET(inst), \
&gpio_sc18is604_data_##inst, &gpio_sc18is604_config_##inst, \
POST_KERNEL, CONFIG_GPIO_SC18IS604_INIT_PRIORITY, \
static int gpio_sc18is604_pm_device_pm_action(const struct device *dev, enum pm_device_action action)
Definition gpio_sc18is604.c:336
static int gpio_sc18is604_init(const struct device *dev)
Definition gpio_sc18is604.c:356
static const struct gpio_driver_api gpio_sc18is604_api
Definition gpio_sc18is604.c:327
#define SC18IS604_IO_NUM_PINS_MAX
Definition sc18is604.h:53
SC18IM604 GPIO controller configuration data.
Definition gpio_sc18is604.c:46

Function Documentation

◆ DT_INST_FOREACH_STATUS_OKAY()

◆ gpio_sc18is604_clear_bits_raw()

int gpio_sc18is604_clear_bits_raw ( const struct device * dev,
uint32_t pins )
static

◆ gpio_sc18is604_get_raw()

int gpio_sc18is604_get_raw ( const struct device * dev,
uint32_t * value )
static

◆ gpio_sc18is604_init()

int gpio_sc18is604_init ( const struct device * dev)
static

◆ gpio_sc18is604_pin_configure()

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

◆ gpio_sc18is604_pin_read_config()

int gpio_sc18is604_pin_read_config ( const struct device * dev,
uint8_t * val )
static

◆ gpio_sc18is604_pin_read_state()

int gpio_sc18is604_pin_read_state ( const struct device * dev,
uint8_t * val )
static

◆ gpio_sc18is604_pin_write_config()

int gpio_sc18is604_pin_write_config ( const struct device * dev,
uint8_t val )
static

◆ gpio_sc18is604_pin_write_state()

int gpio_sc18is604_pin_write_state ( const struct device * dev,
uint8_t val )
static

◆ gpio_sc18is604_pm_device_pm_action()

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

◆ gpio_sc18is604_set_bits_raw()

int gpio_sc18is604_set_bits_raw ( const struct device * dev,
uint32_t pins )
static

◆ gpio_sc18is604_set_masked_raw()

int gpio_sc18is604_set_masked_raw ( const struct device * dev,
uint32_t mask,
uint32_t value )
static

◆ gpio_sc18is604_toggle_bits()

int gpio_sc18is604_toggle_bits ( const struct device * dev,
uint32_t pins )
static

Variable Documentation

◆ gpio_sc18is604_api

const struct gpio_driver_api gpio_sc18is604_api
static

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

Initial value:
= {
.pin_configure = gpio_sc18is604_pin_configure,
.port_get_raw = gpio_sc18is604_get_raw,
.port_set_masked_raw = gpio_sc18is604_set_masked_raw,
.port_set_bits_raw = gpio_sc18is604_set_bits_raw,
.port_clear_bits_raw = gpio_sc18is604_clear_bits_raw,
.port_toggle_bits = gpio_sc18is604_toggle_bits,
}
static int gpio_sc18is604_pin_configure(const struct device *dev, gpio_pin_t pin, gpio_flags_t flags)
Definition gpio_sc18is604.c:159
static int gpio_sc18is604_set_bits_raw(const struct device *dev, uint32_t pins)
Definition gpio_sc18is604.c:295
static int gpio_sc18is604_set_masked_raw(const struct device *dev, uint32_t mask, uint32_t value)
Definition gpio_sc18is604.c:273
static int gpio_sc18is604_get_raw(const struct device *dev, uint32_t *value)
Definition gpio_sc18is604.c:250
static int gpio_sc18is604_clear_bits_raw(const struct device *dev, uint32_t pins)
Definition gpio_sc18is604.c:300
static int gpio_sc18is604_toggle_bits(const struct device *dev, uint32_t pins)
Definition gpio_sc18is604.c:305