zynqmp: pm: Reimplement clock disable EEMI API
authorJolly Shah <jollys@xilinx.com>
Wed, 2 Jan 2019 20:54:40 +0000 (12:54 -0800)
committerJolly Shah <jollys@xilinx.com>
Fri, 4 Jan 2019 19:48:02 +0000 (11:48 -0800)
commitd3a78ca46c253ca26e47ee2edf7372171aa066bb
tree47b4ce3c610795dc322d307e3722d3a1f7bc8de1
parentbd642dde65a51328ff2041a751550d19380f6658
zynqmp: pm: Reimplement clock disable EEMI API

Clock disable EEMI API is reimplemented to use system-level clock
and pll EEMI APIs rather than direct MMIO read/write accesses to clock
and pll control registers.
Since linux still uses clock disable API to reset the PLL in the
implementation of pm_clock_disable() we need to workaround this by
distinguishing two cases: 1) if the given clock ID corresponds to a PLL
output clock ID; or 2) given clock ID is truly an on-chip clock that can
be gated.
For case 1) we'll call pm_api_clock_pll_disable() implemented in
pm_api_clock.h/c. This function will reset the PLL using the system-level
PLL set mode EEMI API with the reset mode argument.
For case 2) we'll call the PMU to configure the clock gate. This is done
using system-level clock disable EEMI API.
Functions that appear to be unused after this change is made are removed.

Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Acked-by: Will Wong <WILLW@xilinx.com>
Signed-off-by: Jolly Shah <jollys@xilinx.com>
plat/xilinx/zynqmp/pm_service/pm_api_clock.c
plat/xilinx/zynqmp/pm_service/pm_api_clock.h
plat/xilinx/zynqmp/pm_service/pm_api_sys.c