blob: 0056790a9cbe9ae51631abc325ec8a0dd3c18223 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
2 * Generic Generic NCR5380 driver defines
3 *
4 * Copyright 1993, Drew Eckhardt
5 * Visionary Computing
6 * (Unix and Linux consulting and custom programming)
7 * drew@colorado.edu
8 * +1 (303) 440-4894
9 *
10 * NCR53C400 extensions (c) 1994,1995,1996, Kevin Lentin
11 * K.Lentin@cs.monash.edu.au
Linus Torvalds1da177e2005-04-16 15:20:36 -070012 */
13
Linus Torvalds1da177e2005-04-16 15:20:36 -070014#ifndef GENERIC_NCR5380_H
15#define GENERIC_NCR5380_H
16
Finn Thain4d8c08c2016-01-03 16:05:09 +110017#ifdef CONFIG_SCSI_GENERIC_NCR53C400
Linus Torvalds1da177e2005-04-16 15:20:36 -070018#define BIOSPARAM
19#define NCR5380_BIOSPARAM generic_NCR5380_biosparam
20#else
21#define NCR5380_BIOSPARAM NULL
22#endif
23
Linus Torvalds1da177e2005-04-16 15:20:36 -070024#ifndef CMD_PER_LUN
25#define CMD_PER_LUN 2
26#endif
27
28#ifndef CAN_QUEUE
29#define CAN_QUEUE 16
30#endif
31
Linus Torvalds1da177e2005-04-16 15:20:36 -070032#define __STRVAL(x) #x
33#define STRVAL(x) __STRVAL(x)
34
Ondrej Zary702a98c2010-08-10 18:01:16 -070035#ifndef SCSI_G_NCR5380_MEM
Linus Torvalds1da177e2005-04-16 15:20:36 -070036
Linus Torvalds1da177e2005-04-16 15:20:36 -070037#define NCR5380_map_type int
38#define NCR5380_map_name port
Linus Torvalds1da177e2005-04-16 15:20:36 -070039#define NCR53C400_register_offset 0
Linus Torvalds1da177e2005-04-16 15:20:36 -070040
Finn Thain4d8c08c2016-01-03 16:05:09 +110041#ifdef CONFIG_SCSI_GENERIC_NCR53C400
Linus Torvalds1da177e2005-04-16 15:20:36 -070042#define NCR5380_region_size 16
43#else
44#define NCR5380_region_size 8
45#endif
46
Finn Thain54d8fe42016-01-03 16:05:06 +110047#define NCR5380_read(reg) \
48 inb(instance->io_port + (reg))
49#define NCR5380_write(reg, value) \
50 outb(value, instance->io_port + (reg))
Linus Torvalds1da177e2005-04-16 15:20:36 -070051
Finn Thain54d8fe42016-01-03 16:05:06 +110052#define NCR5380_implementation_fields /* none */
Al Viroc818cb62006-03-24 03:15:37 -080053
Linus Torvalds1da177e2005-04-16 15:20:36 -070054#else
Ondrej Zary702a98c2010-08-10 18:01:16 -070055/* therefore SCSI_G_NCR5380_MEM */
Linus Torvalds1da177e2005-04-16 15:20:36 -070056
Linus Torvalds1da177e2005-04-16 15:20:36 -070057#define NCR5380_map_type unsigned long
58#define NCR5380_map_name base
Linus Torvalds1da177e2005-04-16 15:20:36 -070059#define NCR53C400_register_offset 0x108
Linus Torvalds1da177e2005-04-16 15:20:36 -070060#define NCR53C400_mem_base 0x3880
61#define NCR53C400_host_buffer 0x3900
62#define NCR5380_region_size 0x3a00
63
Finn Thain54d8fe42016-01-03 16:05:06 +110064#define NCR5380_read(reg) \
65 readb(((struct NCR5380_hostdata *)shost_priv(instance))->iomem + \
66 NCR53C400_mem_base + (reg))
67#define NCR5380_write(reg, value) \
68 writeb(value, ((struct NCR5380_hostdata *)shost_priv(instance))->iomem + \
69 NCR53C400_mem_base + (reg))
Linus Torvalds1da177e2005-04-16 15:20:36 -070070
71#define NCR5380_implementation_fields \
Al Viroc818cb62006-03-24 03:15:37 -080072 void __iomem *iomem;
Linus Torvalds1da177e2005-04-16 15:20:36 -070073
Al Viroc818cb62006-03-24 03:15:37 -080074#endif
Linus Torvalds1da177e2005-04-16 15:20:36 -070075
Finn Thainff3d4572016-01-03 16:05:25 +110076#define NCR5380_dma_xfer_len(instance, cmd, phase) \
77 generic_NCR5380_dma_xfer_len(cmd)
78
Linus Torvalds1da177e2005-04-16 15:20:36 -070079#define NCR5380_intr generic_NCR5380_intr
80#define NCR5380_queue_command generic_NCR5380_queue_command
81#define NCR5380_abort generic_NCR5380_abort
82#define NCR5380_bus_reset generic_NCR5380_bus_reset
Linus Torvalds1da177e2005-04-16 15:20:36 -070083#define NCR5380_pread generic_NCR5380_pread
84#define NCR5380_pwrite generic_NCR5380_pwrite
Finn Thain8c325132014-11-12 16:11:58 +110085#define NCR5380_info generic_NCR5380_info
86#define NCR5380_show_info generic_NCR5380_show_info
Linus Torvalds1da177e2005-04-16 15:20:36 -070087
88#define BOARD_NCR5380 0
89#define BOARD_NCR53C400 1
90#define BOARD_NCR53C400A 2
91#define BOARD_DTC3181E 3
92
Linus Torvalds1da177e2005-04-16 15:20:36 -070093#endif /* GENERIC_NCR5380_H */
94