18c2ecf20Sopenharmony_ci/*
28c2ecf20Sopenharmony_ci * Interface for smsc fdc48m81x Super IO chip
38c2ecf20Sopenharmony_ci *
48c2ecf20Sopenharmony_ci * Author: MontaVista Software, Inc. source@mvista.com
58c2ecf20Sopenharmony_ci *
68c2ecf20Sopenharmony_ci * 2001-2003 (c) MontaVista Software, Inc. This file is licensed under
78c2ecf20Sopenharmony_ci * the terms of the GNU General Public License version 2. This program
88c2ecf20Sopenharmony_ci * is licensed "as is" without any warranty of any kind, whether express
98c2ecf20Sopenharmony_ci * or implied.
108c2ecf20Sopenharmony_ci *
118c2ecf20Sopenharmony_ci * Copyright (C) 2004 MontaVista Software Inc.
128c2ecf20Sopenharmony_ci * Manish Lachwani, mlachwani@mvista.com
138c2ecf20Sopenharmony_ci */
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ci#ifndef _SMSC_FDC37M81X_H_
168c2ecf20Sopenharmony_ci#define _SMSC_FDC37M81X_H_
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ci/* Common Registers */
198c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_CONFIG_INDEX  0x00
208c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_CONFIG_DATA   0x01
218c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_CONF	     0x02
228c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_INDEX	     0x03
238c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_DNUM	     0x07
248c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_DID	     0x20
258c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_DREV	     0x21
268c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_PCNT	     0x22
278c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_PMGT	     0x23
288c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_OSC	     0x24
298c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_CONFPA0	     0x26
308c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_CONFPA1	     0x27
318c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_TEST4	     0x2B
328c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_TEST5	     0x2C
338c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_TEST1	     0x2D
348c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_TEST2	     0x2E
358c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_TEST3	     0x2F
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ci/* Logical device numbers */
388c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_FDD	     0x00
398c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_PARALLEL	     0x03
408c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_SERIAL1	     0x04
418c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_SERIAL2	     0x05
428c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_KBD	     0x07
438c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_AUXIO	     0x08
448c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_NONE	     0xff
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ci/* Logical device Config Registers */
478c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_ACTIVE	     0x30
488c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_BASEADDR0     0x60
498c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_BASEADDR1     0x61
508c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_INT	     0x70
518c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_INT2	     0x72
528c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_LDCR_F0	     0xF0
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ci/* Chip Config Values */
558c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_CONFIG_ENTER  0x55
568c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_CONFIG_EXIT   0xaa
578c2ecf20Sopenharmony_ci#define SMSC_FDC37M81X_CHIP_ID	     0x4d
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ciunsigned long smsc_fdc37m81x_init(unsigned long port);
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_civoid smsc_fdc37m81x_config_beg(void);
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_civoid smsc_fdc37m81x_config_end(void);
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ciu8 smsc_fdc37m81x_config_get(u8 reg);
668c2ecf20Sopenharmony_civoid smsc_fdc37m81x_config_set(u8 reg, u8 val);
678c2ecf20Sopenharmony_ci
688c2ecf20Sopenharmony_ci#endif
69