Subversion Repositories shark

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
424 giacomo 1
#ifndef __I386_SGI_PIIX_H
2
#define __I386_SGI_PIIX_H
3
 
4
/*
5
 * PIIX4 as used on SGI Visual Workstations
6
 */
7
 
8
#define PIIX_PM_START           0x0F80
9
 
10
#define SIO_GPIO_START          0x0FC0
11
 
12
#define SIO_PM_START            0x0FC8
13
 
14
#define PMBASE                  PIIX_PM_START
15
#define GPIREG0                 (PMBASE+0x30)
16
#define GPIREG(x)               (GPIREG0+((x)/8))
17
#define GPIBIT(x)               (1 << ((x)%8))
18
 
19
#define PIIX_GPI_BD_ID1         18
20
#define PIIX_GPI_BD_ID2         19
21
#define PIIX_GPI_BD_ID3         20
22
#define PIIX_GPI_BD_ID4         21
23
#define PIIX_GPI_BD_REG         GPIREG(PIIX_GPI_BD_ID1)
24
#define PIIX_GPI_BD_MASK        (GPIBIT(PIIX_GPI_BD_ID1) | \
25
                                GPIBIT(PIIX_GPI_BD_ID2) | \
26
                                GPIBIT(PIIX_GPI_BD_ID3) | \
27
                                GPIBIT(PIIX_GPI_BD_ID4) )
28
 
29
#define PIIX_GPI_BD_SHIFT       (PIIX_GPI_BD_ID1 % 8)
30
 
31
#define SIO_INDEX               0x2e
32
#define SIO_DATA                0x2f
33
 
34
#define SIO_DEV_SEL             0x7
35
#define SIO_DEV_ENB             0x30
36
#define SIO_DEV_MSB             0x60
37
#define SIO_DEV_LSB             0x61
38
 
39
#define SIO_GP_DEV              0x7
40
 
41
#define SIO_GP_BASE             SIO_GPIO_START
42
#define SIO_GP_MSB              (SIO_GP_BASE>>8)
43
#define SIO_GP_LSB              (SIO_GP_BASE&0xff)
44
 
45
#define SIO_GP_DATA1            (SIO_GP_BASE+0)
46
 
47
#define SIO_PM_DEV              0x8
48
 
49
#define SIO_PM_BASE             SIO_PM_START
50
#define SIO_PM_MSB              (SIO_PM_BASE>>8)
51
#define SIO_PM_LSB              (SIO_PM_BASE&0xff)
52
#define SIO_PM_INDEX            (SIO_PM_BASE+0)
53
#define SIO_PM_DATA             (SIO_PM_BASE+1)
54
 
55
#define SIO_PM_FER2             0x1
56
 
57
#define SIO_PM_GP_EN            0x80
58
 
59
 
60
 
61
/*
62
 * This is the dev/reg where generating a config cycle will
63
 * result in a PCI special cycle.
64
 */
65
#define SPECIAL_DEV             0xff
66
#define SPECIAL_REG             0x00
67
 
68
/*
69
 * PIIX4 needs to see a special cycle with the following data
70
 * to be convinced the processor has gone into the stop grant
71
 * state.  PIIX4 insists on seeing this before it will power
72
 * down a system.
73
 */
74
#define PIIX_SPECIAL_STOP               0x00120002
75
 
76
#define PIIX4_RESET_PORT        0xcf9
77
#define PIIX4_RESET_VAL         0x6
78
 
79
#define PMSTS_PORT              0xf80   // 2 bytes      PM Status
80
#define PMEN_PORT               0xf82   // 2 bytes      PM Enable
81
#define PMCNTRL_PORT            0xf84   // 2 bytes      PM Control
82
 
83
#define PM_SUSPEND_ENABLE       0x2000  // start sequence to suspend state
84
 
85
/*
86
 * PMSTS and PMEN I/O bit definitions.
87
 * (Bits are the same in both registers)
88
 */
89
#define PM_STS_RSM              (1<<15) // Resume Status
90
#define PM_STS_PWRBTNOR         (1<<11) // Power Button Override
91
#define PM_STS_RTC              (1<<10) // RTC status
92
#define PM_STS_PWRBTN           (1<<8)  // Power Button Pressed?
93
#define PM_STS_GBL              (1<<5)  // Global Status
94
#define PM_STS_BM               (1<<4)  // Bus Master Status
95
#define PM_STS_TMROF            (1<<0)  // Timer Overflow Status.
96
 
97
/*
98
 * Stop clock GPI register
99
 */
100
#define PIIX_GPIREG0                    (0xf80 + 0x30)
101
 
102
/*
103
 * Stop clock GPI bit in GPIREG0
104
 */
105
#define PIIX_GPI_STPCLK         0x4     // STPCLK signal routed back in
106
 
107
#endif