kernel_samsung_a34x-permissive/Documentation/devicetree/bindings/interconnect/mediatek,mmqos.txt
2024-04-28 15:49:01 +02:00

79 lines
2.7 KiB
Plaintext
Executable file

Mediatek MMQoS Network-On-Chip interconnect driver binding
=========================================
= MMQoS interconnect providers =
The Mediatek MMQoS(Multimedia Quality of Service) interconnect provider will
collect bandwidth requests from MM users, such as display, camera, mdp and
video codec. The collected bandwidth information is used to configure SMI
settings dynamically and pass the bandwidth information to dvfsrc.
About the SMI architecture, please refer to the following documents.
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-common.txt
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt
About dvfsrc, please refer to
Documentation/devicetree/bindings/soc/mediatek/dvfsrc.txt.
Required properties:
- compatible: must contain only one of the following:
"mediatek,mt6779-mmqos"
- #interconnect-cells: must be 1
- mediatek,larbs: contains a list of phandles of smi larbs
- clock, clock-names: clocks according to the common clock bindings.
These are clocks for smi common hardwares and they
should be in order of the index of smi common. For
example, the first element should be the clock
of SLAVE_COMMON(0) defined in the MMQoS driver, and the
second element should be the clock of SLAVE_COMMON(1).
- interconnects: contains interconnect paths to pass bandwidth to dvfsrc.
interconnect node id definition for dvfsrc is defined in:
include/dt-bindings/interconnect/mtk,mt6779-emi.h
- interconnect-names: path names in interconnects property.
Example:
mmqos: interconnect {
compatible = "mediatek,mt6779-mmqos";
#interconnect-cells = <1>;
mediatek,larbs = <&larb0 &larb1 &larb2 &larb3
&larb5 &larb7 &larb8 &larb9
&larb10 &larb11>;
clocks = <&topckgen CLK_TOP_MM>;
clock-names = "mm_sel";
interconnects = <&ddr_emi MT6779_MASTER_MMSYS
&ddr_emi MT6779_SLAVE_DDR_EMI>;
interconnect-names = "mmsys_path";
};
= MMQoS interconnect consumers =
Required properties:
interconnects: contains interconnect paths to report bandwidth information
Use some macros to define interconnet node ID and these macros
are defined in:
include/dt-bindings/interconnect/mtk,mmqos.h
Source port:
Use M4U port definition in:
include/dt-bindings/memory/mt6779-larb-port.h
Use MASTER_LARB_PORT macro to translate M4U port ID to
interconnect node ID
Destination port:
mt6779: must be SLAVE_COMMON(0)
interconnect-names: path names for interconnects property
Example:
vcodec_dec: vcodec@16000000 {
...
interconnects = <&mmqos MASTER_LARB_PORT(M4U_PORT_HW_VDEC_MC_EXT)
&mmqos SLAVE_COMMON(0)>,
<&mmqos MASTER_LARB_PORT(M4U_PORT_HW_VDEC_UFO_EXT)
&mmqos SLAVE_COMMON(0)>;
interconnect-names = "vdec_mc_ext", "vdec_ufo_ext";
};