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";
	};

