···788788 *789789 * @reg_offset: Offset of the status/mask register within the bank790790 * @mask: Mask used to flag/control the register.791791+ * @type_reg_offset: Offset register for the irq type setting.792792+ * @type_rising_mask: Mask bit to configure RISING type irq.793793+ * @type_falling_mask: Mask bit to configure FALLING type irq.791794 */792795struct regmap_irq {793796 unsigned int reg_offset;794797 unsigned int mask;798798+ unsigned int type_reg_offset;799799+ unsigned int type_rising_mask;800800+ unsigned int type_falling_mask;795801};796802797803#define REGMAP_IRQ_REG(_irq, _off, _mask) \···817811 * @ack_base: Base ack address. If zero then the chip is clear on read.818812 * Using zero value is possible with @use_ack bit.819813 * @wake_base: Base address for wake enables. If zero unsupported.814814+ * @type_base: Base address for irq type. If zero unsupported.820815 * @irq_reg_stride: Stride to use for chips where registers are not contiguous.821816 * @init_ack_masked: Ack all masked interrupts once during initalization.822817 * @mask_invert: Inverted mask register: cleared bits are masked out.823818 * @use_ack: Use @ack register even if it is zero.824819 * @ack_invert: Inverted ack register: cleared bits for ack.825820 * @wake_invert: Inverted wake register: cleared bits are wake enabled.821821+ * @type_invert: Invert the type flags.826822 * @runtime_pm: Hold a runtime PM lock on the device when accessing it.827823 *828824 * @num_regs: Number of registers in each control bank.829825 * @irqs: Descriptors for individual IRQs. Interrupt numbers are830826 * assigned based on the index in the array of the interrupt.831827 * @num_irqs: Number of descriptors.828828+ * @num_type_reg: Number of type registers.829829+ * @type_reg_stride: Stride to use for chips where type registers are not830830+ * contiguous.832831 */833832struct regmap_irq_chip {834833 const char *name;···843832 unsigned int unmask_base;844833 unsigned int ack_base;845834 unsigned int wake_base;835835+ unsigned int type_base;846836 unsigned int irq_reg_stride;847837 bool init_ack_masked:1;848838 bool mask_invert:1;···851839 bool ack_invert:1;852840 bool wake_invert:1;853841 bool runtime_pm:1;842842+ bool type_invert:1;854843855844 int num_regs;856845857846 const struct regmap_irq *irqs;858847 int num_irqs;848848+849849+ int num_type_reg;850850+ unsigned int type_reg_stride;859851};860852861853struct regmap_irq_chip_data;