Commit Graph

9 Commits

Author SHA1 Message Date
Geert Uytterhoeven
bcb8243792 ARM: shmobile: R-Car: Get rid of on_off_fn() function pointer
Simplify the power request code by passing an "on" flag, and picking the
right status bit and register offset in the innermost function, based on
this flag.
This allows to remove the rcar_sysc_pwr_{off,on}() helper functions, and
the function pointer through which they were called.

Make sr_bit and reg_offs unsigned while we're at it.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2015-07-06 09:35:22 +09:00
Geert Uytterhoeven
21437c53f3 ARM: shmobile: R-Car: Use BIT() macro instead of open coding
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2015-07-06 09:35:20 +09:00
Geert Uytterhoeven
624deb39a1 ARM: shmobile: R-Car: Make struct rcar_sysc_ch * parameters const
The passed struct rcar_sysc_ch is never modified, so it can be const.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2015-07-06 09:35:19 +09:00
Geert Uytterhoeven
2f575fcff1 ARM: shmobile: R-Car: Break infinite loop
rcar_sysc_update() loops (with interrupts disabled and while holding a
spinlock) until submitting a power shutoff or resume request fails, or
until the submitted request was accepted.
If none of these conditions becomes true, this forms an infinite loop.

Put a limit on the maximum number of loop iterations, and add a small
delay to each iteration, to fix this.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2015-07-06 09:35:18 +09:00
Geert Uytterhoeven
577d104d85 ARM: shmobile: R-Car: Improve documentation
Add more SYSC register documentation.
Use definitions instead of hardcoded numbers.
Comment important operations.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2015-07-06 09:35:15 +09:00
Magnus Damm
1a950ca536 ARM: shmobile: Cleanup pm-rcar.o build using Kconfig
Add a CONFIG_PM_RCAR entry and enable it for R-Car
Generation 1 or 2 in case CONFIG_PM or CONFIG_SMP
is set. Consolidate power management objects and
get rid of #ifdefs in the C code.

Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
Acked-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-09-02 09:32:05 +09:00
Magnus Damm
585c09df37 ARM: shmobile: Move pm-rcar.h, cleanup r8a7779 case
Change location of pm-rcar.h so it can be used as #include "pm-rcar.h"
instead of the old style #include <mach/pm-rcar.h>. Also clean up
the r8a7779 case to move some unused header file cruft into a C
file.

Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-06-17 17:09:40 +09:00
Magnus Damm
c4ca5d80e0 ARM: shmobile: Move SYSC base variable to inside ifdefs
Move the rcar_sysc_base variable to inside #ifdefs to avoid
triggering build warnings in case PM or SMP is not selected.

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-02-26 14:53:35 +09:00
Magnus Damm
a6557eb795 ARM: shmobile: Break out R-Car SYSC PM code
Break out the R-Car SYSC power management code from
the r8a7779 SoC code. With this new shared R-Car SYSC
code base it is possible to hook in Generation 2 SoCs
as well.

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-02-24 08:55:46 +09:00