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;
 }
 
 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;
                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;
        }