libceph: reschedule tick in mon_fault()
[deliverable/linux.git] / net / rfkill / rfkill-gpio.c
index 4b1e3f35f06cf39ecb9bb3f6a88d802a67a37bc3..76c01cbd56e35b209bf5e2599298471263f14ded 100644 (file)
@@ -27,8 +27,6 @@
 #include <linux/acpi.h>
 #include <linux/gpio/consumer.h>
 
-#include <linux/rfkill-gpio.h>
-
 struct rfkill_gpio_data {
        const char              *name;
        enum rfkill_type        type;
@@ -81,7 +79,6 @@ static int rfkill_gpio_acpi_probe(struct device *dev,
        if (!id)
                return -ENODEV;
 
-       rfkill->name = dev_name(dev);
        rfkill->type = (unsigned)id->driver_data;
 
        return acpi_dev_add_driver_gpios(ACPI_COMPANION(dev),
@@ -90,24 +87,27 @@ static int rfkill_gpio_acpi_probe(struct device *dev,
 
 static int rfkill_gpio_probe(struct platform_device *pdev)
 {
-       struct rfkill_gpio_platform_data *pdata = pdev->dev.platform_data;
        struct rfkill_gpio_data *rfkill;
        struct gpio_desc *gpio;
+       const char *type_name;
        int ret;
 
        rfkill = devm_kzalloc(&pdev->dev, sizeof(*rfkill), GFP_KERNEL);
        if (!rfkill)
                return -ENOMEM;
 
+       device_property_read_string(&pdev->dev, "name", &rfkill->name);
+       device_property_read_string(&pdev->dev, "type", &type_name);
+
+       if (!rfkill->name)
+               rfkill->name = dev_name(&pdev->dev);
+
+       rfkill->type = rfkill_find_type(type_name);
+
        if (ACPI_HANDLE(&pdev->dev)) {
                ret = rfkill_gpio_acpi_probe(&pdev->dev, rfkill);
                if (ret)
                        return ret;
-       } else if (pdata) {
-               rfkill->name = pdata->name;
-               rfkill->type = pdata->type;
-       } else {
-               return -ENODEV;
        }
 
        rfkill->clk = devm_clk_get(&pdev->dev, NULL);
@@ -124,10 +124,8 @@ static int rfkill_gpio_probe(struct platform_device *pdev)
 
        rfkill->shutdown_gpio = gpio;
 
-       /* Make sure at-least one of the GPIO is defined and that
-        * a name is specified for this instance
-        */
-       if ((!rfkill->reset_gpio && !rfkill->shutdown_gpio) || !rfkill->name) {
+       /* Make sure at-least one GPIO is defined for this instance */
+       if (!rfkill->reset_gpio && !rfkill->shutdown_gpio) {
                dev_err(&pdev->dev, "invalid platform data\n");
                return -EINVAL;
        }
This page took 0.031394 seconds and 5 git commands to generate.