/* * Initializes on-chip MMC controllers. * to override, implement board_mmc_init() */ int cpu_mmc_init(bd_t *bis) { #ifdef CONFIG_FSL_ESDHC return fsl_esdhc_mmc_init(bis); #else return 0; #endif }
int board_mmc_init(bd_t *bd) { immap_t *immr = (immap_t *)CONFIG_SYS_IMMR; sysconf83xx_t *sysconf = &immr->sysconf; /* Enable cache snooping in eSDHC system configuration register */ out_be32(&sysconf->sdhccr, 0x02000000); return fsl_esdhc_mmc_init(bd); }
int board_mmc_init(bd_t *bd) { struct immap __iomem *im = (struct immap __iomem *)CONFIG_SYS_IMMR; if (!hwconfig("esdhc")) return 0; clrsetbits_be32(&im->sysconf.sicrl, SICRL_USB_B, SICRL_USB_B_SD); clrsetbits_be32(&im->sysconf.sicrh, SICRH_SPI, SICRH_SPI_SD); return fsl_esdhc_mmc_init(bd); }
int board_mmc_init(bd_t *bd) { struct immap __iomem *im = (struct immap __iomem *)CONFIG_SYS_IMMR; char buffer[HWCONFIG_BUFFER_SIZE] = {0}; int esdhc_hwconfig_enabled = 0; if (env_get_f("hwconfig", buffer, sizeof(buffer)) > 0) esdhc_hwconfig_enabled = hwconfig_f("esdhc", buffer); if (esdhc_hwconfig_enabled == 0) return 0; clrsetbits_be32(&im->sysconf.sicrl, SICRL_USB_B, SICRL_USB_B_SD); clrsetbits_be32(&im->sysconf.sicrh, SICRH_SPI, SICRH_SPI_SD); return fsl_esdhc_mmc_init(bd); }
int board_mmc_init(bd_t *bd) { struct immap __iomem *im = (struct immap __iomem *)CONFIG_SYS_IMMR; u8 *bcsr = (u8 *)CONFIG_SYS_BCSR; if (!hwconfig("esdhc")) return 0; /* Set SPI_SD, SER_SD, and IRQ4_WP so that SD signals go through */ bcsr[0xc] |= 0x4c; /* Set proper bits in SICR to allow SD signals through */ clrsetbits_be32(&im->sysconf.sicrl, SICRL_USB_B, SICRL_USB_B_SD); clrsetbits_be32(&im->sysconf.sicrh, SICRH_GPIO2_E | SICRH_SPI, SICRH_GPIO2_E_SD | SICRH_SPI_SD); return fsl_esdhc_mmc_init(bd); }
int board_mmc_init(bd_t *bd) { struct ccsr_gur *gur = (struct ccsr_gur *)CONFIG_SYS_MPC85xx_GUTS_ADDR; u8 *bcsr = (u8 *)CONFIG_SYS_BCSR_BASE; u8 bcsr6 = BCSR6_SD_CARD_1BIT; if (!hwconfig("esdhc")) return 0; printf("Enabling eSDHC...\n" " For eSDHC to function, I2C2 "); if (esdhc_disables_uart0()) { printf("and UART0 should be disabled.\n"); printf(" Redirecting stderr, stdout and stdin to UART1...\n"); console_assign(stderr, "eserial1"); console_assign(stdout, "eserial1"); console_assign(stdin, "eserial1"); printf("Switched to UART1 (initial log has been printed to " "UART0).\n"); clrsetbits_be32(&gur->plppar1, PLPPAR1_UART0_BIT_MASK, PLPPAR1_ESDHC_4BITS_VAL); clrsetbits_be32(&gur->plpdir1, PLPDIR1_UART0_BIT_MASK, PLPDIR1_ESDHC_4BITS_VAL); bcsr6 |= BCSR6_SD_CARD_4BITS; } else { printf("should be disabled.\n"); } /* Assign I2C2 signals to eSDHC. */ clrsetbits_be32(&gur->plppar1, PLPPAR1_I2C_BIT_MASK, PLPPAR1_ESDHC_VAL); clrsetbits_be32(&gur->plpdir1, PLPDIR1_I2C_BIT_MASK, PLPDIR1_ESDHC_VAL); /* Mux I2C2 (and optionally UART0) signals to eSDHC. */ setbits_8(&bcsr[6], bcsr6); return fsl_esdhc_mmc_init(bd); }
/* * Initializes on-chip MMC controllers. * to override, implement board_mmc_init() */ int cpu_mmc_init(bd_t *bis) { return fsl_esdhc_mmc_init(bis); }
int board_mmc_init(bd_t *bd) { return fsl_esdhc_mmc_init(bd); }