diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2015-08-18 11:33:41 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2015-09-03 09:50:35 -0400 |
commit | 17b811bc720fb487e6e0643f25f143ac692d0512 (patch) | |
tree | 1d29eb621822b94cd1a307d0974e6e06de3940b8 /src/hw/sdcard.c | |
parent | 91a9f5baee569a7751270afe355775b3d0f58a37 (diff) | |
download | seabios-17b811bc720fb487e6e0643f25f143ac692d0512.tar.gz |
sdcard: Move frequency setting into sdcard_card_setup()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/hw/sdcard.c')
-rw-r--r-- | src/hw/sdcard.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/hw/sdcard.c b/src/hw/sdcard.c index bf35277f..a60fa92a 100644 --- a/src/hw/sdcard.c +++ b/src/hw/sdcard.c @@ -355,9 +355,14 @@ sdcard_set_frequency(struct sdhci_s *regs, u32 khz) static int sdcard_card_setup(struct sdhci_s *regs, int volt) { + // Set controller to initialization clock rate + int ret = sdcard_set_frequency(regs, 400); + if (ret) + return ret; + msleep(SDHCI_CLOCK_ON_TIME); // Reset card u32 param[4] = { }; - int ret = sdcard_pio(regs, SC_GO_IDLE_STATE, param); + ret = sdcard_pio(regs, SC_GO_IDLE_STATE, param); if (ret) return ret; // Let card know SDHC/SDXC is supported and confirm voltage @@ -412,6 +417,10 @@ sdcard_card_setup(struct sdhci_s *regs, int volt) ret = sdcard_pio(regs, SC_SELECT_DESELECT_CARD, param); if (ret) return ret; + // Set controller to data transfer clock rate + ret = sdcard_set_frequency(regs, 25000); + if (ret) + return ret; return card_type; } @@ -438,18 +447,11 @@ sdcard_controller_setup(struct sdhci_s *regs, int prio) int volt = sdcard_set_power(regs); if (volt < 0) return; - int ret = sdcard_set_frequency(regs, 400); - if (ret) - goto fail; - msleep(SDHCI_CLOCK_ON_TIME); // Initialize card int card_type = sdcard_card_setup(regs, volt); if (card_type < 0) goto fail; - ret = sdcard_set_frequency(regs, 25000); - if (ret) - goto fail; // Register drive struct sddrive_s *drive = malloc_fseg(sizeof(*drive)); |