~ubuntu-branches/ubuntu/maverick/u-boot-omap3/maverick

« back to all changes in this revision

Viewing changes to board/bf537-stamp/ide-cf.c

  • Committer: Bazaar Package Importer
  • Author(s): Oliver Grawert
  • Date: 2010-03-22 15:06:23 UTC
  • Revision ID: james.westby@ubuntu.com-20100322150623-i21g8rgiyl5dohag
Tags: upstream-2010.3git20100315
ImportĀ upstreamĀ versionĀ 2010.3git20100315

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * CF IDE addon card code
 
3
 *
 
4
 * Enter bugs at http://blackfin.uclinux.org/
 
5
 *
 
6
 * Copyright (c) 2005-2009 Analog Devices Inc.
 
7
 *
 
8
 * Licensed under the GPL-2 or later.
 
9
 */
 
10
 
 
11
#include <common.h>
 
12
#include <config.h>
 
13
#include <command.h>
 
14
#include <asm/blackfin.h>
 
15
 
 
16
void cf_outb(unsigned char val, volatile unsigned char *addr)
 
17
{
 
18
        *(addr) = val;
 
19
        SSYNC();
 
20
}
 
21
 
 
22
unsigned char cf_inb(volatile unsigned char *addr)
 
23
{
 
24
        volatile unsigned char c;
 
25
 
 
26
        c = *(addr);
 
27
        SSYNC();
 
28
 
 
29
        return c;
 
30
}
 
31
 
 
32
void cf_insw(unsigned short *sect_buf, unsigned short *addr, int words)
 
33
{
 
34
        int i;
 
35
 
 
36
        for (i = 0; i < words; i++)
 
37
                *(sect_buf + i) = *(addr);
 
38
        SSYNC();
 
39
}
 
40
 
 
41
void cf_outsw(unsigned short *addr, unsigned short *sect_buf, int words)
 
42
{
 
43
        int i;
 
44
 
 
45
        for (i = 0; i < words; i++)
 
46
                *(addr) = *(sect_buf + i);
 
47
        SSYNC();
 
48
}
 
49
 
 
50
void cf_ide_init(void)
 
51
{
 
52
#if defined(CONFIG_BFIN_TRUE_IDE)
 
53
        /* Enable ATASEL when in True IDE mode */
 
54
        printf("Using CF True IDE Mode\n");
 
55
        cf_outb(0, (unsigned char *)CONFIG_CF_ATASEL_ENA);
 
56
        udelay(1000);
 
57
#elif defined(CONFIG_BFIN_CF_IDE)
 
58
        /* Disable ATASEL when we're in Common Memory Mode */
 
59
        printf("Using CF Common Memory Mode\n");
 
60
        cf_outb(0, (unsigned char *)CONFIG_CF_ATASEL_DIS);
 
61
        udelay(1000);
 
62
#elif defined(CONFIG_BFIN_HDD_IDE)
 
63
        printf("Using HDD IDE Mode\n");
 
64
#endif
 
65
        ide_init();
 
66
}