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

Commit eb883038 authored by Zhiqiang Tu's avatar Zhiqiang Tu
Browse files

ARM: dts: msm: Add sdhc_2 on msm8996 virtual platform



Add sdhc_2 on msm8996 virtual platform for SDIO WLAN.

Change-Id: Ic021ca67507af88a2c98eac4d5b4c10c3300f1a9
Signed-off-by: default avatarZhiqiang Tu <ztu@codeaurora.org>
parent 91da619c
Loading
Loading
Loading
Loading
+100 −0
Original line number Diff line number Diff line
@@ -534,5 +534,105 @@
				};
			};
		};

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

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

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

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

		sdc2_cd_on: sdc2_cd_on {
			mux {
				pins = "gpio95";
				function = "gpio";
			};

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

		sdc2_cd_off: sdc2_cd_off {
			mux {
				pins = "gpio95";
				function = "gpio";
			};

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

		sdc2_cd_on_sbc: sdc2_cd_on_sbc {
			mux {
				pins = "gpio38";
				function = "gpio";
			};

			config {
				pins = "gpio38";
				bias-pull-up;		/* pull up */
				drive-strength = <16>;	/* 16 MA */
			};
		};

		sdc2_cd_off_sbc: sdc2_cd_off_sbc {
			mux {
				pins = "gpio38";
				function = "gpio";
			};

			config {
				pins = "gpio38";
				bias-pull-up;		/* pull up */
				drive-strength = <2>;	/* 2 MA */
			};
		};
	};
};
+24 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@
#include "vplatform-lfv-msm8996-modem.dtsi"
#include <dt-bindings/clock/msm-clocks-8996.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/gpio/gpio.h>

/ {
	model = "Qualcomm Technologies, Inc. MSM 8996";
@@ -122,3 +123,26 @@
&blsp1_uart2 {
	status = "okay";
};

&sdhc_2 {
	vdd-supply = <&pm8994_l21>;
	qcom,vdd-voltage-level = <2950000 2950000>;
	qcom,vdd-current-level = <200 800000>;

	vdd-io-supply = <&pm8994_l13>;
	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_sbc>;
	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off
			&sdc2_cd_on_sbc>;

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

	cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;

	status = "okay";
};
+58 −0
Original line number Diff line number Diff line
@@ -19,6 +19,10 @@
	compatible = "qcom,msm8996";
	qcom,msm-id = <246 0x0>;

	aliases {
		sdhc2 = &sdhc_2; /* SDC2 SD card slot */
	};

	psci {
		compatible = "arm,psci";
		method = "smc";
@@ -86,6 +90,46 @@
		};
	};

	sdhc_2: sdhci@74a4900 {
		compatible = "qcom,sdhci-msm";
		reg = <0x74a4900 0x314>, <0x74a4000 0x800>;
		reg-names = "hc_mem", "core_mem";

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

		clock-names = "iface_clk", "core_clk";
		clocks = <&clock_gcc clk_gcc_sdcc2_ahb_clk>,
			 <&clock_gcc clk_gcc_sdcc2_apps_clk>;

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

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

		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 1600 3200>,    /* 400 KB/s*/
				<81 512 80000 160000>, /* 20 MB/s */
				<81 512 100000 200000>, /* 25 MB/s */
				<81 512 200000 400000>, /* 50 MB/s */
				<81 512 400000 800000>, /* 100 MB/s */
				<81 512 800000 800000>, /* 200 MB/s */
				<81 512 2048000 4096000>; /* Max. bandwidth */
		qcom,bus-bw-vectors-bps = <0 400000 20000000 25000000 50000000
						100000000 200000000 4294967295>;

		qcom,pm-qos-cpu-groups = <0x03 0x0c>;
		qcom,pm-qos-legacy-latency-us = <70 70>, <70 70>;
		qcom,pm-qos-irq-type = "affine_cores";
		qcom,pm-qos-irq-cpu = <0>;
		qcom,pm-qos-irq-latency = <70 70>;

		status = "disabled";
	};

	sound-adp-agave {
		compatible = "qcom,apq8096-asoc-snd-adp-agave";
		qcom,model = "apq8096-adp-agave-snd-card";
@@ -817,4 +861,18 @@
		regulator-min-microvolt = <1>;
		regulator-max-microvolt = <7>;
	};

	pm8994_l21: regulator-l21 {
		compatible = "qcom,stub-regulator";
		regulator-name = "pm8994_l21";
		regulator-min-microvolt = <2950000>;
		regulator-max-microvolt = <2950000>;
	};

	pm8994_l13: regulator-l13 {
		compatible = "qcom,stub-regulator";
		regulator-name = "pm8994_l13";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <2950000>;
	};
};