Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /*
0003  * pi1.h: Definitions for SGI PI1 parallel port
0004  */
0005 
0006 #ifndef _SGI_PI1_H
0007 #define _SGI_PI1_H
0008 
0009 struct pi1_regs {
0010     u8 _data[3];
0011     volatile u8 data;
0012     u8 _ctrl[3];
0013     volatile u8 ctrl;
0014 #define PI1_CTRL_STROBE_N   0x01
0015 #define PI1_CTRL_AFD_N      0x02
0016 #define PI1_CTRL_INIT_N     0x04
0017 #define PI1_CTRL_SLIN_N     0x08
0018 #define PI1_CTRL_IRQ_ENA    0x10
0019 #define PI1_CTRL_DIR        0x20
0020 #define PI1_CTRL_SEL        0x40
0021     u8 _status[3];
0022     volatile u8 status;
0023 #define PI1_STAT_DEVID      0x03    /* bits 0-1 */
0024 #define PI1_STAT_NOINK      0x04    /* SGI MODE only */
0025 #define PI1_STAT_ERROR      0x08
0026 #define PI1_STAT_ONLINE     0x10
0027 #define PI1_STAT_PE     0x20
0028 #define PI1_STAT_ACK        0x40
0029 #define PI1_STAT_BUSY       0x80
0030     u8 _dmactrl[3];
0031     volatile u8 dmactrl;
0032 #define PI1_DMACTRL_FIFO_EMPTY  0x01    /* fifo empty R/O */
0033 #define PI1_DMACTRL_ABORT   0x02    /* reset DMA and internal fifo W/O */
0034 #define PI1_DMACTRL_STDMODE 0x00    /* bits 2-3 */
0035 #define PI1_DMACTRL_SGIMODE 0x04    /* bits 2-3 */
0036 #define PI1_DMACTRL_RICOHMODE   0x08    /* bits 2-3 */
0037 #define PI1_DMACTRL_HPMODE  0x0c    /* bits 2-3 */
0038 #define PI1_DMACTRL_BLKMODE 0x10    /* block mode */
0039 #define PI1_DMACTRL_FIFO_CLEAR  0x20    /* clear fifo W/O */
0040 #define PI1_DMACTRL_READ    0x40    /* read */
0041 #define PI1_DMACTRL_RUN     0x80    /* pedal to the metal */
0042     u8 _intstat[3];
0043     volatile u8 intstat;
0044 #define PI1_INTSTAT_ACK     0x04
0045 #define PI1_INTSTAT_FEMPTY  0x08
0046 #define PI1_INTSTAT_NOINK   0x10
0047 #define PI1_INTSTAT_ONLINE  0x20
0048 #define PI1_INTSTAT_ERR     0x40
0049 #define PI1_INTSTAT_PE      0x80
0050     u8 _intmask[3];
0051     volatile u8 intmask;        /* enabled low, reset high*/
0052 #define PI1_INTMASK_ACK     0x04
0053 #define PI1_INTMASK_FIFO_EMPTY  0x08
0054 #define PI1_INTMASK_NOINK   0x10
0055 #define PI1_INTMASK_ONLINE  0x20
0056 #define PI1_INTMASK_ERR     0x40
0057 #define PI1_INTMASK_PE      0x80
0058     u8 _timer1[3];
0059     volatile u8 timer1;
0060 #define PI1_TIME1       0x27
0061     u8 _timer2[3];
0062     volatile u8 timer2;
0063 #define PI1_TIME2       0x13
0064     u8 _timer3[3];
0065     volatile u8 timer3;
0066 #define PI1_TIME3       0x10
0067     u8 _timer4[3];
0068     volatile u8 timer4;
0069 #define PI1_TIME4       0x00
0070 };
0071 
0072 #endif