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

Commit 175ce493 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "ARM: dts: msm: Add sdhc1 & sdhc2 support for msmgold"

parents e38963f9 bf1c3bc6
Loading
Loading
Loading
Loading
+58 −0
Original line number Original line Diff line number Diff line
@@ -171,3 +171,61 @@
		};
		};
	};
	};
};
};

&sdhc_1 {
	/* device core power supply */
	vdd-supply = <&pmgold_l8>;
	qcom,vdd-voltage-level = <2900000 2900000>;
	qcom,vdd-current-level = <200 570000>;

	/* device communication power supply */
	vdd-io-supply = <&pmgold_l5>;
	qcom,vdd-io-always-on;
	qcom,vdd-io-lpm-sup;
	qcom,vdd-io-voltage-level = <1800000 1800000>;
	qcom,vdd-io-current-level = <200 325000>;

	pinctrl-names = "active", "sleep";
	pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on  &sdc1_rclk_on>;
	pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>;

	qcom,clk-rates = <400000 20000000 25000000 50000000 100000000 192000000
								384000000>;
	qcom,nonremovable;
	qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v";

	status = "ok";
};

&sdhc_2 {
	/* device core power supply */
	vdd-supply = <&pmgold_l11>;
	qcom,vdd-voltage-level = <2950000 2950000>;
	qcom,vdd-current-level = <15000 800000>;

	/* device communication power supply */
	vdd-io-supply = <&pmgold_l12>;
	qcom,vdd-io-voltage-level = <1800000 2950000>;
	qcom,vdd-io-current-level = <200 22000>;

	pinctrl-names = "active", "sleep";
	pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>;

	#address-cells = <0>;
	interrupt-parent = <&sdhc_2>;
	interrupts = <0 1 2>;
	#interrupt-cells = <1>;
	interrupt-map-mask = <0xffffffff>;
	interrupt-map = <0 &intc 0 125 0
		1 &intc 0 221 0
		2 &tlmm 67 0>;
	interrupt-names = "hc_irq", "pwr_irq", "status_irq";
	cd-gpios = <&tlmm 67 0x1>;

	qcom,clk-rates = <400000 20000000 25000000 50000000 100000000
								200000000>;
	qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104";

	status = "ok";
};
+58 −0
Original line number Original line Diff line number Diff line
@@ -137,3 +137,61 @@
&dsi_truly_720_vid {
&dsi_truly_720_vid {
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};
};

&sdhc_1 {
	/* device core power supply */
	vdd-supply = <&pmgold_l8>;
	qcom,vdd-voltage-level = <2900000 2900000>;
	qcom,vdd-current-level = <200 570000>;

	/* device communication power supply */
	vdd-io-supply = <&pmgold_l5>;
	qcom,vdd-io-always-on;
	qcom,vdd-io-lpm-sup;
	qcom,vdd-io-voltage-level = <1800000 1800000>;
	qcom,vdd-io-current-level = <200 325000>;

	pinctrl-names = "active", "sleep";
	pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>;
	pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>;

	qcom,clk-rates = <400000 20000000 25000000 50000000 100000000 192000000
								384000000>;
	qcom,nonremovable;
	qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v";

	status = "ok";
};

