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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rtc_xicor1241.c

?? 該文件是rt_linux
?? C
字號:
/* * Copyright (C) 2000, 2001 Broadcom Corporation * * Copyright (C) 2002 MontaVista Software Inc. * Author: jsun@mvista.com or jsun@junsun.net * * 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. * */#include <linux/types.h>#include <linux/time.h>#include <asm/time.h>#include <asm/addrspace.h>#include <asm/sibyte/64bit.h>#include <asm/sibyte/sb1250.h>#include <asm/sibyte/sb1250_regs.h>#include <asm/sibyte/sb1250_smbus.h>/* Xicor 1241 definitions *//* * Register bits */#define X1241REG_SR_BAT	0x80		/* currently on battery power */#define X1241REG_SR_RWEL 0x04		/* r/w latch is enabled, can write RTC */#define X1241REG_SR_WEL 0x02		/* r/w latch is unlocked, can enable r/w now */#define X1241REG_SR_RTCF 0x01		/* clock failed */#define X1241REG_BL_BP2 0x80		/* block protect 2 */#define X1241REG_BL_BP1 0x40		/* block protect 1 */#define X1241REG_BL_BP0 0x20		/* block protect 0 */#define X1241REG_BL_WD1	0x10#define X1241REG_BL_WD0	0x08#define X1241REG_HR_MIL 0x80		/* military time format *//* * Register numbers */#define X1241REG_BL	0x10		/* block protect bits */#define X1241REG_INT	0x11		/*  */#define X1241REG_SC	0x30		/* Seconds */#define X1241REG_MN	0x31		/* Minutes */#define X1241REG_HR	0x32		/* Hours */#define X1241REG_DT	0x33		/* Day of month */#define X1241REG_MO	0x34		/* Month */#define X1241REG_YR	0x35		/* Year */#define X1241REG_DW	0x36		/* Day of Week */#define X1241REG_Y2K	0x37		/* Year 2K */#define X1241REG_SR	0x3F		/* Status register */#define X1241_CCR_ADDRESS	0x6F#define SMB_CSR(reg) (KSEG1 | A_SMB_REGISTER(1, reg))static int xicor_read(uint8_t addr){        while (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY)                ;	out64((addr >> 8) & 0x7, SMB_CSR(R_SMB_CMD));	out64((addr & 0xff), SMB_CSR(R_SMB_DATA));	out64((V_SMB_ADDR(X1241_CCR_ADDRESS) | V_SMB_TT_WR2BYTE), SMB_CSR(R_SMB_START));        while (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY)                ;	out64((V_SMB_ADDR(X1241_CCR_ADDRESS) | V_SMB_TT_RD1BYTE), SMB_CSR(R_SMB_START));        while (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY)                ;        if (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_ERROR) {                /* Clear error bit by writing a 1 */                out64(M_SMB_ERROR, SMB_CSR(R_SMB_STATUS));                return -1;        }	return (in64(SMB_CSR(R_SMB_DATA)) & 0xff);}static int xicor_write(uint8_t addr, int b){        while (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY)                ;	out64(addr, SMB_CSR(R_SMB_CMD));	out64((addr & 0xff) | ((b & 0xff) << 8), SMB_CSR(R_SMB_DATA));	out64(V_SMB_ADDR(X1241_CCR_ADDRESS) | V_SMB_TT_WR3BYTE,	      SMB_CSR(R_SMB_START));        while (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY)                ;        if (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_ERROR) {                /* Clear error bit by writing a 1 */                out64(M_SMB_ERROR, SMB_CSR(R_SMB_STATUS));                return -1;        } else {		return 0;	}}#define BCD_TO_BIN(val) ((val)=((val)&15) + ((val)>>4)*10)#define BIN_TO_BCD(val) ((val)=(((val)/10)<<4) + (val)%10)int xicor_set_time(unsigned long t){	struct rtc_time tm;	int tmp;	to_tm(t, &tm);	/* unlock writes to the CCR */	xicor_write(X1241REG_SR, X1241REG_SR_WEL);	xicor_write(X1241REG_SR, X1241REG_SR_WEL | X1241REG_SR_RWEL);	/* trivial ones */	BIN_TO_BCD(tm.tm_sec);	xicor_write(X1241REG_SC, tm.tm_sec);	BIN_TO_BCD(tm.tm_min);	xicor_write(X1241REG_MN, tm.tm_min);	BIN_TO_BCD(tm.tm_mday);	xicor_write(X1241REG_DT, tm.tm_mday);	/* tm_mon starts from 0, *ick* */	tm.tm_mon ++;	BIN_TO_BCD(tm.tm_mon);	xicor_write(X1241REG_MO, tm.tm_mon);	/* year is split */	tmp = tm.tm_year / 100;	tm.tm_year %= 100;	xicor_write(X1241REG_YR, tm.tm_year);	xicor_write(X1241REG_Y2K, tmp);	/* hour is the most tricky one */	tmp = xicor_read(X1241REG_HR);	if (tmp & X1241REG_HR_MIL) {		/* 24 hour format */		BIN_TO_BCD(tm.tm_hour);		tmp = (tmp & ~0x3f) | (tm.tm_hour & 0x3f);	} else {		/* 12 hour format, with 0x2 for pm */		tmp = tmp & ~0x3f;		if (tm.tm_hour >= 12) {			tmp |= 0x20;			tm.tm_hour -= 12;		}		BIN_TO_BCD(tm.tm_hour);		tmp |= tm.tm_hour;	}	xicor_write(X1241REG_HR, tmp);	xicor_write(X1241REG_SR, 0);	return 0;}unsigned long xicor_get_time(void){	unsigned int year, mon, day, hour, min, sec, y2k;	sec = xicor_read(X1241REG_SC);	min = xicor_read(X1241REG_MN);	hour = xicor_read(X1241REG_HR);	if (hour & X1241REG_HR_MIL) {		hour &= 0x3f;	} else {		if (hour & 0x20)			hour = (hour & 0xf) + 0x12;	}	BCD_TO_BIN(sec);	BCD_TO_BIN(min);	BCD_TO_BIN(hour);	day = xicor_read(X1241REG_DT);	mon = xicor_read(X1241REG_MO);	year = xicor_read(X1241REG_YR);	y2k = xicor_read(X1241REG_Y2K);	BCD_TO_BIN(day);	BCD_TO_BIN(mon);	BCD_TO_BIN(year);	BCD_TO_BIN(y2k);	year += (y2k * 100);	return mktime(year, mon, day, hour, min, sec);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美96一区二区免费视频| 亚洲欧美日韩国产手机在线| 欧美自拍丝袜亚洲| 91欧美激情一区二区三区成人| 懂色av一区二区三区免费观看| 福利一区在线观看| av电影天堂一区二区在线观看| 本田岬高潮一区二区三区| 成人午夜伦理影院| 99re这里只有精品6| 91欧美一区二区| 欧美日韩一区二区在线视频| 欧美日韩国产在线观看| 欧美一区二区在线看| 亚洲精品在线免费观看视频| 久久久久久久久久电影| 国产精品亲子伦对白| 亚洲精品国产a| 午夜精品福利视频网站| 日本欧美在线看| 国产自产高清不卡| 91网站视频在线观看| 制服丝袜亚洲播放| 欧美精品一区二区三区久久久| 久久久精品一品道一区| 亚洲欧美日韩精品久久久久| 日韩av在线播放中文字幕| 国产91在线观看| 在线观看免费成人| 久久蜜桃一区二区| 亚洲激情五月婷婷| 韩日欧美一区二区三区| 一本色道久久综合狠狠躁的推荐 | 麻豆精品国产传媒mv男同| 国产一区二区91| 91丨porny丨蝌蚪视频| 欧美一级高清片在线观看| 国产精品私人影院| 青青草一区二区三区| 成人一区二区三区视频| 欧美日韩精品一区二区在线播放| 久久久久88色偷偷免费| 五月天一区二区三区| 99视频热这里只有精品免费| 日韩女同互慰一区二区| 亚洲最大色网站| 国产.欧美.日韩| 欧美一区二区视频网站| 亚洲精品欧美激情| 不卡视频免费播放| 精品国产欧美一区二区| 亚洲激情校园春色| 99久久久久免费精品国产| 久久伊人中文字幕| 日韩精品一区第一页| 色www精品视频在线观看| 国产三级一区二区| 经典三级视频一区| 日韩午夜激情视频| 日韩在线a电影| 欧美在线三级电影| 亚洲激情av在线| 99久久久精品免费观看国产蜜| 久久久蜜桃精品| 六月婷婷色综合| 欧美一区二区三区免费在线看| 亚洲国产精品一区二区www| 91蝌蚪porny| 中文字幕欧美一区| 成人性视频网站| 日本一区二区三区电影| 国产精品一区二区三区网站| 久久久久久久久久久久电影 | 成人午夜伦理影院| 国产日韩欧美精品在线| 国产成人精品亚洲日本在线桃色| 亚洲精品一区二区三区精华液 | 国产高清久久久久| 国产亚洲午夜高清国产拍精品| 国产综合色精品一区二区三区| www久久精品| 国产精品综合一区二区三区| 日本一区二区高清| 97久久精品人人澡人人爽| 亚洲女与黑人做爰| 欧美综合天天夜夜久久| 日本aⅴ免费视频一区二区三区| 91精品国产高清一区二区三区蜜臀| 青草国产精品久久久久久| 精品福利二区三区| 成人小视频免费观看| 日韩久久一区二区| 欧美日韩国产系列| 精一区二区三区| 国产精品网友自拍| 在线免费观看日本欧美| 蜜桃久久av一区| 国产精品人成在线观看免费| 日本久久精品电影| 青青草一区二区三区| 国产精品剧情在线亚洲| 欧美视频一区二| 国产毛片精品视频| 亚洲激情欧美激情| 久久蜜桃一区二区| 在线亚洲一区二区| 韩国成人精品a∨在线观看| 亚洲欧洲精品一区二区三区| 91精品国产综合久久精品| 国产精品69毛片高清亚洲| 亚洲免费观看高清完整版在线| 日韩亚洲欧美一区| av色综合久久天堂av综合| 免费精品99久久国产综合精品| 国产日韩欧美精品综合| 91麻豆精品国产91久久久资源速度| 国产白丝精品91爽爽久久| 日韩电影免费在线| 亚洲色图视频网站| 久久伊人蜜桃av一区二区| 在线观看视频欧美| 成人av电影在线播放| 日本网站在线观看一区二区三区 | 2020国产精品| 91黄色小视频| 不卡电影一区二区三区| 久久99国内精品| 亚洲国产日韩一区二区| 中文一区二区在线观看| 日韩视频不卡中文| 欧美日韩一区二区三区在线| 成人黄色软件下载| 国产露脸91国语对白| 青青草97国产精品免费观看无弹窗版| 亚洲日本成人在线观看| 国产精品色一区二区三区| 久久无码av三级| 久久午夜色播影院免费高清| 日韩视频一区二区三区在线播放| 欧美日韩三级一区| 欧美性生交片4| 欧洲激情一区二区| 在线国产电影不卡| 在线欧美日韩精品| 色久综合一二码| 91成人免费网站| 91久久精品午夜一区二区| av不卡免费在线观看| 波多野结衣视频一区| 99久久久国产精品| 91久久香蕉国产日韩欧美9色| 色综合一个色综合亚洲| 色就色 综合激情| 欧美精品免费视频| 欧美酷刑日本凌虐凌虐| 欧美精品在线一区二区三区| 欧美日韩免费观看一区三区| 欧美日韩三级视频| 日韩三级在线观看| 精品99999| 国产精品女主播在线观看| 国产精品福利影院| 亚洲精品免费在线| 日韩电影在线免费看| 国产在线乱码一区二区三区| 国产精品正在播放| 91蜜桃网址入口| 欧美精选一区二区| 久久久久久夜精品精品免费| 中文字幕亚洲一区二区av在线 | 天堂av在线一区| 日本女人一区二区三区| 精品制服美女丁香| 成人免费av网站| 欧美在线综合视频| 日韩女优电影在线观看| 中文字幕在线不卡视频| 午夜视频一区二区| 国产精品一区久久久久| 91高清在线观看| 日韩欧美久久久| 综合色中文字幕| 丝袜亚洲精品中文字幕一区| 国产成人在线免费| 欧美日韩一区二区在线观看视频| 日韩精品一区二区在线观看| 国产精品大尺度| 日本中文一区二区三区| aa级大片欧美| 欧美大片国产精品| 亚洲精品中文字幕乱码三区| 日韩av午夜在线观看| 成人国产在线观看| 欧美刺激脚交jootjob| 日韩一区在线播放| 麻豆精品国产91久久久久久| 一本色道久久综合亚洲精品按摩| 久久一区二区视频| 视频一区二区中文字幕| 99麻豆久久久国产精品免费|