gcscpcibreg.h revision 1.1 1 1.1 bouyer /* $NetBSD: gcscpcibreg.h,v 1.1 2011/08/27 12:47:49 bouyer Exp $ */
2 1.1 bouyer /* $OpenBSD: glxpcib.c,v 1.6 2007/11/17 17:02:47 mbalmer Exp $ */
3 1.1 bouyer
4 1.1 bouyer /*
5 1.1 bouyer * Copyright (c) 2007 Marc Balmer <mbalmer (at) openbsd.org>
6 1.1 bouyer * Copyright (c) 2007 Michael Shalayeff
7 1.1 bouyer * All rights reserved.
8 1.1 bouyer *
9 1.1 bouyer * Permission to use, copy, modify, and distribute this software for any
10 1.1 bouyer * purpose with or without fee is hereby granted, provided that the above
11 1.1 bouyer * copyright notice and this permission notice appear in all copies.
12 1.1 bouyer *
13 1.1 bouyer * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
14 1.1 bouyer * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
15 1.1 bouyer * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
16 1.1 bouyer * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
17 1.1 bouyer * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER IN
18 1.1 bouyer * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
19 1.1 bouyer * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
20 1.1 bouyer */
21 1.1 bouyer
22 1.1 bouyer /*
23 1.1 bouyer * Register definitions for the AMD CS5535/CS5536 Companion Device.
24 1.1 bouyer */
25 1.1 bouyer
26 1.1 bouyer #ifndef _IC_GCSCPCIBREG_H_
27 1.1 bouyer #define _IC_GCSCPCIBREG_H_
28 1.1 bouyer
29 1.1 bouyer #define AMD553X_REV 0x51400017
30 1.1 bouyer #define AMD553X_REV_MASK 0xff
31 1.1 bouyer #define AMD553X_TMC 0x51400050
32 1.1 bouyer
33 1.1 bouyer /* Multi-Functional General Purpose Timer */
34 1.1 bouyer #define MSR_LBAR_MFGPT 0x5140000d
35 1.1 bouyer #define AMD553X_MFGPT_MAX 6 /* 6 timers for wdog */
36 1.1 bouyer #define AMD553X_MFGPT_REGOFFSET 0x8
37 1.1 bouyer #define AMD553X_MFGPTX_CMP1(x) (0x00000000 + (AMD553X_MFGPT_REGOFFSET * (x)))
38 1.1 bouyer #define AMD553X_MFGPTX_CMP2(x) (0x00000002 + (AMD553X_MFGPT_REGOFFSET * (x)))
39 1.1 bouyer #define AMD553X_MFGPTX_CNT(x) (0x00000004 + (AMD553X_MFGPT_REGOFFSET * (x)))
40 1.1 bouyer #define AMD553X_MFGPTX_SETUP(x) (0x00000006 + (AMD553X_MFGPT_REGOFFSET * (x)))
41 1.1 bouyer #define AMD553X_MFGPT_DIV_MASK 0x000f /* div = 1 << mask */
42 1.1 bouyer #define AMD553X_MFGPT_DIV_1 0x0000
43 1.1 bouyer #define AMD553X_MFGPT_DIV_2 0x0001
44 1.1 bouyer #define AMD553X_MFGPT_DIV_4 0x0002
45 1.1 bouyer #define AMD553X_MFGPT_DIV_8 0x0003
46 1.1 bouyer #define AMD553X_MFGPT_DIV_16 0x0004
47 1.1 bouyer #define AMD553X_MFGPT_DIV_32 0x0005
48 1.1 bouyer #define AMD553X_MFGPT_DIV_64 0x0006
49 1.1 bouyer #define AMD553X_MFGPT_DIV_128 0x0007
50 1.1 bouyer #define AMD553X_MFGPT_DIV_256 0x0008
51 1.1 bouyer #define AMD553X_MFGPT_DIV_512 0x0009
52 1.1 bouyer #define AMD553X_MFGPT_DIV_1K 0x000a
53 1.1 bouyer #define AMD553X_MFGPT_DIV_2K 0x000b
54 1.1 bouyer #define AMD553X_MFGPT_DIV_4K 0x000c
55 1.1 bouyer #define AMD553X_MFGPT_DIV_8K 0x000d
56 1.1 bouyer #define AMD553X_MFGPT_DIV_16K 0x000e
57 1.1 bouyer #define AMD553X_MFGPT_DIV_32K 0x000f
58 1.1 bouyer #define AMD553X_MFGPT_CLKSEL 0x0010
59 1.1 bouyer #define AMD553X_MFGPT_REV_EN 0x0020
60 1.1 bouyer #define AMD553X_MFGPT_CMP1DIS 0x0000
61 1.1 bouyer #define AMD553X_MFGPT_CMP1EQ 0x0040
62 1.1 bouyer #define AMD553X_MFGPT_CMP1GE 0x0080
63 1.1 bouyer #define AMD553X_MFGPT_CMP1EV 0x00c0
64 1.1 bouyer #define AMD553X_MFGPT_CMP2DIS 0x0000
65 1.1 bouyer #define AMD553X_MFGPT_CMP2EQ 0x0100
66 1.1 bouyer #define AMD553X_MFGPT_CMP2GE 0x0200
67 1.1 bouyer #define AMD553X_MFGPT_CMP2EV 0x0300
68 1.1 bouyer #define AMD553X_MFGPT_STOP_EN 0x0800
69 1.1 bouyer #define AMD553X_MFGPT_SET 0x1000
70 1.1 bouyer #define AMD553X_MFGPT_CMP1 0x2000
71 1.1 bouyer #define AMD553X_MFGPT_CMP2 0x4000
72 1.1 bouyer #define AMD553X_MFGPT_CNT_EN 0x8000
73 1.1 bouyer #define AMD553X_MFGPT_IRQ 0x51400028
74 1.1 bouyer #define AMD553X_MFGPT0_C1_IRQM 0x00000001
75 1.1 bouyer #define AMD553X_MFGPT1_C1_IRQM 0x00000002
76 1.1 bouyer #define AMD553X_MFGPT2_C1_IRQM 0x00000004
77 1.1 bouyer #define AMD553X_MFGPT3_C1_IRQM 0x00000008
78 1.1 bouyer #define AMD553X_MFGPT4_C1_IRQM 0x00000010
79 1.1 bouyer #define AMD553X_MFGPT5_C1_IRQM 0x00000020
80 1.1 bouyer #define AMD553X_MFGPT6_C1_IRQM 0x00000040
81 1.1 bouyer #define AMD553X_MFGPT7_C1_IRQM 0x00000080
82 1.1 bouyer #define AMD553X_MFGPT0_C2_IRQM 0x00000100
83 1.1 bouyer #define AMD553X_MFGPT1_C2_IRQM 0x00000200
84 1.1 bouyer #define AMD553X_MFGPT2_C2_IRQM 0x00000400
85 1.1 bouyer #define AMD553X_MFGPT3_C2_IRQM 0x00000800
86 1.1 bouyer #define AMD553X_MFGPT4_C2_IRQM 0x00001000
87 1.1 bouyer #define AMD553X_MFGPT5_C2_IRQM 0x00002000
88 1.1 bouyer #define AMD553X_MFGPT6_C2_IRQM 0x00004000
89 1.1 bouyer #define AMD553X_MFGPT7_C2_IRQM 0x00008000
90 1.1 bouyer #define AMD553X_MFGPT_NR 0x51400029 /* NMI and Reset mask */
91 1.1 bouyer #define AMD553X_MFGPT0_C1_NMIM 0x00000001
92 1.1 bouyer #define AMD553X_MFGPT1_C1_NMIM 0x00000002
93 1.1 bouyer #define AMD553X_MFGPT2_C1_NMIM 0x00000004
94 1.1 bouyer #define AMD553X_MFGPT3_C1_NMIM 0x00000008
95 1.1 bouyer #define AMD553X_MFGPT4_C1_NMIM 0x00000010
96 1.1 bouyer #define AMD553X_MFGPT5_C1_NMIM 0x00000020
97 1.1 bouyer #define AMD553X_MFGPT6_C1_NMIM 0x00000040
98 1.1 bouyer #define AMD553X_MFGPT7_C1_NMIM 0x00000080
99 1.1 bouyer #define AMD553X_MFGPT0_C2_NMIM 0x00000100
100 1.1 bouyer #define AMD553X_MFGPT1_C2_NMIM 0x00000200
101 1.1 bouyer #define AMD553X_MFGPT2_C2_NMIM 0x00000400
102 1.1 bouyer #define AMD553X_MFGPT3_C2_NMIM 0x00000800
103 1.1 bouyer #define AMD553X_MFGPT4_C2_NMIM 0x00001000
104 1.1 bouyer #define AMD553X_MFGPT5_C2_NMIM 0x00002000
105 1.1 bouyer #define AMD553X_MFGPT6_C2_NMIM 0x00004000
106 1.1 bouyer #define AMD553X_MFGPT7_C2_NMIM 0x00008000
107 1.1 bouyer #define AMD553X_NMI_LEG 0x00010000
108 1.1 bouyer #define AMD553X_MFGPT0_C2_RSTEN 0x01000000
109 1.1 bouyer #define AMD553X_MFGPT1_C2_RSTEN 0x02000000
110 1.1 bouyer #define AMD553X_MFGPT2_C2_RSTEN 0x04000000
111 1.1 bouyer #define AMD553X_MFGPT3_C2_RSTEN 0x08000000
112 1.1 bouyer #define AMD553X_MFGPT4_C2_RSTEN 0x10000000
113 1.1 bouyer #define AMD553X_MFGPT5_C2_RSTEN 0x20000000
114 1.1 bouyer #define AMD553X_MFGPT_SETUP 0x5140002b
115 1.1 bouyer
116 1.1 bouyer /* SMB / IIC */
117 1.1 bouyer #define MSR_LBAR_SMB 0x5140000b
118 1.1 bouyer
119 1.1 bouyer /* GPIO */
120 1.1 bouyer #define MSR_LBAR_GPIO 0x5140000c
121 1.1 bouyer #define AMD553X_GPIO_NPINS 32
122 1.1 bouyer #define AMD553X_GPIOH_OFFSET 0x80 /* high bank register offset */
123 1.1 bouyer #define AMD553X_GPIO_OUT_VAL 0x00 /* output value */
124 1.1 bouyer #define AMD553X_GPIO_OUT_EN 0x04 /* output enable */
125 1.1 bouyer #define AMD553X_GPIO_OD_EN 0x08 /* open-drain enable */
126 1.1 bouyer #define AMD553X_GPIO_OUT_INVRT_EN 0x0c /* invert output enable*/
127 1.1 bouyer #define AMD553X_GPIO_PU_EN 0x18 /* pull-up enable */
128 1.1 bouyer #define AMD553X_GPIO_PD_EN 0x1c /* pull-down enable */
129 1.1 bouyer #define AMD553X_GPIO_IN_EN 0x20 /* input enable */
130 1.1 bouyer #define AMD553X_GPIO_IN_INVRT_EN 0x24 /* invert input */
131 1.1 bouyer #define AMD553X_GPIO_IN_FLTR_EN 0x28 /* filter enable */
132 1.1 bouyer #define AMD553X_GPIO_IN_EVNTCNT_EN 0x2c /* event counter enable */
133 1.1 bouyer #define AMD553X_GPIO_READ_BACK 0x30 /* read back value */
134 1.1 bouyer #define AMD553X_GPIO_EVNT_EN 0x38 /* event enable */
135 1.1 bouyer #define AMD553X_GPIO_LOCK_EN 0x3c /* lock enable */
136 1.1 bouyer #define AMD553X_GPIO_IN_PE_EN 0x40 /* input positive edge enable */
137 1.1 bouyer #define AMD553X_GPIO_IN_NE_EN 0x44 /* input negative edge enable */
138 1.1 bouyer #define AMD553X_GPIO_IN_NE_STS 0x48 /* input negative edge status */
139 1.1 bouyer #define AMD553X_GPIO_IN_PE_STS 0x4c /* input positive edge status */
140 1.1 bouyer
141 1.1 bouyer #endif /* _IC_GCSCPCIBREG_H_ */
142