lkml.org 
[lkml]   [2012]   [Aug]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 8/8] ARM: vt8500: gpio: Devicetree support for arch-vt8500
    On 08/07/2012 07:39 PM, Tony Prisk wrote:
    > Converted the existing arch-vt8500 gpio to a platform_device.
    > Added support for WM8505 and WM8650 GPIO controllers.

    > diff --git a/drivers/gpio/gpio-vt8500.c b/drivers/gpio/gpio-vt8500.c

    > +static struct of_device_id vt8500_gpio_dt_ids[] = {
    > + { .compatible = "via,vt8500-gpio", .data = &vt8500_data, },
    > + { .compatible = "wm,wm8505-gpio", .data = &wm8505_data, },
    > + { .compatible = "wm,wm8650-gpio", .data = &wm8650_data, },
    > + { /* Sentinel */ },
    > +};
    > +
    > +static int __devinit vt8500_gpio_probe(struct platform_device *pdev)
    > +{
    > + void __iomem *gpio_base;
    > + struct device_node *np;
    > + const struct of_device_id *of_id =
    > + of_match_device(vt8500_gpio_dt_ids, &pdev->dev);
    > +
    > + if (!of_id) {
    > + dev_err(&pdev->dev, "Failed to find gpio controller\n");
    > + return -ENODEV;
    > + }
    > +
    > + np = of_find_matching_node(NULL, vt8500_gpio_dt_ids);

    Can't you use pdev->dev.of_node instead of searching for it again?

    ...
    > + of_node_put(np);

    If so, you could also remove that.

    > +static int __init vt8500_gpio_init(void)
    > +{
    > + return platform_driver_probe(&vt8500_gpio_driver, &vt8500_gpio_probe);
    > +}
    > +
    > +static void __exit vt8500_gpio_exit(void)
    > +{
    > + return platform_driver_unregister(&vt8500_gpio_driver);
    > +}
    > +
    > +module_init(vt8500_gpio_init);
    > +module_exit(vt8500_gpio_exit);

    I think that's all just:

    module_platform_driver(vt8500_gpio_driver);

    (except that _init uses platform_driver_probe() rather than
    platform_driver_register(), which seems unusual. I guess that explains
    the of_find_matching_node() above too.)

    > +MODULE_LICENSE("GPL");

    That should be "GPL v2" given the license header.



    \
     
     \ /
      Last update: 2012-08-08 21:21    [W:0.025 / U:1.464 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site