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

Commit 3cbcb160 authored by David Lanzendörfer's avatar David Lanzendörfer Committed by Mike Turquette
Browse files

mmc: sunxi: Add driver for SD/MMC hosts found on Allwinner sunxi SoCs



The Allwinner sunxi mmc host uses dma in bus-master mode using a built-in
designware idmac controller, which is identical to the one found in the mmc-dw
hosts. However the rest of the host is not identical to mmc-dw, it deals with
sending stop commands in hardware which makes it significantly different
from the mmc-dw devices.

Signed-off-by: default avatarDavid Lanzendörfer <david.lanzendoerfer@o2s.ch>
[hdegoede@redhat.com: various cleanups and fixes]
Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
Acked-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
Acked-by: default avatarChris Ball <chris@printf.net>
Signed-off-by: default avatarMike Turquette <mturquette@linaro.org>
parent 1cdf8ee2
Loading
Loading
Loading
Loading
+43 −0
Original line number Diff line number Diff line
* Allwinner sunxi MMC controller

The highspeed MMC host controller on Allwinner SoCs provides an interface
for MMC, SD and SDIO types of memory cards.

Supported maximum speeds are the ones of the eMMC standard 4.5 as well
as the speed of SD standard 3.0.
Absolute maximum transfer rate is 200MB/s

Required properties:
 - compatible : "allwinner,sun4i-a10-mmc" or "allwinner,sun5i-a13-mmc"
 - reg : mmc controller base registers
 - clocks : a list with 2 phandle + clock specifier pairs
 - clock-names : must contain "ahb" and "mmc"
 - interrupts : mmc controller interrupt

Optional properties:
 - resets : phandle + reset specifier pair
 - reset-names : must contain "ahb"
 - for cd, bus-width and additional generic mmc parameters
   please refer to mmc.txt within this directory

Examples:
	- Within .dtsi:
	mmc0: mmc@01c0f000 {
		compatible = "allwinner,sun5i-a13-mmc";
		reg = <0x01c0f000 0x1000>;
		clocks = <&ahb_gates 8>, <&mmc0_clk>;
		clock-names = "ahb", "mod";
		interrupts = <0 32 4>;
		status = "disabled";
	};

	- Within dts:
	mmc0: mmc@01c0f000 {
		pinctrl-names = "default", "default";
		pinctrl-0 = <&mmc0_pins_a>;
		pinctrl-1 = <&mmc0_cd_pin_reference_design>;
		bus-width = <4>;
		cd-gpios = <&pio 7 1 0>; /* PH1 */
		cd-inverted;
		status = "okay";
	};
+7 −0
Original line number Diff line number Diff line
@@ -694,3 +694,10 @@ config MMC_REALTEK_PCI
	help
	  Say Y here to include driver code to support SD/MMC card interface
	  of Realtek PCI-E card reader

config MMC_SUNXI
	tristate "Allwinner sunxi SD/MMC Host Controller support"
	depends on ARCH_SUNXI
	help
	  This selects support for the SD/MMC Host Controller on
	  Allwinner sunxi SoCs.
+1 −0
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@ obj-$(CONFIG_MMC_JZ4740) += jz4740_mmc.o
obj-$(CONFIG_MMC_VUB300)	+= vub300.o
obj-$(CONFIG_MMC_USHC)		+= ushc.o
obj-$(CONFIG_MMC_WMT)		+= wmt-sdmmc.o
obj-$(CONFIG_MMC_SUNXI)		+= sunxi-mmc.o

obj-$(CONFIG_MMC_REALTEK_PCI)	+= rtsx_pci_sdmmc.o

+1049 −0

File added.

Preview size limit exceeded, changes collapsed.