diff options
Diffstat (limited to 'firmware/drivers')
-rw-r--r-- | firmware/drivers/pcf50605.c | 70 | ||||
-rw-r--r-- | firmware/drivers/pcf50606.c | 45 |
2 files changed, 57 insertions, 58 deletions
diff --git a/firmware/drivers/pcf50605.c b/firmware/drivers/pcf50605.c index afa0a5ca11..7d88e46aa2 100644 --- a/firmware/drivers/pcf50605.c +++ b/firmware/drivers/pcf50605.c @@ -29,54 +29,7 @@ #include "i2c-pp.h" #endif #include "rtc.h" - -#define OOCS 0x01 -#define INT1 0x02 -#define INT2 0x03 -#define INT3 0x04 -#define INT1M 0x05 -#define INT2M 0x06 -#define INT3M 0x07 -#define OOCC1 0x08 - #define GOSTDBY 0x1 - #define TOTRST (0x1 << 1) - #define CLK32ON (0x1 << 2) - #define WDTRST (0x1 << 3) - #define RTCWAK (0x1 << 4) - #define CHGWAK (0x1 << 5) - #define EXTONWAK (0x01 << 6) -#define OOCC2 0x09 -#define RTCSC 0x0a -#define RTCMN 0x0b -#define RTCHR 0x0c -#define RTCWD 0x0d -#define RTCDT 0x0e -#define RTCMT 0x0f -#define RTCYR 0x10 -#define RTCSCA 0x11 -#define RTCMNA 0x12 -#define RTCHRA 0x13 -#define RTCWDA 0x14 -#define RTCDTA 0x15 -#define RTCMTA 0x16 -#define RTCYRA 0x17 -#define PSSC 0x18 -#define PWROKM 0x19 -#define PWROKS 0x1a -#define DCDC1 0x1b -#define DCDC2 0x1c -#define DCDC3 0x1d -#define DCDC4 0x1e -#define DCDEC1 0x1f -#define DCDEC2 0x20 -#define DCUDC1 0x21 -#define DCUDC2 0x22 -#define IOREGC 0x23 -#define D1REGC1 0x24 -#define D2REGC1 0x25 -#define D3REGC1 0x26 -#define LPREG1C 0x27 - +#include "pcf5060x.h" unsigned char pcf50605_wakeup_flags = 0; @@ -117,7 +70,8 @@ int pcf50605_write_multiple(int address, const unsigned char* buf, int count) power on your iPod again. */ void pcf50605_standby_mode(void) { - pcf50605_write(OOCC1, GOSTDBY | CHGWAK | EXTONWAK | pcf50605_wakeup_flags); + pcf50605_write(PCF5060X_OOCC1, + GOSTDBY | CHGWAK | EXTONWAK | pcf50605_wakeup_flags); } void pcf50605_init(void) @@ -125,27 +79,27 @@ void pcf50605_init(void) #if defined (IPOD_VIDEO) /* I/O and GPO voltage supply (default: 0xf8 = 3.3V ON) */ /* ECO not allowed regarding data sheet */ - pcf50605_write(IOREGC, 0xf8); /* 3.3V ON */ + pcf50605_write(PCF5060X_IOREGC, 0xf8); /* 3.3V ON */ /* core voltage supply (default DCDC1/DCDC2: 0xec = 1.2V ON) */ /* ECO not stable, assumed due to less precision of voltage in ECO mode */ - pcf50605_write(DCDC1, 0xec); /* 1.2V ON */ - pcf50605_write(DCDC2, 0x0c); /* OFF */ + pcf50605_write(PCF5060X_DCDC1, 0xec); /* 1.2V ON */ + pcf50605_write(PCF5060X_DCDC2, 0x0c); /* OFF */ /* unknown (default: 0xe3 = 1.8V ON) */ - pcf50605_write(DCUDC1, 0xe3); /* 1.8V ON */ + pcf50605_write(PCF5060X_DCUDC1, 0xe3); /* 1.8V ON */ /* WM8758 voltage supply (default: 0xf5 = 3.0V ON) */ /* ECO not allowed as max. current of 5mA is not sufficient */ - pcf50605_write(D1REGC1, 0xf0); /* 2.5V ON */ + pcf50605_write(PCF5060X_D1REGC1, 0xf0); /* 2.5V ON */ /* LCD voltage supply (default: 0xf5 = 3.0V ON) */ - pcf50605_write(D3REGC1, 0xf1); /* 2.6V ON */ + pcf50605_write(PCF5060X_D3REGC1, 0xf1); /* 2.6V ON */ #else /* keep initialization from svn for other iPods */ - pcf50605_write(D1REGC1, 0xf5); /* 3.0V ON */ - pcf50605_write(D3REGC1, 0xf5); /* 3.0V ON */ + pcf50605_write(PCF5060X_D1REGC1, 0xf5); /* 3.0V ON */ + pcf50605_write(PCF5060X_D3REGC1, 0xf5); /* 3.0V ON */ #endif /* Dock Connector pin 17 (default: OFF) */ - pcf50605_write(D2REGC1, 0xf8); /* 3.3V ON */ + pcf50605_write(PCF5060X_D2REGC1, 0xf8); /* 3.3V ON */ } diff --git a/firmware/drivers/pcf50606.c b/firmware/drivers/pcf50606.c new file mode 100644 index 0000000000..a93b94399e --- /dev/null +++ b/firmware/drivers/pcf50606.c @@ -0,0 +1,45 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2008 by Rob Purchase + * + * All files in this archive are subject to the GNU General Public License. + * See the file COPYING in the source tree root for full license agreement. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ +#include "pcf50606.h" +#include "i2c.h" + +#define PCF50606_ADDR 0x10 + +int pcf50606_write(int address, unsigned char val) +{ + unsigned char data[] = { address, val }; + return i2c_write(PCF50606_ADDR, data, 2); +} + +int pcf50606_read(int address) +{ + unsigned char val = -1; + i2c_readmem(PCF50606_ADDR, address, &val, 1); + return val; +} + +int pcf50606_read_multiple(int address, unsigned char* buf, int count) +{ + return i2c_readmem(PCF50606_ADDR, address, buf, count); +} + +void pcf50606_init(void) +{ + // TODO +} |