#ifndef _LINUX_O2MICRO_H
#define _LINUX_O2MICRO_H
#ifndef PCI_VENDOR_ID_O2
#define PCI_VENDOR_ID_O2 0x1217
#endif
#ifndef PCI_DEVICE_ID_O2_6729
#define PCI_DEVICE_ID_O2_6729 0x6729
#endif
#ifndef PCI_DEVICE_ID_O2_6730
#define PCI_DEVICE_ID_O2_6730 0x673a
#endif
#ifndef PCI_DEVICE_ID_O2_6832
#define PCI_DEVICE_ID_O2_6832 0x6832
#endif
#ifndef PCI_DEVICE_ID_O2_6836
#define PCI_DEVICE_ID_O2_6836 0x6836
#endif
#ifndef PCI_DEVICE_ID_O2_6812
#define PCI_DEVICE_ID_O2_6812 0x6872
#endif
#ifndef PCI_DEVICE_ID_O2_6972
#define PCI_DEVICE_ID_O2_6972 0x6972
#endif
#ifndef PCI_DEVICE_ID_O2_6933
#define PCI_DEVICE_ID_O2_6933 0x6933
#endif
#ifndef PCI_DEVICE_ID_O2_7112
#define PCI_DEVICE_ID_O2_7112 0x7112
#endif
#ifndef PCI_DEVICE_ID_O2_7113
#define PCI_DEVICE_ID_O2_7113 0x7113
#endif
#ifndef PCI_DEVICE_ID_O2_7114
#define PCI_DEVICE_ID_O2_7114 0x7114
#endif
#ifndef PCI_DEVICE_ID_O2_71E2
#define PCI_DEVICE_ID_O2_71E2 0x71E2
#endif
#ifndef PCI_DEVICE_ID_O2_7212
#define PCI_DEVICE_ID_O2_7212 0x7212
#endif
#ifndef PCI_DEVICE_ID_O2_7223
#define PCI_DEVICE_ID_O2_7223 0x7223
#endif
#define O2_MUX_CONTROL 0x90
#define O2_MUX_RING_OUT 0x0000000f
#define O2_MUX_SKTB_ACTV 0x000000f0
#define O2_MUX_SCTA_ACTV_ENA 0x00000100
#define O2_MUX_SCTB_ACTV_ENA 0x00000200
#define O2_MUX_SER_IRQ_ROUTE 0x0000e000
#define O2_MUX_SER_PCI 0x00010000
#define O2_MUX_SKTA_TURBO 0x000c0000
#define O2_MUX_SKTB_TURBO 0x00300000
#define O2_MUX_AUX_VCC_3V 0x00400000
#define O2_MUX_PCI_VCC_5V 0x00800000
#define O2_MUX_PME_MUX 0x0f000000
#define O2_MODE_A 0x38
#define O2_MODE_A_2 0x26
#define O2_MODE_A_CD_PULSE 0x04
#define O2_MODE_A_SUSP_EDGE 0x08
#define O2_MODE_A_HOST_SUSP 0x10
#define O2_MODE_A_PWR_MASK 0x60
#define O2_MODE_A_QUIET 0x80
#define O2_MODE_B 0x39
#define O2_MODE_B_2 0x2e
#define O2_MODE_B_IDENT 0x03
#define O2_MODE_B_ID_BSTEP 0x00
#define O2_MODE_B_ID_CSTEP 0x01
#define O2_MODE_B_ID_O2 0x02
#define O2_MODE_B_VS1 0x04
#define O2_MODE_B_VS2 0x08
#define O2_MODE_B_IRQ15_RI 0x80
#define O2_MODE_C 0x3a
#define O2_MODE_C_DREQ_MASK 0x03
#define O2_MODE_C_DREQ_INPACK 0x01
#define O2_MODE_C_DREQ_WP 0x02
#define O2_MODE_C_DREQ_BVD2 0x03
#define O2_MODE_C_ZVIDEO 0x08
#define O2_MODE_C_IREQ_SEL 0x30
#define O2_MODE_C_MGMT_SEL 0xc0
#define O2_MODE_D 0x3b
#define O2_MODE_D_IRQ_MODE 0x03
#define O2_MODE_D_IRQ_PCPCI 0x00
#define O2_MODE_D_IRQ_PCIWAY 0x02
#define O2_MODE_D_IRQ_PCI 0x03
#define O2_MODE_D_PCI_CLKRUN 0x04
#define O2_MODE_D_CB_CLKRUN 0x08
#define O2_MODE_D_SKT_ACTV 0x20
#define O2_MODE_D_PCI_FIFO 0x40
#define O2_MODE_D_W97_IRQ 0x40
#define O2_MODE_D_ISA_IRQ 0x80
#define O2_MHPG_DMA 0x3c
#define O2_MHPG_CHANNEL 0x07
#define O2_MHPG_CINT_ENA 0x08
#define O2_MHPG_CSC_ENA 0x10
#define O2_FIFO_ENA 0x3d
#define O2_FIFO_ZVIDEO_3 0x08
#define O2_FIFO_PCI_FIFO 0x10
#define O2_FIFO_POSTWR 0x40
#define O2_FIFO_BUFFER 0x80
#define O2_MODE_E 0x3e
#define O2_MODE_E_MHPG_DMA 0x01
#define O2_MODE_E_SPKR_OUT 0x02
#define O2_MODE_E_LED_OUT 0x08
#define O2_MODE_E_SKTA_ACTV 0x10
typedef struct o2micro_state_t {
u_char mode_a;
u_char mode_b;
u_char mode_c;
u_char mode_d;
u_char mhpg;
u_char fifo;
u_char mode_e;
} o2micro_state_t;
#define O2MICRO_PCIC_ID \
IS_OZ6729, IS_OZ6730, IS_OZ6832, IS_OZ6836, IS_OZ6812, IS_OZ6933, \
IS_OZ6972, IS_OZ7112, IS_OZ7113, IS_OZ7114, IS_OZ71E2, IS_OZ7212, \
IS_OS7223
#define O2MICRO_PCIC_INFO \
{ "O2Micro OZ6729", IS_O2MICRO|IS_PCI|IS_VG_PWR, ID(O2, 6729) }, \
{ "O2Micro OZ6730", IS_O2MICRO|IS_PCI|IS_VG_PWR, ID(O2, 6730) }, \
{ "O2Micro OZ6832/33", IS_O2MICRO|IS_CARDBUS, ID(O2, 6832) }, \
{ "O2Micro OZ6836/60", IS_O2MICRO|IS_CARDBUS, ID(O2, 6836) }, \
{ "O2Micro OZ6812", IS_O2MICRO|IS_CARDBUS, ID(O2, 6812) }, \
{ "O2Micro OZ6912/711E0", IS_O2MICRO|IS_CARDBUS, ID(O2, 6972) }, \
{ "O2Micro OZ6933/711E1", IS_O2MICRO|IS_CARDBUS, ID(O2, 6933) }, \
{ "O2Micro OZ711EC1/M1", IS_O2MICRO|IS_CARDBUS, ID(O2, 7112) }, \
{ "O2Micro OZ711EC1", IS_O2MICRO|IS_CARDBUS, ID(O2, 7113) }, \
{ "O2Micro OZ711M1", IS_O2MICRO|IS_CARDBUS, ID(O2, 7114) }, \
{ "O2Micro OZ711E2", IS_O2MICRO|IS_CARDBUS, ID(O2, 71E2) }, \
{ "O2Micro OZ711M2", IS_O2MICRO|IS_CARDBUS, ID(O2, 7212) }, \
{ "O2Micro OZ711M3", IS_O2MICRO|IS_CARDBUS, ID(O2, 7223) }
#endif