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

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

?? pmu.c

?? 針對德州儀器DM270開發板的bootloader,其實現了內核的下載以及文件系統的下載
?? C
字號:
/***************************************************************************//* 																		   *//*			         	pmu.c 											   *//*     Description : Power by PMU(PCF50606 Phillips)                       *//*     Author : rha34(moonjik.lee@reigncom.com)                            *//*     Date : 2004. 3. 22                                                  *//*     Version : 0.1												       *//* 																		   *//***************************************************************************/#include "pmpConfig.h"#include "i2c.h"#include "util.h"#include "pmu.h"#include "dm270-registers.h"//=========== Definitions ==================#define PMU_DEV_ADDR 0x10#define I2C_SCL_GIO	 31#define I2C_SDA_GIO	 32#define MAIN_POWER_KEY		0x100	#define REMOCON_POWER_KEY	 0x100#define MAIN_POWER_BIT	0x1#define REMOCON_POWER_BIT	0x2;#define EEPROM_ADDR	0xa8#define EEPROM_DATA_SUBADDR	27#define REG *(unsigned short *)#define KEEPACT_GIO		(1 << 13)// For debugging messages//#define DEBUG#define RETRY_NUM	3//=========  Variables  ====================//========  Functions  =====================unsigned char power_on_check(void){	unsigned char ret = 0;	unsigned char flag;	unsigned short temp;	//main power key direction Input	temp = REG GIO_DIR0;	temp |= MAIN_POWER_KEY;	REG GIO_DIR0 = temp;	//remocon power key direction Input	temp = REG GIO_DIR1;	temp |= (REMOCON_POWER_KEY>>16);	REG GIO_DIR1 = temp;	//check whether one of these keys are pressed....	temp = REG GIO_BITSET0;	if(temp & MAIN_POWER_KEY){//		util_printf("main key pressed..\n");		ret |= MAIN_POWER_BIT; //Power on by main key	}	temp = REG GIO_BITSET1;	if(temp & REMOCON_POWER_KEY){//		util_printf("remocon key pressed..\n");		ret |= REMOCON_POWER_BIT; //Power on by remocon key	}//	if(ret){		I2C_init(I2C_SCL_GIO, I2C_SDA_GIO);		I2C_writeReg(EEPROM_ADDR,EEPROM_DATA_SUBADDR,ret, &flag);//	}			return(ret);}unsigned char pmu_write_reg(unsigned char subaddr, unsigned char data){	unsigned char flag;	int writeRepeat;	writeRepeat = 0;	do{		I2C_writeReg(PMU_DEV_ADDR,subaddr,data, &flag);		writeRepeat++;	}while(flag == I2C_ERROR && writeRepeat < RETRY_NUM);	if(flag){		util_printf("I2C write Error..\n");		util_printf("addr : %x, data : %x\n",subaddr,data);	}	return(flag);}unsigned char pmu_read_reg(unsigned char subaddr, unsigned char *value){	unsigned char flag;	int rcvRepeat;	rcvRepeat = 0;	do{		*value = I2C_readReg(PMU_DEV_ADDR, subaddr, &flag);		rcvRepeat++;	}while(flag == I2C_ERROR && rcvRepeat < RETRY_NUM);	if(flag){		util_printf("I2C read Error...\n");		util_printf("addr : %x, data : %x\n",subaddr,value);	}	return(flag);}void quit_discharge(void){	I2C_init(I2C_SCL_GIO, I2C_SDA_GIO);	pmu_write_reg(GPOC5,0x7); //quick discharge current...}void pmu_BootInit(void){	unsigned char flag;	unsigned char temp;//	I2C_init(I2C_SCL_GIO, I2C_SDA_GIO);//	pmu_write_reg(GPOC5,0x7); //quick discharge current...	flag = pmu_write_reg(DCDC1,0xf8);  //DCDC1 1.5V set.	flag = pmu_write_reg(GPOC3,0x7); //GPO3 constant low --> FET open	flag = pmu_write_reg(D1REGC1, 0x6); //D1REGC1闌 power off 	flag = pmu_write_reg(DCUDC1, 0xe3); //DCUDDC1俊 1.8V set 	//Added 040731	flag = pmu_write_reg(DCUDC2,0x00);	flag = pmu_write_reg(GPOC4, 0x7); //GPOC4甫 low active --> FFT open	//=================  Added 04.07.02  ======================#if defined (PMP100_PP0)	flag = pmu_write_reg(GPOC1, 0x77); //USB_RST 'H', HOST_PW_EN 'H'#elif defined (PMP100_MP0)	flag = pmu_write_reg(GPOC1,0x00); //SP_SHDN 'L', USB_CHG_EN 'L'#endif	flag = pmu_write_reg(GPOC2,0x07); //LCD_PW_B 'Z'	//=====  Added 04.03.26 for USB  ===============	flag = pmu_write_reg(D2REGC1, 0xf8); //USB device power 	flag = pmu_write_reg(D3REGC1, 0xf0); //USB device power	//==========  End of 04.03.26  ==================== 	//==========  Added 04.05.12 for ES2  ===============	flag = pmu_write_reg(BBCC, 0x1f); 	// back up battery chargin enable STDBY,ACTIVE.										// 400uA, 3.0V	flag = pmu_write_reg(MBCC1, 0x1c); 	// charge mode idle	flag = pmu_write_reg(LPREGC2, 0x0);	//LPREG1 off.		//==========  Added 04.03.27  ===============//	pmu_write_reg(INT1M,0x48,&flag); //Mask the SECOND interrupt.	//Modified By Lee 04.03.30 for mask ON KEYF interrupt	flag = pmu_write_reg(INT1M,0x4a); //Mask the SECOND interrupt.#if defined(NOT_WAKEUP_BY_CHARGER)	//===========  Added 04.03.30  ==============	flag = pmu_write_reg(INT2M,0xff); //Mask the all interrupts by charger.	//Modified 04.05.12 for ES2	flag = pmu_write_reg(INT3M,0x09); //040805 mask adc ready int.//	flag = pmu_write_reg(INT3M,0x0e); //Mask the all about accessory & touch screen interrupt.	//Modified 04.05.12 for ES2	flag = pmu_write_reg(OOCC1,0x0); //Mask the all wake up by something.//	flag = pmu_write_reg(OOCC1,0x44); //Mask the wake up by charger interrupt.#endif 	//Added 040802	flag = pmu_write_reg(OOCC2, 0x05);	flag = pmu_write_reg(PSSC, 0xEF);	flag = pmu_write_reg(PWROKM,0x00);	flag = pmu_write_reg(DCDC2, 0xf9);	flag = pmu_write_reg(DCDC3, 0x00);	flag = pmu_write_reg(DCDEC1,0x08);	flag = pmu_write_reg(DCDEC2,0xf9);//	flag = pmu_write_reg(IOREGC,0xf4);	flag = pmu_write_reg(IOREGC,0xf8);  //040806  default : 3.3V	flag = pmu_write_reg(MBCC2,0x14);	flag = pmu_write_reg(MBCC3,0x10);	flag = pmu_write_reg(BVMC,0x0c);	flag = pmu_write_reg(PWMC1,0x80);	flag = pmu_write_reg(LEDC1,0x4d);	flag = pmu_write_reg(LEDC2,0x4d);        pmu_write_reg(ACDC1, 0x8c); //Accessory threshold voltage : 2.2V        pmu_write_reg(LPREGC1,0xef); //LPVDD 2.4V, Active mode                                                                                                         	//Added 040726        //PLD 1.8V supply check        flag = pmu_read_reg(DCUDC1, &temp);        if(flag != -1){                if(temp != 0xE3){                        pmu_write_reg(DCUDC1, 0xE3);                }        }                                                                                                             //CPU core 1.5V supply check        flag = pmu_read_reg(DCDC1,&temp);        if(flag != -1){                if(temp != 0xF8){                        pmu_write_reg(DCDC1, 0xF8);                }        }                                                                                                     	return;}unsigned char read_irqPort(void){	volatile unsigned char key_val;	volatile unsigned short port;	#if defined(PMP100_EVM)		REG DIR0 |= (1 << 6);	#else		REG DIR0 |= (1 << 5);	#endif		port = REG BITSET0;		#if defined(PMP100_EVM)		key_val = port & (1 << 6);	#else		key_val = port & (1 << 5);	#endif	return(key_val);}unsigned char pmu_OnkeyCheck(void){	unsigned char flag,key_val;	unsigned char temp;		flag = pmu_read_reg(INT1,&key_val); //button ON KEY check.	#if defined(DEBUG)		util_printf("%x\n",key_val);	#endif		flag = pmu_read_reg(INT2,&temp);	#if defined(DEBUG)		util_printf("%x\n",temp);	#endif		flag = pmu_read_reg(INT3,&temp);	#if defined(DEBUG)		util_printf("%x\n",temp);	#endif	//Modified at 04.04.23..//		if(key_val & 0x3)		if((key_val & 0x3)||(key_val == 0x40))			return(0);		else			return(1);}unsigned char detect_interrupt(void){	unsigned char flag;	unsigned char key_val;	if(!read_irqPort()){		flag = pmu_read_reg(INT1,&key_val); //Read INT1 Register.		if((key_val & 0x3)){		#if defined(DEBUG)			util_printf("ONKEY DETECTED\n");		#endif			return ONKEY_DETECT;		}		if(key_val & 0x4){		#if defined(DEBUG)			util_printf("ONKEY1S DETECTED\n");		#endif			return ONKEY1S_DETECT;		}		if(key_val & 0x10){		#if defined(DEBUG)			util_printf("EXTONF DETECTED\n");		#endif			return EXTONF_DETECT;		} 		if(key_val & 0x80){		#if defined(DEBUG)			util_printf("ALARM DETECTED\n");		#endif			return ALARM_DETECT;		}	}	if(!read_irqPort()){		flag = pmu_read_reg(INT2,&key_val);		if(key_val & 0x1){		#if defined(DEBUG)			util_printf("CHGINS DETECTED\n");		#endif			return(CHGINS_DETECT);		}		if(key_val & 0x2){		#if defined(DEBUG)			util_printf("CHGRM DETECTED\n");		#endif			return(CHGRM_DETECT);		}	}	if(!read_irqPort()){		flag = pmu_read_reg(INT3, &key_val);		if(key_val & 0x1){		#if defined(DEBUG)			util_printf("ADCREADY DETECTED\n");		#endif			return(ADCREADY_DETECT);		}	}	return(0);		}void waitOnKey(void){	unsigned char key_val;  unsigned char ch = 0;	while(1){		if(!read_irqPort()){			key_val = detect_interrupt();			util_printf("check  %x\n",key_val);			if(key_val == ONKEY_DETECT){				pmu_OnkeyCheck();				break;			}		}	      	ch = io_getc(100); // look for a key for x msec.      	if (ch > 0) break;	}}void pmu_goStandBy(void){	unsigned char key_val,flag;	flag = pmu_read_reg(OOCC1,&key_val);	key_val |= 0x01;	pmu_write_reg(OOCC1,key_val); //go standBy }void pmu_goFinalize(void){	pmu_write_reg(GPOC4, 0x00);	pmu_write_reg(D1REGC1, 0xE6);	pmu_write_reg(GPOC3, 0x00);	return;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久久国产精品| 免费成人美女在线观看| 成人午夜电影网站| 中文字幕日韩一区| 91亚洲国产成人精品一区二三| 中文字幕乱码日本亚洲一区二区 | 亚洲一区二区视频在线观看| 91麻豆123| 五月天久久比比资源色| 91精品国产综合久久精品app| 丝袜美腿亚洲综合| 一区二区三区日韩精品视频| 色婷婷久久久亚洲一区二区三区| 一区二区三区不卡视频| 欧美一区三区四区| 国产激情一区二区三区四区| 国产精品国产三级国产普通话三级| 9人人澡人人爽人人精品| 一区二区在线观看免费视频播放| 欧美精品久久天天躁| 毛片av一区二区| 国产精品久久午夜| 欧美精品色一区二区三区| 乱中年女人伦av一区二区| 国产日产欧产精品推荐色| 91成人在线免费观看| 久久精品国产一区二区| 欧美激情综合五月色丁香小说| 91丨九色丨蝌蚪富婆spa| 七七婷婷婷婷精品国产| 成人免费一区二区三区在线观看| 欧美日韩不卡视频| 国产伦精品一区二区三区免费| 综合av第一页| 日韩精品一区二区三区swag| 99精品国产一区二区三区不卡| 日本中文字幕一区二区视频| 亚洲欧洲精品一区二区三区| 91精品黄色片免费大全| 不卡欧美aaaaa| 日本中文字幕不卡| 亚洲欧美日韩系列| 久久一夜天堂av一区二区三区| 欧美怡红院视频| 成人免费高清在线观看| 男男成人高潮片免费网站| 亚洲欧美一区二区三区久本道91| 日韩精品在线一区二区| 欧美专区日韩专区| 成人精品视频网站| 韩国av一区二区三区| 婷婷久久综合九色国产成人 | 欧美日韩国产片| 粉嫩一区二区三区性色av| 天堂va蜜桃一区二区三区| 最新日韩在线视频| 国产欧美日韩另类一区| 欧美一级欧美三级| 在线观看国产一区二区| 99久久久久免费精品国产| 国产原创一区二区| 美女网站色91| 日韩精品久久理论片| 亚洲一级二级三级| 日韩美女视频19| 日本一区二区综合亚洲| 欧美tickling网站挠脚心| 777亚洲妇女| 欧美午夜精品电影| 日本电影欧美片| 99精品视频在线播放观看| 国产剧情一区二区三区| 韩国午夜理伦三级不卡影院| 日韩高清在线一区| 99在线热播精品免费| 国产麻豆精品theporn| 久久99久久久久| 麻豆精品视频在线观看视频| 青青草91视频| 美日韩一区二区三区| 美女mm1313爽爽久久久蜜臀| 日本不卡视频在线观看| 丝袜亚洲另类丝袜在线| 日韩精彩视频在线观看| 日韩av一区二区在线影视| 毛片基地黄久久久久久天堂| 男男gaygay亚洲| 精品一区二区在线播放| 国产在线精品不卡| 国产九色sp调教91| 成人美女视频在线观看| 99热国产精品| 91福利国产成人精品照片| 精品视频色一区| 制服.丝袜.亚洲.中文.综合| 欧美一区二区三区四区高清| 日韩精品一区二区在线观看| 337p粉嫩大胆噜噜噜噜噜91av| 久久夜色精品一区| 中文欧美字幕免费| 亚洲一区二区在线观看视频| 日日骚欧美日韩| 国产在线国偷精品免费看| 懂色中文一区二区在线播放| 99久久亚洲一区二区三区青草| 91影院在线免费观看| 欧美日韩国产高清一区| 精品国产乱码久久久久久牛牛| 久久久精品天堂| 亚洲乱码一区二区三区在线观看| 亚洲自拍偷拍麻豆| 精品制服美女丁香| www..com久久爱| 欧美三级日韩三级| 久久久久久久久岛国免费| 亚洲卡通动漫在线| 精品午夜一区二区三区在线观看| kk眼镜猥琐国模调教系列一区二区| 在线国产亚洲欧美| 久久色.com| 亚洲精品日韩专区silk| 久久国产精品第一页| 99久久国产综合精品色伊| 欧美老女人第四色| 国产精品污www在线观看| 亚洲chinese男男1069| 国产乱码精品一区二区三区忘忧草| 在线精品国精品国产尤物884a| 欧美不卡123| 亚洲国产综合视频在线观看| 国产乱码精品1区2区3区| 欧美美女视频在线观看| 国产精品久久久久aaaa| 青青草97国产精品免费观看无弹窗版| 99久久精品99国产精品| 欧美成人官网二区| 亚洲va欧美va人人爽午夜| 高清成人免费视频| 日韩视频一区二区三区| 亚洲国产精品一区二区久久| 国产成人午夜视频| 欧美一级欧美一级在线播放| 亚洲摸摸操操av| 成人av电影在线网| 久久人人超碰精品| 久久精品噜噜噜成人av农村| 在线精品视频小说1| 欧美aⅴ一区二区三区视频| 一区二区三区免费| 捆绑紧缚一区二区三区视频| 欧美系列一区二区| 亚洲视频免费在线观看| 欧美精品视频www在线观看| 国产精品免费丝袜| 韩国毛片一区二区三区| 欧美一区二区在线免费观看| 亚洲一区二区三区四区五区黄| 成人国产精品免费观看视频| 久久久亚洲国产美女国产盗摄| 日本不卡123| 欧美日本在线观看| 亚洲高清一区二区三区| 91久久一区二区| 亚洲欧美日韩国产另类专区| 成人免费va视频| 欧美激情一区二区三区全黄| 国产精品伊人色| 久久色中文字幕| 国产精品99久久久久久有的能看 | 亚洲一区在线观看视频| av一区二区三区在线| 国产精品嫩草99a| av中文字幕不卡| 亚洲精品自拍动漫在线| 91浏览器在线视频| 一区二区三区在线观看动漫| 一本一本大道香蕉久在线精品 | av日韩在线网站| 国产精品午夜久久| 99视频热这里只有精品免费| 亚洲欧美日韩精品久久久久| 日本韩国一区二区三区视频| 亚洲一卡二卡三卡四卡五卡| 欧美日韩一区二区三区在线| 日本欧美一区二区在线观看| 精品理论电影在线| 不卡视频在线看| 亚洲精品国久久99热| 欧美日韩精品一区二区天天拍小说 | 国产大片一区二区| 中文字幕免费一区| 在线亚洲人成电影网站色www| 午夜私人影院久久久久| 精品乱人伦小说| 成人a级免费电影| 夜夜亚洲天天久久| 精品久久国产字幕高潮| 国产成人精品www牛牛影视| 亚洲视频在线一区观看| 777午夜精品免费视频|