1 /*
2  * Interface for smsc fdc48m81x Super IO chip
3  *
4  * Author: MontaVista Software, Inc. source@mvista.com
5  *
6  * 2001-2003 (c) MontaVista Software, Inc. This file is licensed under
7  * the terms of the GNU General Public License version 2. This program
8  * is licensed "as is" without any warranty of any kind, whether express
9  * or implied.
10  *
11  * Copyright (C) 2004 MontaVista Software Inc.
12  * Manish Lachwani, mlachwani@mvista.com
13  */
14 
15 #ifndef _SMSC_FDC37M81X_H_
16 #define _SMSC_FDC37M81X_H_
17 
18 /* Common Registers */
19 #define SMSC_FDC37M81X_CONFIG_INDEX  0x00
20 #define SMSC_FDC37M81X_CONFIG_DATA   0x01
21 #define SMSC_FDC37M81X_CONF	     0x02
22 #define SMSC_FDC37M81X_INDEX	     0x03
23 #define SMSC_FDC37M81X_DNUM	     0x07
24 #define SMSC_FDC37M81X_DID	     0x20
25 #define SMSC_FDC37M81X_DREV	     0x21
26 #define SMSC_FDC37M81X_PCNT	     0x22
27 #define SMSC_FDC37M81X_PMGT	     0x23
28 #define SMSC_FDC37M81X_OSC	     0x24
29 #define SMSC_FDC37M81X_CONFPA0	     0x26
30 #define SMSC_FDC37M81X_CONFPA1	     0x27
31 #define SMSC_FDC37M81X_TEST4	     0x2B
32 #define SMSC_FDC37M81X_TEST5	     0x2C
33 #define SMSC_FDC37M81X_TEST1	     0x2D
34 #define SMSC_FDC37M81X_TEST2	     0x2E
35 #define SMSC_FDC37M81X_TEST3	     0x2F
36 
37 /* Logical device numbers */
38 #define SMSC_FDC37M81X_FDD	     0x00
39 #define SMSC_FDC37M81X_PARALLEL	     0x03
40 #define SMSC_FDC37M81X_SERIAL1	     0x04
41 #define SMSC_FDC37M81X_SERIAL2	     0x05
42 #define SMSC_FDC37M81X_KBD	     0x07
43 #define SMSC_FDC37M81X_AUXIO	     0x08
44 #define SMSC_FDC37M81X_NONE	     0xff
45 
46 /* Logical device Config Registers */
47 #define SMSC_FDC37M81X_ACTIVE	     0x30
48 #define SMSC_FDC37M81X_BASEADDR0     0x60
49 #define SMSC_FDC37M81X_BASEADDR1     0x61
50 #define SMSC_FDC37M81X_INT	     0x70
51 #define SMSC_FDC37M81X_INT2	     0x72
52 #define SMSC_FDC37M81X_LDCR_F0	     0xF0
53 
54 /* Chip Config Values */
55 #define SMSC_FDC37M81X_CONFIG_ENTER  0x55
56 #define SMSC_FDC37M81X_CONFIG_EXIT   0xaa
57 #define SMSC_FDC37M81X_CHIP_ID	     0x4d
58 
59 unsigned long smsc_fdc37m81x_init(unsigned long port);
60 
61 void smsc_fdc37m81x_config_beg(void);
62 
63 void smsc_fdc37m81x_config_end(void);
64 
65 u8 smsc_fdc37m81x_config_get(u8 reg);
66 void smsc_fdc37m81x_config_set(u8 reg, u8 val);
67 
68 #endif
69