Hi
> This allows fan control by loading the it87 module (or compiling it87
> support in your kernel), for instance via the /sys/ interface:
>
> cat /sys/bus/i2c/devices/9191-0290/pwm1
> 128 -> fan running at half speed
> echo 255 > /sys/bus/i2c/devices/9191-0290/pwm1
> -> fan goes to full speed
>
> Be careful; there are no safeguards against turning the fans *off*...
Mh, i just tried it and doesn't work for me :-(. Probably i am to tired and
did a stupid mistake. But well i still can't load the it87 module. But my
tree has the changes in superio.c. Hints are welcome :-). Probably im am
missing a kernel driver or so?
Ward i have also the problem that i don't see any classic PCI cards on my
machine (with linuxbios, works with stock bios), can you confirm this? I see
all the nvidia stuff and the video card though.
I have written a small c program which reads out the values of the ec
controller. It works for me under stock bios but gives "ff" on all reads
under linuxbios :-(. Ward it would be nice if you could try it on your
machine... and yes i was a little bit off with my statement can be take right
of the datasheet. The program needs to be run as root or gives an access
error.
Attached is also the output of the program on my machine under i386 and amd64.
Keep in mind that some of the registers are fan and temperature input so they
differ.
Concerning the question of Uwe, yes if you like i can maintain it on the wiki
but i need an account?
Good night
ST
chipaddress: 290
0 13
1 10
2 0
3 0
4 ff
5 ff
6 0
7 37
8 ff
9 87
a 2c
b 9
c 7
d 7
e 78
f 9d
10 fe
11 ff
12 ff
13 74
14 d7
15 7f
16 7f
17 82
18 2
19 1
1a 1
1b ff
1c ff
1d ff
1e ff
1f ff
20 4c
21 78
22 cb
23 b6
24 bc
25 37
26 26
27 b8
28 c1
29 19
2a f4
2b 26
2c 7f
2d c1
2e c1
2f c1
30 ff
31 0
32 ff
33 0
34 ff
35 0
36 ff
37 0
38 ff
39 0
3a ff
3b 0
3c ff
3d 0
3e ff
3f 0
40 7f
41 7f
42 7f
43 7f
44 46
45 7f
46 0
47 d
48 2d
49 ff
4a ff
4b ff
4c ff
4d ff
4e ff
4f ff
50 ff
51 1c
52 7f
53 7f
54 7f
55 50
56 ec
57 ec
58 90
59 ec
5a 9
5b 12
5c 65
5d 0
5e 0
5f 0
60 ff
61 14
62 0
63 27
64 90
65 3
66 ff
67 ff
68 7f
69 7f
6a 7f
6b 0
6c 0
6d 7f
6e ff
6f ff
70 ff
71 14
72 0
73 20
74 90
75 3
76 ff
77 ff
78 ff
79 ff
7a ff
7b ff
7c ff
7d ff
7e ff
7f ff
80 0
81 0
82 0
83 0
84 ff
85 ff
86 ff
87 ff
88 0
89 0
8a ff
8b c0
8c 2
8d 0
8e 99
8f 99
90 7f
91 7f
92 7f
93 0
94 0
95 7f
96 ff
97 ff
98 7f
99 7f
9a 7f
9b 0
9c 0
9d 7f
9e ff
9f ff
a0 0
a1 0
a2 0
a3 0
a4 0
a5 0
a6 0
a7 ff
a8 ff
a9 ff
aa ff
ab ff
ac ff
ad ff
ae ff
af ff
b0 ff
b1 ff
b2 ff
b3 ff
b4 ff
b5 ff
b6 ff
b7 ff
b8 ff
b9 ff
ba ff
bb ff
bc ff
bd ff
be ff
bf ff
c0 ff
c1 ff
c2 ff
c3 ff
c4 ff
c5 ff
c6 ff
c7 ff
c8 ff
c9 ff
ca ff
cb ff
cc ff
cd ff
ce ff
cf ff
d0 ff
d1 ff
d2 ff
d3 ff
d4 ff
d5 ff
d6 ff
d7 ff
d8 ff
d9 ff
da ff
db ff
dc ff
dd ff
de ff
df ff
e0 ff
e1 ff
e2 ff
e3 ff
e4 ff
e5 ff
e6 ff
e7 ff
e8 ff
e9 ff
ea ff
eb ff
ec ff
ed ff
ee ff
ef ff
f0 ff
f1 ff
f2 ff
f3 ff
f4 ff
f5 ff
f6 ff
f7 ff
f8 ff
f9 ff
fa ff
fb ff
fc ff
fd ff
fe ff
ff ff
chipaddress: 290
0 13
1 10
2 0
3 0
4 ff
5 ff
6 0
7 37
8 ff
9 87
a 32
b 9
c 7
d 69
e 7d
f 9a
10 fe
11 ff
12 ff
13 74
14 d7
15 7f
16 7f
17 82
18 2
19 1
1a 1
1b ff
1c ff
1d ff
1e ff
1f ff
20 43
21 78
22 cc
23 b6
24 bc
25 36
26 21
27 b9
28 c0
29 19
2a ee
2b 1e
2c 4d
2d d
2e d
2f d
30 ff
31 0
32 ff
33 0
34 ff
35 0
36 ff
37 0
38 ff
39 0
3a ff
3b 0
3c ff
3d 0
3e ff
3f 0
40 7f
41 7f
42 7f
43 7f
44 46
45 7f
46 0
47 d
48 2d
49 ff
4a ff
4b ff
4c ff
4d ff
4e ff
4f ff
50 ff
51 1c
52 7f
53 7f
54 7f
55 50
56 ec
57 ec
58 90
59 ec
5a 9
5b 12
5c 65
5d 0
5e 0
5f 0
60 ff
61 14
62 0
63 27
64 90
65 3
66 ff
67 ff
68 7f
69 7f
6a 7f
6b 0
6c 0
6d 7f
6e ff
6f ff
70 ff
71 14
72 0
73 20
74 90
75 3
76 ff
77 ff
78 ff
79 ff
7a ff
7b ff
7c ff
7d ff
7e ff
7f ff
80 0
81 0
82 0
83 0
84 ff
85 ff
86 ff
87 ff
88 0
89 0
8a ff
8b ca
8c 2
8d 0
8e 99
8f 99
90 7f
91 7f
92 7f
93 0
94 0
95 7f
96 ff
97 ff
98 7f
99 7f
9a 7f
9b 0
9c 0
9d 7f
9e ff
9f ff
a0 0
a1 0
a2 0
a3 0
a4 0
a5 0
a6 0
a7 ff
a8 ff
a9 ff
aa ff
ab ff
ac ff
ad ff
ae ff
af ff
b0 ff
b1 ff
b2 ff
b3 ff
b4 ff
b5 ff
b6 ff
b7 ff
b8 ff
b9 ff
ba ff
bb ff
bc ff
bd ff
be ff
bf ff
c0 ff
c1 ff
c2 ff
c3 ff
c4 ff
c5 ff
c6 ff
c7 ff
c8 ff
c9 ff
ca ff
cb ff
cc ff
cd ff
ce ff
cf ff
d0 ff
d1 ff
d2 ff
d3 ff
d4 ff
d5 ff
d6 ff
d7 ff
d8 ff
d9 ff
da ff
db ff
dc ff
dd ff
de ff
df ff
e0 ff
e1 ff
e2 ff
e3 ff
e4 ff
e5 ff
e6 ff
e7 ff
e8 ff
e9 ff
ea ff
eb ff
ec ff
ed ff
ee ff
ef ff
f0 ff
f1 ff
f2 ff
f3 ff
f4 ff
f5 ff
f6 ff
f7 ff
f8 ff
f9 ff
fa ff
fb ff
fc ff
fd ff
fe ff
ff ff
#include <stdio.h>
#include <unistd.h>
//just to be on the safe side
#define REALLY_SLOW_IO
#include <asm/io.h>
static inline int
superio_inb(int reg) {
outb(reg, 0x33);
return inb(0x34);
}
int main(int argc,char* argv[]) {
int i;
int id1,id2;
int address;
//turn io permissions on
ioperm(0x2e,16,1);
//enter pnp mode
outb(0x87, 0x2e);
outb(0x01, 0x2e);
outb(0x55, 0x2e);
outb(0x55, 0x2e);
//get chip id
outb(0x20,0x2e);
id1=inb(0x2f);
outb(0x21,0x2e);
id2=inb(0x2f);
if(id1!=0x87 && id2!=0x16) {
printf("it8716f not found chip id:%2x %2x \naborting\n",id1,id2);
return 1;
}
//get ec address
outb(0x7,0x2e); //write to index register 0x7 ldn 04
outb(0x4,0x2f);
outb(0x60,0x2e);
address=inb(0x2f);
address<<=8;
outb(0x61,0x2e);
address|=inb(0x2f);
printf("chipaddress: %x\n",address);
//get io permissions for ec
ioperm(address,16,1);
//read ec registers
for(i=0x0; i<=0xff; i++) {
outb(i,address+5);
printf("%2x %2x\n",i,inb(address+6));
}
//release io permissions for ec
ioperm(address,16,0);
//superio exit
outb(0x02,0x2e);
outb(0x02,0x2f);
//turn io permissions off
ioperm(0x2e,16,0);
return 0;
}
--
linuxbios mailing list
[email protected]
http://www.linuxbios.org/mailman/listinfo/linuxbios