Path: blob/master/drivers/gpib/include/nec7210_registers.h
38184 views
/* SPDX-License-Identifier: GPL-2.0 */12/***************************************************************************3* copyright : (C) 2002 by Frank Mori Hess4***************************************************************************/56#ifndef _NEC7210_REGISTERS_H7#define _NEC7210_REGISTERS_H89enum nec7210_chipset {10NEC7210, // The original11TNT4882, // NI12NAT4882, // NI13CB7210, // measurement computing14IOT7210, // iotech15IGPIB7210, // Ines16TNT5004, // NI (minor differences to TNT4882)17};1819/*20* nec7210 register numbers (might need to be multiplied by21* a board-dependent offset to get actually io address offset)22*/23// write registers24enum nec7210_write_regs {25CDOR, // command/data out26IMR1, // interrupt mask 127IMR2, // interrupt mask 228SPMR, // serial poll mode29ADMR, // address mode30AUXMR, // auxiliary mode31ADR, // address32EOSR, // end-of-string3334// nec7210 has 8 registers35nec7210_num_registers = 8,36};3738// read registers39enum nec7210_read_regs {40DIR, // data in41ISR1, // interrupt status 142ISR2, // interrupt status 243SPSR, // serial poll status44ADSR, // address status45CPTR, // command pass though46ADR0, // address 147ADR1, // address 248};4950// bit definitions common to nec-7210 compatible registers5152// ISR1: interrupt status register 153enum isr1_bits {54HR_DI = (1 << 0),55HR_DO = (1 << 1),56HR_ERR = (1 << 2),57HR_DEC = (1 << 3),58HR_END = (1 << 4),59HR_DET = (1 << 5),60HR_APT = (1 << 6),61HR_CPT = (1 << 7),62};6364// IMR1: interrupt mask register 165enum imr1_bits {66HR_DIIE = (1 << 0),67HR_DOIE = (1 << 1),68HR_ERRIE = (1 << 2),69HR_DECIE = (1 << 3),70HR_ENDIE = (1 << 4),71HR_DETIE = (1 << 5),72HR_APTIE = (1 << 6),73HR_CPTIE = (1 << 7),74};7576// ISR2, interrupt status register 277enum isr2_bits {78HR_ADSC = (1 << 0),79HR_REMC = (1 << 1),80HR_LOKC = (1 << 2),81HR_CO = (1 << 3),82HR_REM = (1 << 4),83HR_LOK = (1 << 5),84HR_SRQI = (1 << 6),85HR_INT = (1 << 7),86};8788// IMR2, interrupt mask register 289enum imr2_bits {90// all the bits in this register that enable interrupts91IMR2_ENABLE_INTR_MASK = 0x4f,92HR_ACIE = (1 << 0),93HR_REMIE = (1 << 1),94HR_LOKIE = (1 << 2),95HR_COIE = (1 << 3),96HR_DMAI = (1 << 4),97HR_DMAO = (1 << 5),98HR_SRQIE = (1 << 6),99};100101// SPSR, serial poll status register102enum spsr_bits {103HR_PEND = (1 << 6),104};105106// SPMR, serial poll mode register107enum spmr_bits {108HR_RSV = (1 << 6),109};110111// ADSR, address status register112enum adsr_bits {113HR_MJMN = (1 << 0),114HR_TA = (1 << 1),115HR_LA = (1 << 2),116HR_TPAS = (1 << 3),117HR_LPAS = (1 << 4),118HR_SPMS = (1 << 5),119HR_NATN = (1 << 6),120HR_CIC = (1 << 7),121};122123// ADMR, address mode register124enum admr_bits {125HR_ADM0 = (1 << 0),126HR_ADM1 = (1 << 1),127HR_TRM0 = (1 << 4),128HR_TRM1 = (1 << 5),129HR_TRM_EOIOE_TRIG = 0,130HR_TRM_CIC_TRIG = HR_TRM0,131HR_TRM_CIC_EOIOE = HR_TRM1,132HR_TRM_CIC_PE = HR_TRM0 | HR_TRM1,133HR_LON = (1 << 6),134HR_TON = (1 << 7),135};136137// ADR, bits used in address0, address1 and address0/1 registers138enum adr_bits {139ADDRESS_MASK = 0x1f, /* mask to specify lower 5 bits */140HR_DL = (1 << 5),141HR_DT = (1 << 6),142HR_ARS = (1 << 7),143};144145// ADR1, address1 register146enum adr1_bits {147HR_EOI = (1 << 7),148};149150// AUXMR, auxiliary mode register151enum auxmr_bits {152ICR = 0x20,153PPR = 0x60,154AUXRA = 0x80,155AUXRB = 0xa0,156AUXRE = 0xc0,157};158159// auxra, auxiliary register A160enum auxra_bits {161HR_HANDSHAKE_MASK = 0x3,162HR_HLDA = 0x1,163HR_HLDE = 0x2,164HR_LCM = 0x3, /* auxra listen continuous */165HR_REOS = 0x4,166HR_XEOS = 0x8,167HR_BIN = 0x10,168};169170// auxrb, auxiliary register B171enum auxrb_bits {172HR_CPTE = (1 << 0),173HR_SPEOI = (1 << 1),174HR_TRI = (1 << 2),175HR_INV = (1 << 3),176HR_ISS = (1 << 4),177};178179enum auxre_bits {180HR_DAC_HLD_DCAS = 0x1, /* perform DAC holdoff on receiving clear */181HR_DAC_HLD_DTAS = 0x2, /* perform DAC holdoff on receiving trigger */182};183184// parallel poll register185enum ppr_bits {186HR_PPS = (1 << 3),187HR_PPU = (1 << 4),188};189190/* 7210 Auxiliary Commands */191enum aux_cmds {192AUX_PON = 0x0, /* Immediate Execute pon */193AUX_CPPF = 0x1, /* Clear Parallel Poll Flag */194AUX_CR = 0x2, /* Chip Reset */195AUX_FH = 0x3, /* Finish Handshake */196AUX_TRIG = 0x4, /* Trigger */197AUX_RTL = 0x5, /* Return to local */198AUX_SEOI = 0x6, /* Send EOI */199AUX_NVAL = 0x7, /* Non-Valid Secondary Command or Address */200AUX_SPPF = 0x9, /* Set Parallel Poll Flag */201AUX_VAL = 0xf, /* Valid Secondary Command or Address */202AUX_GTS = 0x10, /* Go To Standby */203AUX_TCA = 0x11, /* Take Control Asynchronously */204AUX_TCS = 0x12, /* Take Control Synchronously */205AUX_LTN = 0x13, /* Listen */206AUX_DSC = 0x14, /* Disable System Control */207AUX_CIFC = 0x16, /* Clear IFC */208AUX_CREN = 0x17, /* Clear REN */209AUX_TCSE = 0x1a, /* Take Control Synchronously on End */210AUX_LTNC = 0x1b, /* Listen in Continuous Mode */211AUX_LUN = 0x1c, /* Local Unlisten */212AUX_EPP = 0x1d, /* Execute Parallel Poll */213AUX_SIFC = 0x1e, /* Set IFC */214AUX_SREN = 0x1f, /* Set REN */215};216217#endif //_NEC7210_REGISTERS_H218219220