Subversion Repositories Kolibri OS

Rev

Rev 223 | Rev 313 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 223 Rev 239
Line 1... Line 1...
1
;
1
;
2
; Áèáëèîòåêà äëÿ ÷èïîâ WinBond
2
; Áèáëèîòåêà äëÿ ÷èïîâ WinBond
3
;
3
;
4
;
4
;
5
;    Äîïèñàòü ïîëó÷åíèå èíôû ñ äðóãèõ äàò÷èêîâ
5
;    Äîïèñàòü ïîëó÷åíèå èíôû ñ äðóãèõ äàò÷èêîâ
-
 
6
;    W83627DHG ìîíèòîðèíã àíàëîãè÷åí W83627EHF, äîïèñàòü ó÷¸ò DIV_B2
6
;  + 16.03.06 Èñïðàâëåíà îøèáêà â wb_get_cpu_temper ñ äåñÿòûõ ãðàäóñà (áûëî 30.5 30.0 31.5 ...)
7
;  + 16.03.06 Èñïðàâëåíà îøèáêà â wb_get_cpu_temper ñ äåñÿòûõ ãðàäóñà (áûëî 30.5 30.0 31.5 ...)
7
;
8
;
8
;
9
;
-
 
10
;    Î ìàðêèðîâêå (?) : H - H/W Monitor, G - Pb-free package, T - ACPI, S - Smart Card Reader Interface
-
 
11
;      D - SuperIO supporting Intel* PECI* & SST* interfaces, U - UART
-
 
12
;
9
;		      | Chip name	| ID		Vin	Fanin	PWM	Temp   ISA   SMBus
13
;		      | Chip name	| ID		Vin	Fanin	PWM	Temp   ISA   SMBus
10
msg_wb27HF:	db 8, 'W83627HF'	; 0x20|0x21	 9	  3	 2	 3      +      +
14
msg_wb27HF:	db 8, 'W83627HF'	; 0x20|0x21	 9	  3	 2	 3      +      +
11
msg_wb27THF:	db 9, 'W83627THF'	; 0x90|0x91	 7	  3	 3	 3      +      +
15
msg_wb27THF:	db 9, 'W83627THF'	; 0x90|0x91	 7	  3	 3	 3      +      +
12
msg_wb37THF:	db 9, 'W83637THF'	; 0x80		 7	  3	 3	 3      +      +
16
msg_wb37THF:	db 9, 'W83637THF'	; 0x80		 7	  3	 3	 3      +      +
13
msg_wb97HF:	db 8, 'W83697HF'	; 0x60|0x61	 8	  2	 2	 2      +      -
17
msg_wb97HF:	db 8, 'W83697HF'	; 0x60|0x61	 8	  2	 2	 2      +      -
14
msg_wb27EHF:	db 11,'W83627EHF-A'	; 0x88
-
 
15
msg_wb27THFA:	db 11,'W83627THF-A'	; 0x1A
18
msg_wb27THFA:	db 11,'W83627THF-A'	; 0x1A
-
 
19
 
-
 
20
msg_w83627DHG:	db 9, 'W83627DHG'	; 0xC1		 ?	  5	 ?	 3      +      +
-
 
21
msg_w83627EHF:	db 9, 'W83627EHF'	; 0x88		 10	  5	 3	 3      +      +
-
 
22
msg_w83627EHG:	db 9, 'W83627EHG'	; 0xA1		 10	  5	 3	 3      +      +
-
 
23
 
-
 
24
 
