Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 35458daf authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "ARM: dts: msm: STMMAC Add doc for EMAC node"

parents f5d4c37d 28fac949
Loading
Loading
Loading
Loading
+90 −0
Original line number Diff line number Diff line
Qualcomm Technologies Inc. EMAC Gigabit Ethernet controller

This network controller consists of the MAC and
RGMII IO Macro for interfacing with PHY.

Required properties:

emac_hw node:
- compatible: Should be "qcom,emac-dwc-eqos"
- reg: Offset and length of the register regions for the mac and io-macro
- interrupts: Interrupt number used by this controller
- io-macro-info: Internal io-macro-info
- emac_emb_smmu: Internal emac smmu node
- qcom,phy-reset-delay-msecs  is for delays
	The 1st cell is reset pulse in milli seconds.
	The 2nd cell is reset post-delay in milli seconds.

Optional:
- qcom,msm-bus,name: String representing the client-name
- qcom,msm-bus,num-cases: Total number of usecases
- qcom,msm-bus,num-paths: Total number of master-slave pairs
- qcom,msm-bus,vectors-KBps: Arrays of unsigned integers representing:
                             master-id, slave-id, arbitrated bandwidth
                             in KBps, instantaneous bandwidth in KBps
qcom,bus-vector-names: specifies string IDs for the corresponding bus vectors
                       in the same order as qcom,msm-bus,vectors-KBps property.
- qcom,arm-smmu: Boolean, if present enables EMAC SMMU support in sdxpoorwills.

Internal io-macro-info:
- io-macro-bypass-mode: <0 or 1> internal or external delay configuration
- io-interface: <rgmii/mii/rmii> PHY interface used

Internal emac_emb_smmu:
- compatible: Should be "qcom,emac-smmu-embedded".
- qcom,smmu-s1-bypass: Boolean, if present S1 bypass is enabled.
- iommus: Includes the <&smmu_phandle stream_id size> pair for each context
			bank.
- qcom,iova-mapping: <starting_address size> of the smmu context bank.

Example:

soc {
	emac_hw: qcom,emac@00020000 {
			compatible = "qcom,emac-dwc-eqos";
			qcom,arm-smmu;
			reg = <0x20000 0x10000>,
				  <0x36000 0x100>;
				  <0x3D00000 0x300000>;
			reg-names = "emac-base", "rgmii-base";
			interrupts = <0 62 4>, <0 60 4>,
					<0 49 4>, <0 50 4>,
					<0 51 4>, <0 52 4>,
					<0 53 4>, <0 54 4>,
					<0 55 4>, <0 56 4>,
					<0 57 4>;
			interrupt-names = "sbd-intr", "lpi-intr",
				 "phy-intr", "tx-ch0-intr",
				 "tx-ch1-intr", "tx-ch2-intr",
				 "tx-ch3-intr", "tx-ch4-intr",
				 "rx-ch0-intr", "rx-ch1-intr",
				 "rx-ch2-intr", "rx-ch3-intr";
			qcom,msm-bus,name = "emac";
			qcom,msm-bus,num-cases = <4>;
			qcom,msm-bus,num-paths = <2>;
			qcom,msm-bus,vectors-KBps =
				<98 512 0 0>, <1 781 0 0>, /* No vote */
				<98 512 1250 0>, <1 781 0 40000>,  /* 10Mbps vote */
				<98 512 12500 0>, <1 781 0 40000>,  /* 100Mbps vote */
				<98 512 125000 0>, <1 781 0 40000>; /* 1000Mbps vote */
			qcom,bus-vector-names = "10", "100", "1000";
			clock-names = "emac_axi_clk", "emac_ptp_clk",
				"emac_rgmii_clk", "emac_slv_ahb_clk";
			qcom,phy-reset = <&tlmm 79 GPIO_ACTIVE_HIGH>;
			qcom,phy-intr-redirect = <&tlmm 124 GPIO_ACTIVE_LOW>;
			qcom,phy-reset-delay-msecs = <10 50>;
			gdsc_emac-supply = <&emac_gdsc>;

			io-macro-info {
				io-macro-bypass-mode = <0>;
				io-interface = "rgmii";
			};

			emac_emb_smmu: emac_emb_smmu {
				compatible = "qcom,emac-smmu-embedded";
				qcom,smmu-s1-bypass;
				iommus = <&apps_smmu 0x3C0 0x0>;
				qcom,iova-mapping = <0x80000000 0x40000000>;
			};
		};
}