diff options
author | Mauro Carvalho Chehab <mchehab+huawei@kernel.org> | 2021-07-17 11:58:13 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2021-07-21 11:23:42 +0200 |
commit | f81d992182570d56db642344fa89a7e1777dbc80 (patch) | |
tree | 97024a3a3a74cc636badf5abf0d89cebdb141a04 | |
parent | b82d45a9a6de363dd80704c9a6d9f5313e6099ab (diff) | |
download | linux-stable-f81d992182570d56db642344fa89a7e1777dbc80.tar.gz linux-stable-f81d992182570d56db642344fa89a7e1777dbc80.tar.bz2 linux-stable-f81d992182570d56db642344fa89a7e1777dbc80.zip |
staging: hi6421-spmi-pmic: rename GPIO IRQ OF node
Instead of using the standard name ("gpios"), use "interrupts".
Suggested-by: Rob Herring <robh@kernel.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Link: https://lore.kernel.org/r/8b2cad1e9b9904c6a2aaea8786d5e5a39f09ac19.1626515862.git.mchehab+huawei@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/staging/hikey9xx/hi6421-spmi-pmic.c | 18 | ||||
-rw-r--r-- | drivers/staging/hikey9xx/hisilicon,hi6421-spmi-pmic.yaml | 8 | ||||
-rw-r--r-- | include/linux/mfd/hi6421-spmi-pmic.h | 1 |
3 files changed, 9 insertions, 18 deletions
diff --git a/drivers/staging/hikey9xx/hi6421-spmi-pmic.c b/drivers/staging/hikey9xx/hi6421-spmi-pmic.c index dd7ff63214d3..61cbd2e62f68 100644 --- a/drivers/staging/hikey9xx/hi6421-spmi-pmic.c +++ b/drivers/staging/hikey9xx/hi6421-spmi-pmic.c @@ -218,6 +218,7 @@ static int hi6421_spmi_pmic_probe(struct spmi_device *sdev) struct device *dev = &sdev->dev; struct device_node *np = dev->of_node; struct hi6421_spmi_pmic *ddata; + struct platform_device *pdev; unsigned int virq; int ret, i; @@ -233,21 +234,14 @@ static int hi6421_spmi_pmic_probe(struct spmi_device *sdev) ddata->dev = dev; - ddata->gpio = of_get_gpio(np, 0); - if (ddata->gpio < 0) - return ddata->gpio; + pdev = container_of(dev, struct platform_device, dev); - if (!gpio_is_valid(ddata->gpio)) - return -EINVAL; - - ret = devm_gpio_request_one(dev, ddata->gpio, GPIOF_IN, "pmic"); - if (ret < 0) { - dev_err(dev, "Failed to request gpio%d\n", ddata->gpio); - return ret; + ddata->irq = platform_get_irq(pdev, 0); + if (ddata->irq < 0) { + dev_err(dev, "Error %d when getting IRQs\n", ddata->irq); + return ddata->irq; } - ddata->irq = gpio_to_irq(ddata->gpio); - hi6421_spmi_pmic_irq_init(ddata); ddata->irqs = devm_kzalloc(dev, PMIC_IRQ_LIST_MAX * sizeof(int), GFP_KERNEL); diff --git a/drivers/staging/hikey9xx/hisilicon,hi6421-spmi-pmic.yaml b/drivers/staging/hikey9xx/hisilicon,hi6421-spmi-pmic.yaml index 8e355cddd437..5a3b1cbfd639 100644 --- a/drivers/staging/hikey9xx/hisilicon,hi6421-spmi-pmic.yaml +++ b/drivers/staging/hikey9xx/hisilicon,hi6421-spmi-pmic.yaml @@ -34,9 +34,7 @@ properties: interrupt-controller: true - gpios: - maxItems: 1 - description: GPIO used for IRQs + interrupts: true regulators: type: object @@ -63,7 +61,6 @@ additionalProperties: false examples: - | - /* pmic properties */ pmic: pmic@0 { compatible = "hisilicon,hi6421-spmi"; @@ -71,7 +68,8 @@ examples: #interrupt-cells = <2>; interrupt-controller; - gpios = <&gpio28 0 0>; + interrupt-parent = <&gpio28>; + interrupts = <0 0>; regulators { #address-cells = <1>; diff --git a/include/linux/mfd/hi6421-spmi-pmic.h b/include/linux/mfd/hi6421-spmi-pmic.h index 2660226138b8..254430c897d6 100644 --- a/include/linux/mfd/hi6421-spmi-pmic.h +++ b/include/linux/mfd/hi6421-spmi-pmic.h @@ -22,7 +22,6 @@ struct hi6421_spmi_pmic { spinlock_t lock; struct irq_domain *domain; int irq; - int gpio; unsigned int *irqs; struct regmap *regmap; }; |