- aic_desc_function
struct aic_desc_function {
const unsigned char num;
const char *name;
};
- aic_desc_pin
struct aic_desc_pin {
struct pinctrl_pin_desc pin;
const struct aic_desc_function *functions;
};
- aic_pinctrl_group
struct aic_pinctrl_group {
const char *name;
u32 config;
u32 pin;
};
- aic_pinctrl_function
struct aic_pinctrl_function {
const char *name;
const char **groups;
u32 ngroups;
};
- aic_gpio_bank
struct aic_gpio_bank {
u32 bank_nr;
int irq;
u32 saved_mask;
spinlock_t lock;
struct gpio_chip gpio_chip;
struct pinctrl_gpio_range range;
struct irq_domain *domain;
struct aic_gpio_regs regs;
struct aic_pinctrl *pctl;
};
- aic_pinctrl
struct aic_pinctrl {
void __iomem *base;
struct device *dev;
struct pinctrl_dev *pctl_dev;
struct pinctrl_desc pctl_desc;
struct aic_pinctrl_group *groups;
u32 ngroups;
const char **grp_names;
struct aic_pinctrl_function *functions;
u32 nfunctions;
struct aic_gpio_bank *banks;
u32 nbanks;
struct aic_desc_pin *pins;
u32 npins;
struct reset_control *reset;
struct clk *clk;
};