From mboxrd@z Thu Jan 1 00:00:00 1970 From: Scott McNutt Date: Thu, 22 Apr 2010 20:00:42 -0400 Subject: [U-Boot] [PATCH v5] nios2: add altera cf reset In-Reply-To: <1269995784-20713-1-git-send-email-thomas@wytron.com.tw> References: <1269781094-4393-1-git-send-email-thomas@wytron.com.tw> <1269995784-20713-1-git-send-email-thomas@wytron.com.tw> Message-ID: <4BD0E32A.9090506@psyent.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Applied. Thanks. --Scott Thomas Chou wrote: > This patch toggles power to reset the cf card. > > Signed-off-by: Thomas Chou > --- > more checkpatch.pl fixes > > board/altera/common/cfide.c | 33 +++++++++++++++++++++++++++++++++ > 1 files changed, 33 insertions(+), 0 deletions(-) > create mode 100644 board/altera/common/cfide.c > > diff --git a/board/altera/common/cfide.c b/board/altera/common/cfide.c > new file mode 100644 > index 0000000..40d6a12 > --- /dev/null > +++ b/board/altera/common/cfide.c > @@ -0,0 +1,33 @@ > +/* > + * 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