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

Commit ad19e73f authored by Skylar Chang's avatar Skylar Chang
Browse files

ARM: dts: msm: Add EMAC node for auto platform



Add pinctrl settings for emac related gpios.

Change-Id: Ic7ecfbab68c245aca8d2d9bfa6c9bb7a68bd5310
Acked-by: default avatarNisha Menon <nmenon@qti.qualcomm.com>
Signed-off-by: default avatarSkylar Chang <chiaweic@codeaurora.org>
parent 9cc49ddf
Loading
Loading
Loading
Loading
+86 −0
Original line number Diff line number Diff line
@@ -602,3 +602,89 @@
&mdss_mdp {
	connectors = <&dsi_dp1 &dsi_dp2 &sde_dp &sde_wb>;
};

#include <dt-bindings/gpio/gpio.h>

&soc {
	emac_hw: qcom,emac@00020000 {
		compatible = "qcom,emac-dwc-eqos";
		qcom,arm-smmu;
		emac-core-version = <2>;
		reg = <0x20000 0x10000>,
			<0x36000 0x100>,
			<0x3D00000 0x300000>;
		reg-names = "emac-base", "rgmii-base", "tlmm-central-base";
		interrupts-extended = <&pdc 0 689 4>, <&pdc 0 699 4>,
			<&tlmm 124 2>, <&pdc 0 691 4>,
			<&pdc 0 692 4>, <&pdc 0 693 4>,
			<&pdc 0 694 4>, <&pdc 0 695 4>,
			<&pdc 0 696 4>, <&pdc 0 697 4>,
			<&pdc 0 698 4>, <&pdc 0 699 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";
		clocks = <&clock_gcc GCC_EMAC_AXI_CLK>,
			<&clock_gcc GCC_EMAC_PTP_CLK>,
			<&clock_gcc GCC_EMAC_RGMII_CLK>,
			<&clock_gcc GCC_EMAC_SLV_AHB_CLK>;
		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>;
		gdsc_emac-supply = <&emac_gdsc>;
		pinctrl-names = "dev-emac-mdc",
			"dev-emac-mdio",
			"dev-emac-rgmii_txd0_state",
			"dev-emac-rgmii_txd1_state",
			"dev-emac-rgmii_txd2_state",
			"dev-emac-rgmii_txd3_state",
			"dev-emac-rgmii_txc_state",
			"dev-emac-rgmii_tx_ctl_state",
			"dev-emac-rgmii_rxd0_state",
			"dev-emac-rgmii_rxd1_state",
			"dev-emac-rgmii_rxd2_state",
			"dev-emac-rgmii_rxd3_state",
			"dev-emac-rgmii_rxc_state",
			"dev-emac-rgmii_rx_ctl_state";

		pinctrl-0 = <&emac_mdc>;
		pinctrl-1 = <&emac_mdio>;

		pinctrl-2 = <&emac_rgmii_txd0>;
		pinctrl-3 = <&emac_rgmii_txd1>;
		pinctrl-4 = <&emac_rgmii_txd2>;
		pinctrl-5 = <&emac_rgmii_txd3>;
		pinctrl-6 = <&emac_rgmii_txc>;
		pinctrl-7 = <&emac_rgmii_tx_ctl>;

		pinctrl-8 = <&emac_rgmii_rxd0>;
		pinctrl-9 = <&emac_rgmii_rxd1>;
		pinctrl-10 = <&emac_rgmii_rxd2>;
		pinctrl-11 = <&emac_rgmii_rxd3>;
		pinctrl-12 = <&emac_rgmii_rxc>;
		pinctrl-13 = <&emac_rgmii_rx_ctl>;

		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>;
		};
	};
};
+176 −0
Original line number Diff line number Diff line
@@ -3947,5 +3947,181 @@
				bias-pull-up;
			};
		};

		emac {
			emac_mdc: emac_mdc {
				mux {
					pins = "gpio7";
					function = "rgmii_mdc";
				};

				config {
					pins = "gpio7";
					bias-pull-up;
				};
			};
			emac_mdio: emac_mdio {
				mux {
					pins = "gpio59";
					function = "rgmii_mdio";
				};

				config {
					pins = "gpio59";
					bias-pull-up;
				};
			};

			emac_rgmii_txd0: emac_rgmii_txd0 {
				mux {
					pins = "gpio122";
					function = "rgmii_txd0";
				};

				config {
					pins = "gpio122";
					bias-pull-up;
					drive-strength = <16>;
				};
			};

			emac_rgmii_txd1: emac_rgmii_txd1 {
				mux {
					pins = "gpio4";
					function = "rgmii_txd1";
				};

				config {
					pins = "gpio4";
					bias-pull-up;
					drive-strength = <16>;
				};
			};

			emac_rgmii_txd2: emac_rgmii_txd2 {
				mux {
					pins = "gpio5";
					function = "rgmii_txd2";
				};

				config {
					pins = "gpio5";
					bias-pull-up;
					drive-strength = <16>;
				};
			};
			emac_rgmii_txd3: emac_rgmii_txd3 {
				mux {
					pins = "gpio6";
					function = "rgmii_txd3";
				};

				config {
					pins = "gpio6";
					bias-pull-up;
					drive-strength = <16>;
				};
			};
			emac_rgmii_txc: emac_rgmii_txc {
				mux {
					pins = "gpio114";
					function = "rgmii_txc";
				};

				config {
					pins = "gpio114";
					bias-pull-up;
					drive-strength = <16>;
				};
			};
			emac_rgmii_tx_ctl: emac_rgmii_tx_ctl {
				mux {
					pins = "gpio121";
					function = "rgmii_tx";
				};

				config {
					pins = "gpio121";
					bias-pull-up;
					drive-strength = <16>;
				};
			};


			emac_rgmii_rxd0: emac_rgmii_rxd0 {
				mux {
					pins = "gpio117";
					function = "rgmii_rxd0";
				};

				config {
					pins = "gpio117";
					bias-disable;  /* NO pull */
					drive-strength = <2>;  /* 2MA */
				};
			};

			emac_rgmii_rxd1: emac_rgmii_rxd1 {
				mux {
					pins = "gpio118";
					function = "rgmii_rxd1";
				};

				config {
					pins = "gpio118";
					bias-disable;  /* NO pull */
					drive-strength = <2>;
				};
			};

			emac_rgmii_rxd2: emac_rgmii_rxd2 {
				mux {
					pins = "gpio119";
					function = "rgmii_rxd2";
				};

				config {
					pins = "gpio119";
					bias-disable;	/* NO pull */
					drive-strength = <2>;
				};
			};
			emac_rgmii_rxd3: emac_rgmii_rxd3 {
				mux {
					pins = "gpio120";
					function = "rgmii_rxd3";
				};

				config {
					pins = "gpio120";
					bias-disable;	/* NO pull */
					drive-strength = <2>;
				};
			};
			emac_rgmii_rxc: emac_rgmii_rxc {
				mux {
					pins = "gpio115";
					function = "rgmii_rxc";
				};

				config {
					pins = "gpio115";
					bias-disable;	/* NO pull */
					drive-strength = <2>;
				};
			};
			emac_rgmii_rx_ctl: emac_rgmii_rx_ctl {
				mux {
					pins = "gpio116";
					function = "rgmii_rx";
				};

				config {
					pins = "gpio116";
					bias-disable;  /* NO pull */
					drive-strength = <2>;
				};
			};
		};
	};
};