M7350/kernel/Documentation/devicetree/bindings/arm/msm/clock-cpu-8996.txt
2024-09-09 08:57:42 +00:00

79 lines
2.9 KiB
Plaintext

Qualcomm MSM 8996 CPU clock tree
clock-cpu-8996 is a device that represents the MSM 8996 CPU subsystem
clock tree. It lists the various power supplies that need to be scaled when
the clocks are scaled and also other HW specific parameters like fmax tables,
PLL FMAXes etc.
Required properties:
- compatible: Must be either "qcom,cpu-clock-8996" or
"qcom,cpu-clock-8996-v3"
- reg: Pairs of physical base addresses and region sizes of
memory mapped registers.
- reg-names: Names of the bases for the above registers. Expected
bases are:
"pwrcl_pll", "perfcl_pll", "cbf_pll", "pwrcl_mux",
"perfcl_mux", "cbf_mux", "efuse";
- vdd-perfcl-supply: The regulator powering the power cluster
- vdd-pwrcl-supply: The regulator powering the perf cluster
- vdd-cbf-supply: The regulator powering the CBF interconnect
- vdd-dig-supply: The regulator powering the cluster PLLs
- qcom,pwrcl-speedbinY-vZ:
A table of CPU frequency (Hz) to voltage (corner)
mapping that represents the max frequency possible
for each supported voltage level for the power cluster.
'Y' is the speed bin into which the device falls into -
a bin will have unique frequency-voltage relationships.
'Z' is the characterization version, implying that
characterization (deciding what speed bin a device
falls into) methods and/or encoding may change. The
values 'Y' and 'Z' are read from efuse registers, and
the right table is picked from multiple possible tables.
- qcom,perfcl-speedbinY-vZ:
Similar to the qcom,pwrcl-speedbinY-vZ property above,
except this frequency to voltage table is applied to the
clock for the perf cluster.
- qcom,cbf-speedbinY-vZ:
Similar to the qcom,perfcl-speedbinY-vZ property above,
except this frequency to voltage table is applied to the
clock for the CBF.
- cbf-dev: The CBF cache device to which the OPP table for the
CBF clock domain will be added.
Example:
clock_cpu: qcom,cpu-clock-8996@ {
compatible = "qcom,cpu-clock-8996";
reg = <0x06400000 0x1000>,
<0x06480000 0x1000>,
<0x09A20000 0x1000>,
<0x06400000 0x1000>,
<0x06480000 0x1000>,
<0x09A11000 0x1000>,
<0x00070130 0x8>;
reg-names = "pwrcl_pll", "perfcl_pll", "cbf_pll", "pwrcl_mux", "perfcl_mux", "cbf_mux", "efuse";
vdd-pwrcl-supply = <&apc_vreg_corner>;
vdd-perfcl-supply = <&apc_vreg_corner>;
vdd-cbf-supply = <&apc_vreg_corner>;
vdd-dig-supply = <&pm8994_s1_corner_ao>;
qcom,pwrcl-speedbin0-v0 =
< 0 0 >,
< 300000000 1 >,
< 345600000 2 >,
< 422400000 3 >,
< 1459200000 18 >;
qcom,perfcl-speedbin0-v0 =
< 0 0 >,
< 300000000 1 >,
< 345600000 2 >,
< 422400000 3 >,
< 1593600000 18 >;
qcom,cbf-speedbin0-v0 =
< 0 0 >,
< 300000000 1 >,
< 384000000 3 >,
< 1036800000 18 >;
clock-names = "xo_ao", "aux_clk";
clocks = <&clock_gcc clk_cxo_clk_src_ao>,
<&clock_gcc clk_gpll0_out_main>;
#clock-cells = <1>;
};