lkml.org 
[lkml]   [2013]   [Dec]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC 09/18] power/reset: vexpress: Use regmap instead of custom interface
    Date
    This patch makes the Versatile Express reboot/reset driver
    use regmap interface, instead of custom vexpress config
    one. It will request the regmap resource associated
    with the device, which makes it pretty much hardware
    agnostic.

    Signed-off-by: Pawel Moll <pawel.moll@arm.com>
    Cc: Anton Vorontsov <anton@enomsg.org>
    Cc: David Woodhouse <dwmw2@infradead.org>
    ---
    drivers/power/reset/Kconfig | 2 +-
    drivers/power/reset/vexpress-poweroff.c | 8 ++++----
    2 files changed, 5 insertions(+), 5 deletions(-)

    diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig
    index 9b3ea53..98f64dc 100644
    --- a/drivers/power/reset/Kconfig
    +++ b/drivers/power/reset/Kconfig
    @@ -40,7 +40,7 @@ config POWER_RESET_RESTART
    config POWER_RESET_VEXPRESS
    bool "ARM Versatile Express power-off and reset driver"
    depends on ARM || ARM64
    - depends on POWER_RESET && VEXPRESS_CONFIG
    + depends on POWER_RESET && REGMAP
    help
    Power off and reset support for the ARM Ltd. Versatile
    Express boards.
    diff --git a/drivers/power/reset/vexpress-poweroff.c b/drivers/power/reset/vexpress-poweroff.c
    index d752233..a7fc882 100644
    --- a/drivers/power/reset/vexpress-poweroff.c
    +++ b/drivers/power/reset/vexpress-poweroff.c
    @@ -15,6 +15,7 @@
    #include <linux/of.h>
    #include <linux/of_device.h>
    #include <linux/platform_device.h>
    +#include <linux/regmap.h>
    #include <linux/sched.h>
    #include <linux/stat.h>
    #include <linux/vexpress.h>
    @@ -24,13 +25,12 @@
    static void vexpress_reset_do(struct device *dev, const char *what)
    {
    int err = -ENOENT;
    - struct vexpress_config_func *func =
    - vexpress_config_func_get_by_dev(dev);
    + struct regmap *reg = dev_get_regmap(dev, NULL);

    - if (func) {
    + if (reg) {
    unsigned long long timeout_ns;

    - err = vexpress_config_write(func, 0, 0);
    + err = regmap_write(reg, 0, 0);

    timeout_ns = sched_clock() + 50000000;
    while (!err && time_before64(sched_clock(), timeout_ns))
    --
    1.8.3.2



    \
     
     \ /
      Last update: 2013-12-23 18:01    [W:2.986 / U:0.048 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site