• Jolly Shah's avatar
    zynqmp: pm: Reimplement clock disable EEMI API · d3a78ca4
    Jolly Shah authored
    
    
    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: default avatarMirela Simonovic <mirela.simonovic@aggios.com>
    Acked-by: default avatarWill Wong <WILLW@xilinx.com>
    Signed-off-by: default avatarJolly Shah <jollys@xilinx.com>
    d3a78ca4
pm_api_sys.c 39.6 KB