gpio: bcm-kona: Make driver OF-independent
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Tue, 18 Jul 2023 22:30:53 +0000 (01:30 +0300)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Wed, 19 Jul 2023 11:25:49 +0000 (13:25 +0200)
There is nothing in the driver that requires OF APIs,
make the driver OF independent.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
drivers/gpio/Kconfig
drivers/gpio/gpio-bcm-kona.c

index e382dfe..1cf267a 100644 (file)
@@ -191,7 +191,7 @@ config GPIO_RASPBERRYPI_EXP
 
 config GPIO_BCM_KONA
        bool "Broadcom Kona GPIO"
-       depends on OF_GPIO && (ARCH_BCM_MOBILE || COMPILE_TEST)
+       depends on ARCH_BCM_MOBILE || COMPILE_TEST
        help
          Turn on GPIO support for Broadcom "Kona" chips.
 
index 7077042..c977144 100644 (file)
@@ -8,12 +8,14 @@
 
 #include <linux/bitops.h>
 #include <linux/err.h>
-#include <linux/io.h>
 #include <linux/gpio/driver.h>
-#include <linux/of_device.h>
 #include <linux/init.h>
+#include <linux/io.h>
 #include <linux/irqdomain.h>
 #include <linux/irqchip/chained_irq.h>
+#include <linux/mod_devicetable.h>
+#include <linux/platform_device.h>
+#include <linux/property.h>
 
 #define BCM_GPIO_PASSWD                                0x00a5a501
 #define GPIO_PER_BANK                          32
@@ -556,19 +558,12 @@ static void bcm_kona_gpio_reset(struct bcm_kona_gpio *kona_gpio)
 static int bcm_kona_gpio_probe(struct platform_device *pdev)
 {
        struct device *dev = &pdev->dev;
-       const struct of_device_id *match;
        struct bcm_kona_gpio_bank *bank;
        struct bcm_kona_gpio *kona_gpio;
        struct gpio_chip *chip;
        int ret;
        int i;
 
-       match = of_match_device(bcm_kona_gpio_of_match, dev);
-       if (!match) {
-               dev_err(dev, "Failed to find gpio controller\n");
-               return -ENODEV;
-       }
-
        kona_gpio = devm_kzalloc(dev, sizeof(*kona_gpio), GFP_KERNEL);
        if (!kona_gpio)
                return -ENOMEM;
@@ -601,10 +596,10 @@ static int bcm_kona_gpio_probe(struct platform_device *pdev)
        chip->parent = dev;
        chip->ngpio = kona_gpio->num_bank * GPIO_PER_BANK;
 
-       kona_gpio->irq_domain = irq_domain_add_linear(dev->of_node,
-                                                     chip->ngpio,
-                                                     &bcm_kona_irq_ops,
-                                                     kona_gpio);
+       kona_gpio->irq_domain = irq_domain_create_linear(dev_fwnode(dev),
+                                                        chip->ngpio,
+                                                        &bcm_kona_irq_ops,
+                                                        kona_gpio);
        if (!kona_gpio->irq_domain) {
                dev_err(dev, "Couldn't allocate IRQ domain\n");
                return -ENXIO;