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

Commit 9a14e377 authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "ARM: dts: msm: EMAC changes for SM6150"

parents 101274de 89e00ab2
Loading
Loading
Loading
Loading
+81 −0
Original line number Diff line number Diff line
@@ -9,6 +9,9 @@
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/clock/qcom,gcc-sm6150.h>


&qupv3_se6_spi {
	status = "ok";
@@ -39,6 +42,84 @@
			status = "disabled";
		};
	};
	emac_hw: qcom,emac@20000 {
		compatible = "qcom,emac-dwc-eqos";
		qcom,arm-smmu;
		reg = <0x20000 0x10000>,
			<0x36000 0x100>;
		reg-names = "emac-base", "rgmii-base";
		dma-bit-mask = <32>;
		emac-core-version = <7>;
		interrupts-extended = <&pdc 0 660 4>, <&pdc 0 661 4>,
			<&tlmm 121 2>, <&pdc 0 651 4>,
			<&pdc 0 652 4>, <&pdc 0 653 4>,
			<&pdc 0 654 4>, <&pdc 0 655 4>,
			<&pdc 0 656 4>, <&pdc 0 657 4>,
			<&pdc 0 658 4>, <&pdc 0 659 4>,
			<&pdc 0 668 4>, <&pdc 0 669 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",
			"ptp_pps_irq_0","ptp_pps_irq_1";
		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 = "0", "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 = "eth_axi_clk", "eth_ptp_clk",
				"eth_rgmii_clk", "eth_slave_ahb_clk";
		qcom,phy-reset = <&tlmm 104 GPIO_ACTIVE_HIGH>;
		qcom,phy-intr-redirect = <&tlmm 121 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",
		"dev-emac-phy_intr", "dev-emac-phy_reset_state",
		"dev-emac_pin_pps_0";

		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>;
		pinctrl-14 = <&emac_phy_intr>;
		pinctrl-15 = <&emac_phy_reset_state>;
		pinctrl-16 = <&emac_pin_pps_0>;

		io-macro-info {
			io-macro-bypass-mode = <0>;
			io-interface = "rgmii";
		};
		emac_emb_smmu: emac_emb_smmu {
			compatible = "qcom,emac-smmu-embedded";
			iommus = <&apps_smmu 0x1C0 0x0>;
			qcom,iova-mapping = <0x80000000 0x40000000>;
		};
	};
};

&ufsphy_mem {
+211 −0
Original line number Diff line number Diff line
@@ -1413,6 +1413,217 @@
				};
			};
		};
		emac {
			emac_mdc: emac_mdc {
				mux {
					pins = "gpio113";
					function = "rgmii_mdc";
				};

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

				config {
					pins = "gpio112";
					bias-disable;  /* NO pull */
					drive-strength = <2>;
				};
			};
			emac_phy_intr: emac_phy_intr {
				mux {
					pins = "gpio121";
					function = "emac_phy";
				};

				config {
					pins = "gpio121";
					bias-disable;  /* NO pull */
					drive-strength = <2>;
				};
			};
			emac_phy_reset_state: emac_phy_reset_state {
				mux {
					pins = "gpio104";
					function = "gpio";
				};

				config {
					pins = "gpio104";
					bias-pull-up;
					drive-strength = <16>;
				};
			};
			emac_pin_pps_0: emac_pin_pps_0 {
				mux {
					pins = "gpio91";
					function = "rgmii_sync";
				};

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