[PATCH/RFC v2 00/11] ARM/arm64: renesas: Add SYSC PM Domain DT Support
From: laurent.pinchart@ideasonboard.com (Laurent Pinchart)
Date: 2016-02-27 01:53:16
Also in:
linux-devicetree, linux-pm, linux-renesas-soc
Hi Geert, After rebasing this series on top of Simon's latest devel branch, I'm experiencing hard system freezes when using the VSP. What makes the problem curious is that PM runtime works fine when the VSP instances are probed, the A3VP power domain is turned on and off correctly for each instance. However, after booting the system, if I try to RPM resume the device, the system hangs. I've traced this (using printk debugging) down to the SYSCISCR write in rcar_sysc_power(). The value written is 0x00000200, which corresponds to the A3VP power domain, and the resume request completion wait loop doesn't time out. Does this ring any bell ? Do you have a more recent version of this patch series that I could try ? On Monday 15 February 2016 22:16:49 Geert Uytterhoeven wrote:
Hi all,
The Renesas R-Car System Controller, as found in various Renesas R-Car
SoCs, provides power management for the CPU cores and various
coprocessors.
This RFC patch series adds DT support for the R-Car SYSC, using the
generic PM Domain. It supports R-Car H1, R-Car Gen2, and R-Car H3.
Patches:
- Patch 1 adds the DT binding documentation (alternatives I considered
below the "---"-line),
- Patch 2 moves the existing pm-rcar driver to drivers/soc/renesas, so
it can be shared by arm32 and arm64,
- Patches 3-5 contain the driver implementation,
- Patches 6-11 add the SYSC PM domains themselves to the various dtsi
files.
Known issues:
- This needs better integration with the PM code in pm-rcar-gen2, the
SMP code in smp-r8a7790, and Magnus' DT APMU series,
- CPG/MSSR clock domain handling should share more code with the
renesas-cpg-mssr driver.
Changes compared to v2 (more details in the individual patches):
- Moved pm-rcar from arch/arm/mach-shmobile/ to drivers/soc/renesas/,
- Added R-Car H3 (r8a7795) support, incl. support for devices part of
a SYSC PM domain and the CPG/MSSR clock domain,
- Use "renesas,<type>-sysc" instead of "renesas,sysc-<type>",
- Added fallback compatibility strings for R-Car Gen2 and Gen3.
- Changed one-line summary prefix to match current arm-soc practices,
- The L2 cache-controller patches have been extracted into a separate
series ("[PATCH v3 0/7] ARM/arm64: dts: renesas: Add/complete L2
cache-controller nodes"),
- Minor fixes.
This series is against renesas-devel-20160215-v4.5-rc4, with series
"[PATCH v3 0/7] ARM/arm64: dts: renesas: Add/complete L2
cache-controller nodes" applied. It is not yet meant to be applied!
It's published as-is to ease development of drivers for devices residing
in a SYSC PM domain on R-Car H3 (e.g. VSP, FCP_V).
This was tested on r8a7779/marzen, r8a7791/koelsch, r8a7794/alt, and
r8a7795/salvator-x.
For your convenience, I've also pushed this series to
git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git#topi
c/rcar-sysc-pd-rfc-v2
Thanks for your comments!
Geert Uytterhoeven (11):
PM / Domains: Add DT bindings for the R-Car System Controller
soc: renesas: Move pm-rcar to drivers/soc/renesas/
soc: renesas: Improve rcar_sysc_power() debug info
soc: renesas: rcar: Add DT support for SYSC PM domains
soc: renesas: rcar: Handle clock domain devices in SYSC PM domains
ARM: dts: r8a7779: Add SYSC PM domains
ARM: dts: r8a7790: Add SYSC PM domains
ARM: dts: r8a7791: Add SYSC PM domains
ARM: dts: r8a7793: Add SYSC PM domains
ARM: dts: r8a7794: Add SYSC PM domains
arm64: dts: r8a7795: Add SYSC PM domains
.../bindings/power/renesas,sysc-rcar.txt | 87 ++++
arch/arm/boot/dts/r8a7779.dtsi | 48 ++
arch/arm/boot/dts/r8a7790.dtsi | 89 ++++
arch/arm/boot/dts/r8a7791.dtsi | 40 ++
arch/arm/boot/dts/r8a7793.dtsi | 39 ++
arch/arm/boot/dts/r8a7794.dtsi | 40 ++
arch/arm/mach-shmobile/Kconfig | 8 +-
arch/arm/mach-shmobile/Makefile | 1 -
arch/arm/mach-shmobile/pm-r8a7779.c | 3 +-
arch/arm/mach-shmobile/pm-rcar-gen2.c | 2 +-
arch/arm/mach-shmobile/pm-rcar.c | 164 ------
arch/arm/mach-shmobile/smp-r8a7779.c | 2 +-
arch/arm/mach-shmobile/smp-r8a7790.c | 2 +-
arch/arm64/boot/dts/renesas/r8a7795.dtsi | 142 ++++++
drivers/soc/Kconfig | 1 +
drivers/soc/Makefile | 3 +-
drivers/soc/renesas/Kconfig | 8 +
drivers/soc/renesas/Makefile | 1 +
drivers/soc/renesas/pm-rcar.c | 559 ++++++++++++++++++
.../linux/soc/renesas}/pm-rcar.h | 2 +
20 files changed, 1065 insertions(+), 176 deletions(-)
create mode 100644
Documentation/devicetree/bindings/power/renesas,sysc-rcar.txt delete mode
100644 arch/arm/mach-shmobile/pm-rcar.c
create mode 100644 drivers/soc/renesas/Kconfig
create mode 100644 drivers/soc/renesas/Makefile
create mode 100644 drivers/soc/renesas/pm-rcar.c
rename {arch/arm/mach-shmobile => include/linux/soc/renesas}/pm-rcar.h
(93%)-- Regards, Laurent Pinchart