78 lines
2.9 KiB
Text
78 lines
2.9 KiB
Text
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>;
|
|
};
|