forked from mirrors/linux
		
	mmc: bcm2835: Add new driver for the sdhost controller.
The 2835 has two SD controllers: The Arasan sdhci controller (supported by the iproc driver) and a custom sdhost controller. This patch adds a driver for the latter. The sdhci controller supports both sdcard and sdio. The sdhost controller supports the sdcard only, but has better performance. Also note that the rpi3 has sdio wifi, so driving the sdcard with the sdhost controller allows to use the sdhci controller for wifi support. The configuration is done by devicetree via pin muxing. Both SD controller are available on the same pins (2 pin groups = pin 22 to 27 + pin 48 to 53). So it's possible to use both SD controllers at the same time with different pin groups. The code was originally written by Phil Elwell in the downstream Rasbperry Pi tree. In preparation for the upstream merge it was cleaned up and the code base was moderized by Eric Anholt, Stefan Wahren and Gerd Hoffmann. Signed-off-by: Eric Anholt <eric@anholt.net> Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
		
							parent
							
								
									ebdb4d8e0d
								
							
						
					
					
						commit
						660fc733bd
					
				
					 3 changed files with 1480 additions and 0 deletions
				
			
		| 
						 | 
					@ -799,6 +799,20 @@ config MMC_TOSHIBA_PCI
 | 
				
			||||||
	depends on PCI
 | 
						depends on PCI
 | 
				
			||||||
	help
 | 
						help
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					config MMC_BCM2835
 | 
				
			||||||
 | 
						tristate "Broadcom BCM2835 SDHOST MMC Controller support"
 | 
				
			||||||
 | 
						depends on ARCH_BCM2835 || COMPILE_TEST
 | 
				
			||||||
 | 
						depends on HAS_DMA
 | 
				
			||||||
 | 
						help
 | 
				
			||||||
 | 
						  This selects the BCM2835 SDHOST MMC controller. If you have
 | 
				
			||||||
 | 
						  a BCM2835 platform with SD or MMC devices, say Y or M here.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  Note that the BCM2835 has two SD controllers: The Arasan
 | 
				
			||||||
 | 
						  sdhci controller (supported by MMC_SDHCI_IPROC) and a custom
 | 
				
			||||||
 | 
						  sdhost controller (supported by this driver).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  If unsure, say N.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
config MMC_MTK
 | 
					config MMC_MTK
 | 
				
			||||||
	tristate "MediaTek SD/MMC Card Interface support"
 | 
						tristate "MediaTek SD/MMC Card Interface support"
 | 
				
			||||||
	depends on HAS_DMA
 | 
						depends on HAS_DMA
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -59,6 +59,7 @@ obj-$(CONFIG_MMC_MOXART)	+= moxart-mmc.o
 | 
				
			||||||
obj-$(CONFIG_MMC_SUNXI)		+= sunxi-mmc.o
 | 
					obj-$(CONFIG_MMC_SUNXI)		+= sunxi-mmc.o
 | 
				
			||||||
obj-$(CONFIG_MMC_USDHI6ROL0)	+= usdhi6rol0.o
 | 
					obj-$(CONFIG_MMC_USDHI6ROL0)	+= usdhi6rol0.o
 | 
				
			||||||
obj-$(CONFIG_MMC_TOSHIBA_PCI)	+= toshsd.o
 | 
					obj-$(CONFIG_MMC_TOSHIBA_PCI)	+= toshsd.o
 | 
				
			||||||
 | 
					obj-$(CONFIG_MMC_BCM2835)	+= bcm2835.o
 | 
				
			||||||
 | 
					
 | 
				
			||||||
obj-$(CONFIG_MMC_REALTEK_PCI)	+= rtsx_pci_sdmmc.o
 | 
					obj-$(CONFIG_MMC_REALTEK_PCI)	+= rtsx_pci_sdmmc.o
 | 
				
			||||||
obj-$(CONFIG_MMC_REALTEK_USB)	+= rtsx_usb_sdmmc.o
 | 
					obj-$(CONFIG_MMC_REALTEK_USB)	+= rtsx_usb_sdmmc.o
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										1465
									
								
								drivers/mmc/host/bcm2835.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1465
									
								
								drivers/mmc/host/bcm2835.c
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
		Loading…
	
		Reference in a new issue