• Rajneesh Bhardwaj's avatar
    platform/x86: Add PMC Driver for Intel Core SoC · b740d2e9
    Rajneesh Bhardwaj authored
    This patch adds the Power Management Controller driver as a PCI driver
    for Intel Core SoC architecture.
    
    This driver can utilize debugging capabilities and supported features
    as exposed by the Power Management Controller.
    
    Please refer to the below specification for more details on PMC features.
    http://www.intel.in/content/www/in/en/chipsets/100-series-chipset-datasheet-vol-2.html
    
    The current version of this driver exposes SLP_S0_RESIDENCY counter.
    This counter can be used for detecting fragile SLP_S0 signal related
    failures and take corrective actions when PCH SLP_S0 signal is not
    asserted after kernel freeze as part of suspend to idle flow
    (echo freeze > /sys/power/state).
    
    Intel Platform Controller Hub (PCH) asserts SLP_S0 signal when it
    detects favorable conditions to enter its low power mode. As a
    pre-requisite the SoC should be in deepest possible Package C-State
    and devices should be in low power mode. For example, on Skylake SoC
    the deepest Package C-State is Package C10 or PC10. Suspend to idle
    flow generally leads to PC10 state but PC10 state may not be sufficient
    for realizing the platform wide power potential which SLP_S0 signal
    assertion can provide.
    
    SLP_S0 signal is often connected to the Embedded Controller (EC) and the
    Power Management IC (PMIC) for other platform power management related
    optimizations.
    
    In general, SLP_S0 assertion == PC10 + PCH low power mode + ModPhy Lanes
    power gated + PLL Idle.
    
    As part of this driver, a mechanism to read the SLP_S0_RESIDENCY is exposed
    as an API and also debugfs features are added to indicate SLP_S0 signal
    assertion residency in microseconds.
    
    echo freeze > /sys/power/state
    wake the system
    cat /sys/kernel/debug/pmc_core/slp_s0_residency_usec
    Signed-off-by: default avatarRajneesh Bhardwaj <rajneesh.bhardwaj@intel.com>
    Signed-off-by: default avatarVishwanath Somayaji <vishwanath.somayaji@intel.com>
    Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: default avatarDarren Hart <dvhart@linux.intel.com>
    b740d2e9
pmc_core.h 884 Bytes