summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/pinctrl/qcom/pinctrl-ssbi-gpio.c21
1 files changed, 7 insertions, 14 deletions
diff --git a/drivers/pinctrl/qcom/pinctrl-ssbi-gpio.c b/drivers/pinctrl/qcom/pinctrl-ssbi-gpio.c
index ded7d765af2e..23641e4d4521 100644
--- a/drivers/pinctrl/qcom/pinctrl-ssbi-gpio.c
+++ b/drivers/pinctrl/qcom/pinctrl-ssbi-gpio.c
@@ -665,12 +665,11 @@ static int pm8xxx_pin_populate(struct pm8xxx_gpio *pctrl,
665} 665}
666 666
667static const struct of_device_id pm8xxx_gpio_of_match[] = { 667static const struct of_device_id pm8xxx_gpio_of_match[] = {
668 { .compatible = "qcom,pm8018-gpio" }, 668 { .compatible = "qcom,pm8018-gpio", .data = (void *) 6 },
669 { .compatible = "qcom,pm8038-gpio" }, 669 { .compatible = "qcom,pm8038-gpio", .data = (void *) 12 },
670 { .compatible = "qcom,pm8058-gpio" }, 670 { .compatible = "qcom,pm8058-gpio", .data = (void *) 44 },
671 { .compatible = "qcom,pm8917-gpio" }, 671 { .compatible = "qcom,pm8917-gpio", .data = (void *) 38 },
672 { .compatible = "qcom,pm8921-gpio" }, 672 { .compatible = "qcom,pm8921-gpio", .data = (void *) 44 },
673 { .compatible = "qcom,ssbi-gpio" },
674 { }, 673 { },
675}; 674};
676MODULE_DEVICE_TABLE(of, pm8xxx_gpio_of_match); 675MODULE_DEVICE_TABLE(of, pm8xxx_gpio_of_match);
@@ -680,20 +679,14 @@ static int pm8xxx_gpio_probe(struct platform_device *pdev)
680 struct pm8xxx_pin_data *pin_data; 679 struct pm8xxx_pin_data *pin_data;
681 struct pinctrl_pin_desc *pins; 680 struct pinctrl_pin_desc *pins;
682 struct pm8xxx_gpio *pctrl; 681 struct pm8xxx_gpio *pctrl;
683 int ret; 682 int ret, i;
684 int i, npins;
685 683
686 pctrl = devm_kzalloc(&pdev->dev, sizeof(*pctrl), GFP_KERNEL); 684 pctrl = devm_kzalloc(&pdev->dev, sizeof(*pctrl), GFP_KERNEL);
687 if (!pctrl) 685 if (!pctrl)
688 return -ENOMEM; 686 return -ENOMEM;
689 687
690 pctrl->dev = &pdev->dev; 688 pctrl->dev = &pdev->dev;
691 npins = platform_irq_count(pdev); 689 pctrl->npins = (uintptr_t) device_get_match_data(&pdev->dev);
692 if (!npins)
693 return -EINVAL;
694 if (npins < 0)
695 return npins;
696 pctrl->npins = npins;
697 690
698 pctrl->regmap = dev_get_regmap(pdev->dev.parent, NULL); 691 pctrl->regmap = dev_get_regmap(pdev->dev.parent, NULL);
699 if (!pctrl->regmap) { 692 if (!pctrl->regmap) {