Skip to content

Commit

Permalink
pps: clients: gpio: Use struct device pointer directly
Browse files Browse the repository at this point in the history
In most parts of the code the platform device is not used.
Use struct device pointer directly to reduce code size and
increase readability.

Acked-by: Rodolfo Giometti <giometti@enneenne.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20210318130321.24227-6-andriy.shevchenko@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
andy-shev authored and gregkh committed Mar 24, 2021
1 parent 28d0325 commit 162a5de
Showing 1 changed file with 19 additions and 23 deletions.
42 changes: 19 additions & 23 deletions drivers/pps/clients/pps-gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -99,45 +99,39 @@ static void pps_gpio_echo_timer_callback(struct timer_list *t)
gpiod_set_value(info->echo_pin, 0);
}

static int pps_gpio_setup(struct platform_device *pdev)
static int pps_gpio_setup(struct device *dev)
{
struct pps_gpio_device_data *data = platform_get_drvdata(pdev);
struct pps_gpio_device_data *data = dev_get_drvdata(dev);
int ret;
u32 value;

data->gpio_pin = devm_gpiod_get(&pdev->dev,
NULL, /* request "gpios" */
GPIOD_IN);
data->gpio_pin = devm_gpiod_get(dev, NULL, GPIOD_IN);
if (IS_ERR(data->gpio_pin))
return dev_err_probe(&pdev->dev, PTR_ERR(data->gpio_pin),
return dev_err_probe(dev, PTR_ERR(data->gpio_pin),
"failed to request PPS GPIO\n");

data->echo_pin = devm_gpiod_get_optional(&pdev->dev,
"echo",
GPIOD_OUT_LOW);
data->echo_pin = devm_gpiod_get_optional(dev, "echo", GPIOD_OUT_LOW);
if (IS_ERR(data->echo_pin))
return dev_err_probe(&pdev->dev, PTR_ERR(data->echo_pin),
return dev_err_probe(dev, PTR_ERR(data->echo_pin),
"failed to request ECHO GPIO\n");

if (data->echo_pin) {
ret = device_property_read_u32(&pdev->dev, "echo-active-ms", &value);
ret = device_property_read_u32(dev, "echo-active-ms", &value);
if (ret) {
dev_err(&pdev->dev,
"failed to get echo-active-ms from FW\n");
dev_err(dev, "failed to get echo-active-ms from FW\n");
return ret;
}
data->echo_active_ms = value;
/* sanity check on echo_active_ms */
if (!data->echo_active_ms || data->echo_active_ms > 999) {
dev_err(&pdev->dev,
"echo-active-ms: %u - bad value from FW\n",
dev_err(dev, "echo-active-ms: %u - bad value from FW\n",
data->echo_active_ms);
return -EINVAL;
}
}

data->assert_falling_edge =
device_property_read_bool(&pdev->dev, "assert-falling-edge");
device_property_read_bool(dev, "assert-falling-edge");
return 0;
}

Expand All @@ -158,24 +152,26 @@ get_irqf_trigger_flags(const struct pps_gpio_device_data *data)
static int pps_gpio_probe(struct platform_device *pdev)
{
struct pps_gpio_device_data *data;
struct device *dev = &pdev->dev;
int ret;
int pps_default_params;

/* allocate space for device info */
data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
if (!data)
return -ENOMEM;
platform_set_drvdata(pdev, data);

dev_set_drvdata(dev, data);

/* GPIO setup */
ret = pps_gpio_setup(pdev);
ret = pps_gpio_setup(dev);
if (ret)
return -EINVAL;

/* IRQ setup */
ret = gpiod_to_irq(data->gpio_pin);
if (ret < 0) {
dev_err(&pdev->dev, "failed to map GPIO to IRQ: %d\n", ret);
dev_err(dev, "failed to map GPIO to IRQ: %d\n", ret);
return -EINVAL;
}
data->irq = ret;
Expand All @@ -201,17 +197,17 @@ static int pps_gpio_probe(struct platform_device *pdev)
pps_default_params |= PPS_CAPTURECLEAR | PPS_OFFSETCLEAR;
data->pps = pps_register_source(&data->info, pps_default_params);
if (IS_ERR(data->pps)) {
dev_err(&pdev->dev, "failed to register IRQ %d as PPS source\n",
dev_err(dev, "failed to register IRQ %d as PPS source\n",
data->irq);
return PTR_ERR(data->pps);
}

/* register IRQ interrupt handler */
ret = devm_request_irq(&pdev->dev, data->irq, pps_gpio_irq_handler,
ret = devm_request_irq(dev, data->irq, pps_gpio_irq_handler,
get_irqf_trigger_flags(data), data->info.name, data);
if (ret) {
pps_unregister_source(data->pps);
dev_err(&pdev->dev, "failed to acquire IRQ %d\n", data->irq);
dev_err(dev, "failed to acquire IRQ %d\n", data->irq);
return -EINVAL;
}

Expand Down

0 comments on commit 162a5de

Please sign in to comment.