📄 diff.txt
字号:
? diff.txt? i2c.d? pmpConfig.h? pmu.d? rr_i2c.c? rr_i2c.hIndex: ChangeLog===================================================================RCS file: /home/cvs/rrload/ChangeLog,vretrieving revision 1.3diff -r1.3 ChangeLog2a3,5> 04.04.14(ver5.24-2.6)> ======================> 1. Battery啊 low threashold voltage捞窍肺 冻绢瘤搁 stand by mode肺 皑.3a7,21> 04.04.14(ver5.34-2.6)> ======================> 1. rrload俊辑 main battery check routine 火涝.> main battery啊 3.6V焊促 累栏搁 stand by mode肺 皑.> > 04.04.02(ver5.34-2.5)> ======================> 1. debug message 荐沥 > 2. 弥檬 charger俊 狼秦辑 enable 登菌阑 版快 促矫 stand by肺 傈券.> --> charger俊 狼秦 pmu绰 enable登瘤 臼澜.> > 04.03.30(ver5.23-2.4)> ======================> 1.chager俊 包茄 葛电 interrupt mask.> 1) INT2M <==0xffIndex: Makefile===================================================================RCS file: /home/cvs/rrload/Makefile,vretrieving revision 1.4diff -r1.4 Makefile48,50c48,50< ifeq ($(BSPCONF_BTLDR_CS8900_DEBUG),y)< DEBUG += -DBSPCONF_BTLDR_CS8900_DEBUG=1< endif---> #ifeq ($(BSPCONF_BTLDR_CS8900_DEBUG),y)> #DEBUG += -DBSPCONF_BTLDR_CS8900_DEBUG=1> #endif211c211,212< ETHER = ether_cs8900.o---> # ETHER = ether_cs8900.o> ETHER = 305,310d305< #use EVM3 board< PMU_BOARD = -DPMP100_EVM< #use ES1 board< #PMU_BOARD = -DPMP100_ES1< < PMU_FLAGS = -DUSE_PMU $(PMUBOARD)313,317c308< #CFLAGS = -MD -g -Wall -D$(NetRate) $(KERN)< < # use PMU< CFLAGS = -MD -g -Wall -D$(NetRate) $(KERN) $(PMU_FLAGS)< ---> CFLAGS = -MD -g -Wall -D$(NetRate) $(KERN)Index: btldr_pi.c===================================================================RCS file: /home/cvs/rrload/btldr_pi.c,vretrieving revision 1.1.1.1diff -r1.1.1.1 btldr_pi.c263c263< tftp_init();---> // tftp_init();265c265< ether_init();---> // ether_init();Index: btldr_ui.c===================================================================RCS file: /home/cvs/rrload/btldr_ui.c,vretrieving revision 1.4diff -r1.4 btldr_ui.c47a48> #include "pmpConfig.h"1742a1744,1750> > //Added By Lee...> if(pmu_OnkeyCheck()) //wakeup by not onkey> // Modified By Lee... 04.04.02> pmu_goStandBy(); //pmu go standby if it was not waken by on key..> // waitOnKey(); > 1752,1755d1759< < //Added By Lee...< /* if(pmu_OnKeyCheck())< waitOnKey(); */Index: btldr_ui.d===================================================================RCS file: /home/cvs/rrload/btldr_ui.d,vretrieving revision 1.2diff -r1.2 btldr_ui.d2c2< flash.h version.h pmu.h dm270-registers.h---> flash.h version.h pmpConfig.h pmu.h dm270-registers.hIndex: i2c.c===================================================================RCS file: /home/cvs/rrload/i2c.c,vretrieving revision 1.1diff -r1.1 i2c.c1,8c1,23< /***************************************************************/< /* i2c for PMU(PCF50606) control */< /* Date : 2004. 03. 16 */< /* Version : 0.1 */< /* Reigncom Ltd. */ < /* */< /***************************************************************/< ---> /*****************************************************************************> *> * Copyright (C) 2002 by Ingenient Technologies, Inc.> * All Rights Reserved.> *> * Use of this software is restricted to the terms and> * conditions of Ingenient's software license agreement.> *> * www.ingenient.com> *> ******************************************************************************> *> * Filename:> *> * i2c.c> *> * File Description:> *> * This file contains the I2C driver functions> *> *> *****************************************************************************/> 11d25< //========== Definitions =================13,23c27,51< #define REG *(volatile unsigned short *)< #define OSEL 0x3089A< #define O0DIV 0x3089C< #define O1DIV 0x3089E< #define PWM0C 0x308A2< #define PWM0H 0x308A4< #define PWM1C 0x308A6< #define PWM1H 0x308A8< #define BITSET_BASE 0x3058C< #define BITCLR_BASE 0x30592< #define DIR_BASE 0x30580---> /* ************************* Global Variables ************************* */> static UINT16 i2c_scl,i2c_sda;> static volatile UINT16 *dir_scl, *bitset_scl, *bitclr_scl;> static volatile UINT16 *dir_sda, *bitset_sda, *bitclr_sda;> > /* *********************** Function Prototypes ************************ */> > static void makeSclLow(void);> static void makeSclHigh(void);> static void makeSdaLow(void);> static void makeSdaHigh(void);> static BOOL readSda(void);> static void makeSdaInput(void);> static void makeSdaOutput(void);> static void i2cStart(void);> static void i2cStop(void);> static BOOL i2cReadBit(void);> static void i2cWriteBit(BOOL bit);> static BOOL i2cGetAck(void);> static void i2cSendAck(void);> static void i2cSendNack(void);> static UINT8 i2cReadByte(void);> static void i2cWriteByte(UINT8 byte);> static void i2cWait(void);> 24a53> /* **************************** BEGIN CODE **************************** */26,32c55,105< void GIODirSet(unsigned char port, unsigned char dir){ < unsigned char gio_offset = 0; < < while(port > 15){ < port -= 16; < gio_offset +=2; < }---> /* main initialization function */> void I2C_init(INT16 scl_gio, INT16 sda_gio)> {> /* configure pointers based on GIO usage */> if (scl_gio >= 32)> {> dir_scl = DIR2;> bitset_scl = BITSET2;> bitclr_scl = BITCLR2;> i2c_scl = 1 << (scl_gio-32);> }> else if (scl_gio >= 16)> {> dir_scl = DIR1;> bitset_scl = BITSET1;> bitclr_scl = BITCLR1;> i2c_scl = 1 << (scl_gio-16);> }> else> {> dir_scl = DIR0;> bitset_scl = BITSET0;> bitclr_scl = BITCLR0;> i2c_scl = 1 << scl_gio;> }> > if (sda_gio >= 32)> {> dir_sda = DIR2;> bitset_sda = BITSET2;> bitclr_sda = BITCLR2;> i2c_sda = 1 << (sda_gio-32);> }> else if (sda_gio >= 16)> {> dir_sda = DIR1;> bitset_sda = BITSET1;> bitclr_sda = BITCLR1;> i2c_sda = 1 << (sda_gio-16);> }> else> {> dir_sda = DIR0;> bitset_sda = BITSET0;> bitclr_sda = BITCLR0;> i2c_sda = 1 << sda_gio;> }> > /* configure the 2 GIO lines as outputs */> *dir_scl &= ~i2c_scl;> *dir_sda &= ~i2c_sda;34,37c107,108< if(dir) < REG (DIR_BASE + gio_offset) |= (1 << port); < else < REG (DIR_BASE + gio_offset) &= ~(1 << port); ---> /* put bus in stop state */> i2cStop();39a111,114> void I2C_writeReg(UINT8 slaveAddr, UINT8 subAddr, UINT8 val,> UINT8 *successFlag)> {> UINT8 flag=1;41,42c116< void GIOSet(unsigned char port,unsigned char set){< unsigned char gio_offset = 0; ---> i2cStart();44,47c118,119< while(port > 15){ < port -= 16; < gio_offset +=2; < } ---> i2cWriteByte(slaveAddr & 0xfe); /* LSb = 0 for write */> flag &= i2cGetAck();49,53c121,122< if(set) < REG (BITSET_BASE + gio_offset) = (1 << port); < else < REG (BITCLR_BASE + gio_offset) = (1 << port); < }---> i2cWriteByte(subAddr);> flag &= i2cGetAck();55,58c124,125< unsigned char GIOGet(unsigned char port){< unsigned char gio_offset = 0;< unsigned short temp;< unsigned char res;---> i2cWriteByte(val);> flag &= i2cGetAck();60,66c127< while(port > 15){< port -= 16;< gio_offset += 2;< }< < temp = REG (BITSET_BASE + gio_offset);< res = temp & (1 << port);---> i2cStop();68,71c129< if(res)< return(1);< else< return(0);---> *successFlag = (flag) ? I2C_SUCCESS : I2C_ERROR;74,77d131< void set_PMU_SCL_High(void){< // REG BITSET1 = PMU_SCL_GIO;< GIOSet(PMU_SCL_GIO,1);< }79,82c133,136< void set_PMU_SCL_Low(void){< // REG BITCLR1 = PMU_SCL_GIO;< GIOSet(PMU_SCL_GIO,0);< }---> void I2C_writeRegs(UINT8 slaveAddr, UINT8 subAddr, UINT8 *val,> UINT32 count, UINT8 *successFlag)> {> UINT8 i, flag=1;84,87c138,149< void set_PMU_SDA_High(void){< // REG BITSET1 = PMU_SDA_GIO;< GIOSet(PMU_SDA_GIO,1);< }---> i2cStart();> i2cWriteByte(slaveAddr & 0xfe); /* LSb = 0 for write */> flag &= i2cGetAck();> i2cWriteByte(subAddr);> flag &= i2cGetAck();> > for (i = 0; i < count; i++)> {> i2cWriteByte(val[i]);> flag &= i2cGetAck();> }> i2cStop();89,91c151< void set_PMU_SDA_Low(void){< // REG BITCLR1 = PMU_SDA_GIO;< GIOSet(PMU_SDA_GIO,0);---> *successFlag = (flag) ? I2C_SUCCESS : I2C_ERROR;94,96c154,182< void make_PMU_SDA_Input(void){< // GIODirSet(PMU_SDA_GIO,1);< REG 0x30584 |= (0x1);---> unsigned char I2C_readReg(UINT8 slaveAddr, UINT8 subAddr,> UINT8 *successFlag)> {> UINT8 val, flag=1;> > i2cStart();> > i2cWriteByte(slaveAddr & 0xfe); /* LSb = 0 for write */> flag &= i2cGetAck();> > i2cWriteByte(subAddr);> flag &= i2cGetAck();> > i2cStart();> i2cWriteByte(slaveAddr | 0x01); /* LSb = 1 for read */> flag &= i2cGetAck();> > makeSdaInput();> i2cWait();> val = i2cReadByte();> > makeSdaOutput();> i2cWait();> i2cSendNack();> i2cStop();> > *successFlag = (flag) ? I2C_SUCCESS : I2C_ERROR;> > return val;99,101c185,211< void make_PMU_SDA_Output(void){< // GIODirSet(PMU_SDA_GIO,0);< REG 0x30584 &= ~(0x1);---> > void I2C_readRegs(UINT8 slaveAddr, UINT8 subAddr, UINT8 *val,> UINT32 count, UINT8 *successFlag)> {> UINT32 i, flag=1;> > i2cStart();> i2cWriteByte(0xfe&slaveAddr); // "write" must be even number> flag &= i2cGetAck();> > i2cWriteByte(subAddr);> flag &= i2cGetAck();> > i2cStart();> i2cWriteByte((0xfe&slaveAddr)+1);> flag &= i2cGetAck();> > > for(i=0; i<count; i++)> {> val[i] = i2cReadByte();> if (i == count-1)> i2cSendNack();> else> i2cSendAck();> }> i2cStop();104,119c214,220< unsigned char get_SDA(void){< volatile unsigned char temp;< i2c_wait();< make_PMU_SDA_Input();< set_PMU_SCL_High();< i2c_wait();< i2c_wait();< i2c_wait();< i2c_wait();< temp = GIOGet(PMU_SDA_GIO);< set_PMU_SCL_Low();< i2c_wait();< if(temp)< return(1);< else< return(0);---> > /* ********************** Local Helper Functions ********************** */> > /* write a '0' to SCL */> static void makeSclLow(void)> {> *bitclr_scl = i2c_scl;122d222< unsigned char get_Ack(void){124,126c224,228< volatile unsigned char res=0;< res = get_SDA();< make_PMU_SDA_Output();---> /* write a '1' to SCL */> static void makeSclHigh(void)> {> *bitset_scl = i2c_scl;> }128,131d229< if(!(res & 0x1))< return(1);< else< return(0); 132a231,234> /* write a '0' to SDA */> static void makeSdaLow(void)> {> *bitclr_sda = i2c_sda;135,136c237,241< void send_Ack(void){< GIOSet(PMU_SDA_GIO,0);---> > /* write a '1' to SDA */> static void makeSdaHigh(void)> {> *bitset_sda = i2c_sda;139,140c244,254< void send_Nack(void){< GIOSet(PMU_SDA_GIO,1);---> > /* read SDA */> static BOOL readSda(void)> {> UINT16 usTemp;> > usTemp = *bitset_sda;> if ((usTemp & i2c_sda) != 0)> return (BOOL)1;> else> return (BOOL)0;143,146c257,261< void i2c_wait(void){< unsigned char i;< for(i=0;i<200;i++)< ;---> > /* set SDA as input */> static void makeSdaInput(void)> {> *dir_sda |= i2c_sda;149,154d263< void i2c_Init(void){< set_PMU_SCL_High();< set_PMU_SDA_High();< GIODirSet(PMU_SCL_GIO,0); //dedicated gio output.< GIODirSet(PMU_SDA_GIO,0); //dedicated gio output.< i2c_wait();156,157c265,269< i2c_Open();< i2c_wait();---> /* set SDA as output */> static void makeSdaOutput(void)> {> makeSdaHigh(); /* was pulled up, keep same state */> *dir_sda &= ~i2c_sda;160,163c272,280< void i2c_Open(void){< set_PMU_SDA_Low();< i2c_wait();< set_PMU_SCL_Low();---> static void i2cStart(void)> {> makeSdaHigh();> makeSclHigh();> i2cWait();> makeSdaLow();> i2cWait();> makeSclLow();> i2cWait();166,170c283,289< void i2c_Stop(void){< set_PMU_SDA_Low();< set_PMU_SCL_High();< i2c_wait();< set_PMU_SDA_High();---> static void i2cStop(void)> {> makeSdaLow();> makeSclHigh();> i2cWait();> makeSdaHigh();> i2cWait();173,174c292,294< int i2c_Send_Byte(unsigned char buff){< int j=8;---> static BOOL i2cReadBit(void)> {> BOOL bit;176,177c296,304< while(j--){< i2c_wait();---> makeSclHigh();> i2cWait();> i2cWait();> i2cWait();> i2cWait();> i2cWait();> i2cWait();> bit = readSda();> makeSclLow();179,188c306< if(buff & (0x1 << j)){< set_PMU_SDA_High();< }else{< set_PMU_SDA_Low();< }< i2c_wait();< set_PMU_SCL_High();< i2c_wait();< set_PMU_SCL_Low();< }---
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -