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