|
@@ -259,6 +259,7 @@ static int vf610_gpio_probe(struct platform_device *pdev)
|
|
|
struct vf610_gpio_port *port;
|
|
struct vf610_gpio_port *port;
|
|
|
struct resource *iores;
|
|
struct resource *iores;
|
|
|
struct gpio_chip *gc;
|
|
struct gpio_chip *gc;
|
|
|
|
|
+ int i;
|
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
|
|
port = devm_kzalloc(&pdev->dev, sizeof(*port), GFP_KERNEL);
|
|
port = devm_kzalloc(&pdev->dev, sizeof(*port), GFP_KERNEL);
|
|
@@ -298,6 +299,10 @@ static int vf610_gpio_probe(struct platform_device *pdev)
|
|
|
if (ret < 0)
|
|
if (ret < 0)
|
|
|
return ret;
|
|
return ret;
|
|
|
|
|
|
|
|
|
|
+ /* Mask all GPIO interrupts */
|
|
|
|
|
+ for (i = 0; i < gc->ngpio; i++)
|
|
|
|
|
+ vf610_gpio_writel(0, port->base + PORT_PCR(i));
|
|
|
|
|
+
|
|
|
/* Clear the interrupt status register for all GPIO's */
|
|
/* Clear the interrupt status register for all GPIO's */
|
|
|
vf610_gpio_writel(~0, port->base + PORT_ISFR);
|
|
vf610_gpio_writel(~0, port->base + PORT_ISFR);
|
|
|
|
|
|