16 Jan, 2015

3 commits

  • GPIO is widely used as the reset control for various devices. Let's
    build the support in by default.

    [shawn.guo: cherry-pick commit 795fcb3bc5bb from imx_3.10.y]
    Signed-off-by: Shawn Guo

    Shawn Guo
     
  • It's a little bit late to register gpio-reset driver at module_init
    time, because gpio-reset provides reset control via gpio for other
    devices which are mostly probed at module_init time too. And it
    becomes even worse, when the gpio comes from IO expander on I2C bus,
    e.g. pca953x. In that case, gpio-reset needs to be ready before I2C
    bus driver which is generally ready at subsys_initcall time. Let's
    register gpio-reset driver in arch_initcall() to have it ready early
    enough.

    The defer probe mechanism is not used here, because a reset controller
    driver should be reasonably registered early than other devices. More
    importantly, defer probe doe not help in some nasty cases, e.g. the
    gpio-pca953x device itself needs a reset from gpio-reset driver start
    working.

    [shawn.guo: cherry-pick commit 7153f05108ef from imx_3.10.y]
    Signed-off-by: Shawn Guo

    Shawn Guo
     
  • This driver implements a reset controller device that toggle a gpio
    connected to a reset pin of a peripheral IC. The delay between assertion
    and de-assertion of the reset signal can be configured via device tree.

    Signed-off-by: Philipp Zabel
    Reviewed-by: Stephen Warren
    Reviewed-by: Pavel Machek
    [shawn.guo: cherry-pick commit 27e3604c82cb from imx_3.10.y]
    Signed-off-by: Shawn Guo

    Conflicts:
    drivers/reset/Makefile

    Philipp Zabel
     

23 Nov, 2013

1 commit

  • The Allwinner A31 and most of the other Allwinner SoCs have an IP
    maintaining a few other IPs in the SoC in reset by default. Among these
    IPs are the A31's High Speed Timers, hence why we can't use the regular
    driver construct in every cases, and need to call the registering
    function directly during machine initialisation.

    Apart from this, the implementation is fairly straightforward, and could
    easily be moved to a generic MMIO-based reset controller driver if the
    need ever arise.

    Signed-off-by: Maxime Ripard
    Acked-by: Philipp Zabel

    Maxime Ripard
     

12 Apr, 2013

2 commits