/* * Altera CF drvier * * (C) Copyright 2010, Thomas Chou * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #include #include #if defined(CONFIG_IDE_RESET) && defined(CONFIG_SYS_CF_CTL_BASE) /* ide_set_reset for Altera CF interface */ #define ALTERA_CF_CTL_STATUS 0 #define ALTERA_CF_IDE_CTL 4 #define ALTERA_CF_CTL_STATUS_PRESENT_MSK (0x1) #define ALTERA_CF_CTL_STATUS_POWER_MSK (0x2) #define ALTERA_CF_CTL_STATUS_RESET_MSK (0x4) #define ALTERA_CF_CTL_STATUS_IRQ_EN_MSK (0x8) #define ALTERA_CF_IDE_CTL_IRQ_EN_MSK (0x1) void ide_set_reset(int idereset) { int i; writel(idereset ? ALTERA_CF_CTL_STATUS_RESET_MSK : ALTERA_CF_CTL_STATUS_POWER_MSK, CONFIG_SYS_CF_CTL_BASE + ALTERA_CF_CTL_STATUS); /* wait 500 ms for power to stabilize */ for (i = 0; i < 500; i++) udelay(1000); } #endif