OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [drivers/] [ide/] [legacy/] [falconide.c] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/*
2
 *  linux/drivers/ide/legacy/falconide.c -- Atari Falcon IDE Driver
3
 *
4
 *     Created 12 Jul 1997 by Geert Uytterhoeven
5
 *
6
 *  This file is subject to the terms and conditions of the GNU General Public
7
 *  License.  See the file COPYING in the main directory of this archive for
8
 *  more details.
9
 */
10
 
11
#include <linux/types.h>
12
#include <linux/mm.h>
13
#include <linux/interrupt.h>
14
#include <linux/blkdev.h>
15
#include <linux/hdreg.h>
16
#include <linux/ide.h>
17
#include <linux/init.h>
18
 
19
#include <asm/setup.h>
20
#include <asm/atarihw.h>
21
#include <asm/atariints.h>
22
#include <asm/atari_stdma.h>
23
 
24
 
25
    /*
26
     *  Base of the IDE interface
27
     */
28
 
29
#define ATA_HD_BASE     0xfff00000
30
 
31
    /*
32
     *  Offsets from the above base
33
     */
34
 
35
#define ATA_HD_DATA     0x00
36
#define ATA_HD_ERROR    0x05            /* see err-bits */
37
#define ATA_HD_NSECTOR  0x09            /* nr of sectors to read/write */
38
#define ATA_HD_SECTOR   0x0d            /* starting sector */
39
#define ATA_HD_LCYL     0x11            /* starting cylinder */
40
#define ATA_HD_HCYL     0x15            /* high byte of starting cyl */
41
#define ATA_HD_SELECT   0x19            /* 101dhhhh , d=drive, hhhh=head */
42
#define ATA_HD_STATUS   0x1d            /* see status-bits */
43
#define ATA_HD_CONTROL  0x39
44
 
45
static int falconide_offsets[IDE_NR_PORTS] __initdata = {
46
    ATA_HD_DATA, ATA_HD_ERROR, ATA_HD_NSECTOR, ATA_HD_SECTOR, ATA_HD_LCYL,
47
    ATA_HD_HCYL, ATA_HD_SELECT, ATA_HD_STATUS, ATA_HD_CONTROL, -1
48
};
49
 
50
 
51
    /*
52
     *  falconide_intr_lock is used to obtain access to the IDE interrupt,
53
     *  which is shared between several drivers.
54
     */
55
 
56
int falconide_intr_lock;
57
 
58
 
59
    /*
60
     *  Probe for a Falcon IDE interface
61
     */
62
 
63
void __init falconide_init(void)
64
{
65
    if (MACH_IS_ATARI && ATARIHW_PRESENT(IDE)) {
66
        hw_regs_t hw;
67
        int index;
68
 
69
        ide_setup_ports(&hw, (ide_ioreg_t)ATA_HD_BASE, falconide_offsets,
70
                        0, 0, NULL,
71
//                      falconide_iops,
72
                        IRQ_MFP_IDE);
73
        index = ide_register_hw(&hw, NULL);
74
 
75
        if (index != -1)
76
            printk("ide%d: Falcon IDE interface\n", index);
77
    }
78
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.