Input: wm97xx: add new AC97 bus support
[sfrench/cifs-2.6.git] / arch / mips / include / asm / mach-loongson64 / cs5536 / cs5536_pci.h
1 /*
2  * the definition file of cs5536 Virtual Support Module(VSM).
3  * pci configuration space can be accessed through the VSM, so
4  * there is no need of the MSR read/write now, except the spec.
5  * MSR registers which are not implemented yet.
6  *
7  * Copyright (C) 2007 Lemote Inc.
8  * Author : jlliu, liujl@lemote.com
9  */
10
11 #ifndef _CS5536_PCI_H
12 #define _CS5536_PCI_H
13
14 #include <linux/types.h>
15 #include <linux/pci_regs.h>
16
17 extern void cs5536_pci_conf_write4(int function, int reg, u32 value);
18 extern u32 cs5536_pci_conf_read4(int function, int reg);
19
20 #define CS5536_ACC_INTR         9
21 #define CS5536_IDE_INTR         14
22 #define CS5536_USB_INTR         11
23 #define CS5536_MFGPT_INTR       5
24 #define CS5536_UART1_INTR       4
25 #define CS5536_UART2_INTR       3
26
27 /************** PCI BUS DEVICE FUNCTION ***************/
28
29 /*
30  * PCI bus device function
31  */
32 #define PCI_BUS_CS5536          0
33 #define PCI_IDSEL_CS5536        14
34
35 /********** STANDARD PCI-2.2 EXPANSION ****************/
36
37 /*
38  * PCI configuration space
39  * we have to virtualize the PCI configure space head, so we should
40  * define the necessary IDs and some others.
41  */
42
43 /* CONFIG of PCI VENDOR ID*/
44 #define CFG_PCI_VENDOR_ID(mod_dev_id, sys_vendor_id) \
45         (((mod_dev_id) << 16) | (sys_vendor_id))
46
47 /* VENDOR ID */
48 #define CS5536_VENDOR_ID        0x1022
49
50 /* DEVICE ID */
51 #define CS5536_ISA_DEVICE_ID            0x2090
52 #define CS5536_IDE_DEVICE_ID            0x209a
53 #define CS5536_ACC_DEVICE_ID            0x2093
54 #define CS5536_OHCI_DEVICE_ID           0x2094
55 #define CS5536_EHCI_DEVICE_ID           0x2095
56
57 /* CLASS CODE : CLASS SUB-CLASS INTERFACE */
58 #define CS5536_ISA_CLASS_CODE           0x060100
59 #define CS5536_IDE_CLASS_CODE           0x010180
60 #define CS5536_ACC_CLASS_CODE           0x040100
61 #define CS5536_OHCI_CLASS_CODE          0x0C0310
62 #define CS5536_EHCI_CLASS_CODE          0x0C0320
63
64 /* BHLC : BIST HEADER-TYPE LATENCY-TIMER CACHE-LINE-SIZE */
65
66 #define CFG_PCI_CACHE_LINE_SIZE(header_type, latency_timer)     \
67         ((PCI_NONE_BIST << 24) | ((header_type) << 16) \
68                 | ((latency_timer) << 8) | PCI_NORMAL_CACHE_LINE_SIZE);
69
70 #define PCI_NONE_BIST                   0x00    /* RO not implemented yet. */
71 #define PCI_BRIDGE_HEADER_TYPE          0x80    /* RO */
72 #define PCI_NORMAL_HEADER_TYPE          0x00
73 #define PCI_NORMAL_LATENCY_TIMER        0x00
74 #define PCI_NORMAL_CACHE_LINE_SIZE      0x08    /* RW */
75
76 /* BAR */
77 #define PCI_BAR0_REG                    0x10
78 #define PCI_BAR1_REG                    0x14
79 #define PCI_BAR2_REG                    0x18
80 #define PCI_BAR3_REG                    0x1c
81 #define PCI_BAR4_REG                    0x20
82 #define PCI_BAR5_REG                    0x24
83 #define PCI_BAR_RANGE_MASK              0xFFFFFFFF
84
85 /* CARDBUS CIS POINTER */
86 #define PCI_CARDBUS_CIS_POINTER         0x00000000
87
88 /* SUBSYSTEM VENDOR ID  */
89 #define CS5536_SUB_VENDOR_ID            CS5536_VENDOR_ID
90
91 /* SUBSYSTEM ID */
92 #define CS5536_ISA_SUB_ID               CS5536_ISA_DEVICE_ID
93 #define CS5536_IDE_SUB_ID               CS5536_IDE_DEVICE_ID
94 #define CS5536_ACC_SUB_ID               CS5536_ACC_DEVICE_ID
95 #define CS5536_OHCI_SUB_ID              CS5536_OHCI_DEVICE_ID
96 #define CS5536_EHCI_SUB_ID              CS5536_EHCI_DEVICE_ID
97
98 /* EXPANSION ROM BAR */
99 #define PCI_EXPANSION_ROM_BAR           0x00000000
100
101 /* CAPABILITIES POINTER */
102 #define PCI_CAPLIST_POINTER             0x00000000
103 #define PCI_CAPLIST_USB_POINTER         0x40
104 /* INTERRUPT */
105
106 #define CFG_PCI_INTERRUPT_LINE(pin, mod_intr) \
107         ((PCI_MAX_LATENCY << 24) | (PCI_MIN_GRANT << 16) | \
108                 ((pin) << 8) | (mod_intr))
109
110 #define PCI_MAX_LATENCY                 0x40
111 #define PCI_MIN_GRANT                   0x00
112 #define PCI_DEFAULT_PIN                 0x01
113
114 /*********** EXPANSION PCI REG ************************/
115
116 /*
117  * ISA EXPANSION
118  */
119 #define PCI_UART1_INT_REG       0x50
120 #define PCI_UART2_INT_REG       0x54
121 #define PCI_ISA_FIXUP_REG       0x58
122
123 /*
124  * IDE EXPANSION
125  */
126 #define PCI_IDE_CFG_REG         0x40
127 #define CS5536_IDE_FLASH_SIGNATURE      0xDEADBEEF
128 #define PCI_IDE_DTC_REG         0x48
129 #define PCI_IDE_CAST_REG        0x4C
130 #define PCI_IDE_ETC_REG         0x50
131 #define PCI_IDE_PM_REG          0x54
132 #define PCI_IDE_INT_REG         0x60
133
134 /*
135  * ACC EXPANSION
136  */
137 #define PCI_ACC_INT_REG         0x50
138
139 /*
140  * OHCI EXPANSION : INTTERUPT IS IMPLEMENTED BY THE OHCI
141  */
142 #define PCI_OHCI_PM_REG         0x40
143 #define PCI_OHCI_INT_REG        0x50
144
145 /*
146  * EHCI EXPANSION
147  */
148 #define PCI_EHCI_LEGSMIEN_REG   0x50
149 #define PCI_EHCI_LEGSMISTS_REG  0x54
150 #define PCI_EHCI_FLADJ_REG      0x60
151
152 #endif                          /* _CS5536_PCI_H_ */