|
@@ -110,7 +110,7 @@ struct sunxi_pinctrl_desc {
|
|
int npins;
|
|
int npins;
|
|
unsigned pin_base;
|
|
unsigned pin_base;
|
|
unsigned irq_banks;
|
|
unsigned irq_banks;
|
|
- unsigned irq_bank_base;
|
|
|
|
|
|
+ const unsigned int *irq_bank_map;
|
|
bool irq_read_needs_mux;
|
|
bool irq_read_needs_mux;
|
|
bool disable_strict_mode;
|
|
bool disable_strict_mode;
|
|
};
|
|
};
|
|
@@ -265,7 +265,10 @@ static inline u32 sunxi_pull_offset(u16 pin)
|
|
|
|
|
|
static inline u32 sunxi_irq_hw_bank_num(const struct sunxi_pinctrl_desc *desc, u8 bank)
|
|
static inline u32 sunxi_irq_hw_bank_num(const struct sunxi_pinctrl_desc *desc, u8 bank)
|
|
{
|
|
{
|
|
- return desc->irq_bank_base + bank;
|
|
|
|
|
|
+ if (!desc->irq_bank_map)
|
|
|
|
+ return bank;
|
|
|
|
+ else
|
|
|
|
+ return desc->irq_bank_map[bank];
|
|
}
|
|
}
|
|
|
|
|
|
static inline u32 sunxi_irq_cfg_reg(const struct sunxi_pinctrl_desc *desc,
|
|
static inline u32 sunxi_irq_cfg_reg(const struct sunxi_pinctrl_desc *desc,
|