mirror of https://gitee.com/openkylin/linux.git
mfd: Support active high IRQs on WM835x
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Samuel Ortiz <sameo@openedhand.com>
This commit is contained in:
parent
9dfd338198
commit
3206450355
|
@ -1438,7 +1438,21 @@ int wm8350_device_init(struct wm8350 *wm8350, int irq,
|
||||||
mutex_init(&wm8350->irq_mutex);
|
mutex_init(&wm8350->irq_mutex);
|
||||||
INIT_WORK(&wm8350->irq_work, wm8350_irq_worker);
|
INIT_WORK(&wm8350->irq_work, wm8350_irq_worker);
|
||||||
if (irq) {
|
if (irq) {
|
||||||
ret = request_irq(irq, wm8350_irq, 0,
|
int flags = 0;
|
||||||
|
|
||||||
|
if (pdata && pdata->irq_high) {
|
||||||
|
flags |= IRQF_TRIGGER_HIGH;
|
||||||
|
|
||||||
|
wm8350_set_bits(wm8350, WM8350_SYSTEM_CONTROL_1,
|
||||||
|
WM8350_IRQ_POL);
|
||||||
|
} else {
|
||||||
|
flags |= IRQF_TRIGGER_LOW;
|
||||||
|
|
||||||
|
wm8350_clear_bits(wm8350, WM8350_SYSTEM_CONTROL_1,
|
||||||
|
WM8350_IRQ_POL);
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = request_irq(irq, wm8350_irq, flags,
|
||||||
"wm8350", wm8350);
|
"wm8350", wm8350);
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
dev_err(wm8350->dev, "Failed to request IRQ: %d\n",
|
dev_err(wm8350->dev, "Failed to request IRQ: %d\n",
|
||||||
|
|
|
@ -640,9 +640,11 @@ struct wm8350 {
|
||||||
*
|
*
|
||||||
* @init: Function called during driver initialisation. Should be
|
* @init: Function called during driver initialisation. Should be
|
||||||
* used by the platform to configure GPIO functions and similar.
|
* used by the platform to configure GPIO functions and similar.
|
||||||
|
* @irq_high: Set if WM8350 IRQ is active high.
|
||||||
*/
|
*/
|
||||||
struct wm8350_platform_data {
|
struct wm8350_platform_data {
|
||||||
int (*init)(struct wm8350 *wm8350);
|
int (*init)(struct wm8350 *wm8350);
|
||||||
|
int irq_high;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue