亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sklm80.c

?? 移植好的楊創(chuàng)utu2440F ARM9 的uboot1.1.4代碼
?? C
字號(hào):
/****************************************************************************** * * Name:	sklm80.c * Project:	GEnesis, PCI Gigabit Ethernet Adapter * Version:	$Revision: 1.20 $ * Date:	$Date: 2002/08/13 09:16:27 $ * Purpose:	Funktions to access Voltage and Temperature Sensor (LM80) * ******************************************************************************//****************************************************************************** * *	(C)Copyright 1998-2002 SysKonnect GmbH. * *	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. * ******************************************************************************//****************************************************************************** * * History: * *	$Log: sklm80.c,v $ *	Revision 1.20  2002/08/13 09:16:27  rschmidt *	Changed return value for SkLm80ReadSensor() back to 'int' *	Editorial changes * *	Revision 1.19  2002/08/06 09:43:31  jschmalz *	Extensions and changes for Yukon * *	Revision 1.18  2002/08/02 12:26:57  rschmidt *	Editorial changes * *	Revision 1.17  1999/11/22 13:35:51  cgoos *	Changed license header to GPL. * *	Revision 1.16  1999/05/27 14:05:47  malthoff *	Fans: Set SenVal to 0 if the fan value is 0 or 0xff. Both values *	are outside the limits (0: div zero error, 0xff: value not in *	range, assume 0). * *	Revision 1.15  1999/05/27 13:38:51  malthoff *	Pervent from Division by zero errors. * *	Revision 1.14  1999/05/20 09:20:01  cgoos *	Changes for 1000Base-T (Fan sensors). * *	Revision 1.13  1998/10/22 09:48:14  gklug *	fix: SysKonnectFileId typo * *	Revision 1.12  1998/10/09 06:12:06  malthoff *	Remove ID_sccs by SysKonnectFileId. * *	Revision 1.11  1998/09/04 08:33:48  malthoff *	bug fix: SenState = SK_SEN_IDLE when *	leaving SK_SEN_VALEXT state * *	Revision 1.10  1998/08/20 12:02:10  gklug *	fix: compiler warnings type mismatch * *	Revision 1.9  1998/08/20 11:37:38  gklug *	chg: change Ioc to IoC * *	Revision 1.8  1998/08/19 12:20:58  gklug *	fix: remove struct from C files (see CCC) * *	Revision 1.7  1998/08/17 07:04:57  malthoff *	Take SkLm80RcvReg() function from ski2c.c. *	Add IoC parameter to BREAK_OR_WAIT() macro. * *	Revision 1.6  1998/08/14 07:11:28  malthoff *	remove pAc with pAC. * *	Revision 1.5  1998/08/14 06:46:55  gklug *	fix: temperature can get negative * *	Revision 1.4  1998/08/13 08:27:04  gklug *	add: temperature reading now o.k. *	fix: pSen declaration, SK_ERR_LOG call, ADDR macro * *	Revision 1.3  1998/08/13 07:28:21  gklug *	fix: pSen was wrong initialized *	add: correct conversion for voltage readings * *	Revision 1.2  1998/08/11 07:52:14  gklug *	add: Lm80 read sensor function * *	Revision 1.1  1998/07/17 09:57:12  gklug *	initial version * * * ******************************************************************************/#include <config.h>#ifdef CONFIG_SK98/*	LM80 functions*/static const char SysKonnectFileId[] =	"$Id: sklm80.c,v 1.20 2002/08/13 09:16:27 rschmidt Exp $" ;#include "h/skdrv1st.h"		/* Driver Specific Definitions */#include "h/lm80.h"#include "h/skdrv2nd.h"		/* Adapter Control- and Driver specific Def. */#ifdef	SK_DIAG#define	BREAK_OR_WAIT(pAC,IoC,Event)	SkI2cWait(pAC,IoC,Event)#else	/* nSK_DIAG */#define	BREAK_OR_WAIT(pAC,IoC,Event)	break#endif	/* nSK_DIAG */#ifdef	SK_DIAG/* * read the register 'Reg' from the device 'Dev' * * return 	read error	-1 *		success		the read value */int	SkLm80RcvReg(SK_IOC	IoC,		/* Adapter Context */int		Dev,		/* I2C device address */int		Reg)		/* register to read */{	int	Val = 0;	int	TempExt;	/* Signal device number */	if (SkI2cSndDev(IoC, Dev, I2C_WRITE)) {		return(-1);	}	if (SkI2cSndByte(IoC, Reg)) {		return(-1);	}	/* repeat start */	if (SkI2cSndDev(IoC, Dev, I2C_READ)) {		return(-1);	}	switch (Reg) {	case LM80_TEMP_IN:		Val = (int)SkI2cRcvByte(IoC, 1);		/* First: correct the value: it might be negative */		if ((Val & 0x80) != 0) {			/* Value is negative */			Val = Val - 256;		}		Val = Val * SK_LM80_TEMP_LSB;		SkI2cStop(IoC);		TempExt = (int)SkLm80RcvReg(IoC, LM80_ADDR, LM80_TEMP_CTRL);		if (Val > 0) {			Val += ((TempExt >> 7) * SK_LM80_TEMPEXT_LSB);		}		else {			Val -= ((TempExt >> 7) * SK_LM80_TEMPEXT_LSB);		}		return(Val);		break;	case LM80_VT0_IN:	case LM80_VT1_IN:	case LM80_VT2_IN:	case LM80_VT3_IN:		Val = (int)SkI2cRcvByte(IoC, 1) * SK_LM80_VT_LSB;		break;	default:		Val = (int)SkI2cRcvByte(IoC, 1);		break;	}	SkI2cStop(IoC);	return(Val);}#endif	/* SK_DIAG *//* * read a sensors value (LM80 specific) * * This function reads a sensors value from the I2C sensor chip LM80. * The sensor is defined by its index into the sensors database in the struct * pAC points to. * * Returns	1 if the read is completed *		0 if the read must be continued (I2C Bus still allocated) */int SkLm80ReadSensor(SK_AC		*pAC,	/* Adapter Context */SK_IOC		IoC,	/* I/O Context needed in level 1 and 2 */SK_SENSOR	*pSen)	/* Sensor to be read */{	SK_I32		Value;	switch (pSen->SenState) {	case SK_SEN_IDLE:		/* Send address to ADDR register */		SK_I2C_CTL(IoC, I2C_READ, pSen->SenDev, pSen->SenReg, 0);		pSen->SenState = SK_SEN_VALUE ;		BREAK_OR_WAIT(pAC, IoC, I2C_READ);	case SK_SEN_VALUE:		/* Read value from data register */		SK_IN32(IoC, B2_I2C_DATA, ((SK_U32 *)&Value));		Value &= 0xff; /* only least significant byte is valid */		/* Do NOT check the Value against the thresholds */		/* Checking is done in the calling instance */		if (pSen->SenType == SK_SEN_VOLT) {			/* Voltage sensor */			pSen->SenValue = Value * SK_LM80_VT_LSB;			pSen->SenState = SK_SEN_IDLE ;			return(1);		}		if (pSen->SenType == SK_SEN_FAN) {			if (Value != 0 && Value != 0xff) {				/* Fan speed counter */				pSen->SenValue = SK_LM80_FAN_FAKTOR/Value;			}			else {				/* Indicate Fan error */				pSen->SenValue = 0;			}			pSen->SenState = SK_SEN_IDLE ;			return(1);		}		/* First: correct the value: it might be negative */		if ((Value & 0x80) != 0) {			/* Value is negative */			Value = Value - 256;		}		/* We have a temperature sensor and need to get the signed extension.		 * For now we get the extension from the last reading, so in the normal		 * case we won't see flickering temperatures.		 */		pSen->SenValue = (Value * SK_LM80_TEMP_LSB) +			(pSen->SenValue % SK_LM80_TEMP_LSB);		/* Send address to ADDR register */		SK_I2C_CTL(IoC, I2C_READ, pSen->SenDev, LM80_TEMP_CTRL, 0);		pSen->SenState = SK_SEN_VALEXT ;		BREAK_OR_WAIT(pAC, IoC, I2C_READ);	case SK_SEN_VALEXT:		/* Read value from data register */		SK_IN32(IoC, B2_I2C_DATA, ((SK_U32 *)&Value));		Value &= LM80_TEMP_LSB_9; /* only bit 7 is valid */		/* cut the LSB bit */		pSen->SenValue = ((pSen->SenValue / SK_LM80_TEMP_LSB) *			SK_LM80_TEMP_LSB);		if (pSen->SenValue < 0) {			/* Value negative: The bit value must be subtracted */			pSen->SenValue -= ((Value >> 7) * SK_LM80_TEMPEXT_LSB);		}		else {			/* Value positive: The bit value must be added */			pSen->SenValue += ((Value >> 7) * SK_LM80_TEMPEXT_LSB);		}		pSen->SenState = SK_SEN_IDLE ;		return(1);	default:		SK_ERR_LOG(pAC, SK_ERRCL_SW, SKERR_I2C_E007, SKERR_I2C_E007MSG);		return(1);	}	/* Not completed */	return(0);}#endif /* CONFIG_SK98 */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
夜夜精品视频一区二区| 亚洲三级在线看| 在线观看一区日韩| 国产精品影视在线| 日韩精品电影在线观看| 自拍偷自拍亚洲精品播放| 欧美不卡在线视频| 精品1区2区3区| 成人动漫视频在线| 国产一区二区免费看| 日欧美一区二区| 亚洲免费观看高清完整版在线| 久久这里只有精品6| 欧美日韩一级黄| 色美美综合视频| 成人国产精品免费观看视频| 玖玖九九国产精品| 日韩精品视频网站| 亚洲a一区二区| 亚洲精品视频一区| 综合久久综合久久| 国产精品女主播av| 久久久午夜精品| 精品久久久久久无| 欧美成人乱码一区二区三区| 欧美日韩和欧美的一区二区| 一本大道综合伊人精品热热| 91丝袜美腿高跟国产极品老师 | 亚洲国产色一区| 国产欧美日韩另类一区| 久久综合久久鬼色| 国产亚洲综合在线| 日本一区二区三区四区 | 亚洲色图20p| 中文字幕在线不卡一区二区三区| 国产色综合久久| 国产欧美一区二区精品婷婷| 久久久久成人黄色影片| 久久久噜噜噜久久人人看 | 国产精品一区二区视频| 秋霞电影网一区二区| 另类综合日韩欧美亚洲| 蜜臀av一区二区在线免费观看| 美女久久久精品| 青椒成人免费视频| 国产九色精品成人porny| 国产乱码字幕精品高清av| 国产美女在线精品| 国产成人aaaa| 色诱视频网站一区| 欧美视频自拍偷拍| 欧美一区二区三区系列电影| 日韩一区二区高清| 久久一留热品黄| 中文字幕一区在线观看视频| 中文字幕一区二| 五月综合激情网| 激情小说欧美图片| av在线不卡网| 色综合激情五月| 91精品国产一区二区三区蜜臀| 欧美不卡一区二区| 国产精品美女久久久久aⅴ | 午夜精品久久久久久久久久久| 午夜激情综合网| 国内偷窥港台综合视频在线播放| 国产成人在线影院| 色哟哟国产精品| 91精品国产乱码久久蜜臀| 精品国内片67194| 亚洲天堂成人网| 奇米色777欧美一区二区| 国产不卡视频一区二区三区| 91成人在线观看喷潮| 欧美大黄免费观看| 中文字幕中文字幕一区| 日日夜夜免费精品| 成人av中文字幕| 在线播放亚洲一区| 国产精品久线在线观看| 日本不卡视频在线观看| 成人av电影免费在线播放| 9191精品国产综合久久久久久| 久久久久久久综合狠狠综合| 亚洲乱码国产乱码精品精98午夜 | 日本一区二区免费在线观看视频| 亚洲综合免费观看高清完整版 | 欧美日韩一区二区三区四区五区 | 国产午夜精品在线观看| 亚洲在线中文字幕| 国产ts人妖一区二区| 欧美午夜宅男影院| 国产精品美女一区二区| 另类的小说在线视频另类成人小视频在线| 波多野结衣一区二区三区| 7777精品伊人久久久大香线蕉完整版 | 国产精品影音先锋| 3751色影院一区二区三区| 亚洲三级理论片| 国产iv一区二区三区| 日韩一级大片在线| 亚洲国产成人av好男人在线观看| 国产成人一区二区精品非洲| 欧美精品久久天天躁| 亚洲另类中文字| aaa国产一区| 国产日韩精品一区| 老司机免费视频一区二区 | 欧美日本在线播放| 亚洲婷婷国产精品电影人久久| 国产精品亚洲综合一区在线观看| 欧美久久免费观看| 亚洲影院理伦片| 一本色道a无线码一区v| 国产精品日韩精品欧美在线| 国产一区二区网址| 日韩一级二级三级精品视频| 亚洲成人一区二区| 精品视频一区二区三区免费| 一区二区在线电影| 色综合天天综合网国产成人综合天| 国产亚洲污的网站| 国产二区国产一区在线观看| 亚洲精品一区二区三区香蕉| 久久国产精品99久久久久久老狼 | 国产乱子伦一区二区三区国色天香| 7777精品伊人久久久大香线蕉的 | 国产美女一区二区| 精品粉嫩超白一线天av| 亚洲国产成人午夜在线一区| 福利一区二区在线| 久久久久久97三级| 懂色av一区二区三区免费观看| 欧美精品一区二区三区四区| 久久99精品视频| 国产亚洲精品bt天堂精选| 国产精品77777| 国产精品久久二区二区| 91蜜桃免费观看视频| 亚洲欧美另类图片小说| 91黄色免费观看| 天天操天天色综合| 日韩视频在线永久播放| 精品一二三四在线| 国产午夜亚洲精品理论片色戒 | 久久久噜噜噜久噜久久综合| 国产精品中文字幕一区二区三区| 久久久三级国产网站| 成人avav影音| 亚洲精品免费看| 欧美一区二区三区视频| 国产一区二区调教| 国产精品久久久久久久岛一牛影视 | 日韩无一区二区| 国产精品系列在线播放| 中文字幕一区二区不卡| 91黄视频在线| 美国毛片一区二区| 欧美激情综合在线| 欧美亚洲一区二区在线观看| 日韩av一区二区三区| 2014亚洲片线观看视频免费| 成人黄动漫网站免费app| 亚洲午夜影视影院在线观看| 日韩欧美在线观看一区二区三区| 极品销魂美女一区二区三区| 国产精品夫妻自拍| 在线播放欧美女士性生活| 极品少妇xxxx精品少妇偷拍| 中文字幕一区av| 91精品国产91久久久久久最新毛片 | 日韩精品中文字幕一区二区三区 | 欧美一区二区三区公司| 国产乱一区二区| 亚洲一区在线视频观看| 久久亚洲影视婷婷| 91一区二区在线| 欧美a级一区二区| 亚洲欧洲日韩av| 日韩女优制服丝袜电影| 99久久精品免费| 久久精品国产亚洲一区二区三区| 国产精品高潮呻吟| 日韩欧美在线1卡| 一本一道波多野结衣一区二区| 免费观看日韩电影| 亚洲四区在线观看| 日韩免费电影网站| 91传媒视频在线播放| 国产精品888| 免费在线一区观看| 亚洲天天做日日做天天谢日日欢 | 一区在线播放视频| 精品少妇一区二区三区在线视频| 99视频在线观看一区三区| 青青草国产成人av片免费| 亚洲三级久久久| 日本一区二区三区免费乱视频| 88在线观看91蜜桃国自产| 色综合久久中文字幕|