diff options
Diffstat (limited to 'include/linux/gpio/driver.h')
| -rw-r--r-- | include/linux/gpio/driver.h | 19 | 
1 files changed, 17 insertions, 2 deletions
| diff --git a/include/linux/gpio/driver.h b/include/linux/gpio/driver.h index a0f9901dcae6..a673a359e20b 100644 --- a/include/linux/gpio/driver.h +++ b/include/linux/gpio/driver.h @@ -168,11 +168,18 @@ struct gpio_irq_chip {  	/**  	 * @parent_handler_data: +	 * @parent_handler_data_array:  	 *  	 * Data associated, and passed to, the handler for the parent -	 * interrupt. +	 * interrupt. Can either be a single pointer if @per_parent_data +	 * is false, or an array of @num_parents pointers otherwise.  If +	 * @per_parent_data is true, @parent_handler_data_array cannot be +	 * NULL.  	 */ -	void *parent_handler_data; +	union { +		void *parent_handler_data; +		void **parent_handler_data_array; +	};  	/**  	 * @num_parents: @@ -204,6 +211,14 @@ struct gpio_irq_chip {  	bool threaded;  	/** +	 * @per_parent_data: +	 * +	 * True if parent_handler_data_array describes a @num_parents +	 * sized array to be used as parent data. +	 */ +	bool per_parent_data; + +	/**  	 * @init_hw: optional routine to initialize hardware before  	 * an IRQ chip will be added. This is quite useful when  	 * a particular driver wants to clear IRQ related registers |