summaryrefslogtreecommitdiff
path: root/firmware/target/arm/s5l8700/ipodnano2g
diff options
context:
space:
mode:
authorMichael Sparmann <theseven@rockbox.org>2010-02-17 15:54:48 +0000
committerMichael Sparmann <theseven@rockbox.org>2010-02-17 15:54:48 +0000
commit8f33879fed408e13f7dee050a1c2dc8fa53496fb (patch)
treecd005e358122660007d2e2cb3cadc5f0abdb4d28 /firmware/target/arm/s5l8700/ipodnano2g
parent48e38b87591e671c9d572f91ec00f6e863a54619 (diff)
downloadrockbox-8f33879fed408e13f7dee050a1c2dc8fa53496fb.tar.gz
rockbox-8f33879fed408e13f7dee050a1c2dc8fa53496fb.zip
Enable iPod Nano 2G boosting (without undervolting for now)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24721 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/s5l8700/ipodnano2g')
-rw-r--r--firmware/target/arm/s5l8700/ipodnano2g/pmu-nano2g.c16
-rw-r--r--firmware/target/arm/s5l8700/ipodnano2g/pmu-target.h6
2 files changed, 9 insertions, 13 deletions
diff --git a/firmware/target/arm/s5l8700/ipodnano2g/pmu-nano2g.c b/firmware/target/arm/s5l8700/ipodnano2g/pmu-nano2g.c
index be026a8cf4..aea9b79b55 100644
--- a/firmware/target/arm/s5l8700/ipodnano2g/pmu-nano2g.c
+++ b/firmware/target/arm/s5l8700/ipodnano2g/pmu-nano2g.c
@@ -24,16 +24,15 @@
24#include "i2c-s5l8700.h" 24#include "i2c-s5l8700.h"
25 25
26static struct mutex pmu_adc_mutex; 26static struct mutex pmu_adc_mutex;
27int pmu_initialized = 0;
28 27
29void pmu_read_multiple(int address, int count, unsigned char* buffer) 28int pmu_read_multiple(int address, int count, unsigned char* buffer)
30{ 29{
31 i2c_read(0xe6, address, count, buffer); 30 return i2c_read(0xe6, address, count, buffer);
32} 31}
33 32
34void pmu_write_multiple(int address, int count, unsigned char* buffer) 33int pmu_write_multiple(int address, int count, unsigned char* buffer)
35{ 34{
36 i2c_write(0xe6, address, count, buffer); 35 return i2c_write(0xe6, address, count, buffer);
37} 36}
38 37
39unsigned char pmu_read(int address) 38unsigned char pmu_read(int address)
@@ -45,22 +44,19 @@ unsigned char pmu_read(int address)
45 return tmp; 44 return tmp;
46} 45}
47 46
48void pmu_write(int address, unsigned char val) 47int pmu_write(int address, unsigned char val)
49{ 48{
50 pmu_write_multiple(address, 1, &val); 49 return pmu_write_multiple(address, 1, &val);
51} 50}
52 51
53void pmu_init(void) 52void pmu_init(void)
54{ 53{
55 if (pmu_initialized) return;
56 mutex_init(&pmu_adc_mutex); 54 mutex_init(&pmu_adc_mutex);
57 pmu_initialized = 1;
58} 55}
59 56
60int pmu_read_adc(unsigned int adc) 57int pmu_read_adc(unsigned int adc)
61{ 58{
62 int data = 0; 59 int data = 0;
63 if (!pmu_initialized) pmu_init();
64 mutex_lock(&pmu_adc_mutex); 60 mutex_lock(&pmu_adc_mutex);
65 pmu_write(0x54, 5 | (adc << 4)); 61 pmu_write(0x54, 5 | (adc << 4));
66 while ((data & 0x80) == 0) 62 while ((data & 0x80) == 0)
diff --git a/firmware/target/arm/s5l8700/ipodnano2g/pmu-target.h b/firmware/target/arm/s5l8700/ipodnano2g/pmu-target.h
index 53f4dacc1b..40618c4447 100644
--- a/firmware/target/arm/s5l8700/ipodnano2g/pmu-target.h
+++ b/firmware/target/arm/s5l8700/ipodnano2g/pmu-target.h
@@ -25,9 +25,9 @@
25#include "config.h" 25#include "config.h"
26 26
27unsigned char pmu_read(int address); 27unsigned char pmu_read(int address);
28void pmu_write(int address, unsigned char val); 28int pmu_write(int address, unsigned char val);
29void pmu_read_multiple(int address, int count, unsigned char* buffer); 29int pmu_read_multiple(int address, int count, unsigned char* buffer);
30void pmu_write_multiple(int address, int count, unsigned char* buffer); 30int pmu_write_multiple(int address, int count, unsigned char* buffer);
31int pmu_read_adc(unsigned int adc); 31int pmu_read_adc(unsigned int adc);
32int pmu_read_battery_voltage(void); 32int pmu_read_battery_voltage(void);
33int pmu_read_battery_current(void); 33int pmu_read_battery_current(void);