|
|
1.1 root 1: /*
2: * o2micro.h 1.20 2002/03/03 14:16:57
3: *
4: * The contents of this file are subject to the Mozilla Public License
5: * Version 1.1 (the "License"); you may not use this file except in
6: * compliance with the License. You may obtain a copy of the License
7: * at http://www.mozilla.org/MPL/
8: *
9: * Software distributed under the License is distributed on an "AS IS"
10: * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
11: * the License for the specific language governing rights and
12: * limitations under the License.
13: *
14: * The initial developer of the original code is David A. Hinds
15: * <[email protected]>. Portions created by David A. Hinds
16: * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
17: *
18: * Alternatively, the contents of this file may be used under the
19: * terms of the GNU General Public License version 2 (the "GPL"), in
20: * which case the provisions of the GPL are applicable instead of the
21: * above. If you wish to allow the use of your version of this file
22: * only under the terms of the GPL and not to allow others to use
23: * your version of this file under the MPL, indicate your decision by
24: * deleting the provisions above and replace them with the notice and
25: * other provisions required by the GPL. If you do not delete the
26: * provisions above, a recipient may use your version of this file
27: * under either the MPL or the GPL.
28: */
29:
30: #ifndef _LINUX_O2MICRO_H
31: #define _LINUX_O2MICRO_H
32:
33: #ifndef PCI_VENDOR_ID_O2
34: #define PCI_VENDOR_ID_O2 0x1217
35: #endif
36: #ifndef PCI_DEVICE_ID_O2_6729
37: #define PCI_DEVICE_ID_O2_6729 0x6729
38: #endif
39: #ifndef PCI_DEVICE_ID_O2_6730
40: #define PCI_DEVICE_ID_O2_6730 0x673a
41: #endif
42: #ifndef PCI_DEVICE_ID_O2_6832
43: #define PCI_DEVICE_ID_O2_6832 0x6832
44: #endif
45: #ifndef PCI_DEVICE_ID_O2_6836
46: #define PCI_DEVICE_ID_O2_6836 0x6836
47: #endif
48: #ifndef PCI_DEVICE_ID_O2_6812
49: #define PCI_DEVICE_ID_O2_6812 0x6872
50: #endif
51: #ifndef PCI_DEVICE_ID_O2_6922
52: #define PCI_DEVICE_ID_O2_6922 0x6825
53: #endif
54: #ifndef PCI_DEVICE_ID_O2_6933
55: #define PCI_DEVICE_ID_O2_6933 0x6933
56: #endif
57: #ifndef PCI_DEVICE_ID_O2_6912
58: #define PCI_DEVICE_ID_O2_6912 0x6972
59: #endif
60:
61: /* Additional PCI configuration registers */
62:
63: #define O2_MUX_CONTROL 0x90 /* 32 bit */
64: #define O2_MUX_RING_OUT 0x0000000f
65: #define O2_MUX_SKTB_ACTV 0x000000f0
66: #define O2_MUX_SCTA_ACTV_ENA 0x00000100
67: #define O2_MUX_SCTB_ACTV_ENA 0x00000200
68: #define O2_MUX_SER_IRQ_ROUTE 0x0000e000
69: #define O2_MUX_SER_PCI 0x00010000
70:
71: #define O2_MUX_SKTA_TURBO 0x000c0000 /* for 6833, 6860 */
72: #define O2_MUX_SKTB_TURBO 0x00300000
73: #define O2_MUX_AUX_VCC_3V 0x00400000
74: #define O2_MUX_PCI_VCC_5V 0x00800000
75: #define O2_MUX_PME_MUX 0x0f000000
76:
77: /* Additional ExCA registers */
78:
79: #define O2_MODE_A 0x38
80: #define O2_MODE_A_2 0x26 /* for 6833B, 6860C */
81: #define O2_MODE_A_CD_PULSE 0x04
82: #define O2_MODE_A_SUSP_EDGE 0x08
83: #define O2_MODE_A_HOST_SUSP 0x10
84: #define O2_MODE_A_PWR_MASK 0x60
85: #define O2_MODE_A_QUIET 0x80
86:
87: #define O2_MODE_B 0x39
88: #define O2_MODE_B_2 0x2e /* for 6833B, 6860C */
89: #define O2_MODE_B_IDENT 0x03
90: #define O2_MODE_B_ID_BSTEP 0x00
91: #define O2_MODE_B_ID_CSTEP 0x01
92: #define O2_MODE_B_ID_O2 0x02
93: #define O2_MODE_B_VS1 0x04
94: #define O2_MODE_B_VS2 0x08
95: #define O2_MODE_B_IRQ15_RI 0x80
96:
97: #define O2_MODE_C 0x3a
98: #define O2_MODE_C_DREQ_MASK 0x03
99: #define O2_MODE_C_DREQ_INPACK 0x01
100: #define O2_MODE_C_DREQ_WP 0x02
101: #define O2_MODE_C_DREQ_BVD2 0x03
102: #define O2_MODE_C_ZVIDEO 0x08
103: #define O2_MODE_C_IREQ_SEL 0x30
104: #define O2_MODE_C_MGMT_SEL 0xc0
105:
106: #define O2_MODE_D 0x3b
107: #define O2_MODE_D_IRQ_MODE 0x03
108: #define O2_MODE_D_IRQ_PCPCI 0x00
109: #define O2_MODE_D_IRQ_PCIWAY 0x02
110: #define O2_MODE_D_IRQ_PCI 0x03
111: #define O2_MODE_D_PCI_CLKRUN 0x04
112: #define O2_MODE_D_CB_CLKRUN 0x08
113: #define O2_MODE_D_SKT_ACTV 0x20
114: #define O2_MODE_D_PCI_FIFO 0x40 /* for OZ6729, OZ6730 */
115: #define O2_MODE_D_W97_IRQ 0x40
116: #define O2_MODE_D_ISA_IRQ 0x80
117:
118: #define O2_MHPG_DMA 0x3c
119: #define O2_MHPG_CHANNEL 0x07
120: #define O2_MHPG_CINT_ENA 0x08
121: #define O2_MHPG_CSC_ENA 0x10
122:
123: #define O2_FIFO_ENA 0x3d
124: #define O2_FIFO_ZVIDEO_3 0x08
125: #define O2_FIFO_PCI_FIFO 0x10
126: #define O2_FIFO_POSTWR 0x40
127: #define O2_FIFO_BUFFER 0x80
128:
129: #define O2_MODE_E 0x3e
130: #define O2_MODE_E_MHPG_DMA 0x01
131: #define O2_MODE_E_SPKR_OUT 0x02
132: #define O2_MODE_E_LED_OUT 0x08
133: #define O2_MODE_E_SKTA_ACTV 0x10
134:
135: /* Data structure for tracking vendor-specific state */
136: typedef struct o2micro_state_t {
137: u_char mode_a; /* O2_MODE_A */
138: u_char mode_b; /* O2_MODE_B */
139: u_char mode_c; /* O2_MODE_C */
140: u_char mode_d; /* O2_MODE_D */
141: u_char mhpg; /* O2_MHPG_DMA */
142: u_char fifo; /* O2_FIFO_ENA */
143: u_char mode_e; /* O2_MODE_E */
144: } o2micro_state_t;
145:
146: #define O2MICRO_PCIC_ID \
147: IS_OZ6729, IS_OZ6730, IS_OZ6832, IS_OZ6836, IS_OZ6812, \
148: IS_OZ6922, IS_OZ6933, IS_OZ6912
149:
150: #define O2MICRO_PCIC_INFO \
151: { "O2Micro OZ6729", IS_O2MICRO|IS_PCI|IS_VG_PWR, ID(O2, 6729) }, \
152: { "O2Micro OZ6730", IS_O2MICRO|IS_PCI|IS_VG_PWR, ID(O2, 6730) }, \
153: { "O2Micro OZ6832/33", IS_O2MICRO|IS_CARDBUS, ID(O2, 6832) }, \
154: { "O2Micro OZ6836/60", IS_O2MICRO|IS_CARDBUS, ID(O2, 6836) }, \
155: { "O2Micro OZ6812", IS_O2MICRO|IS_CARDBUS, ID(O2, 6812) }, \
156: { "O2Micro OZ6922", IS_O2MICRO|IS_CARDBUS, ID(O2, 6922) }, \
157: { "O2Micro OZ6933", IS_O2MICRO|IS_CARDBUS, ID(O2, 6933) }, \
158: { "O2Micro OZ6912", IS_O2MICRO|IS_CARDBUS, ID(O2, 6912) }
159:
160: #endif /* _LINUX_O2MICRO_H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.