xref: /openbmc/linux/include/pcmcia/cisreg.h (revision 75bf465f0bc33e9b776a46d6a1b9b990f5fb7c37)
1*d2912cb1SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
21da177e4SLinus Torvalds /*
31da177e4SLinus Torvalds  * cisreg.h
41da177e4SLinus Torvalds  *
51da177e4SLinus Torvalds  * The initial developer of the original code is David A. Hinds
61da177e4SLinus Torvalds  * <dahinds@users.sourceforge.net>.  Portions created by David A. Hinds
71da177e4SLinus Torvalds  * are Copyright (C) 1999 David A. Hinds.  All Rights Reserved.
81da177e4SLinus Torvalds  *
91da177e4SLinus Torvalds  * (C) 1999             David A. Hinds
101da177e4SLinus Torvalds  */
111da177e4SLinus Torvalds 
121da177e4SLinus Torvalds #ifndef _LINUX_CISREG_H
131da177e4SLinus Torvalds #define _LINUX_CISREG_H
141da177e4SLinus Torvalds 
151da177e4SLinus Torvalds /*
161da177e4SLinus Torvalds  * Offsets from ConfigBase for CIS registers
171da177e4SLinus Torvalds  */
181da177e4SLinus Torvalds #define CISREG_COR		0x00
191da177e4SLinus Torvalds #define CISREG_CCSR		0x02
201da177e4SLinus Torvalds #define CISREG_PRR		0x04
211da177e4SLinus Torvalds #define CISREG_SCR		0x06
221da177e4SLinus Torvalds #define CISREG_ESR		0x08
231da177e4SLinus Torvalds #define CISREG_IOBASE_0		0x0a
241da177e4SLinus Torvalds #define CISREG_IOBASE_1		0x0c
251da177e4SLinus Torvalds #define CISREG_IOBASE_2		0x0e
261da177e4SLinus Torvalds #define CISREG_IOBASE_3		0x10
271da177e4SLinus Torvalds #define CISREG_IOSIZE		0x12
281da177e4SLinus Torvalds 
291da177e4SLinus Torvalds /*
301da177e4SLinus Torvalds  * Configuration Option Register
311da177e4SLinus Torvalds  */
321da177e4SLinus Torvalds #define COR_CONFIG_MASK		0x3f
331da177e4SLinus Torvalds #define COR_MFC_CONFIG_MASK	0x38
341da177e4SLinus Torvalds #define COR_FUNC_ENA		0x01
351da177e4SLinus Torvalds #define COR_ADDR_DECODE		0x02
361da177e4SLinus Torvalds #define COR_IREQ_ENA		0x04
371da177e4SLinus Torvalds #define COR_LEVEL_REQ		0x40
381da177e4SLinus Torvalds #define COR_SOFT_RESET		0x80
391da177e4SLinus Torvalds 
401da177e4SLinus Torvalds /*
411da177e4SLinus Torvalds  * Card Configuration and Status Register
421da177e4SLinus Torvalds  */
431da177e4SLinus Torvalds #define CCSR_INTR_ACK		0x01
441da177e4SLinus Torvalds #define CCSR_INTR_PENDING	0x02
451da177e4SLinus Torvalds #define CCSR_POWER_DOWN		0x04
461da177e4SLinus Torvalds #define CCSR_AUDIO_ENA		0x08
471da177e4SLinus Torvalds #define CCSR_IOIS8		0x20
481da177e4SLinus Torvalds #define CCSR_SIGCHG_ENA		0x40
491da177e4SLinus Torvalds #define CCSR_CHANGED		0x80
501da177e4SLinus Torvalds 
511da177e4SLinus Torvalds /*
521da177e4SLinus Torvalds  * Pin Replacement Register
531da177e4SLinus Torvalds  */
541da177e4SLinus Torvalds #define PRR_WP_STATUS		0x01
551da177e4SLinus Torvalds #define PRR_READY_STATUS	0x02
561da177e4SLinus Torvalds #define PRR_BVD2_STATUS		0x04
571da177e4SLinus Torvalds #define PRR_BVD1_STATUS		0x08
581da177e4SLinus Torvalds #define PRR_WP_EVENT		0x10
591da177e4SLinus Torvalds #define PRR_READY_EVENT		0x20
601da177e4SLinus Torvalds #define PRR_BVD2_EVENT		0x40
611da177e4SLinus Torvalds #define PRR_BVD1_EVENT		0x80
621da177e4SLinus Torvalds 
631da177e4SLinus Torvalds /*
641da177e4SLinus Torvalds  * Socket and Copy Register
651da177e4SLinus Torvalds  */
661da177e4SLinus Torvalds #define SCR_SOCKET_NUM		0x0f
671da177e4SLinus Torvalds #define SCR_COPY_NUM		0x70
681da177e4SLinus Torvalds 
691da177e4SLinus Torvalds /*
701da177e4SLinus Torvalds  * Extended Status Register
711da177e4SLinus Torvalds  */
721da177e4SLinus Torvalds #define ESR_REQ_ATTN_ENA	0x01
731da177e4SLinus Torvalds #define ESR_REQ_ATTN		0x10
741da177e4SLinus Torvalds 
751da177e4SLinus Torvalds /*
761da177e4SLinus Torvalds  * CardBus Function Status Registers
771da177e4SLinus Torvalds  */
781da177e4SLinus Torvalds #define CBFN_EVENT		0x00
791da177e4SLinus Torvalds #define CBFN_MASK		0x04
801da177e4SLinus Torvalds #define CBFN_STATE		0x08
811da177e4SLinus Torvalds #define CBFN_FORCE		0x0c
821da177e4SLinus Torvalds 
831da177e4SLinus Torvalds /*
841da177e4SLinus Torvalds  * These apply to all the CardBus function registers
851da177e4SLinus Torvalds  */
861da177e4SLinus Torvalds #define CBFN_WP			0x0001
871da177e4SLinus Torvalds #define CBFN_READY		0x0002
881da177e4SLinus Torvalds #define CBFN_BVD2		0x0004
891da177e4SLinus Torvalds #define CBFN_BVD1		0x0008
901da177e4SLinus Torvalds #define CBFN_GWAKE		0x0010
911da177e4SLinus Torvalds #define CBFN_INTR		0x8000
921da177e4SLinus Torvalds 
931da177e4SLinus Torvalds /*
941da177e4SLinus Torvalds  * Extra bits in the Function Event Mask Register
951da177e4SLinus Torvalds  */
961da177e4SLinus Torvalds #define FEMR_BAM_ENA		0x0020
971da177e4SLinus Torvalds #define FEMR_PWM_ENA		0x0040
981da177e4SLinus Torvalds #define FEMR_WKUP_MASK		0x4000
991da177e4SLinus Torvalds 
1001da177e4SLinus Torvalds /*
1011da177e4SLinus Torvalds  * Indirect Addressing Registers for Zoomed Video: these are addresses
1021da177e4SLinus Torvalds  * in common memory space
1031da177e4SLinus Torvalds  */
1041da177e4SLinus Torvalds #define CISREG_ICTRL0		0x02	/* control registers */
1051da177e4SLinus Torvalds #define CISREG_ICTRL1		0x03
1061da177e4SLinus Torvalds #define CISREG_IADDR0		0x04	/* address registers */
1071da177e4SLinus Torvalds #define CISREG_IADDR1		0x05
1081da177e4SLinus Torvalds #define CISREG_IADDR2		0x06
1091da177e4SLinus Torvalds #define CISREG_IADDR3		0x07
1101da177e4SLinus Torvalds #define CISREG_IDATA0		0x08	/* data registers */
1111da177e4SLinus Torvalds #define CISREG_IDATA1		0x09
1121da177e4SLinus Torvalds 
1131da177e4SLinus Torvalds #define ICTRL0_COMMON		0x01
1141da177e4SLinus Torvalds #define ICTRL0_AUTOINC		0x02
1151da177e4SLinus Torvalds #define ICTRL0_BYTEGRAN		0x04
1161da177e4SLinus Torvalds 
1171da177e4SLinus Torvalds #endif /* _LINUX_CISREG_H */
118