16
;		db 7, 'W83781D'		; 0x10|0x11	 7	  	 3	 3      +      +
25
;		db 7, 'W83781D'		; 0x10|0x11	 7	  	 3	 3      +      +
17
;		db 7, 'W83782D'		; 0x30		 9	   	 3	 3      +      +
26
;		db 7, 'W83782D'		; 0x30		 9	   	 3	 3      +      +
18
;		db 8, 'AS99127F'	; 0x31           7               3       3      -      +
27
;		db 8, 'AS99127F'	; 0x31           7               3       3      -      +
19
;		db 7, 'W83783S'		; 0x40|0x41	 5-6	   	 3	 1-2    -      +
28
;		db 7, 'W83783S'		; 0x40|0x41	 5-6	   	 3	 1-2    -      +
20
;		db 7, 'W83791D'		; 0x70|0x71	 10	   	 5	 3      -      +
29
;		db 7, 'W83791D'		; 0x70|0x71	 10	   	 5	 3      -      +
21
msg_wbunk:	db 15,'Unknown Winbond'	; other, non zero ;-)
30
msg_wbunk:	db 15,'Unknown Winbond'	; other, non zero ;-)
Line -... Line 31...
-
 
31
 
-
 
32
uglobal
-
 
33
wb_fans_num	db	0
-
 
34
endg
22
 
35
 
23
;-----------------------------------
36
;-----------------------------------
24
wb_init:
37
wb_init:
25
; Ïðîâåðêà íàëè÷èÿ è èíèöèàëèçàöèÿ
38
; Ïðîâåðêà íàëè÷èÿ è èíèöèàëèçàöèÿ
26
; OUT - CF = 1 - error
39
; OUT - CF = 1 - error
Line 43... Line 56...
43
	
56
 
44
	; --- óçíà¸ì èäåíòèôèêàòîð ÷èïà --
57
	; --- óçíà¸ì èäåíòèôèêàòîð ÷èïà --
45
	mov	al, 0x58
58
	mov	al, 0x58
46
	call	[IO_Read]
59
	call	[IO_Read]
-
 
60
	and	al, 0xFE	; 0x20 = 0x21, 0x60 = 0x61, etc
47
	and	al, 0xFE	; 0x20 = 0x21, 0x60 = 0x61, etc
61
	mov	byte[wb_fans_num], 3
48
	mov	edx, msg_wb27HF
62
	mov	edx, msg_wb27HF
49
	cmp	al, 0x20
63
	cmp	al, 0x20
50
	je	@f
64
	je	@f
51
	mov	edx, msg_wb27THF
65
	mov	edx, msg_wb27THF
Line 55... Line 69...
55
	cmp	al, 0x80
69
	cmp	al, 0x80
56
	je	@f
70
	je	@f
57
	mov	edx, msg_wb97HF
71
	mov	edx, msg_wb97HF
58
	cmp	al, 0x60
72
	cmp	al, 0x60
59
	je	@f
73
	je	@f
60
	mov	edx, msg_wb27EHF
-
 
61
	cmp	al, 0x88
-
 
62
	je	@f
-
 
63
	mov	edx, msg_wb27THFA
74
	mov	edx, msg_wb27THFA
64
	cmp	al, 0x1A
75
	cmp	al, 0x1A
65
	je	@f
76
	je	@f
-
 
77
	mov	byte[wb_fans_num], 5
-
 
78
	mov	edx, msg_w83627EHF
-
 
79
	cmp	al, 0x88
-
 
80
	je	@f
-
 
81
	mov	edx, msg_w83627EHG
-
 
82
	cmp	al, 0xA0
-
 
83
	je	@f
-
 
84
	mov	edx, msg_w83627DHG
-
 
85
	cmp	al, 0xC0
-
 
86
	je	@f
-
 
87
	mov	byte[wb_fans_num], 3
66
	mov	edx, msg_wbunk
88
	mov	edx, msg_wbunk
67
@@:	mov	[hwm_chip_name], edx
89
@@:	mov	[hwm_chip_name], edx
68
	clc
90
	clc
69
	ret
91
	ret
70
wb_no:	stc
92
wb_no:	stc
Line 151... Line 173...
151
	mov	ebx, eax
173
	mov	ebx, eax
152
	mov	eax, 1350000
174
	mov	eax, 1350000
153
	xor	edx, edx
175
	xor	edx, edx
154
	div	ebx
176
	div	ebx
155
	mov	[hwm_rpms], eax
177
	mov	[hwm_rpms], eax
-
 
178
	
156
	mov	al, 0x47
