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

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.  * linux/include/asm-arm/arch-pxa/ide.h
  3.  *
  4.  * Author: George Davis
  5.  * Created: Jan 10, 2002
  6.  * Copyright: MontaVista Software Inc.
  7.  * 
  8.  * This program is free software; you can redistribute it and/or modify
  9.  * it under the terms of the GNU General Public License version 2 as
  10.  * published by the Free Software Foundation.
  11.  *
  12.  *
  13.  * Originally based upon linux/include/asm-arm/arch-sa1100/ide.h
  14.  *
  15.  */
  16. #include <linux/config.h>
  17. #include <asm/irq.h>
  18. #include <asm/hardware.h>
  19. #include <asm/mach-types.h>
  20. /*
  21.  * Set up a hw structure for a specified data port, control port and IRQ.
  22.  * This should follow whatever the default interface uses.
  23.  *
  24.  * We fixup the IDE register offsets to use the non-overlapping locations
  25.  * to facilitate successful implementation of the 16-bit I/O read fixups
  26.  * required to work around erratum #86 for PXA250 rev B0 and earlier
  27.  * since the IDE error reg can't be accessed from offset 1 by using
  28.  * non-byte access.
  29.  */
  30. static __inline__ void
  31. ide_init_hwif_ports(hw_regs_t *hw, int data_port, int ctrl_port, int *irq)
  32. {
  33. ide_ioreg_t reg;
  34. memset(hw, 0, sizeof(*hw));
  35. reg = (ide_ioreg_t)data_port;
  36. hw->io_ports[IDE_DATA_OFFSET] =  reg + 8;
  37. hw->io_ports[IDE_ERROR_OFFSET] = reg + 13;
  38. hw->io_ports[IDE_NSECTOR_OFFSET] = reg + 2;
  39. hw->io_ports[IDE_SECTOR_OFFSET] = reg + 3;
  40. hw->io_ports[IDE_LCYL_OFFSET] = reg + 4;
  41. hw->io_ports[IDE_HCYL_OFFSET] = reg + 5;
  42. hw->io_ports[IDE_SELECT_OFFSET] = reg + 6;
  43. hw->io_ports[IDE_STATUS_OFFSET] = reg + 7;
  44. hw->io_ports[IDE_CONTROL_OFFSET] = (ide_ioreg_t) ctrl_port;
  45. if (irq)
  46. *irq = 0;
  47. }
  48. /*
  49.  * Register the standard ports for this architecture with the IDE driver.
  50.  */
  51. static __inline__ void
  52. ide_init_default_hwifs(void)
  53. {
  54. /* Nothing to declare... */
  55. }