aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/sk98lin/h/lm80.h
blob: 4e2dbbf78000121c38403bb7d68f7dac6fc4d8ab (plain) (blame)
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
/******************************************************************************
 *
 * Name:	lm80.h	
 * Project:	Gigabit Ethernet Adapters, Common Modules
 * Version:	$Revision: 1.6 $
 * Date:	$Date: 2003/05/13 17:26:52 $
 * Purpose:	Contains all defines for the LM80 Chip
 *		(National Semiconductor).
 *
 ******************************************************************************/

/******************************************************************************
 *
 *	(C)Copyright 1998-2002 SysKonnect.
 *	(C)Copyright 2002-2003 Marvell.
 *
 *	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.
 *
 *	The information in this file is provided "AS IS" without warranty.
 *
 ******************************************************************************/

#ifndef __INC_LM80_H
#define __INC_LM80_H

#ifdef __cplusplus
extern "C" {
#endif	/* __cplusplus */

/* defines ********************************************************************/

/*
 * LM80 register definition
 *
 * All registers are 8 bit wide
 */
#define LM80_CFG			0x00	/* Configuration Register */
#define LM80_ISRC_1			0x01	/* Interrupt Status Register 1 */
#define LM80_ISRC_2			0x02	/* Interrupt Status Register 2 */
#define LM80_IMSK_1			0x03	/* Interrupt Mask Register 1 */
#define LM80_IMSK_2			0x04	/* Interrupt Mask Register 2 */
#define LM80_FAN_CTRL		0x05	/* Fan Devisor/RST#/OS# Register */
#define LM80_TEMP_CTRL		0x06	/* OS# Config, Temp Res. Reg */
	/* 0x07 - 0x1f reserved	*/
	/* current values */
#define LM80_VT0_IN			0x20	/* current Voltage 0 value */
#define LM80_VT1_IN			0x21	/* current Voltage 1 value */
#define LM80_VT2_IN			0x22	/* current Voltage 2 value */
#define LM80_VT3_IN			0x23	/* current Voltage 3 value */
#define LM80_VT4_IN			0x24	/* current Voltage 4 value */
#define LM80_VT5_IN			0x25	/* current Voltage 5 value */
#define LM80_VT6_IN			0x26	/* current Voltage 6 value */
#define LM80_TEMP_IN		0x27	/* current Temperature value */
#define LM80_FAN1_IN		0x28	/* current Fan 1 count */
#define LM80_FAN2_IN		0x29	/* current Fan 2 count */
	/* limit values */
#define LM80_VT0_HIGH_LIM	0x2a	/* high limit val for Voltage 0 */
#define LM80_VT0_LOW_LIM	0x2b	/* low limit val for Voltage 0 */
#define LM80_VT1_HIGH_LIM	0x2c	/* high limit val for Voltage 1 */
#define LM80_VT1_LOW_LIM	0x2d	/* low limit val for Voltage 1 */
#define LM80_VT2_HIGH_LIM	0x2e	/* high limit val for Voltage 2 */
#define LM80_VT2_LOW_LIM	0x2f	/* low limit val for Voltage 2 */
#define LM80_VT3_HIGH_LIM	0x30	/* high limit val for Voltage 3 */
#define LM80_VT3_LOW_LIM	0x31	/* low limit val for Voltage 3 */
#define LM80_VT4_HIGH_LIM	0x32	/* high limit val for Voltage 4 */
#define LM80_VT4_LOW_LIM	0x33	/* low limit val for Voltage 4 */
#define LM80_VT5_HIGH_LIM	0x34	/* high limit val for Voltage 5 */
#define LM80_VT5_LOW_LIM	0x35	/* low limit val for Voltage 5 */
#define LM80_VT6_HIGH_LIM	0x36	/* high limit val for Voltage 6 */
#define LM80_VT6_LOW_LIM	0x37	/* low limit val for Voltage 6 */
#define LM80_THOT_LIM_UP	0x38	/* hot temperature limit (high) */
#define LM80_THOT_LIM_LO	0x39	/* hot temperature limit (low) */
#define LM80_TOS_LIM_UP		0x3a	/* OS temperature limit (high) */
#define LM80_TOS_LIM_LO		0x3b	/* OS temperature limit (low) */
#define LM80_FAN1_COUNT_LIM	0x3c	/* Fan 1 count limit (high) */
#define LM80_FAN2_COUNT_LIM	0x3d	/* Fan 2 count limit (low) */
	/* 0x3e - 0x3f reserved	*/

/*
 * LM80 bit definitions
 */

/*	LM80_CFG		Configuration Register */
#define LM80_CFG_START		(1<<0)	/* start monitoring operation */
#define LM80_CFG_INT_ENA	(1<<1)	/* enables the INT# Interrupt output */
#define LM80_CFG_INT_POL	(1<<2)	/* INT# pol: 0 act low, 1 act high */
#define LM80_CFG_INT_CLR	(1<<3)	/* disables INT#/RST_OUT#/OS# outputs */
#define LM80_CFG_RESET		(1<<4)	/* signals a reset */
#define LM80_CFG_CHASS_CLR	(1<<5)	/* clears Chassis Intrusion (CI) pin */
#define LM80_CFG_GPO		(1<<6)	/* drives the GPO# pin */
#define LM80_CFG_INIT		(1<<7)	/* restore power on defaults */

/*	LM80_ISRC_1		Interrupt Status Register 1 */
/*	LM80_IMSK_1		Interrupt Mask Register 1 */
#define LM80_IS_VT0			(1<<0)	/* limit exceeded for Voltage 0 */
#define LM80_IS_VT1			(1<<1)	/* limit exceeded for Voltage 1 */
#define LM80_IS_VT2			(1<<2)	/* limit exceeded for Voltage 2 */
#define LM80_IS_VT3			(1<<3)	/* limit exceeded for Voltage 3 */
#define LM80_IS_VT4			(1<<4)	/* limit exceeded for Voltage 4 */
#define LM80_IS_VT5			(1<<5)	/* limit exceeded for Voltage 5 */
#define LM80_IS_VT6			(1<<6)	/* limit exceeded for Voltage 6 */
#define LM80_IS_INT_IN		(1<<7)	/* state of INT_IN# */

/*	LM80_ISRC_2		Interrupt Status Register 2 */
/*	LM80_IMSK_2		Interrupt Mask Register 2 */
#define LM80_IS_TEMP		(1<<0)	/* HOT temperature limit exceeded */
#define LM80_IS_BTI			(1<<1)	/* state of BTI# pin */
#define LM80_IS_FAN1		(1<<2)	/* count limit exceeded for Fan 1 */
#define LM80_IS_FAN2		(1<<3)	/* count limit exceeded for Fan 2 */
#define LM80_IS_CI			(1<<4)	/* Chassis Intrusion occured */
#define LM80_IS_OS			(1<<5)	/* OS temperature limit exceeded */
	/* bit 6 and 7 are reserved in LM80_ISRC_2 */
#define LM80_IS_HT_IRQ_MD	(1<<6)	/* Hot temperature interrupt mode */
#define LM80_IS_OT_IRQ_MD	(1<<7)	/* OS temperature interrupt mode */

/*	LM80_FAN_CTRL		Fan Devisor/RST#/OS# Register */
#define LM80_FAN1_MD_SEL	(1<<0)	/* Fan 1 mode select */
#define LM80_FAN2_MD_SEL	(1<<1)	/* Fan 2 mode select */
#define LM80_FAN1_PRM_CTL	(3<<2)	/* Fan 1 speed control */
#define LM80_FAN2_PRM_CTL	(3<<4)	/* Fan 2 speed control */
#define LM80_FAN_OS_ENA		(1<<6)	/* enable OS mode on RST_OUT#/OS# pins*/
#define LM80_FAN_RST_ENA	(1<<7)	/* sets RST_OUT#/OS# pins in RST mode */

/*	LM80_TEMP_CTRL		OS# Config, Temp Res. Reg */
#define LM80_TEMP_OS_STAT	(1<<0)	/* mirrors the state of RST_OUT#/OS# */
#define LM80_TEMP_OS_POL	(1<<1)	/* select OS# polarity */
#define LM80_TEMP_OS_MODE	(1<<2)	/* selects Interrupt mode */
#define LM80_TEMP_RES		(1<<3)	/* selects 9 or 11 bit temp resulution*/
#define LM80_TEMP_LSB		(0xf<<4)/* 4 LSBs of 11 bit temp data */
#define LM80_TEMP_LSB_9		(1<<7)	/* LSB of 9 bit temperature data */

	/* 0x07 - 0x1f reserved	*/
/*	LM80_VT0_IN		current Voltage 0 value */
/*	LM80_VT1_IN		current Voltage 1 value */
/*	LM80_VT2_IN		current Voltage 2 value */
/*	LM80_VT3_IN		current Voltage 3 value */
/*	LM80_VT4_IN		current Voltage 4 value */
/*	LM80_VT5_IN		current Voltage 5 value */
/*	LM80_VT6_IN		current Voltage 6 value */
/*	LM80_TEMP_IN		current temperature value */
/*	LM80_FAN1_IN		current Fan 1 count */
/*	LM80_FAN2_IN		current Fan 2 count */
/*	LM80_VT0_HIGH_LIM	high limit val for Voltage 0 */
/*	LM80_VT0_LOW_LIM	low limit val for Voltage 0 */
/*	LM80_VT1_HIGH_LIM	high limit val for Voltage 1 */
/*	LM80_VT1_LOW_LIM	low limit val for Voltage 1 */
/*	LM80_VT2_HIGH_LIM	high limit val for Voltage 2 */
/*	LM80_VT2_LOW_LIM	low limit val for Voltage 2 */
/*	LM80_VT3_HIGH_LIM	high limit val for Voltage 3 */
/*	LM80_VT3_LOW_LIM	low limit val for Voltage 3 */
/*	LM80_VT4_HIGH_LIM	high limit val for Voltage 4 */
/*	LM80_VT4_LOW_LIM	low limit val for Voltage 4 */
/*	LM80_VT5_HIGH_LIM	high limit val for Voltage 5 */
/*	LM80_VT5_LOW_LIM	low limit val for Voltage 5 */
/*	LM80_VT6_HIGH_LIM	high limit val for Voltage 6 */
/*	LM80_VT6_LOW_LIM	low limit val for Voltage 6 */
/*	LM80_THOT_LIM_UP	hot temperature limit (high) */
/*	LM80_THOT_LIM_LO	hot temperature limit (low) */
/*	LM80_TOS_LIM_UP		OS temperature limit (high) */
/*	LM80_TOS_LIM_LO		OS temperature limit (low) */
/*	LM80_FAN1_COUNT_LIM	Fan 1 count limit (high) */
/*	LM80_FAN2_COUNT_LIM	Fan 2 count limit (low) */
	/* 0x3e - 0x3f reserved	*/

#define LM80_ADDR		0x28	/* LM80 default addr */

/* typedefs *******************************************************************/


/* function prototypes ********************************************************/

#ifdef __cplusplus
}
#endif	/* __cplusplus */

#endif	/* __INC_LM80_H */