/* Fintek F75375 sensor module
/ Copyright(C) 2005, Matt Wright
*/
#include "nvclock.h"
#include "i2c.h"
int debug;
typedef struct _fan_vtemp
{
int temp[4];
int speed[5];
} fan_vtemp;
#define dbg_printf(x) if (debug==1) printf(x)
#define MODE_SPEED 0x00
#define MODE_TEMP 0x10
#define MODE_PWM 0x20
int f75375_get_gpu_fanmode(I2CDevPtr dev);
int f75375_set_gpu_fanmode(I2CDevPtr dev, I2CByte mode);
int f75375_set_gpu_tempctl(I2CDevPtr dev, fan_vtemp speeds);
int f75375_get_gpu_tempctl(I2CDevPtr dev, fan_vtemp *speeds);
#define FINTEK_VENDOR1 0x5d
#define FINTEK_VENDOR2 0x5e
#define ASUS_NV40_CHIPID_H 0x5a
#define ASUS_NV40_CHIPID_L 0x5b
#define F75375S_VRAM_VCC 0x10
#define F75375S_VRAM_V1 0x11
#define F75375S_VRAM_V2 0x12
#define F75375S_VRAM_V3 0x13
#define F75375S_VRAM_TEMP1 0x14
#define F75375S_VRAM_TEMP2 0x15
#define F75375S_VRAM_FAN1_MSB 0x16
#define F75375S_VRAM_FAN1_LSB 0x17
#define F75375S_VRAM_FAN2_MSB 0x18
#define F75375S_VRAM_FAN2_LSB 0x19
#define F75375S_FAN1_PWM 0x76
#define F75375S_FAN1_COUNT_H 0x16
#define F75375S_FAN1_COUNT_L 0x17
#define F75375S_FAN1_MODE 0x60
#define F75375S_FAN1_EXPECT_H 0x74
#define F75375S_FAN1_EXPECT_L 0x75
#define F75375S_TEMP_GPU 0x14
#define F75375S_TEMP_RAM 0x15
#define F75375S_VT1_B1 0xa0
#define F75375S_VT1_B2 0xa1
#define F75375S_VT1_B3 0xa2
#define F75375S_VT1_B4 0xa3
#define F75375S_VT1_S1_H 0xa4
#define F75375S_VT1_S1_L 0xa5
#define F75375S_VT1_S2_H 0xa6
#define F75375S_VT1_S2_L 0xa7
#define F75375S_VT1_S3_H 0xa8
#define F75375S_VT1_S3_L 0xa9
#define F75375S_VT1_S4_H 0xaa
#define F75375S_VT1_S4_L 0xab
#define F75375S_VT1_S5_H 0xac
#define F75375S_VT1_S5_L 0xad
#define FAN_TO_RPM(msb, lsb) (1500000/((msb<<8)+lsb))
#define RPM_TO_FAN(x) (1500000/x)
#define MERGE_BYTE(msb, lsb) ((msb<<8)+lsb)
syntax highlighted by Code2HTML, v. 0.9.1