Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) #ifndef A2091_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3) #define A2091_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5) /* $Id: a2091.h,v 1.4 1997/01/19 23:07:09 davem Exp $
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7)  * Header file for the Commodore A2091 Zorro II SCSI controller for Linux
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9)  * Written and (C) 1993, Hamish Macdonald, see a2091.c for more info
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) #include <linux/types.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) #ifndef CMD_PER_LUN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #define CMD_PER_LUN		2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) #ifndef CAN_QUEUE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) #define CAN_QUEUE		16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)  * if the transfer address ANDed with this results in a non-zero
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)  * result, then we can't use DMA.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) #define A2091_XFER_MASK		(0xff000001)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) struct a2091_scsiregs {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) 		 unsigned char	pad1[64];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) 	volatile unsigned short	ISTR;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 	volatile unsigned short	CNTR;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) 		 unsigned char	pad2[60];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) 	volatile unsigned int	WTC;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) 	volatile unsigned long	ACR;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 		 unsigned char	pad3[6];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) 	volatile unsigned short	DAWR;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 		 unsigned char	pad4;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) 	volatile unsigned char	SASR;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) 		 unsigned char	pad5;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) 	volatile unsigned char	SCMD;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) 		 unsigned char	pad6[76];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) 	volatile unsigned short	ST_DMA;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) 	volatile unsigned short	SP_DMA;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) 	volatile unsigned short	CINT;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) 		 unsigned char	pad7[2];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) 	volatile unsigned short	FLUSH;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) #define DAWR_A2091		(3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) /* CNTR bits. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) #define CNTR_TCEN		(1<<7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) #define CNTR_PREST		(1<<6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) #define CNTR_PDMD		(1<<5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) #define CNTR_INTEN		(1<<4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) #define CNTR_DDIR		(1<<3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) /* ISTR bits. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) #define ISTR_INTX		(1<<8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) #define ISTR_INT_F		(1<<7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) #define ISTR_INTS		(1<<6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) #define ISTR_E_INT		(1<<5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) #define ISTR_INT_P		(1<<4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) #define ISTR_UE_INT		(1<<3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) #define ISTR_OE_INT		(1<<2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) #define ISTR_FF_FLG		(1<<1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) #define ISTR_FE_FLG		(1<<0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) #endif /* A2091_H */