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

Function Documentation

◆ DT_INST_FOREACH_STATUS_OKAY()

DT_INST_FOREACH_STATUS_OKAY ( GPIO_SC18IS604_DEFINE  )

◆ gpio_sc18is604_clear_bits_raw()

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

◆ gpio_sc18is604_get_raw()

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

◆ gpio_sc18is604_init()

static int gpio_sc18is604_init ( const struct device *  dev)
static

◆ gpio_sc18is604_pin_configure()

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

◆ gpio_sc18is604_pin_read_config()

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

◆ gpio_sc18is604_pin_read_state()

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

◆ gpio_sc18is604_pin_write_config()

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

◆ gpio_sc18is604_pin_write_state()

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

◆ gpio_sc18is604_pm_device_pm_action()

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

◆ gpio_sc18is604_set_bits_raw()

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

◆ gpio_sc18is604_set_masked_raw()

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

◆ gpio_sc18is604_toggle_bits()

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