1/* 2 * linux/include/asm-arm/ide.h 3 * 4 * Copyright (C) 1994-1996 Linus Torvalds & authors 5 */ 6 7/* 8 * This file contains the i386 architecture specific IDE code. 9 */ 10 11#ifndef __ASMARM_IDE_H 12#define __ASMARM_IDE_H 13 14#ifdef __KERNEL__ 15 16#ifndef MAX_HWIFS 17#define MAX_HWIFS 4 18#endif 19 20#define ide__sti() __sti() 21 22#include <asm/arch/ide.h> 23 24typedef union { 25 unsigned all : 8; /* all of the bits together */ 26 struct { 27 unsigned head : 4; /* always zeros here */ 28 unsigned unit : 1; /* drive select number, 0 or 1 */ 29 unsigned bit5 : 1; /* always 1 */ 30 unsigned lba : 1; /* using LBA instead of CHS */ 31 unsigned bit7 : 1; /* always 1 */ 32 } b; 33} select_t; 34 35typedef union { 36 unsigned all : 8; /* all of the bits together */ 37 struct { 38 unsigned bit0 : 1; 39 unsigned nIEN : 1; /* device INTRQ to host */ 40 unsigned SRST : 1; /* host soft reset bit */ 41 unsigned bit3 : 1; /* ATA-2 thingy */ 42 unsigned reserved456 : 3; 43 unsigned HOB : 1; /* 48-bit address ordering */ 44 } b; 45} control_t; 46 47#define ide_request_irq(irq,hand,flg,dev,id) request_irq((irq),(hand),(flg),(dev),(id)) 48#define ide_free_irq(irq,dev_id) free_irq((irq), (dev_id)) 49#define ide_check_region(from,extent) check_region((from), (extent)) 50#define ide_request_region(from,extent,name) request_region((from), (extent), (name)) 51#define ide_release_region(from,extent) release_region((from), (extent)) 52 53/* 54 * The following are not needed for the non-m68k ports 55 */ 56#define ide_ack_intr(hwif) (1) 57#define ide_fix_driveid(id) do {} while (0) 58#define ide_release_lock(lock) do {} while (0) 59#define ide_get_lock(lock, hdlr, data) do {} while (0) 60 61/* 62 * We always use the new IDE port registering, 63 * so these are fixed here. 64 */ 65#define ide_default_io_base(i) ((ide_ioreg_t)0) 66#define ide_default_irq(b) (0) 67 68#endif /* __KERNEL__ */ 69 70#endif /* __ASMARM_IDE_H */ 71