r1801 - trunk/src/target/u-boot/patches

werner at sita.openmoko.org werner at sita.openmoko.org
Thu Apr 19 01:50:09 CEST 2007


Author: werner
Date: 2007-04-19 01:50:06 +0200 (Thu, 19 Apr 2007)
New Revision: 1801

Added:
   trunk/src/target/u-boot/patches/mmcinit-power-up.patch
Log:
board/neo1973/neo1973.c (board_late_init): moved MMC power-up to separate
  function
cpu/arm920t/s3c24x0/mmc.c (mmc_init): call mmc_power_up and return -ENODEV
  immediately if there is no card



Added: trunk/src/target/u-boot/patches/mmcinit-power-up.patch
===================================================================
--- trunk/src/target/u-boot/patches/mmcinit-power-up.patch	2007-04-18 23:03:22 UTC (rev 1800)
+++ trunk/src/target/u-boot/patches/mmcinit-power-up.patch	2007-04-18 23:50:06 UTC (rev 1801)
@@ -0,0 +1,73 @@
+board/neo1973/neo1973.c (board_late_init): moved MMC power-up to separate
+  function
+cpu/arm920t/s3c24x0/mmc.c (mmc_init): call mmc_power_up and return -ENODEV
+  immediately if there is no card
+
+- Werner Almesberger <werner at openmoko.org>
+
+Index: u-boot/board/neo1973/neo1973.c
+===================================================================
+--- u-boot.orig/board/neo1973/neo1973.c
++++ u-boot/board/neo1973/neo1973.c
+@@ -223,6 +223,19 @@ int board_init (void)
+ 	return 0;
+ }
+ 
++int mmc_power_up(void)
++{
++#if defined(CONFIG_ARCH_GTA01B_v4)
++	S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO();
++
++	/* check if sd card is inserted, and power-up if it is */
++	if (gpio->GPFDAT & (1 << 5))
++		return 0;
++	gpio->GPBDAT &= ~(1 << 2);
++#endif /* !CONFIG_ARCH_GTA01B_v4 */
++	return 1;
++}
++
+ int board_late_init(void)
+ {
+ 	unsigned char tmp;
+@@ -289,14 +302,8 @@ continue_boot:
+ 	/* switch on the backlight */
+ 	neo1973_backlight(1);
+ 
+-#if defined(CONFIG_ARCH_GTA01B_v4)
+-	{
+-		/* check if sd card is inserted, and power-up if it is */
+-		S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO();
+-		if (!(gpio->GPFDAT & (1 << 5)))
+-			gpio->GPBDAT &= ~(1 << 2);
+-	}
+-#endif
++	/* check if sd card is inserted, and power-up if it is */
++	mmc_power_up();
+ 
+ 	return 0;
+ }
+Index: u-boot/cpu/arm920t/s3c24x0/mmc.c
+===================================================================
+--- u-boot.orig/cpu/arm920t/s3c24x0/mmc.c
++++ u-boot/cpu/arm920t/s3c24x0/mmc.c
+@@ -381,6 +381,11 @@ static void print_sd_cid(const struct sd
+ 	    cid->crc >> 1, cid->crc & 1);
+ }
+ 
++int __attribute__((weak)) mmc_power_up(void)
++{
++	return 1;
++}
++
+ int mmc_init(int verbose)
+ {
+  	int retries, rc = -ENODEV;
+@@ -393,6 +398,8 @@ int mmc_init(int verbose)
+ 	debug("mmc_init(PCLK=%u)\n", get_PCLK());
+ 
+ 	clk_power->CLKCON |= (1 << 9);
++	if (!mmc_power_up())
++		return -ENODEV;
+ 
+ 	/* S3C2410 has some bug that prevents reliable operation at higher speed */
+ 	//sdi->SDIPRE = 0x3e;  /* SDCLK = PCLK/2 / (SDIPRE+1) = 396kHz */





More information about the commitlog mailing list