• Huacai Chen's avatar
    cpufreq: Add Loongson-3 CPUFreq driver support · ccf51454
    Huacai Chen authored
    Some of LoongArch processors (Loongson-3 series) support DVFS, their
    IOCSR.FEATURES has IOCSRF_FREQSCALE set. And they has a micro-core in
    the package called SMC (System Management Controller), which can be
    used to detect temperature, control fans, scale frequency and voltage,
    etc.
    
    The Loongson-3 CPUFreq driver is very simple now, it communicate with
    SMC, get DVFS info, set target frequency from CPUFreq core, and so on.
    
    There is a command list to interact with SMC, widely-used commands in
    the CPUFreq driver include:
    
    CMD_GET_VERSION: Get SMC firmware version.
    
    CMD_GET_FEATURE: Get enabled SMC features.
    
    CMD_SET_FEATURE: Enable SMC features, such as basic DVFS, BOOST.
    
    CMD_GET_FREQ_LEVEL_NUM: Get the number of all frequency levels.
    
    CMD_GET_FREQ_BOOST_LEVEL: Get the first boost frequency level.
    
    CMD_GET_FREQ_LEVEL_INFO: Get the detail info of a frequency level.
    
    CMD_GET_FREQ_INFO: Get the current frequency.
    
    CMD_SET_FREQ_INFO: Set the target frequency.
    
    In future we will add automatic frequency scaling, which is similar to
    Intel's HWP (HardWare P-State).
    Signed-off-by: default avatarBinbin Zhou <zhoubinbin@loongson.cn>
    Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
    [ Viresh: Minor formatting cleanups, change return type of exit() to
    	  void and use devm_mutex_init() ]
    Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
    ccf51454
loongson3_cpufreq.c 8.79 KB