diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c index e212f7a..0b5d943c 100644 --- a/drivers/pinctrl/pinctrl-at91.c +++ b/drivers/pinctrl/pinctrl-at91.c @@ -606,8 +606,10 @@ static struct of_device_id at91_gpio_dt_ids[] = { { .compatible = "atmel,at91rm9200-gpio", + .data = (unsigned long)&at91rm9200_ops, }, { .compatible = "atmel,at91sam9x5-gpio", + .data = (unsigned long)&at91sam9x5_ops, }, { /* sentinel */ }, @@ -624,6 +626,12 @@ at91_gpio = &gpio_chip[alias_idx]; + ret = dev_get_drvdata(dev, (unsigned long *)&at91_gpio->ops); + if (ret) { + dev_err(dev, "dev_get_drvdata failed: %d\n", ret); + return ret; + } + clk = clk_get(dev, NULL); if (IS_ERR(clk)) { ret = PTR_ERR(clk); @@ -662,8 +670,10 @@ static struct platform_device_id at91_gpio_ids[] = { { .name = "at91rm9200-gpio", + .driver_data = (unsigned long)&at91rm9200_ops, }, { .name = "at91sam9x5-gpio", + .driver_data = (unsigned long)&at91sam9x5_ops, }, { /* sentinel */ },