diff options
author | Dave Chapman <dave@dchapman.com> | 2006-05-02 08:08:10 +0000 |
---|---|---|
committer | Dave Chapman <dave@dchapman.com> | 2006-05-02 08:08:10 +0000 |
commit | f79d35a25eb47b681d6c3c6f4c8aaba9175ec633 (patch) | |
tree | 5cafc44117d583ab15d9b8a9bfda34eef88e637e | |
parent | b1feebeb2b30ccbcc02af6e965b9408b9af7f8f8 (diff) | |
download | rockbox-f79d35a25eb47b681d6c3c6f4c8aaba9175ec633.tar.gz rockbox-f79d35a25eb47b681d6c3c6f4c8aaba9175ec633.zip |
ipods - First implementation of pcf50605_init() function. This enables the power-out in the Dock connector, which may help getting some accessories working - if they don't need to talk to the ipod via the Apple Accessory Protocol. Thanks to julius in IRC for testing.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9860 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | firmware/drivers/pcf50605.c | 13 | ||||
-rw-r--r-- | firmware/drivers/power.c | 2 | ||||
-rw-r--r-- | firmware/export/pcf50605.h | 1 |
3 files changed, 15 insertions, 1 deletions
diff --git a/firmware/drivers/pcf50605.c b/firmware/drivers/pcf50605.c index a8c61b1789..0f71229964 100644 --- a/firmware/drivers/pcf50605.c +++ b/firmware/drivers/pcf50605.c | |||
@@ -65,6 +65,12 @@ | |||
65 | #define PSSC 0x18 | 65 | #define PSSC 0x18 |
66 | #define PWROKM 0x19 | 66 | #define PWROKM 0x19 |
67 | #define PWROKS 0x1a | 67 | #define PWROKS 0x1a |
68 | #define D1REGC1 0x24 | ||
69 | #define VOUT_3000mV 0xf5 | ||
70 | #define VOUT_3300mV 0xf8 | ||
71 | #define D2REGC1 0x25 | ||
72 | #define D3REGC1 0x26 | ||
73 | |||
68 | 74 | ||
69 | int pcf50605_read(int address) | 75 | int pcf50605_read(int address) |
70 | { | 76 | { |
@@ -101,3 +107,10 @@ void pcf50605_standby_mode(void) | |||
101 | pcf50605_write(OOCC1, GOSTDBY | CHGWAK | EXTONWAK); | 107 | pcf50605_write(OOCC1, GOSTDBY | CHGWAK | EXTONWAK); |
102 | } | 108 | } |
103 | 109 | ||
110 | void pcf50605_init(void) | ||
111 | { | ||
112 | /* The following values were taken from the ipodlinux kernel source */ | ||
113 | pcf50605_write(D1REGC1, VOUT_3000mV); /* Unknown */ | ||
114 | pcf50605_write(D2REGC1, VOUT_3300mV); /* Dock Connector pin 17 */ | ||
115 | pcf50605_write(D3REGC1, VOUT_3000mV); /* Unknown */ | ||
116 | } | ||
diff --git a/firmware/drivers/power.c b/firmware/drivers/power.c index 9cc751e41e..c4b9fb5b7d 100644 --- a/firmware/drivers/power.c +++ b/firmware/drivers/power.c | |||
@@ -85,7 +85,7 @@ void power_init(void) | |||
85 | #endif | 85 | #endif |
86 | #endif | 86 | #endif |
87 | #elif CONFIG_CPU == PP5020 || CONFIG_CPU == PP5002 | 87 | #elif CONFIG_CPU == PP5020 || CONFIG_CPU == PP5002 |
88 | /* TODO: Implement power_init() */ | 88 | pcf50605_init(); |
89 | #else | 89 | #else |
90 | #ifdef HAVE_POWEROFF_ON_PB5 | 90 | #ifdef HAVE_POWEROFF_ON_PB5 |
91 | PBCR2 &= ~0x0c00; /* GPIO for PB5 */ | 91 | PBCR2 &= ~0x0c00; /* GPIO for PB5 */ |
diff --git a/firmware/export/pcf50605.h b/firmware/export/pcf50605.h index 4ea1379e4a..eeb09b4612 100644 --- a/firmware/export/pcf50605.h +++ b/firmware/export/pcf50605.h | |||
@@ -28,6 +28,7 @@ int pcf50605_write_multiple(int address, const unsigned char* buf, int count); | |||
28 | int pcf50605_a2d_read(int channel); | 28 | int pcf50605_a2d_read(int channel); |
29 | bool pcf50605_charger_inserted(void); | 29 | bool pcf50605_charger_inserted(void); |
30 | void pcf50605_standby_mode(void); | 30 | void pcf50605_standby_mode(void); |
31 | void pcf50605_init(void); | ||
31 | #endif | 32 | #endif |
32 | 33 | ||
33 | #endif | 34 | #endif |