gpio_chip
Regular
4.4
: ✅struct gpio_chip {
const char *label;
struct device *dev;
struct device *cdev;
struct module *owner;
struct list_head list;
int (*request)(struct gpio_chip *, unsigned int);
void (*free)(struct gpio_chip *, unsigned int);
int (*get_direction)(struct gpio_chip *, unsigned int);
int (*direction_input)(struct gpio_chip *, unsigned int);
int (*direction_output)(struct gpio_chip *, unsigned int, int);
int (*get)(struct gpio_chip *, unsigned int);
void (*set)(struct gpio_chip *, unsigned int, int);
void (*set_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
int (*set_debounce)(struct gpio_chip *, unsigned int, unsigned int);
int (*to_irq)(struct gpio_chip *, unsigned int);
void (*dbg_show)(struct seq_file *, struct gpio_chip *);
int base;
u16 ngpio;
struct gpio_desc *desc;
const const char * *names;
bool can_sleep;
bool irq_not_threaded;
struct irq_chip *irqchip;
struct irq_domain *irqdomain;
unsigned int irq_base;
irq_flow_handler_t irq_handler;
unsigned int irq_default_type;
int irq_parent;
struct lock_class_key *lock_key;
struct list_head pin_ranges;
};
4.8
: ✅struct gpio_chip {
const char *label;
struct gpio_device *gpiodev;
struct device *parent;
struct module *owner;
int (*request)(struct gpio_chip *, unsigned int);
void (*free)(struct gpio_chip *, unsigned int);
int (*get_direction)(struct gpio_chip *, unsigned int);
int (*direction_input)(struct gpio_chip *, unsigned int);
int (*direction_output)(struct gpio_chip *, unsigned int, int);
int (*get)(struct gpio_chip *, unsigned int);
void (*set)(struct gpio_chip *, unsigned int, int);
void (*set_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
int (*set_debounce)(struct gpio_chip *, unsigned int, unsigned int);
int (*set_single_ended)(struct gpio_chip *, unsigned int, enum single_ended_mode);
int (*to_irq)(struct gpio_chip *, unsigned int);
void (*dbg_show)(struct seq_file *, struct gpio_chip *);
int base;
u16 ngpio;
const const char * *names;
bool can_sleep;
bool irq_not_threaded;
long unsigned int (*read_reg)(void *);
void (*write_reg)(void *, long unsigned int);
long unsigned int (*pin2mask)(struct gpio_chip *, unsigned int);
void *reg_dat;
void *reg_set;
void *reg_clr;
void *reg_dir;
int bgpio_bits;
spinlock_t bgpio_lock;
long unsigned int bgpio_data;
long unsigned int bgpio_dir;
struct irq_chip *irqchip;
struct irq_domain *irqdomain;
unsigned int irq_base;
irq_flow_handler_t irq_handler;
unsigned int irq_default_type;
int irq_parent;
struct lock_class_key *lock_key;
};
4.10
: ✅struct gpio_chip {
const char *label;
struct gpio_device *gpiodev;
struct device *parent;
struct module *owner;
int (*request)(struct gpio_chip *, unsigned int);
void (*free)(struct gpio_chip *, unsigned int);
int (*get_direction)(struct gpio_chip *, unsigned int);
int (*direction_input)(struct gpio_chip *, unsigned int);
int (*direction_output)(struct gpio_chip *, unsigned int, int);
int (*get)(struct gpio_chip *, unsigned int);
void (*set)(struct gpio_chip *, unsigned int, int);
void (*set_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
int (*set_debounce)(struct gpio_chip *, unsigned int, unsigned int);
int (*set_single_ended)(struct gpio_chip *, unsigned int, enum single_ended_mode);
int (*to_irq)(struct gpio_chip *, unsigned int);
void (*dbg_show)(struct seq_file *, struct gpio_chip *);
int base;
u16 ngpio;
const const char * *names;
bool can_sleep;
long unsigned int (*read_reg)(void *);
void (*write_reg)(void *, long unsigned int);
long unsigned int (*pin2mask)(struct gpio_chip *, unsigned int);
void *reg_dat;
void *reg_set;
void *reg_clr;
void *reg_dir;
int bgpio_bits;
spinlock_t bgpio_lock;
long unsigned int bgpio_data;
long unsigned int bgpio_dir;
struct irq_chip *irqchip;
struct irq_domain *irqdomain;
unsigned int irq_base;
irq_flow_handler_t irq_handler;
unsigned int irq_default_type;
int irq_chained_parent;
bool irq_nested;
bool irq_need_valid_mask;
long unsigned int *irq_valid_mask;
struct lock_class_key *lock_key;
};
4.13
: ✅struct gpio_chip {
const char *label;
struct gpio_device *gpiodev;
struct device *parent;
struct module *owner;
int (*request)(struct gpio_chip *, unsigned int);
void (*free)(struct gpio_chip *, unsigned int);
int (*get_direction)(struct gpio_chip *, unsigned int);
int (*direction_input)(struct gpio_chip *, unsigned int);
int (*direction_output)(struct gpio_chip *, unsigned int, int);
int (*get)(struct gpio_chip *, unsigned int);
void (*set)(struct gpio_chip *, unsigned int, int);
void (*set_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
int (*set_config)(struct gpio_chip *, unsigned int, long unsigned int);
int (*to_irq)(struct gpio_chip *, unsigned int);
void (*dbg_show)(struct seq_file *, struct gpio_chip *);
int base;
u16 ngpio;
const const char * *names;
bool can_sleep;
long unsigned int (*read_reg)(void *);
void (*write_reg)(void *, long unsigned int);
long unsigned int (*pin2mask)(struct gpio_chip *, unsigned int);
void *reg_dat;
void *reg_set;
void *reg_clr;
void *reg_dir;
int bgpio_bits;
spinlock_t bgpio_lock;
long unsigned int bgpio_data;
long unsigned int bgpio_dir;
struct irq_chip *irqchip;
struct irq_domain *irqdomain;
unsigned int irq_base;
irq_flow_handler_t irq_handler;
unsigned int irq_default_type;
unsigned int irq_chained_parent;
bool irq_nested;
bool irq_need_valid_mask;
long unsigned int *irq_valid_mask;
struct lock_class_key *lock_key;
};
4.15
: ✅struct gpio_chip {
const char *label;
struct gpio_device *gpiodev;
struct device *parent;
struct module *owner;
int (*request)(struct gpio_chip *, unsigned int);
void (*free)(struct gpio_chip *, unsigned int);
int (*get_direction)(struct gpio_chip *, unsigned int);
int (*direction_input)(struct gpio_chip *, unsigned int);
int (*direction_output)(struct gpio_chip *, unsigned int, int);
int (*get)(struct gpio_chip *, unsigned int);
int (*get_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
void (*set)(struct gpio_chip *, unsigned int, int);
void (*set_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
int (*set_config)(struct gpio_chip *, unsigned int, long unsigned int);
int (*to_irq)(struct gpio_chip *, unsigned int);
void (*dbg_show)(struct seq_file *, struct gpio_chip *);
int base;
u16 ngpio;
const const char * *names;
bool can_sleep;
long unsigned int (*read_reg)(void *);
void (*write_reg)(void *, long unsigned int);
bool be_bits;
void *reg_dat;
void *reg_set;
void *reg_clr;
void *reg_dir;
int bgpio_bits;
spinlock_t bgpio_lock;
long unsigned int bgpio_data;
long unsigned int bgpio_dir;
struct gpio_irq_chip irq;
};
4.18
: ✅struct gpio_chip {
const char *label;
struct gpio_device *gpiodev;
struct device *parent;
struct module *owner;
int (*request)(struct gpio_chip *, unsigned int);
void (*free)(struct gpio_chip *, unsigned int);
int (*get_direction)(struct gpio_chip *, unsigned int);
int (*direction_input)(struct gpio_chip *, unsigned int);
int (*direction_output)(struct gpio_chip *, unsigned int, int);
int (*get)(struct gpio_chip *, unsigned int);
int (*get_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
void (*set)(struct gpio_chip *, unsigned int, int);
void (*set_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
int (*set_config)(struct gpio_chip *, unsigned int, long unsigned int);
int (*to_irq)(struct gpio_chip *, unsigned int);
void (*dbg_show)(struct seq_file *, struct gpio_chip *);
int base;
u16 ngpio;
const const char * *names;
bool can_sleep;
long unsigned int (*read_reg)(void *);
void (*write_reg)(void *, long unsigned int);
bool be_bits;
void *reg_dat;
void *reg_set;
void *reg_clr;
void *reg_dir;
int bgpio_bits;
spinlock_t bgpio_lock;
long unsigned int bgpio_data;
long unsigned int bgpio_dir;
struct gpio_irq_chip irq;
bool need_valid_mask;
long unsigned int *valid_mask;
};
5.0
: ✅struct gpio_chip {
const char *label;
struct gpio_device *gpiodev;
struct device *parent;
struct module *owner;
int (*request)(struct gpio_chip *, unsigned int);
void (*free)(struct gpio_chip *, unsigned int);
int (*get_direction)(struct gpio_chip *, unsigned int);
int (*direction_input)(struct gpio_chip *, unsigned int);
int (*direction_output)(struct gpio_chip *, unsigned int, int);
int (*get)(struct gpio_chip *, unsigned int);
int (*get_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
void (*set)(struct gpio_chip *, unsigned int, int);
void (*set_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
int (*set_config)(struct gpio_chip *, unsigned int, long unsigned int);
int (*to_irq)(struct gpio_chip *, unsigned int);
void (*dbg_show)(struct seq_file *, struct gpio_chip *);
int (*init_valid_mask)(struct gpio_chip *);
int base;
u16 ngpio;
const const char * *names;
bool can_sleep;
long unsigned int (*read_reg)(void *);
void (*write_reg)(void *, long unsigned int);
bool be_bits;
void *reg_dat;
void *reg_set;
void *reg_clr;
void *reg_dir;
bool bgpio_dir_inverted;
int bgpio_bits;
spinlock_t bgpio_lock;
long unsigned int bgpio_data;
long unsigned int bgpio_dir;
struct gpio_irq_chip irq;
bool need_valid_mask;
long unsigned int *valid_mask;
};
5.3
: ✅struct gpio_chip {
const char *label;
struct gpio_device *gpiodev;
struct device *parent;
struct module *owner;
int (*request)(struct gpio_chip *, unsigned int);
void (*free)(struct gpio_chip *, unsigned int);
int (*get_direction)(struct gpio_chip *, unsigned int);
int (*direction_input)(struct gpio_chip *, unsigned int);
int (*direction_output)(struct gpio_chip *, unsigned int, int);
int (*get)(struct gpio_chip *, unsigned int);
int (*get_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
void (*set)(struct gpio_chip *, unsigned int, int);
void (*set_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
int (*set_config)(struct gpio_chip *, unsigned int, long unsigned int);
int (*to_irq)(struct gpio_chip *, unsigned int);
void (*dbg_show)(struct seq_file *, struct gpio_chip *);
int (*init_valid_mask)(struct gpio_chip *);
int base;
u16 ngpio;
const const char * *names;
bool can_sleep;
long unsigned int (*read_reg)(void *);
void (*write_reg)(void *, long unsigned int);
bool be_bits;
void *reg_dat;
void *reg_set;
void *reg_clr;
void *reg_dir_out;
void *reg_dir_in;
bool bgpio_dir_unreadable;
int bgpio_bits;
spinlock_t bgpio_lock;
long unsigned int bgpio_data;
long unsigned int bgpio_dir;
struct gpio_irq_chip irq;
bool need_valid_mask;
long unsigned int *valid_mask;
};
5.4
: ✅struct gpio_chip {
const char *label;
struct gpio_device *gpiodev;
struct device *parent;
struct module *owner;
int (*request)(struct gpio_chip *, unsigned int);
void (*free)(struct gpio_chip *, unsigned int);
int (*get_direction)(struct gpio_chip *, unsigned int);
int (*direction_input)(struct gpio_chip *, unsigned int);
int (*direction_output)(struct gpio_chip *, unsigned int, int);
int (*get)(struct gpio_chip *, unsigned int);
int (*get_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
void (*set)(struct gpio_chip *, unsigned int, int);
void (*set_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
int (*set_config)(struct gpio_chip *, unsigned int, long unsigned int);
int (*to_irq)(struct gpio_chip *, unsigned int);
void (*dbg_show)(struct seq_file *, struct gpio_chip *);
int (*init_valid_mask)(struct gpio_chip *, long unsigned int *, unsigned int);
int base;
u16 ngpio;
const const char * *names;
bool can_sleep;
long unsigned int (*read_reg)(void *);
void (*write_reg)(void *, long unsigned int);
bool be_bits;
void *reg_dat;
void *reg_set;
void *reg_clr;
void *reg_dir_out;
void *reg_dir_in;
bool bgpio_dir_unreadable;
int bgpio_bits;
spinlock_t bgpio_lock;
long unsigned int bgpio_data;
long unsigned int bgpio_dir;
struct gpio_irq_chip irq;
long unsigned int *valid_mask;
};
5.8
: ✅struct gpio_chip {
const char *label;
struct gpio_device *gpiodev;
struct device *parent;
struct module *owner;
int (*request)(struct gpio_chip *, unsigned int);
void (*free)(struct gpio_chip *, unsigned int);
int (*get_direction)(struct gpio_chip *, unsigned int);
int (*direction_input)(struct gpio_chip *, unsigned int);
int (*direction_output)(struct gpio_chip *, unsigned int, int);
int (*get)(struct gpio_chip *, unsigned int);
int (*get_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
void (*set)(struct gpio_chip *, unsigned int, int);
void (*set_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
int (*set_config)(struct gpio_chip *, unsigned int, long unsigned int);
int (*to_irq)(struct gpio_chip *, unsigned int);
void (*dbg_show)(struct seq_file *, struct gpio_chip *);
int (*init_valid_mask)(struct gpio_chip *, long unsigned int *, unsigned int);
int (*add_pin_ranges)(struct gpio_chip *);
int base;
u16 ngpio;
const const char * *names;
bool can_sleep;
long unsigned int (*read_reg)(void *);
void (*write_reg)(void *, long unsigned int);
bool be_bits;
void *reg_dat;
void *reg_set;
void *reg_clr;
void *reg_dir_out;
void *reg_dir_in;
bool bgpio_dir_unreadable;
int bgpio_bits;
spinlock_t bgpio_lock;
long unsigned int bgpio_data;
long unsigned int bgpio_dir;
struct gpio_irq_chip irq;
long unsigned int *valid_mask;
};
5.11
: ✅struct gpio_chip {
const char *label;
struct gpio_device *gpiodev;
struct device *parent;
struct module *owner;
int (*request)(struct gpio_chip *, unsigned int);
void (*free)(struct gpio_chip *, unsigned int);
int (*get_direction)(struct gpio_chip *, unsigned int);
int (*direction_input)(struct gpio_chip *, unsigned int);
int (*direction_output)(struct gpio_chip *, unsigned int, int);
int (*get)(struct gpio_chip *, unsigned int);
int (*get_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
void (*set)(struct gpio_chip *, unsigned int, int);
void (*set_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
int (*set_config)(struct gpio_chip *, unsigned int, long unsigned int);
int (*to_irq)(struct gpio_chip *, unsigned int);
void (*dbg_show)(struct seq_file *, struct gpio_chip *);
int (*init_valid_mask)(struct gpio_chip *, long unsigned int *, unsigned int);
int (*add_pin_ranges)(struct gpio_chip *);
int base;
u16 ngpio;
const const char * *names;
bool can_sleep;
long unsigned int (*read_reg)(void *);
void (*write_reg)(void *, long unsigned int);
bool be_bits;
void *reg_dat;
void *reg_set;
void *reg_clr;
void *reg_dir_out;
void *reg_dir_in;
bool bgpio_dir_unreadable;
int bgpio_bits;
spinlock_t bgpio_lock;
long unsigned int bgpio_data;
long unsigned int bgpio_dir;
struct gpio_irq_chip irq;
long unsigned int *valid_mask;
};
5.13
: ✅struct gpio_chip {
const char *label;
struct gpio_device *gpiodev;
struct device *parent;
struct module *owner;
int (*request)(struct gpio_chip *, unsigned int);
void (*free)(struct gpio_chip *, unsigned int);
int (*get_direction)(struct gpio_chip *, unsigned int);
int (*direction_input)(struct gpio_chip *, unsigned int);
int (*direction_output)(struct gpio_chip *, unsigned int, int);
int (*get)(struct gpio_chip *, unsigned int);
int (*get_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
void (*set)(struct gpio_chip *, unsigned int, int);
void (*set_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
int (*set_config)(struct gpio_chip *, unsigned int, long unsigned int);
int (*to_irq)(struct gpio_chip *, unsigned int);
void (*dbg_show)(struct seq_file *, struct gpio_chip *);
int (*init_valid_mask)(struct gpio_chip *, long unsigned int *, unsigned int);
int (*add_pin_ranges)(struct gpio_chip *);
int base;
u16 ngpio;
const const char * *names;
bool can_sleep;
long unsigned int (*read_reg)(void *);
void (*write_reg)(void *, long unsigned int);
bool be_bits;
void *reg_dat;
void *reg_set;
void *reg_clr;
void *reg_dir_out;
void *reg_dir_in;
bool bgpio_dir_unreadable;
int bgpio_bits;
spinlock_t bgpio_lock;
long unsigned int bgpio_data;
long unsigned int bgpio_dir;
struct gpio_irq_chip irq;
long unsigned int *valid_mask;
};
5.15
: ✅struct gpio_chip {
const char *label;
struct gpio_device *gpiodev;
struct device *parent;
struct module *owner;
int (*request)(struct gpio_chip *, unsigned int);
void (*free)(struct gpio_chip *, unsigned int);
int (*get_direction)(struct gpio_chip *, unsigned int);
int (*direction_input)(struct gpio_chip *, unsigned int);
int (*direction_output)(struct gpio_chip *, unsigned int, int);
int (*get)(struct gpio_chip *, unsigned int);
int (*get_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
void (*set)(struct gpio_chip *, unsigned int, int);
void (*set_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
int (*set_config)(struct gpio_chip *, unsigned int, long unsigned int);
int (*to_irq)(struct gpio_chip *, unsigned int);
void (*dbg_show)(struct seq_file *, struct gpio_chip *);
int (*init_valid_mask)(struct gpio_chip *, long unsigned int *, unsigned int);
int (*add_pin_ranges)(struct gpio_chip *);
int base;
u16 ngpio;
u16 offset;
const const char * *names;
bool can_sleep;
long unsigned int (*read_reg)(void *);
void (*write_reg)(void *, long unsigned int);
bool be_bits;
void *reg_dat;
void *reg_set;
void *reg_clr;
void *reg_dir_out;
void *reg_dir_in;
bool bgpio_dir_unreadable;
int bgpio_bits;
spinlock_t bgpio_lock;
long unsigned int bgpio_data;
long unsigned int bgpio_dir;
struct gpio_irq_chip irq;
long unsigned int *valid_mask;
};
5.19
: ✅struct gpio_chip {
const char *label;
struct gpio_device *gpiodev;
struct device *parent;
struct fwnode_handle *fwnode;
struct module *owner;
int (*request)(struct gpio_chip *, unsigned int);
void (*free)(struct gpio_chip *, unsigned int);
int (*get_direction)(struct gpio_chip *, unsigned int);
int (*direction_input)(struct gpio_chip *, unsigned int);
int (*direction_output)(struct gpio_chip *, unsigned int, int);
int (*get)(struct gpio_chip *, unsigned int);
int (*get_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
void (*set)(struct gpio_chip *, unsigned int, int);
void (*set_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
int (*set_config)(struct gpio_chip *, unsigned int, long unsigned int);
int (*to_irq)(struct gpio_chip *, unsigned int);
void (*dbg_show)(struct seq_file *, struct gpio_chip *);
int (*init_valid_mask)(struct gpio_chip *, long unsigned int *, unsigned int);
int (*add_pin_ranges)(struct gpio_chip *);
int (*en_hw_timestamp)(struct gpio_chip *, u32, long unsigned int);
int (*dis_hw_timestamp)(struct gpio_chip *, u32, long unsigned int);
int base;
u16 ngpio;
u16 offset;
const const char * *names;
bool can_sleep;
long unsigned int (*read_reg)(void *);
void (*write_reg)(void *, long unsigned int);
bool be_bits;
void *reg_dat;
void *reg_set;
void *reg_clr;
void *reg_dir_out;
void *reg_dir_in;
bool bgpio_dir_unreadable;
int bgpio_bits;
raw_spinlock_t bgpio_lock;
long unsigned int bgpio_data;
long unsigned int bgpio_dir;
struct gpio_irq_chip irq;
long unsigned int *valid_mask;
};
6.2
: ✅struct gpio_chip {
const char *label;
struct gpio_device *gpiodev;
struct device *parent;
struct fwnode_handle *fwnode;
struct module *owner;
int (*request)(struct gpio_chip *, unsigned int);
void (*free)(struct gpio_chip *, unsigned int);
int (*get_direction)(struct gpio_chip *, unsigned int);
int (*direction_input)(struct gpio_chip *, unsigned int);
int (*direction_output)(struct gpio_chip *, unsigned int, int);
int (*get)(struct gpio_chip *, unsigned int);
int (*get_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
void (*set)(struct gpio_chip *, unsigned int, int);
void (*set_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
int (*set_config)(struct gpio_chip *, unsigned int, long unsigned int);
int (*to_irq)(struct gpio_chip *, unsigned int);
void (*dbg_show)(struct seq_file *, struct gpio_chip *);
int (*init_valid_mask)(struct gpio_chip *, long unsigned int *, unsigned int);
int (*add_pin_ranges)(struct gpio_chip *);
int (*en_hw_timestamp)(struct gpio_chip *, u32, long unsigned int);
int (*dis_hw_timestamp)(struct gpio_chip *, u32, long unsigned int);
int base;
u16 ngpio;
u16 offset;
const const char * *names;
bool can_sleep;
long unsigned int (*read_reg)(void *);
void (*write_reg)(void *, long unsigned int);
bool be_bits;
void *reg_dat;
void *reg_set;
void *reg_clr;
void *reg_dir_out;
void *reg_dir_in;
bool bgpio_dir_unreadable;
int bgpio_bits;
raw_spinlock_t bgpio_lock;
long unsigned int bgpio_data;
long unsigned int bgpio_dir;
struct gpio_irq_chip irq;
long unsigned int *valid_mask;
};
6.5
: ✅struct gpio_chip {
const char *label;
struct gpio_device *gpiodev;
struct device *parent;
struct fwnode_handle *fwnode;
struct module *owner;
int (*request)(struct gpio_chip *, unsigned int);
void (*free)(struct gpio_chip *, unsigned int);
int (*get_direction)(struct gpio_chip *, unsigned int);
int (*direction_input)(struct gpio_chip *, unsigned int);
int (*direction_output)(struct gpio_chip *, unsigned int, int);
int (*get)(struct gpio_chip *, unsigned int);
int (*get_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
void (*set)(struct gpio_chip *, unsigned int, int);
void (*set_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
int (*set_config)(struct gpio_chip *, unsigned int, long unsigned int);
int (*to_irq)(struct gpio_chip *, unsigned int);
void (*dbg_show)(struct seq_file *, struct gpio_chip *);
int (*init_valid_mask)(struct gpio_chip *, long unsigned int *, unsigned int);
int (*add_pin_ranges)(struct gpio_chip *);
int (*en_hw_timestamp)(struct gpio_chip *, u32, long unsigned int);
int (*dis_hw_timestamp)(struct gpio_chip *, u32, long unsigned int);
int base;
u16 ngpio;
u16 offset;
const const char * *names;
bool can_sleep;
long unsigned int (*read_reg)(void *);
void (*write_reg)(void *, long unsigned int);
bool be_bits;
void *reg_dat;
void *reg_set;
void *reg_clr;
void *reg_dir_out;
void *reg_dir_in;
bool bgpio_dir_unreadable;
int bgpio_bits;
raw_spinlock_t bgpio_lock;
long unsigned int bgpio_data;
long unsigned int bgpio_dir;
struct gpio_irq_chip irq;
long unsigned int *valid_mask;
};
6.8
: ✅struct gpio_chip {
const char *label;
struct gpio_device *gpiodev;
struct device *parent;
struct fwnode_handle *fwnode;
struct module *owner;
int (*request)(struct gpio_chip *, unsigned int);
void (*free)(struct gpio_chip *, unsigned int);
int (*get_direction)(struct gpio_chip *, unsigned int);
int (*direction_input)(struct gpio_chip *, unsigned int);
int (*direction_output)(struct gpio_chip *, unsigned int, int);
int (*get)(struct gpio_chip *, unsigned int);
int (*get_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
void (*set)(struct gpio_chip *, unsigned int, int);
void (*set_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
int (*set_config)(struct gpio_chip *, unsigned int, long unsigned int);
int (*to_irq)(struct gpio_chip *, unsigned int);
void (*dbg_show)(struct seq_file *, struct gpio_chip *);
int (*init_valid_mask)(struct gpio_chip *, long unsigned int *, unsigned int);
int (*add_pin_ranges)(struct gpio_chip *);
int (*en_hw_timestamp)(struct gpio_chip *, u32, long unsigned int);
int (*dis_hw_timestamp)(struct gpio_chip *, u32, long unsigned int);
int base;
u16 ngpio;
u16 offset;
const const char * *names;
bool can_sleep;
long unsigned int (*read_reg)(void *);
void (*write_reg)(void *, long unsigned int);
bool be_bits;
void *reg_dat;
void *reg_set;
void *reg_clr;
void *reg_dir_out;
void *reg_dir_in;
bool bgpio_dir_unreadable;
int bgpio_bits;
raw_spinlock_t bgpio_lock;
long unsigned int bgpio_data;
long unsigned int bgpio_dir;
struct gpio_irq_chip irq;
long unsigned int *valid_mask;
};
arm64
: ✅struct gpio_chip {
const char *label;
struct gpio_device *gpiodev;
struct device *parent;
struct module *owner;
int (*request)(struct gpio_chip *, unsigned int);
void (*free)(struct gpio_chip *, unsigned int);
int (*get_direction)(struct gpio_chip *, unsigned int);
int (*direction_input)(struct gpio_chip *, unsigned int);
int (*direction_output)(struct gpio_chip *, unsigned int, int);
int (*get)(struct gpio_chip *, unsigned int);
int (*get_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
void (*set)(struct gpio_chip *, unsigned int, int);
void (*set_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
int (*set_config)(struct gpio_chip *, unsigned int, long unsigned int);
int (*to_irq)(struct gpio_chip *, unsigned int);
void (*dbg_show)(struct seq_file *, struct gpio_chip *);
int (*init_valid_mask)(struct gpio_chip *, long unsigned int *, unsigned int);
int base;
u16 ngpio;
const const char * *names;
bool can_sleep;
long unsigned int (*read_reg)(void *);
void (*write_reg)(void *, long unsigned int);
bool be_bits;
void *reg_dat;
void *reg_set;
void *reg_clr;
void *reg_dir_out;
void *reg_dir_in;
bool bgpio_dir_unreadable;
int bgpio_bits;
spinlock_t bgpio_lock;
long unsigned int bgpio_data;
long unsigned int bgpio_dir;
struct gpio_irq_chip irq;
long unsigned int *valid_mask;
struct device_node *of_node;
unsigned int of_gpio_n_cells;
int (*of_xlate)(struct gpio_chip *, const struct of_phandle_args *, u32 *);
};
armhf
: ✅struct gpio_chip {
const char *label;
struct gpio_device *gpiodev;
struct device *parent;
struct module *owner;
int (*request)(struct gpio_chip *, unsigned int);
void (*free)(struct gpio_chip *, unsigned int);
int (*get_direction)(struct gpio_chip *, unsigned int);
int (*direction_input)(struct gpio_chip *, unsigned int);
int (*direction_output)(struct gpio_chip *, unsigned int, int);
int (*get)(struct gpio_chip *, unsigned int);
int (*get_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
void (*set)(struct gpio_chip *, unsigned int, int);
void (*set_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
int (*set_config)(struct gpio_chip *, unsigned int, long unsigned int);
int (*to_irq)(struct gpio_chip *, unsigned int);
void (*dbg_show)(struct seq_file *, struct gpio_chip *);
int (*init_valid_mask)(struct gpio_chip *, long unsigned int *, unsigned int);
int base;
u16 ngpio;
const const char * *names;
bool can_sleep;
long unsigned int (*read_reg)(void *);
void (*write_reg)(void *, long unsigned int);
bool be_bits;
void *reg_dat;
void *reg_set;
void *reg_clr;
void *reg_dir_out;
void *reg_dir_in;
bool bgpio_dir_unreadable;
int bgpio_bits;
spinlock_t bgpio_lock;
long unsigned int bgpio_data;
long unsigned int bgpio_dir;
struct gpio_irq_chip irq;
long unsigned int *valid_mask;
struct device_node *of_node;
unsigned int of_gpio_n_cells;
int (*of_xlate)(struct gpio_chip *, const struct of_phandle_args *, u32 *);
};
ppc64el
: ✅struct gpio_chip {
const char *label;
struct gpio_device *gpiodev;
struct device *parent;
struct module *owner;
int (*request)(struct gpio_chip *, unsigned int);
void (*free)(struct gpio_chip *, unsigned int);
int (*get_direction)(struct gpio_chip *, unsigned int);
int (*direction_input)(struct gpio_chip *, unsigned int);
int (*direction_output)(struct gpio_chip *, unsigned int, int);
int (*get)(struct gpio_chip *, unsigned int);
int (*get_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
void (*set)(struct gpio_chip *, unsigned int, int);
void (*set_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
int (*set_config)(struct gpio_chip *, unsigned int, long unsigned int);
int (*to_irq)(struct gpio_chip *, unsigned int);
void (*dbg_show)(struct seq_file *, struct gpio_chip *);
int (*init_valid_mask)(struct gpio_chip *, long unsigned int *, unsigned int);
int base;
u16 ngpio;
const const char * *names;
bool can_sleep;
long unsigned int (*read_reg)(void *);
void (*write_reg)(void *, long unsigned int);
bool be_bits;
void *reg_dat;
void *reg_set;
void *reg_clr;
void *reg_dir_out;
void *reg_dir_in;
bool bgpio_dir_unreadable;
int bgpio_bits;
spinlock_t bgpio_lock;
long unsigned int bgpio_data;
long unsigned int bgpio_dir;
struct gpio_irq_chip irq;
long unsigned int *valid_mask;
struct device_node *of_node;
unsigned int of_gpio_n_cells;
int (*of_xlate)(struct gpio_chip *, const struct of_phandle_args *, u32 *);
};
riscv64
: ✅struct gpio_chip {
const char *label;
struct gpio_device *gpiodev;
struct device *parent;
struct module *owner;
int (*request)(struct gpio_chip *, unsigned int);
void (*free)(struct gpio_chip *, unsigned int);
int (*get_direction)(struct gpio_chip *, unsigned int);
int (*direction_input)(struct gpio_chip *, unsigned int);
int (*direction_output)(struct gpio_chip *, unsigned int, int);
int (*get)(struct gpio_chip *, unsigned int);
int (*get_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
void (*set)(struct gpio_chip *, unsigned int, int);
void (*set_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
int (*set_config)(struct gpio_chip *, unsigned int, long unsigned int);
int (*to_irq)(struct gpio_chip *, unsigned int);
void (*dbg_show)(struct seq_file *, struct gpio_chip *);
int (*init_valid_mask)(struct gpio_chip *, long unsigned int *, unsigned int);
int base;
u16 ngpio;
const const char * *names;
bool can_sleep;
long unsigned int (*read_reg)(void *);
void (*write_reg)(void *, long unsigned int);
bool be_bits;
void *reg_dat;
void *reg_set;
void *reg_clr;
void *reg_dir_out;
void *reg_dir_in;
bool bgpio_dir_unreadable;
int bgpio_bits;
spinlock_t bgpio_lock;
long unsigned int bgpio_data;
long unsigned int bgpio_dir;
struct gpio_irq_chip irq;
long unsigned int *valid_mask;
struct device_node *of_node;
unsigned int of_gpio_n_cells;
int (*of_xlate)(struct gpio_chip *, const struct of_phandle_args *, u32 *);
};
aws
: ✅struct gpio_chip {
const char *label;
struct gpio_device *gpiodev;
struct device *parent;
struct module *owner;
int (*request)(struct gpio_chip *, unsigned int);
void (*free)(struct gpio_chip *, unsigned int);
int (*get_direction)(struct gpio_chip *, unsigned int);
int (*direction_input)(struct gpio_chip *, unsigned int);
int (*direction_output)(struct gpio_chip *, unsigned int, int);
int (*get)(struct gpio_chip *, unsigned int);
int (*get_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
void (*set)(struct gpio_chip *, unsigned int, int);
void (*set_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
int (*set_config)(struct gpio_chip *, unsigned int, long unsigned int);
int (*to_irq)(struct gpio_chip *, unsigned int);
void (*dbg_show)(struct seq_file *, struct gpio_chip *);
int (*init_valid_mask)(struct gpio_chip *, long unsigned int *, unsigned int);
int base;
u16 ngpio;
const const char * *names;
bool can_sleep;
long unsigned int (*read_reg)(void *);
void (*write_reg)(void *, long unsigned int);
bool be_bits;
void *reg_dat;
void *reg_set;
void *reg_clr;
void *reg_dir_out;
void *reg_dir_in;
bool bgpio_dir_unreadable;
int bgpio_bits;
spinlock_t bgpio_lock;
long unsigned int bgpio_data;
long unsigned int bgpio_dir;
struct gpio_irq_chip irq;
long unsigned int *valid_mask;
};
azure
: ✅struct gpio_chip {
const char *label;
struct gpio_device *gpiodev;
struct device *parent;
struct module *owner;
int (*request)(struct gpio_chip *, unsigned int);
void (*free)(struct gpio_chip *, unsigned int);
int (*get_direction)(struct gpio_chip *, unsigned int);
int (*direction_input)(struct gpio_chip *, unsigned int);
int (*direction_output)(struct gpio_chip *, unsigned int, int);
int (*get)(struct gpio_chip *, unsigned int);
int (*get_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
void (*set)(struct gpio_chip *, unsigned int, int);
void (*set_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
int (*set_config)(struct gpio_chip *, unsigned int, long unsigned int);
int (*to_irq)(struct gpio_chip *, unsigned int);
void (*dbg_show)(struct seq_file *, struct gpio_chip *);
int (*init_valid_mask)(struct gpio_chip *, long unsigned int *, unsigned int);
int base;
u16 ngpio;
const const char * *names;
bool can_sleep;
long unsigned int (*read_reg)(void *);
void (*write_reg)(void *, long unsigned int);
bool be_bits;
void *reg_dat;
void *reg_set;
void *reg_clr;
void *reg_dir_out;
void *reg_dir_in;
bool bgpio_dir_unreadable;
int bgpio_bits;
spinlock_t bgpio_lock;
long unsigned int bgpio_data;
long unsigned int bgpio_dir;
struct gpio_irq_chip irq;
long unsigned int *valid_mask;
};
gcp
: ✅struct gpio_chip {
const char *label;
struct gpio_device *gpiodev;
struct device *parent;
struct module *owner;
int (*request)(struct gpio_chip *, unsigned int);
void (*free)(struct gpio_chip *, unsigned int);
int (*get_direction)(struct gpio_chip *, unsigned int);
int (*direction_input)(struct gpio_chip *, unsigned int);
int (*direction_output)(struct gpio_chip *, unsigned int, int);
int (*get)(struct gpio_chip *, unsigned int);
int (*get_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
void (*set)(struct gpio_chip *, unsigned int, int);
void (*set_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
int (*set_config)(struct gpio_chip *, unsigned int, long unsigned int);
int (*to_irq)(struct gpio_chip *, unsigned int);
void (*dbg_show)(struct seq_file *, struct gpio_chip *);
int (*init_valid_mask)(struct gpio_chip *, long unsigned int *, unsigned int);
int base;
u16 ngpio;
const const char * *names;
bool can_sleep;
long unsigned int (*read_reg)(void *);
void (*write_reg)(void *, long unsigned int);
bool be_bits;
void *reg_dat;
void *reg_set;
void *reg_clr;
void *reg_dir_out;
void *reg_dir_in;
bool bgpio_dir_unreadable;
int bgpio_bits;
spinlock_t bgpio_lock;
long unsigned int bgpio_data;
long unsigned int bgpio_dir;
struct gpio_irq_chip irq;
long unsigned int *valid_mask;
};
lowlatency
: ✅struct gpio_chip {
const char *label;
struct gpio_device *gpiodev;
struct device *parent;
struct module *owner;
int (*request)(struct gpio_chip *, unsigned int);
void (*free)(struct gpio_chip *, unsigned int);
int (*get_direction)(struct gpio_chip *, unsigned int);
int (*direction_input)(struct gpio_chip *, unsigned int);
int (*direction_output)(struct gpio_chip *, unsigned int, int);
int (*get)(struct gpio_chip *, unsigned int);
int (*get_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
void (*set)(struct gpio_chip *, unsigned int, int);
void (*set_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
int (*set_config)(struct gpio_chip *, unsigned int, long unsigned int);
int (*to_irq)(struct gpio_chip *, unsigned int);
void (*dbg_show)(struct seq_file *, struct gpio_chip *);
int (*init_valid_mask)(struct gpio_chip *, long unsigned int *, unsigned int);
int base;
u16 ngpio;
const const char * *names;
bool can_sleep;
long unsigned int (*read_reg)(void *);
void (*write_reg)(void *, long unsigned int);
bool be_bits;
void *reg_dat;
void *reg_set;
void *reg_clr;
void *reg_dir_out;
void *reg_dir_in;
bool bgpio_dir_unreadable;
int bgpio_bits;
spinlock_t bgpio_lock;
long unsigned int bgpio_data;
long unsigned int bgpio_dir;
struct gpio_irq_chip irq;
long unsigned int *valid_mask;
};
Regular
4.4
and 4.8
⚠️struct gpio_device *gpiodev
struct device *parent
int (*set_single_ended)(struct gpio_chip *, unsigned int, enum single_ended_mode)
long unsigned int (*read_reg)(void *)
void (*write_reg)(void *, long unsigned int)
long unsigned int (*pin2mask)(struct gpio_chip *, unsigned int)
void *reg_dat
void *reg_set
void *reg_clr
void *reg_dir
int bgpio_bits
spinlock_t bgpio_lock
long unsigned int bgpio_data
long unsigned int bgpio_dir
struct device *dev
struct device *cdev
struct list_head list
struct gpio_desc *desc
struct list_head pin_ranges
4.8
and 4.10
⚠️int irq_chained_parent
bool irq_nested
bool irq_need_valid_mask
long unsigned int *irq_valid_mask
bool irq_not_threaded
int irq_parent
4.10
and 4.13
⚠️int (*set_config)(struct gpio_chip *, unsigned int, long unsigned int)
int (*set_debounce)(struct gpio_chip *, unsigned int, unsigned int)
int (*set_single_ended)(struct gpio_chip *, unsigned int, enum single_ended_mode)
int irq_chained_parent
➡️ unsigned int irq_chained_parent
4.13
and 4.15
⚠️int (*get_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *)
bool be_bits
struct gpio_irq_chip irq
long unsigned int (*pin2mask)(struct gpio_chip *, unsigned int)
struct irq_chip *irqchip
struct irq_domain *irqdomain
unsigned int irq_base
irq_flow_handler_t irq_handler
unsigned int irq_default_type
unsigned int irq_chained_parent
bool irq_nested
bool irq_need_valid_mask
long unsigned int *irq_valid_mask
struct lock_class_key *lock_key
4.15
and 4.18
⚠️bool need_valid_mask
long unsigned int *valid_mask
4.18
and 5.0
⚠️int (*init_valid_mask)(struct gpio_chip *)
bool bgpio_dir_inverted
5.0
and 5.3
⚠️void *reg_dir_out
void *reg_dir_in
bool bgpio_dir_unreadable
void *reg_dir
bool bgpio_dir_inverted
5.3
and 5.4
⚠️bool need_valid_mask
int (*init_valid_mask)(struct gpio_chip *)
➡️ int (*init_valid_mask)(struct gpio_chip *, long unsigned int *, unsigned int)
5.4
and 5.8
⚠️int (*add_pin_ranges)(struct gpio_chip *)
5.8
and 5.11
✅
5.11
and 5.13
✅
5.13
and 5.15
⚠️u16 offset
5.15
and 5.19
⚠️struct fwnode_handle *fwnode
int (*en_hw_timestamp)(struct gpio_chip *, u32, long unsigned int)
int (*dis_hw_timestamp)(struct gpio_chip *, u32, long unsigned int)
spinlock_t bgpio_lock
➡️ raw_spinlock_t bgpio_lock
5.19
and 6.2
✅
6.2
and 6.5
✅
6.5
and 6.8
✅
amd64
and arm64
⚠️struct device_node *of_node
unsigned int of_gpio_n_cells
int (*of_xlate)(struct gpio_chip *, const struct of_phandle_args *, u32 *)
amd64
and armhf
⚠️struct device_node *of_node
unsigned int of_gpio_n_cells
int (*of_xlate)(struct gpio_chip *, const struct of_phandle_args *, u32 *)
amd64
and ppc64el
⚠️struct device_node *of_node
unsigned int of_gpio_n_cells
int (*of_xlate)(struct gpio_chip *, const struct of_phandle_args *, u32 *)
amd64
and riscv64
⚠️struct device_node *of_node
unsigned int of_gpio_n_cells
int (*of_xlate)(struct gpio_chip *, const struct of_phandle_args *, u32 *)
generic
and aws
✅
generic
and azure
✅
generic
and gcp
✅
generic
and lowlatency
✅