&sdhc_2 {
	/* device core power supply */
	vdd-supply = <&pmgold_l11>;
	qcom,vdd-voltage-level = <2950000 2950000>;
	qcom,vdd-current-level = <15000 800000>;

	/* device communication power supply */
	vdd-io-supply = <&pmgold_l12>;
	qcom,vdd-io-voltage-level = <1800000 2950000>;
	qcom,vdd-io-current-level = <200 22000>;

	pinctrl-names = "active", "sleep";
	pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>;

	#address-cells = <0>;
	interrupt-parent = <&sdhc_2>;
	interrupts = <0 1 2>;
	#interrupt-cells = <1>;
	interrupt-map-mask = <0xffffffff>;
	interrupt-map = <0 &intc 0 125 0
		1 &intc 0 221 0
		2 &tlmm 67 0>;
	interrupt-names = "hc_irq", "pwr_irq", "status_irq";
	cd-gpios = <&tlmm 67 0x1>;

	qcom,clk-rates = <400000 20000000 25000000 50000000 100000000
								200000000>;
	qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104";

	status = "ok";
};
+152 −0
Original line number Original line Diff line number Diff line
@@ -503,6 +503,158 @@
			};
			};
		};
		};


		pmx_sdc1_rclk {
			sdc1_rclk_on: sdc1_rclk_on {
				config {
					pins = "sdc1_rclk";
					bias-pull-down; /* pull down */
				};
			};

			sdc1_rclk_off: sdc1_rclk_off {
				config {
					pins = "sdc1_rclk";
					bias-pull-down; /* pull down */
				};
			};
		};

		pmx_sdc1_clk {
			sdc1_clk_on: sdc1_clk_on {
				config {
					pins = "sdc1_clk";
					bias-disable; /* NO pull */
					drive-strength = <16>; /* 16 MA */
				};
			};

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

		pmx_sdc1_cmd {
			sdc1_cmd_on: sdc1_cmd_on {
				config {
					pins = "sdc1_cmd";
					bias-pull-up; /* pull up */
					drive-strength = <10>; /* 10 MA */
				};
			};

			sdc1_cmd_off: sdc1_cmd_off {
				config {
					pins = "sdc1_cmd";
					bias-pull-up; /* pull up */
					drive-strength = <2>; /* 2 MA */
				};
			};
		};

		pmx_sdc1_data {
			sdc1_data_on: sdc1_data_on {
				config {
					pins = "sdc1_data";
					bias-pull-up; /* pull up */
					drive-strength = <10>; /* 10 MA */
				};
			};

			sdc1_data_off: sdc1_data_off {
				config {
					pins = "sdc1_data";
					bias-pull-up; /* pull up */
					drive-strength = <2>; /* 2 MA */
				};
			};
		};

		sdhc2_cd_pin {
			sdc2_cd_on: cd_on {
				mux {
					pins = "gpio67";
					function = "gpio";
				};

				config {
					pins = "gpio67";
					drive-strength = <2>;
					bias-pull-up;
				};
			};

			sdc2_cd_off: cd_off {
				mux {
					pins = "gpio67";
					function = "gpio";
				};

				config {
					pins = "gpio67";
					drive-strength = <2>;
					bias-disable;
				};
			};
		};

		pmx_sdc2_clk {
			sdc2_clk_on: sdc2_clk_on {
				config {
					pins = "sdc2_clk";
					drive-strength = <16>; /* 16 MA */
					bias-disable; /* NO pull */
				};
			};

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

		pmx_sdc2_cmd {
			sdc2_cmd_on: sdc2_cmd_on {
				config {
					pins = "sdc2_cmd";
					bias-pull-up; /* pull up */
					drive-strength = <10>; /* 10 MA */
				};
			};

			sdc2_cmd_off: sdc2_cmd_off {
				config {
					pins = "sdc2_cmd";
					bias-pull-up; /* pull up */
					drive-strength = <2>; /* 2 MA */
				};
			};
		};

		pmx_sdc2_data {
			sdc2_data_on: sdc2_data_on {
				config {
					pins = "sdc2_data";
					bias-pull-up; /* pull up */
					drive-strength = <10>; /* 10 MA */
				};
			};

			sdc2_data_off: sdc2_data_off {
				config {
					pins = "sdc2_data";
					bias-pull-up; /* pull up */
					drive-strength = <2>; /* 2 MA */
				};
			 };
		};

		cdc-pdm-2-lines {
		cdc-pdm-2-lines {
			cdc_pdm_lines_2_act: pdm_lines_2_on {
			cdc_pdm_lines_2_act: pdm_lines_2_on {
				mux {
				mux {
+88 −0
Original line number Original line Diff line number Diff line
@@ -43,6 +43,8 @@
		i2c2 = &i2c_2;
		i2c2 = &i2c_2;
		i2c5 = &i2c_5;
		i2c5 = &i2c_5;
		i2c3 = &i2c_3;
		i2c3 = &i2c_3;
		sdhc1 = &sdhc_1; /* SDC1 eMMC slot */
		sdhc2 = &sdhc_2; /* SDC2 for SD card */
	};
	};


	reserved-memory {
	reserved-memory {
@@ -1311,6 +1313,92 @@
		qcom,fast-shutdown;
		qcom,fast-shutdown;
	};
	};



	sdhc_1: sdhci@7824900 {
		compatible = "qcom,sdhci-msm";
		reg = <0x7824900 0x500>, <0x7824000 0x800>, <0x7824e00 0x200>;
		reg-names = "hc_mem", "core_mem", "cmdq_mem";

		interrupts = <0 123 0>, <0 138 0>;
		interrupt-names = "hc_irq", "pwr_irq";

		qcom,bus-width = <8>;
		qcom,large-address-bus;

		qcom,devfreq,freq-table = <50000000 200000000>;

		qcom,pm-qos-irq-type = "affine_irq";
		qcom,pm-qos-irq-latency = <2 200>;

		qcom,pm-qos-cpu-groups = <0x0f>;
		qcom,pm-qos-cmdq-latency-us = <2 200>, <2 200>;

		qcom,pm-qos-legacy-latency-us = <2 200>, <2 200>;

		qcom,msm-bus,name = "sdhc1";
		qcom,msm-bus,num-cases = <9>;
		qcom,msm-bus,num-paths = <1>;
		qcom,msm-bus,vectors-KBps = <78 512 0 0>, /* No vote */
			<78 512 1046 3200>,    /* 400 KB/s*/
			<78 512 52286 160000>, /* 20 MB/s */
			<78 512 65360 200000>, /* 25 MB/s */
			<78 512 130718 400000>, /* 50 MB/s */
			<78 512 130718 400000>, /* 100 MB/s */
			<78 512 261438 800000>, /* 200 MB/s */
			<78 512 261438 800000>, /* 400 MB/s */
			<78 512 1338562 4096000>; /* Max. bandwidth */
		qcom,bus-bw-vectors-bps = <0 400000 20000000 25000000
			50000000 100000000 200000000 400000000 4294967295>;

		clocks = <&clock_gcc clk_gcc_sdcc1_ahb_clk>,
			 <&clock_gcc clk_gcc_sdcc1_apps_clk>,
			 <&clock_gcc clk_gcc_sdcc1_ice_core_clk>;
		clock-names = "iface_clk", "core_clk", "ice_core_clk";
		qcom,ice-clk-rates = <200000000 100000000>;

		qcom,scaling-lower-bus-speed-mode = "DDR52";
		status = "disabled";
	};

	sdhc_2: sdhci@7864900 {
		compatible = "qcom,sdhci-msm";
		reg = <0x7864900 0x500>, <0x7864000 0x800>;
		reg-names = "hc_mem", "core_mem";

		interrupts = <0 125 0>, <0 221 0>;
		interrupt-names = "hc_irq", "pwr_irq";

		qcom,bus-width = <4>;
		qcom,large-address-bus;

		qcom,pm-qos-irq-type = "affine_irq";
		qcom,pm-qos-irq-latency = <2 200>;

		qcom,pm-qos-cpu-groups = <0x0f>;
		qcom,pm-qos-legacy-latency-us = <2 200>, <2 200>;

		qcom,msm-bus,name = "sdhc2";
		qcom,msm-bus,num-cases = <8>;
		qcom,msm-bus,num-paths = <1>;
		qcom,msm-bus,vectors-KBps = <81 512 0 0>, /* No vote */
			<81 512 1046 3200>,    /* 400 KB/s*/
			<81 512 52286 160000>, /* 20 MB/s */
			<81 512 65360 200000>, /* 25 MB/s */
			<81 512 130718 400000>, /* 50 MB/s */
			<81 512 261438 800000>, /* 100 MB/s */
			<81 512 261438 800000>, /* 200 MB/s */
			<81 512 1338562 4096000>; /* Max. bandwidth */
		qcom,bus-bw-vectors-bps = <0 400000 20000000 25000000 50000000
			100000000 200000000 4294967295>;

		qcom,devfreq,freq-table = <50000000 200000000>;
		clocks = <&clock_gcc clk_gcc_sdcc2_ahb_clk>,
			<&clock_gcc clk_gcc_sdcc2_apps_clk>;
		clock-names = "iface_clk", "core_clk";

		status = "disabled";
	};

	qcom,adsprpc-mem {
	qcom,adsprpc-mem {
		compatible = "qcom,msm-adsprpc-mem-region";
		compatible = "qcom,msm-adsprpc-mem-region";
		memory-region = <&adsp_mem>;
		memory-region = <&adsp_mem>;