Skip to contentSkip to conversation

mmc: host: add SDHCI platform driver for msm chipsets

PATCH In review Asutosh Das 2 participants 3 messages Jan 9, 2013 – Jan 29, 2013

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 mmc: host: add SDHCI platform driver for msm chipsets

This platform driver adds the support of Secure Digital Host Controller Interface compliant controller in MSM chipsets.

---
 .../devicetree/bindings/mmc/sdhci-msm.txt          |   49 +
 drivers/mmc/host/Kconfig                           |   13 +
 drivers/mmc/host/Makefile                          |    1 +
 drivers/mmc/host/sdhci-msm.c                       |  961 ++++++++++++++++++++
 4 files changed, 1024 insertions(+), 0 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/mmc/sdhci-msm.txt
 create mode 100644 drivers/mmc/host/sdhci-msm.c
Documentation/devicetree/bindings/mmc/sdhci-msm.txt new file +49 -0
new file mode 100644
index 0000000..f42bea2
@@ -0,0 +1,49 @@
+Qualcomm Standard Secure Digital Host Controller (SDHC)
+
+Secure Digital Host Controller provides standard host interface to SD/MMC/SDIO cards.
+
+Required properties:
+  - compatible : should be "qcom,sdhci-msm"
+  - reg : should contain SDHC, SD Core register map.
+  - reg-names : indicates various resources passed to driver (via reg proptery) by name.
+  "reg-names" examples are "hc_mem" and "core_mem"
+  - interrupts : should contain SDHC interrupts.
+  - interrupt-names : indicates interrupts passed to driver (via interrupts property) by name.
+  "interrupt-names" examples are "hc_irq" and "pwr_irq"
+  - <supply-name>-supply: phandle to the regulator device tree node
+  "supply-name" examples are "vdd", "vdd-io".
+
+Optional Properties:
+	- cell-index - defines slot ID.
+	- qcom,bus-width - defines the bus I/O width that controller supports.
+	- qcom,nonremovable - specifies whether the card in slot is
+				hot pluggable or hard wired.
+	- qcom,bus-speed-mode - specifies supported bus speed modes by host.
+	- qcom,current-limit - specifies max. current the host can drive.
+
+In the following, <supply> can be vdd (flash core voltage) or vdd-io (I/O voltage).
+	- qcom,<supply>-always_on - specifies whether supply should be kept "on" always.
+	- qcom,<supply>-lpm_sup - specifies whether supply can be kept in low power mode (lpm).
+	- qcom,<supply>-voltage_level - specifies voltage levels for supply. Should be
+	specified in pairs (min, max), units uV.
+	- qcom,<supply>-current_level - specifies load levels for supply in lpm or
+	high power mode (hpm). Should be specified in pairs (lpm, hpm), units uA.
+
+	- gpios - specifies gpios assigned for sdhc slot.
+	- qcom,gpio-names -  a list of strings that map in order to the list of gpios
+
+	- qcom,max-clk-rate - specifies the max. clock rate supported for a particular slot.
+
+Example:
+
+	qcom,sdhc@f9824900 {
+		cell-index = <1>;		// SDC1 used as eMMC slot
+		compatible = "qcom,sdhci-msm";
+		reg = <0xf9824900 0x11C>,	// SDHC register interface
+			<0xf9824000 0x800>	// SD Core register interface
+
+		interrupts = <0 123 0>,		// Core interrupt
+				<0 138 0>;	// Pwr interrupt
+		qcom,sdcc-bus-width = <8>;	// 8-bit wide
+		qcom,sdcc-nonremovable;
+	};
drivers/mmc/host/Kconfig +13 -0
index da38122..2c1e11a 100644
@@ -458,6 +458,19 @@ config MMC_SDRICOH_CS
 config MMC_TMIO_CORE
 	tristate
 
+config MMC_SDHCI_MSM
+	tristate "Qualcomm SDHCI Controller Support"
+	depends on ARCH_MSM
+	depends on MMC_SDHCI_PLTFM
+	help
+	  This selects the Secure Digital Host Controller Interface (SDHCI)
+	  support present in MSM SOCs from Qualcomm. The controller
+	  supports SD/MMC/SDIO devices.
+
+	  If you have a controller with this interface, say Y or M here.
+
+	  If unsure, say N.
+
 config MMC_MSM
 	tristate "Qualcomm SDCC Controller Support"
 	depends on MMC && ARCH_MSM
drivers/mmc/host/Makefile +1 -0
index 843ce06..c0232fa 100644
@@ -56,6 +56,7 @@ obj-$(CONFIG_MMC_SDHCI_DOVE)		+= sdhci-dove.o
 obj-$(CONFIG_MMC_SDHCI_TEGRA)		+= sdhci-tegra.o
 obj-$(CONFIG_MMC_SDHCI_OF_ESDHC)	+= sdhci-of-esdhc.o
 obj-$(CONFIG_MMC_SDHCI_OF_HLWD)		+= sdhci-of-hlwd.o
+obj-$(CONFIG_MMC_SDHCI_MSM)		+= sdhci-msm.o
 
 ifeq ($(CONFIG_CB710_DEBUG),y)
 	CFLAGS-cb710-mmc	+= -DDEBUG
drivers/mmc/host/sdhci-msm.c new file +961 -0

961 lines not on this page · raw message

Signature · 3 lines
1.7.8.3
--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
#1 lore raw

Hi Asutosh,

Quoted 5 lines · Asutosh Das

This platform driver adds the support of Secure Digital Host Controller Interface compliant controller in MSM chipsets.

Please resubmit (or just let me know) this patch once the SoC that contains this IP has mainline support queued for merging.

Also, please switch to using the standard MMC DT bindings where possible instead of the qcom,-prefixed ones.

Thanks!

- Chris.

Signature · 2 lines
Chris Ball   <[email protected]>   <http://printf.net/>
One Laptop Per Child
#2 lore raw
Quoted 11 lines · Chris Ball

Hi Asutosh,

Quoted 5 lines · Asutosh Das

This platform driver adds the support of Secure Digital Host Controller Interface compliant controller in MSM chipsets.

Please resubmit (or just let me know) this patch once the SoC that contains this IP has mainline support queued for merging.

Quoted 6 lines

Also, please switch to using the standard MMC DT bindings where possible instead of the qcom,-prefixed ones.

Thanks!

- Chris.

Hi Chris
sure will do.

Thanks
Asutosh

Signature · 2 lines
Sent by a consultant of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.