android-kernel-a71/Documentation/devicetree/bindings/net/qcom,emac-dwc-eqos.txt
2024-11-30 08:51:05 +01:00

91 lines
3.1 KiB
Plaintext

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