179
	mov	al, 0x47
157
	call	[IO_Read]
180
	call	[IO_Read]
158
	shr	al, 6
181
	shr	al, 6
159
	mov	ebx, 1
182
	mov	ebx, 1
160
	mov	cl, al
183
	mov	cl, al
Line 170... Line 193...
170
	mov	ebx, eax
193
	mov	ebx, eax
171
	mov	eax, 1350000
194
	mov	eax, 1350000
172
	xor	edx, edx
195
	xor	edx, edx
173
	div	ebx
196
	div	ebx
174
	mov	[hwm_rpms + 4], eax
197
	mov	[hwm_rpms + 4], eax
-
 
198
	
-
 
199
	mov	al, 0x4B
-
 
200
	call	[IO_Read]
-
 
201
	shr	al, 6
-
 
202
	mov	ebx, 1
-
 
203
	mov	cl, al
-
 
204
	shl	ebx, cl	; <- div3
-
 
205
	xor	eax, eax
-
 
206
	mov	al,  0x2A
-
 
207
	call	[IO_Read]
-
 
208
	cmp	al, 255
-
 
209
	jne	@f
-
 
210
	xor	eax, eax
-
 
211
	ret
-
 
212
@@:	mul	ebx
-
 
213
	mov	ebx, eax
-
 
214
	mov	eax, 1350000
-
 
215
	xor	edx, edx
-
 
216
	div	ebx
-
 
217
	mov	[hwm_rpms + 8], eax
-
 
218
 
-
 
219
	cmp	byte[wb_fans_num], 3
-
 
220
	jna	.wb_f_e
-
 
221
 
-
 
222
	mov	al, 0x59
-
 
223
	call	[IO_Read]
-
 
224
	and	al, 3
-
 
225
	mov	ebx, 1
-
 
226
	mov	cl, al
-
 
227
	shl	ebx, cl	; <- div4, äîïèñàòü ó÷¸ò DIV_B2
-
 
228
	xor	eax, eax
-
 
229
	mov	al,  0x3F
-
 
230
	call	[IO_Read]
-
 
231
	cmp	al, 255
-
 
232
	jne	@f
-
 
233
	xor	eax, eax
-
 
234
	ret
-
 
235
@@:	mul	ebx
-
 
236
	mov	ebx, eax
-
 
237
	mov	eax, 1350000
-
 
238
	xor	edx, edx
-
 
239
	div	ebx
-
 
240
	mov	[hwm_rpms + 12], eax
-
 
241
	
-
 
242
	mov	al, 0x59
-
 
243
	call	[IO_Read]
-
 
244
	shr	al, 2
-
 
245
	and	al, 3
-
 
246
	mov	ebx, 1
-
 
247
	mov	cl, al
-
 
248
	shl	ebx, cl	; <- div5, äîïèñàòü ó÷¸ò DIV_B2
-
 
249
	xor	eax, eax
-
 
250
	mov	al, 0x4e	; Âûáèðàåì bank 5
-
 
251
	mov	bl, 5
-
 
252
	call	[IO_Write]
-
 
253
	mov	al,  0x53
-
 
254
	call	[IO_Read]
-
 
255
	cmp	al, 255
-
 
256
	jne	@f
-
 
257
	xor	eax, eax
-
 
258
	ret
-
 
259
@@:	mul	ebx
-
 
260
	mov	ebx, eax
-
 
261
	mov	eax, 1350000
-
 
262
	xor	edx, edx
-
 
263
	div	ebx
-
 
264
	mov	[hwm_rpms + 16], eax
-
 
265
 
-
 
266
.wb_f_e:
175
	ret
267
	ret
176
;-----------------------------------
268
;-----------------------------------
177
wb_get_volt:
269
wb_get_volt:
178
	;mov	edi, wb_coeff		; <-- possible differences for miscellaneous chip
270
	;mov	edi, wb_coeff		; <-- possible differences for miscellaneous chip
179
	mov	esi, hwm_voltages
271
	mov	esi, hwm_voltages