📄 mmcinit-power-up.patch
字号:
board/neo1973/neo1973.c (board_late_init): moved MMC power-up to separate functioncpu/arm920t/s3c24x0/mmc.c (mmc_init): call mmc_power_up and return -ENODEV immediately if there is no card- Werner Almesberger <werner@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 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -