Rtwo/kernel/motorola/sm8550-devicetrees/bindings/arm/msm/qcom,llcc.txt
2025-09-30 19:22:48 -05:00

102 lines
3.3 KiB
Text

== Introduction==
LLCC (Last Level Cache Controller) provides last level of cache memory in SOC,
that can be shared by multiple clients. Clients here are different cores in the
SOC, the idea is to minimize the local caches at the clients and migrate to
common pool of memory. Cache memory is divided into partitions called slices
which are assigned to clients. Clients can query the slice details, activate
and deactivate them.
Properties:
- compatible:
Usage: required
Value type: <string>
Definition: must be "qcom,sdm845-llcc" or "qcom,sm8150-llcc" or
"qcom,lahaina-llcc" or "qcom,shima-llcc" or "qcom,waipio-llcc"
or "qcom,sdxlemur-llcc" or "qcom,diwali-llcc"
or "qcom,kalama-llcc" or "qcom,cinder-llcc"
or "qcom,sdmshrike-llcc" or "qcom,lemans-llcc"
or "qcom,crow-llcc" or "qcom,kona-llcc".
"qcom,llcc-v2" must be appended for V2 hardware or
"qcom,llcc-v21" for V2.1 or "qcom,llcc-v31" for V3.1 or
"qcom,llcc-v41" for V4.1 or "qcom,llcc-v50" for V5.0.
- reg:
Usage: required
Value Type: <prop-encoded-array>
Definition: The first element specifies the llcc base start address and
the size of the register region. The second element specifies
the llcc broadcast base address and size of the register region.
The third element is optional and specifies the feature register
used to decide which llcc configuration to use if multiple are
available.
- reg-names:
Usage: required
Value Type: <stringlist>
Definition: Register region names. Must be "llcc_base", "llcc_broadcast_base".
The third element is needed only if multiple llcc configurations
are available and must be "multi_ch_reg".
- interrupts:
Usage: required
Definition: The interrupt is associated with the llcc edac device.
It's used for llcc cache single and double bit error detection
and reporting.
- multi-ch-off:
Usage: optional
Value Type: <prop-encoded-array>
Definition: If this exists, then the device has the potential to be configured
with different numbers of ddr channels at runtime. The value here
specifies the offset in bits into the "multi_ch_reg" register and
and the number of bits used to decied which llcc configuration to
use.
- max-banks
Usage: optional
Value Type: <prop-encoded-array>
Definition: If this exists, then the device has a potential to only use a
certain number of banks. This caps the number of banks used
at the value set.
Example:
cache-controller@1100000 {
compatible = "qcom,sdm845-llcc";
reg = <0x1100000 0x200000>, <0x1300000 0x50000> ;
reg-names = "llcc_base", "llcc_broadcast_base";
interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>;
};
LLCC Performance Monitor
===
- compatible:
Usage: required
Value type: <string>
Definition: must be "qcom,llcc-perfom"
- clocks:
Usage: required
Value type: <prop-encoded-array>
Definition: List of phandles and clock specifier pairs for the llcc perfmon
trace feature support.
- clock-names:
Usage: required
Value type: <stringlist>
Definition: List of clock input name strings sorted in the same
order as the clocks property. Definition must have
"qdss_clk"
Example:
cache-controller@1100000 {
...
llcc-perfmon {
compatible = "qcom,llcc-perfmon";
clocks = <&aoss_qmp QDSS_CLK>;
clock-names = "qdss_clk";
};
...
};