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 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: 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: 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>; 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", "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 = <3>; qcom,msm-bus,num-paths = <2>; qcom,msm-bus,vectors-KBps = <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"; 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 0x220 0xf>; qcom,iova-mapping = <0x80000000 0x40000000>; }; }; }