Browse Source

refactor SD card support for AVR32 Grasshopper board

- SD card support can now be enabled in the menu
- SD card access LED support added
Mario Haustein 7 years ago
parent
commit
74ed5fab6a

+ 46 - 4
target/avr32/grasshopper/patches/4.7.3/0003-grasshopper-mmc.patch

@@ -1,11 +1,53 @@
+diff -Naur linux-4.7.3/arch/avr32/boards/grasshopper/Kconfig linux-4.7.3.grasshopper/arch/avr32/boards/grasshopper/Kconfig
+--- linux-4.7.3/arch/avr32/boards/grasshopper/Kconfig	2016-09-20 11:22:36.665693605 +0200
++++ linux-4.7.3.grasshopper/arch/avr32/boards/grasshopper/Kconfig	2016-09-20 11:22:45.803816861 +0200
+@@ -34,4 +34,14 @@
+ 	help
+ 	  Enabling PWM channel 3 will exclude the power LED from LED API.
+ 
++config BOARD_GRASSHOPPER_MMC
++	bool "Enable MMC slot"
++	depends on MMC_ATMELMCI
++	default n
++
++config BOARD_GRASSHOPPER_MMCLED
++	bool "Show MMC acces on LED8"
++	depends on BOARD_GRASSHOPPER_MMC
++	default n
++
+ endif	# BOARD_GRASSHOPPER
+diff -Naur linux-4.7.3/arch/avr32/boards/grasshopper/led.c linux-4.7.3.grasshopper/arch/avr32/boards/grasshopper/led.c
+--- linux-4.7.3/arch/avr32/boards/grasshopper/led.c	2016-09-20 11:17:36.448644161 +0200
++++ linux-4.7.3.grasshopper/arch/avr32/boards/grasshopper/led.c	2016-09-20 11:25:30.690040822 +0200
+@@ -62,6 +62,9 @@
+     {
+         .name = "led8:green",
+         .gpio = GPIO_PIN_PA(30),
++#ifdef CONFIG_BOARD_GRASSHOPPER_MMCLED
++        .default_trigger = "mmc0",
++#endif
+     },
+ };
+ 
 diff -Naur linux-4.7.3/arch/avr32/boards/grasshopper/setup.c linux-4.7.3.grasshopper/arch/avr32/boards/grasshopper/setup.c
---- linux-4.7.3/arch/avr32/boards/grasshopper/setup.c	2016-09-14 10:48:53.403638569 +0200
-+++ linux-4.7.3.grasshopper/arch/avr32/boards/grasshopper/setup.c	2016-09-14 11:26:49.572343447 +0200
-@@ -169,7 +169,7 @@
+--- linux-4.7.3/arch/avr32/boards/grasshopper/setup.c	2016-09-20 10:32:24.571984951 +0200
++++ linux-4.7.3.grasshopper/arch/avr32/boards/grasshopper/setup.c	2016-09-20 11:23:52.197712372 +0200
+@@ -130,7 +130,7 @@
+ #endif
+ 
+ /* MCI */
+-#ifdef CONFIG_MMC_ATMELMCI
++#ifdef CONFIG_BOARD_GRASSHOPPER_MMC
+ static struct mci_platform_data __initdata mci0_data = {
+     .slot[0] = {
+         .bus_width = 4,
+@@ -168,8 +168,8 @@
+         ATMEL_LCDC_PRI_CONTROL | ATMEL_LCDC_PRI_24BIT);
  #endif
  
- #ifdef CONFIG_MMC_ATMELMCI
+-#ifdef CONFIG_MMC_ATMELMCI
 -//    at32_add_device_mci(0, &mci0_data); /* MMC/SD */
++#ifdef CONFIG_BOARD_GRASSHOPPER_MMC
 +    at32_add_device_mci(0, &mci0_data); /* MMC/SD */
  #endif
  

+ 8 - 0
target/linux/config/Config.in.block

@@ -458,12 +458,20 @@ config ADK_KERNEL_MMC_ATMELMCI
 	select ADK_KERNEL_MMC_SDHCI
 	select ADK_KERNEL_MMC_SDHCI_IO_ACCESSORS
 	select ADK_KERNEL_MMC_SDHCI_PLTFM
+	select ADK_KERNEL_BOARD_GRASSHOPPER_MMC if ADK_TARGET_SYSTEM_GRASSHOPPER
+	select ADK_KERNEL_BOARD_GRASSHOPPER_MMCLED if ADK_TARGET_SYSTEM_GRASSHOPPER
 	depends on ADK_TARGET_CPU_AVR32
 	default n
 	help
 	  Atmel Multimedia Card Interface driver for AT32
 	  and AT91 plattforms.
 
+config ADK_KERNEL_BOARD_GRASSHOPPER_MMC
+	bool
+
+config ADK_KERNEL_BOARD_GRASSHOPPER_MMCLED
+	bool
+
 endmenu
 
 menu "Block driver support"