M7350/kernel/Documentation/devicetree/bindings/arm/msm/clock-cpu-titanium.txt

65 lines
2.4 KiB
Plaintext
Raw Normal View History

2024-09-09 08:57:42 +00:00
Qualcomm MSMTITANIUM CPU clock tree
clock-cpu-titanium is a device that represents the MSMTITANIUM CPU subystem 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 etc.
The root clock generator could have the ramp controller in built.
Ramp control will allow programming the sequence ID for pulse swallowing,
enable sequence and for linking sequence IDs.
Required properties:
- compatible: Must be "qcom,clock-cpu-titanium".
- 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:
"c0-pll", "c1-pll", "c0-mux", "c1-mux", "cci-mux",
"efuse", "perf_base"(optional), "rcgwr-c0-base(optional)",
"rcgwr-c1-base(optional)".
- clocks: The clocks sources used by the cluster/cci mux.
- clock-names: Name of the clocks for the above clocks.
- vdd-mx-supply: The regulator powering all the PLLs of clusters & cci.
- vdd-cl-supply: The regulator powering the clusters & cci.
- qcom,speedX-bin-vY-ZZZ:
A table of CPU frequency (Hz) to voltage (corner)
mapping that represents the max frequency possible
for each supported voltage level for a CPU. 'X' is
the speed bin into which the device falls into - a
bin will have unique frequency-voltage relationships.
'Y' is the characterization version, implying that
characterization (deciding what speed bin a device
falls into) methods and/or encoding may change. The
values 'X' and 'Y' are read from efuse registers, and
the right table is picked from multiple possible tables.
'ZZZ' can be cl for(c0 & c1) or cci depending on whether
the table for the clusters or cci.
Example:
clock_cpu: qcom,cpu-clock-titanium@b116000 {
compatible = "qcom,cpu-clock-titanium";
reg = <0xb114000 0x68>,
<0xb014000 0x68>,
<0xb116000 0x400>,
<0xb111050 0x08>,
<0xb011050 0x08>,
<0xb1d1050 0x08>,
<0x00a412c 0x08>;
reg-names = "rcgwr-c0-base", "rcgwr-c1-base",
"c0-pll", "c0-mux", "c1-mux",
"cci-mux", "efuse";
vdd-mx-supply = <&pmtitanium_s7_level_ao>;
vdd-cl-supply = <&apc_vreg_corner>;
clocks = <&clock_gcc clk_xo_a_clk_src>;
clock-names = "xo_a";
qcom,num-clusters = <2>;
qcom,speed0-bin-v0-cl =
< 0 0>,
< 2208000000 7>;
qcom,speed0-bin-v0-cci =
< 0 0>,
< 883200000 7>;
#address-cells = <1>;
#size-cells = <1>;
};