root/drivers/bus/simple-pm-bus.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. simple_pm_bus_probe
  2. simple_pm_bus_remove

   1 /*
   2  * Simple Power-Managed Bus Driver
   3  *
   4  * Copyright (C) 2014-2015 Glider bvba
   5  *
   6  * This file is subject to the terms and conditions of the GNU General Public
   7  * License.  See the file "COPYING" in the main directory of this archive
   8  * for more details.
   9  */
  10 
  11 #include <linux/module.h>
  12 #include <linux/of_platform.h>
  13 #include <linux/platform_device.h>
  14 #include <linux/pm_runtime.h>
  15 
  16 
  17 static int simple_pm_bus_probe(struct platform_device *pdev)
  18 {
  19         struct device_node *np = pdev->dev.of_node;
  20 
  21         dev_dbg(&pdev->dev, "%s\n", __func__);
  22 
  23         pm_runtime_enable(&pdev->dev);
  24 
  25         if (np)
  26                 of_platform_populate(np, NULL, NULL, &pdev->dev);
  27 
  28         return 0;
  29 }
  30 
  31 static int simple_pm_bus_remove(struct platform_device *pdev)
  32 {
  33         dev_dbg(&pdev->dev, "%s\n", __func__);
  34 
  35         pm_runtime_disable(&pdev->dev);
  36         return 0;
  37 }
  38 
  39 static const struct of_device_id simple_pm_bus_of_match[] = {
  40         { .compatible = "simple-pm-bus", },
  41         { /* sentinel */ }
  42 };
  43 MODULE_DEVICE_TABLE(of, simple_pm_bus_of_match);
  44 
  45 static struct platform_driver simple_pm_bus_driver = {
  46         .probe = simple_pm_bus_probe,
  47         .remove = simple_pm_bus_remove,
  48         .driver = {
  49                 .name = "simple-pm-bus",
  50                 .of_match_table = simple_pm_bus_of_match,
  51         },
  52 };
  53 
  54 module_platform_driver(simple_pm_bus_driver);
  55 
  56 MODULE_DESCRIPTION("Simple Power-Managed Bus Driver");
  57 MODULE_AUTHOR("Geert Uytterhoeven <geert+renesas@glider.be>");
  58 MODULE_LICENSE("GPL v2");

/* [<][>][^][v][top][bottom][index][help] */