Input: wm831x-ts - allow IRQ flags to be specified
This allows maximum flexibility for configuring the direct GPIO based interrupts. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
		
					parent
					
						
							
								f534666815
							
						
					
				
			
			
				commit
				
					
						acad9853b9
					
				
			
		
					 2 changed files with 15 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -241,7 +241,7 @@ static __devinit int wm831x_ts_probe(struct platform_device *pdev)
 | 
			
		|||
	struct wm831x_pdata *core_pdata = dev_get_platdata(pdev->dev.parent);
 | 
			
		||||
	struct wm831x_touch_pdata *pdata = NULL;
 | 
			
		||||
	struct input_dev *input_dev;
 | 
			
		||||
	int error;
 | 
			
		||||
	int error, irqf;
 | 
			
		||||
 | 
			
		||||
	if (core_pdata)
 | 
			
		||||
		pdata = core_pdata->touch;
 | 
			
		||||
| 
						 | 
				
			
			@ -314,9 +314,14 @@ static __devinit int wm831x_ts_probe(struct platform_device *pdev)
 | 
			
		|||
	wm831x_set_bits(wm831x, WM831X_TOUCH_CONTROL_1,
 | 
			
		||||
			WM831X_TCH_RATE_MASK, 6);
 | 
			
		||||
 | 
			
		||||
	if (pdata && pdata->data_irqf)
 | 
			
		||||
		irqf = pdata->data_irqf;
 | 
			
		||||
	else
 | 
			
		||||
		irqf = IRQF_TRIGGER_HIGH;
 | 
			
		||||
 | 
			
		||||
	error = request_threaded_irq(wm831x_ts->data_irq,
 | 
			
		||||
				     NULL, wm831x_ts_data_irq,
 | 
			
		||||
				     IRQF_ONESHOT,
 | 
			
		||||
				     irqf | IRQF_ONESHOT,
 | 
			
		||||
				     "Touchscreen data", wm831x_ts);
 | 
			
		||||
	if (error) {
 | 
			
		||||
		dev_err(&pdev->dev, "Failed to request data IRQ %d: %d\n",
 | 
			
		||||
| 
						 | 
				
			
			@ -325,9 +330,14 @@ static __devinit int wm831x_ts_probe(struct platform_device *pdev)
 | 
			
		|||
	}
 | 
			
		||||
	disable_irq(wm831x_ts->data_irq);
 | 
			
		||||
 | 
			
		||||
	if (pdata && pdata->pd_irqf)
 | 
			
		||||
		irqf = pdata->pd_irqf;
 | 
			
		||||
	else
 | 
			
		||||
		irqf = IRQF_TRIGGER_HIGH;
 | 
			
		||||
 | 
			
		||||
	error = request_threaded_irq(wm831x_ts->pd_irq,
 | 
			
		||||
				     NULL, wm831x_ts_pen_down_irq,
 | 
			
		||||
				     IRQF_ONESHOT,
 | 
			
		||||
				     irqf | IRQF_ONESHOT,
 | 
			
		||||
				     "Touchscreen pen down", wm831x_ts);
 | 
			
		||||
	if (error) {
 | 
			
		||||
		dev_err(&pdev->dev, "Failed to request pen down IRQ %d: %d\n",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -81,7 +81,9 @@ struct wm831x_touch_pdata {
 | 
			
		|||
	int rpu;               /** Pen down sensitivity resistor divider */
 | 
			
		||||
	int pressure;          /** Report pressure (boolean) */
 | 
			
		||||
	unsigned int data_irq; /** Touch data ready IRQ */
 | 
			
		||||
	int data_irqf;         /** IRQ flags for data ready IRQ */
 | 
			
		||||
	unsigned int pd_irq;   /** Touch pendown detect IRQ */
 | 
			
		||||
	int pd_irqf;           /** IRQ flags for pen down IRQ */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum wm831x_watchdog_action {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue