1/* 2 * linux/include/asm-arm/arch-shark/ide.h 3 * 4 * by Alexander Schulz 5 * 6 * derived from: 7 * linux/include/asm-arm/arch-ebsa285/ide.h 8 * Copyright (c) 1998 Russell King 9 */ 10 11#include <asm/irq.h> 12 13/* 14 * Set up a hw structure for a specified data port, control port and IRQ. 15 * This should follow whatever the default interface uses. 16 */ 17static __inline__ void 18ide_init_hwif_ports(hw_regs_t *hw, int data_port, int ctrl_port, int *irq) 19{ 20 ide_ioreg_t reg = (ide_ioreg_t) data_port; 21 int i; 22 23 memset(hw, 0, sizeof(*hw)); 24 25 for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) { 26 hw->io_ports[i] = reg; 27 reg += 1; 28 } 29 hw->io_ports[IDE_CONTROL_OFFSET] = (ide_ioreg_t) ctrl_port; 30 if (irq) 31 *irq = 0; 32} 33 34/* 35 * This registers the standard ports for this architecture with the IDE 36 * driver. 37 */ 38static __inline__ void 39ide_init_default_hwifs(void) 40{ 41 hw_regs_t hw; 42 43 ide_init_hwif_ports(&hw, 0x1f0, 0x3f6, NULL); 44 hw.irq = 14; 45 ide_register_hw(&hw, NULL); 46} 47 48