|
@@ -63,6 +63,15 @@ static const struct rfkill_ops rfkill_gpio_ops = {
|
|
|
.set_block = rfkill_gpio_set_power,
|
|
|
};
|
|
|
|
|
|
+static const struct acpi_gpio_params reset_gpios = { 0, 0, false };
|
|
|
+static const struct acpi_gpio_params shutdown_gpios = { 1, 0, false };
|
|
|
+
|
|
|
+static const struct acpi_gpio_mapping acpi_rfkill_default_gpios[] = {
|
|
|
+ { "reset-gpios", &reset_gpios, 1 },
|
|
|
+ { "shutdown-gpios", &shutdown_gpios, 1 },
|
|
|
+ { },
|
|
|
+};
|
|
|
+
|
|
|
static int rfkill_gpio_acpi_probe(struct device *dev,
|
|
|
struct rfkill_gpio_data *rfkill)
|
|
|
{
|
|
@@ -75,7 +84,8 @@ static int rfkill_gpio_acpi_probe(struct device *dev,
|
|
|
rfkill->name = dev_name(dev);
|
|
|
rfkill->type = (unsigned)id->driver_data;
|
|
|
|
|
|
- return 0;
|
|
|
+ return acpi_dev_add_driver_gpios(ACPI_COMPANION(dev),
|
|
|
+ acpi_rfkill_default_gpios);
|
|
|
}
|
|
|
|
|
|
static int rfkill_gpio_probe(struct platform_device *pdev)
|
|
@@ -102,7 +112,7 @@ static int rfkill_gpio_probe(struct platform_device *pdev)
|
|
|
|
|
|
rfkill->clk = devm_clk_get(&pdev->dev, NULL);
|
|
|
|
|
|
- gpio = devm_gpiod_get_index(&pdev->dev, "reset", 0);
|
|
|
+ gpio = devm_gpiod_get(&pdev->dev, "reset");
|
|
|
if (!IS_ERR(gpio)) {
|
|
|
ret = gpiod_direction_output(gpio, 0);
|
|
|
if (ret)
|
|
@@ -110,7 +120,7 @@ static int rfkill_gpio_probe(struct platform_device *pdev)
|
|
|
rfkill->reset_gpio = gpio;
|
|
|
}
|
|
|
|
|
|
- gpio = devm_gpiod_get_index(&pdev->dev, "shutdown", 1);
|
|
|
+ gpio = devm_gpiod_get(&pdev->dev, "shutdown");
|
|
|
if (!IS_ERR(gpio)) {
|
|
|
ret = gpiod_direction_output(gpio, 0);
|
|
|
if (ret)
|
|
@@ -150,6 +160,8 @@ static int rfkill_gpio_remove(struct platform_device *pdev)
|
|
|
rfkill_unregister(rfkill->rfkill_dev);
|
|
|
rfkill_destroy(rfkill->rfkill_dev);
|
|
|
|
|
|
+ acpi_dev_remove_driver_gpios(ACPI_COMPANION(&pdev->dev));
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|