ide.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:1k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

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