• Rajendra Nayak's avatar
    soc: qcom: rpmhpd: Add RPMh power domain driver · 279b7e8a
    Rajendra Nayak authored
    The RPMh power domain driver aggregates the corner votes from various
    consumers for the ARC resources and communicates it to RPMh.
    
    With RPMh we use 2 different numbering space for corners, one used
    by the clients to express their performance needs, and another used
    to communicate to RPMh hardware.
    
    The clients express their performance requirements using a sparse
    numbering space which are mapped to meaningful levels like RET, SVS,
    NOMINAL, TURBO etc which then get mapped to another number space
    between 0 and 15 which is communicated to RPMh. The sparse number space,
    also referred to as vlvl is mapped to the continuous number space of 0
    to 15, also referred to as hlvl, using command DB.
    
    Some power domain clients could request a performance state only while
    the CPU is active, while some others could request for a certain
    performance state all the time regardless of the state of the CPU.
    We handle this by internally aggregating the votes from both type of
    clients and then send the aggregated votes to RPMh.
    
    There are also 3 different types of votes that are comunicated to RPMh
    for every resource.
    1. ACTIVE_ONLY:
    	This specifies the requirement for the resource when the CPU is
     	active
    2. SLEEP:
    	This specifies the requirement for the resource when the CPU is
    	going to sleep
    3. WAKE_ONLY:
    	This specifies the requirement for the resource when the CPU is
    	coming out of sleep to active state
    
    We add data for all power domains on sdm845 SoC as part of the patch.
    The driver can be extended to support other SoCs which support RPMh
    Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    Reviewed-by: default avatarStephen Boyd <swboyd@chromium.org>
    Signed-off-by: default avatarRajendra Nayak <rnayak@codeaurora.org>
    Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
    Signed-off-by: default avatarAndy Gross <andy.gross@linaro.org>
    279b7e8a
Makefile 972 Bytes