On 03-05-18, 14:52, Ilia Lin wrote:
> In Certain Qualcomm Technologies, Inc. SoCs like apq8096 and msm8996
> that have KRYO processors, the CPU ferequencies subset and voltage value
> of each OPP varies based on the silicon variant in use.
> Qualcomm Technologies, Inc. Process Voltage Scaling Tables
> defines the voltage and frequency value based on the msm-id in SMEM
> and speedbin blown in the efuse combination.
> The qcom-cpufreq-kryo driver reads the msm-id and efuse value from the SoC
> to provide the OPP framework with required information.
> This is used to determine the voltage and frequency value for each OPP of
> operating-points-v2 table when it is parsed by the OPP framework.
> 
> This change adds documentation.
> 
> Signed-off-by: Ilia Lin <ilia...@codeaurora.org>
> ---
>  .../devicetree/bindings/opp/kryo-cpufreq.txt       | 693 
> +++++++++++++++++++++
>  1 file changed, 693 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/opp/kryo-cpufreq.txt
> 
> diff --git a/Documentation/devicetree/bindings/opp/kryo-cpufreq.txt 
> b/Documentation/devicetree/bindings/opp/kryo-cpufreq.txt
> new file mode 100644
> index 0000000..20cef9d
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/opp/kryo-cpufreq.txt
> @@ -0,0 +1,693 @@
> +Qualcomm Technologies, Inc. KRYO CPUFreq and OPP bindings
> +===================================
> +
> +In Certain Qualcomm Technologies, Inc. SoCs like apq8096 and msm8996
> +that have KRYO processors, the CPU ferequencies subset and voltage value
> +of each OPP varies based on the silicon variant in use.
> +Qualcomm Technologies, Inc. Process Voltage Scaling Tables
> +defines the voltage and frequency value based on the msm-id in SMEM
> +and speedbin blown in the efuse combination.
> +The qcom-cpufreq-kryo driver reads the msm-id and efuse value from the SoC
> +to provide the OPP framework with required information (existing HW bitmap).
> +This is used to determine the voltage and frequency value for each OPP of
> +operating-points-v2 table when it is parsed by the OPP framework.
> +
> +Required properties:
> +--------------------
> +In 'cpus' nodes:
> +- operating-points-v2: Phandle to the operating-points-v2 table to use.
> +
> +In 'operating-points-v2' table:
> +- compatible: Should be
> +     - 'operating-points-v2-kryo-cpu' for apq8096 and msm8996.
> +- nvmem-cells: A phandle pointing to a nvmem-cells node representing the
> +             efuse registers that has information about the
> +             speedbin that is used to select the right frequency/voltage
> +             value pair.
> +             Please refer the for nvmem-cells
> +             bindings Documentation/devicetree/bindings/nvmem/nvmem.txt
> +             and also examples below.
> +
> +In every OPP node:
> +- opp-supported-hw: A single 32 bit bitmap value, representing compatible HW.
> +                 Bitmap:
> +                     0:      MSM8996 V3, speedbin 0
> +                     1:      MSM8996 V3, speedbin 1
> +                     2:      MSM8996 V3, speedbin 2
> +                     3:      unused
> +                     4:      MSM8996 SG, speedbin 0
> +                     5:      MSM8996 SG, speedbin 1
> +                     6:      MSM8996 SG, speedbin 2
> +                     7-31:   unused
> +
> +Example 1:
> +---------
> +
> +     cpus {
> +             #address-cells = <2>;
> +             #size-cells = <0>;
> +
> +             CPU0: cpu@0 {
> +                     device_type = "cpu";
> +                     compatible = "qcom,kryo";
> +                     reg = <0x0 0x0>;
> +                     enable-method = "psci";
> +                     clocks = <&kryocc 0>;
> +                     cpu-supply = <&pm8994_s11_saw>;
> +                     operating-points-v2 = <&cluster0_opp>;
> +                     /* cooling options */
> +                     cooling-min-level = <0>;
> +                     cooling-max-level = <15>;

cooling min/max aren't required anymore, as I told you in the previous
version :)

> +     cluster0_opp: opp_table0 {
> +             compatible = "operating-points-v2-kryo-cpu";
> +             nvmem-cells = <&speedbin_efuse>;
> +             opp-shared;
> +
> +             opp-307200000 {
> +                     opp-hz = /bits/ 64 <  307200000 >;

You fixed spacing around frequency values in the dts but not here.

> +                     opp-microvolt = <905000 905000 1140000>;
> +                     opp-supported-hw = <0x77>;
> +                     clock-latency-ns = <200000>;
> +             };

-- 
viresh

Reply via email to