11 #define DRV_NAME "ide-h8300"
16 __asm__("mov.b %w1,r1h\n\t" \
25 static void mm_outsw(
unsigned long addr,
void *
buf,
u32 len)
27 unsigned short *bp = (
unsigned short *)buf;
28 for (; len > 0; len--, bp++)
32 static void mm_insw(
unsigned long addr,
void *
buf,
u32 len)
34 unsigned short *bp = (
unsigned short *)buf;
35 for (; len > 0; len--, bp++)
40 void *buf,
unsigned int len)
42 mm_insw(drive->
hwif->io_ports.data_addr, buf, (len + 1) / 2);
46 void *buf,
unsigned int len)
48 mm_outsw(drive->
hwif->io_ports.data_addr, buf, (len + 1) / 2);
51 static const struct ide_tp_ops h8300_tp_ops = {
61 .input_data = h8300_input_data,
62 .output_data = h8300_output_data,
65 #define H8300_IDE_GAP (2)
67 static inline void hw_setup(
struct ide_hw *
hw)
71 memset(hw, 0,
sizeof(*hw));
72 for (i = 0; i <= 7; i++)
74 hw->
io_ports.ctl_addr = CONFIG_H8300_IDE_ALT;
75 hw->
irq = EXT_IRQ0 + CONFIG_H8300_IDE_IRQ;
79 .tp_ops = &h8300_tp_ops,
84 static int __init h8300_ide_init(
void)