blob: f1183085b14a7bb35d4d94b0859711ed6f46b117 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
/*
* This file is part of the coreboot project.
*
* Copyright (C) 2000 AG Electronics Ltd.
* Copyright (C) 2003-2004 Linux Networx
* Copyright (C) 2004 Tyan
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef SUPERIO_NSC_PC87417_H
#define SUPERIO_NSC_PC87417_H
#define PC87417_FDC 0x00 /* Floppy */
#define PC87417_PP 0x01 /* Parallel Port */
#define PC87417_SP2 0x02 /* Com2 */
#define PC87417_SP1 0x03 /* Com1 */
#define PC87417_SWC 0x04 /* System Wake-Up Controller (SWC) */
#define PC87417_KBCM 0x05 /* Mouse */
#define PC87417_KBCK 0x06 /* Keyboard */
#define PC87417_GPIO 0x07
#define PC87417_XBUS 0x0F
#define PC87417_RTC 0x10
#define PC87417_GPIO_DEV PNP_DEV(0x2e, PC87417_GPIO)
/* This is to get around a romcc bug */
/* #define PC87417_XBUS_DEV PNP_DEV(0x2e, PC87417_XBUS) */
#define PC87417_XBUS_DEV PNP_DEV(0x2e, 0x0f)
#define PC87417_GPSEL 0xf0
#define PC87417_GPCFG1 0xf1
#define PC87417_GPEVR 0xf2
#define PC87417_GPCFG2 0xf3
#define PC87417_EXTCFG 0xf4
#define PC87417_IOEXT1A 0xf5
#define PC87417_IOEXT1B 0xf6
#define PC87417_IOEXT2A 0xf7
#define PC87417_IOEXT2B 0xf8
#define PC87417_GPDO_0 0x00
#define PC87417_GPDI_0 0x01
#define PC87417_GPDO_1 0x02
#define PC87417_GPDI_1 0x03
#define PC87417_GPEVEN_1 0x04
#define PC87417_GPEVST_1 0x05
#define PC87417_GPDO_2 0x06
#define PC87417_GPDI_2 0x07
#define PC87417_GPDO_3 0x08
#define PC87417_GPDI_3 0x09
#define PC87417_GPDO_4 0x0a
#define PC87417_GPDI_4 0x0b
#define PC87417_GPEVEN_4 0x0c
#define PC87417_GPEVST_4 0x0d
#define PC87417_GPDO_5 0x0e
#define PC87417_GPDI_5 0x0f
#define PC87417_GPDO_6 0x10
#define PC87417_GPDO_7A 0x11
#define PC87417_GPDO_7B 0x12
#define PC87417_GPDO_7C 0x13
#define PC87417_GPDO_7D 0x14
#define PC87417_GPDI_7A 0x15
#define PC87417_GPDI_7B 0x16
#define PC87417_GPDI_7C 0x17
#define PC87417_GPDI_7D 0x18
#define PC87417_XIOCNF 0xf0
#define PC87417_XIOBA1H 0xf1
#define PC87417_XIOBA1L 0xf2
#define PC87417_XIOSIZE1 0xf3
#define PC87417_XIOBA2H 0xf4
#define PC87417_XIOBA2L 0xf5
#define PC87417_XIOSIZE2 0xf6
#define PC87417_XMEMCNF1 0xf7
#define PC87417_XMEMCNF2 0xf8
#define PC87417_XMEMBAH 0xf9
#define PC87417_XMEMBAL 0xfa
#define PC87417_XMEMSIZE 0xfb
#define PC87417_XIRQMAP1 0xfc
#define PC87417_XIRQMAP2 0xfd
#define PC87417_XBIMM 0xfe
#define PC87417_XBBSL 0xff
#define PC87417_XBCNF 0x00
#define PC87417_XZCNF0 0x01
#define PC87417_XZCNF1 0x02
#define PC87417_XIRQC0 0x04
#define PC87417_XIRQC1 0x05
#define PC87417_XIRQC2 0x06
#define PC87417_XIMA0 0x08
#define PC87417_XIMA1 0x09
#define PC87417_XIMA2 0x0a
#define PC87417_XIMA3 0x0b
#define PC87417_XIMD 0x0c
#define PC87417_XZCNF2 0x0d
#define PC87417_XZCNF3 0x0e
#define PC87417_XZM0 0x0f
#define PC87417_XZM1 0x10
#define PC87417_XZM2 0x11
#define PC87417_XZM3 0x12
#define PC87417_HAP0 0x13
#define PC87417_HAP1 0x14
#define PC87417_XSCNF 0x15
#define PC87417_XWBCNF 0x16
#include <arch/io.h>
#include <stdint.h>
void pc87417_enable_serial(pnp_devfn_t dev, u16 iobase);
void pc87417_disable_dev(pnp_devfn_t dev);
void pc87417_enable_dev(pnp_devfn_t dev);
void xbus_cfg(pnp_devfn_t dev);
#endif /* SUPERIO_NSC_PC87417_H */
|