summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
Diffstat (limited to 'firmware')
-rw-r--r--firmware/drivers/pcf50605.c14
-rw-r--r--firmware/export/config-ipod3g.h3
-rw-r--r--firmware/export/config-ipod4g.h3
-rw-r--r--firmware/export/config-ipodcolor.h3
-rw-r--r--firmware/export/config-ipodmini.h3
-rw-r--r--firmware/export/config-ipodmini2g.h3
-rw-r--r--firmware/export/config-ipodnano.h3
-rw-r--r--firmware/export/config-ipodvideo.h3
-rw-r--r--firmware/export/powermgmt.h4
-rw-r--r--firmware/target/arm/ipod/powermgmt-ipod-pcf.c19
10 files changed, 49 insertions, 9 deletions
diff --git a/firmware/drivers/pcf50605.c b/firmware/drivers/pcf50605.c
index 7d88e46aa2..9fb04ddcf2 100644
--- a/firmware/drivers/pcf50605.c
+++ b/firmware/drivers/pcf50605.c
@@ -79,27 +79,25 @@ void pcf50605_init(void)
79#if defined (IPOD_VIDEO) 79#if defined (IPOD_VIDEO)
80 /* I/O and GPO voltage supply (default: 0xf8 = 3.3V ON) */ 80 /* I/O and GPO voltage supply (default: 0xf8 = 3.3V ON) */
81 /* ECO not allowed regarding data sheet */ 81 /* ECO not allowed regarding data sheet */
82 pcf50605_write(PCF5060X_IOREGC, 0xf8); /* 3.3V ON */ 82 pcf50605_write(PCF5060X_IOREGC, 0xf8); /* 3.3V ON */
83 83
84 /* core voltage supply (default DCDC1/DCDC2: 0xec = 1.2V ON) */ 84 /* core voltage supply (default DCDC1/DCDC2: 0xec = 1.2V ON) */
85 /* ECO not stable, assumed due to less precision of voltage in ECO mode */ 85 /* ECO not stable, assumed due to less precision of voltage in ECO mode */
86 pcf50605_write(PCF5060X_DCDC1, 0xec); /* 1.2V ON */ 86 pcf50605_write(PCF5060X_DCDC1, 0xec); /* 1.2V ON */
87 pcf50605_write(PCF5060X_DCDC2, 0x0c); /* OFF */ 87 pcf50605_write(PCF5060X_DCDC2, 0x0c); /* OFF */
88 88
89 /* unknown (default: 0xe3 = 1.8V ON) */ 89 /* unknown (default: 0xe3 = 1.8V ON) */
90 pcf50605_write(PCF5060X_DCUDC1, 0xe3); /* 1.8V ON */ 90 pcf50605_write(PCF5060X_DCUDC1, 0xe3); /* 1.8V ON */
91 91
92 /* WM8758 voltage supply (default: 0xf5 = 3.0V ON) */ 92 /* WM8758 voltage supply (default: 0xf5 = 3.0V ON) */
93 /* ECO not allowed as max. current of 5mA is not sufficient */ 93 /* ECO not allowed as max. current of 5mA is not sufficient */
94 pcf50605_write(PCF5060X_D1REGC1, 0xf0); /* 2.5V ON */ 94 pcf50605_write(PCF5060X_D1REGC1, 0xf0); /* 2.5V ON */
95 95
96 /* LCD voltage supply (default: 0xf5 = 3.0V ON) */ 96 /* LCD voltage supply (default: 0xf5 = 3.0V ON) */
97 pcf50605_write(PCF5060X_D3REGC1, 0xf1); /* 2.6V ON */ 97 pcf50605_write(PCF5060X_D3REGC1, 0xf1); /* 2.6V ON */
98#else 98#else
99 /* keep initialization from svn for other iPods */ 99 /* keep initialization from svn for other iPods */
100 pcf50605_write(PCF5060X_D1REGC1, 0xf5); /* 3.0V ON */ 100 pcf50605_write(PCF5060X_D1REGC1, 0xf5); /* 3.0V ON */
101 pcf50605_write(PCF5060X_D3REGC1, 0xf5); /* 3.0V ON */ 101 pcf50605_write(PCF5060X_D3REGC1, 0xf5); /* 3.0V ON */
102#endif 102#endif
103 /* Dock Connector pin 17 (default: OFF) */
104 pcf50605_write(PCF5060X_D2REGC1, 0xf8); /* 3.3V ON */
105} 103}
diff --git a/firmware/export/config-ipod3g.h b/firmware/export/config-ipod3g.h
index 4644a823a0..d5f403c1a9 100644
--- a/firmware/export/config-ipod3g.h
+++ b/firmware/export/config-ipod3g.h
@@ -63,6 +63,9 @@
63/* Define if the device can wake from an RTC alarm */ 63/* Define if the device can wake from an RTC alarm */
64#define HAVE_RTC_ALARM 64#define HAVE_RTC_ALARM
65 65
66/* Define this if you can switch on/off the accessory power supply */
67#define HAVE_ACCESSORY_SUPPLY
68
66/* Define this if you have a software controlled poweroff */ 69/* Define this if you have a software controlled poweroff */
67#define HAVE_SW_POWEROFF 70#define HAVE_SW_POWEROFF
68 71
diff --git a/firmware/export/config-ipod4g.h b/firmware/export/config-ipod4g.h
index 133b68257b..ad03f41b90 100644
--- a/firmware/export/config-ipod4g.h
+++ b/firmware/export/config-ipod4g.h
@@ -71,6 +71,9 @@
71/* Define if the device can wake from an RTC alarm */ 71/* Define if the device can wake from an RTC alarm */
72#define HAVE_RTC_ALARM 72#define HAVE_RTC_ALARM
73 73
74/* Define this if you can switch on/off the accessory power supply */
75#define HAVE_ACCESSORY_SUPPLY
76
74/* Define this if you have a software controlled poweroff */ 77/* Define this if you have a software controlled poweroff */
75#define HAVE_SW_POWEROFF 78#define HAVE_SW_POWEROFF
76 79
diff --git a/firmware/export/config-ipodcolor.h b/firmware/export/config-ipodcolor.h
index 5823af17bf..9a7c055d53 100644
--- a/firmware/export/config-ipodcolor.h
+++ b/firmware/export/config-ipodcolor.h
@@ -58,6 +58,9 @@
58/* Define if the device can wake from an RTC alarm */ 58/* Define if the device can wake from an RTC alarm */
59#define HAVE_RTC_ALARM 59#define HAVE_RTC_ALARM
60 60
61/* Define this if you can switch on/off the accessory power supply */
62#define HAVE_ACCESSORY_SUPPLY
63
61/* Define this if you have a software controlled poweroff */ 64/* Define this if you have a software controlled poweroff */
62#define HAVE_SW_POWEROFF 65#define HAVE_SW_POWEROFF
63 66
diff --git a/firmware/export/config-ipodmini.h b/firmware/export/config-ipodmini.h
index 34632fa6a4..6e5fe26d6a 100644
--- a/firmware/export/config-ipodmini.h
+++ b/firmware/export/config-ipodmini.h
@@ -62,6 +62,9 @@
62/* Define if the device can wake from an RTC alarm */ 62/* Define if the device can wake from an RTC alarm */
63#define HAVE_RTC_ALARM 63#define HAVE_RTC_ALARM
64 64
65/* Define this if you can switch on/off the accessory power supply */
66#define HAVE_ACCESSORY_SUPPLY
67
65/* Define this if you have a software controlled poweroff */ 68/* Define this if you have a software controlled poweroff */
66#define HAVE_SW_POWEROFF 69#define HAVE_SW_POWEROFF
67 70
diff --git a/firmware/export/config-ipodmini2g.h b/firmware/export/config-ipodmini2g.h
index 124d0db772..c861f5ae13 100644
--- a/firmware/export/config-ipodmini2g.h
+++ b/firmware/export/config-ipodmini2g.h
@@ -62,6 +62,9 @@
62/* Define if the device can wake from an RTC alarm */ 62/* Define if the device can wake from an RTC alarm */
63#define HAVE_RTC_ALARM 63#define HAVE_RTC_ALARM
64 64
65/* Define this if you can switch on/off the accessory power supply */
66#define HAVE_ACCESSORY_SUPPLY
67
65/* Define this if you have a software controlled poweroff */ 68/* Define this if you have a software controlled poweroff */
66#define HAVE_SW_POWEROFF 69#define HAVE_SW_POWEROFF
67 70
diff --git a/firmware/export/config-ipodnano.h b/firmware/export/config-ipodnano.h
index 6a47247d21..ced2c47b4e 100644
--- a/firmware/export/config-ipodnano.h
+++ b/firmware/export/config-ipodnano.h
@@ -58,6 +58,9 @@
58/* Define if the device can wake from an RTC alarm */ 58/* Define if the device can wake from an RTC alarm */
59#define HAVE_RTC_ALARM 59#define HAVE_RTC_ALARM
60 60
61/* Define this if you can switch on/off the accessory power supply */
62#define HAVE_ACCESSORY_SUPPLY
63
61/* Define this if you have a software controlled poweroff */ 64/* Define this if you have a software controlled poweroff */
62#define HAVE_SW_POWEROFF 65#define HAVE_SW_POWEROFF
63 66
diff --git a/firmware/export/config-ipodvideo.h b/firmware/export/config-ipodvideo.h
index 364ae65d3f..d15494cfd1 100644
--- a/firmware/export/config-ipodvideo.h
+++ b/firmware/export/config-ipodvideo.h
@@ -58,6 +58,9 @@
58/* Define if the device can wake from an RTC alarm */ 58/* Define if the device can wake from an RTC alarm */
59#define HAVE_RTC_ALARM 59#define HAVE_RTC_ALARM
60 60
61/* Define this if you can switch on/off the accessory power supply */
62#define HAVE_ACCESSORY_SUPPLY
63
61/* Define this if you have a software controlled poweroff */ 64/* Define this if you have a software controlled poweroff */
62#define HAVE_SW_POWEROFF 65#define HAVE_SW_POWEROFF
63 66
diff --git a/firmware/export/powermgmt.h b/firmware/export/powermgmt.h
index 56e14b3741..4b8d239974 100644
--- a/firmware/export/powermgmt.h
+++ b/firmware/export/powermgmt.h
@@ -182,5 +182,7 @@ void reset_poweroff_timer(void);
182void cancel_shutdown(void); 182void cancel_shutdown(void);
183void shutdown_hw(void); 183void shutdown_hw(void);
184void sys_poweroff(void); 184void sys_poweroff(void);
185 185#ifdef HAVE_ACCESSORY_SUPPLY
186void accessory_supply_set(bool);
187#endif
186#endif 188#endif
diff --git a/firmware/target/arm/ipod/powermgmt-ipod-pcf.c b/firmware/target/arm/ipod/powermgmt-ipod-pcf.c
index aaf4fabf52..2f97c298be 100644
--- a/firmware/target/arm/ipod/powermgmt-ipod-pcf.c
+++ b/firmware/target/arm/ipod/powermgmt-ipod-pcf.c
@@ -21,6 +21,8 @@
21#include "config.h" 21#include "config.h"
22#include "adc.h" 22#include "adc.h"
23#include "powermgmt.h" 23#include "powermgmt.h"
24#include "pcf5060x.h"
25#include "pcf50605.h"
24 26
25const unsigned short battery_level_dangerous[BATTERY_TYPES_COUNT] = 27const unsigned short battery_level_dangerous[BATTERY_TYPES_COUNT] =
26{ 28{
@@ -88,3 +90,20 @@ unsigned int battery_adc_voltage(void)
88{ 90{
89 return (adc_read(ADC_UNREG_POWER) * BATTERY_SCALE_FACTOR) >> 10; 91 return (adc_read(ADC_UNREG_POWER) * BATTERY_SCALE_FACTOR) >> 10;
90} 92}
93
94#ifdef HAVE_ACCESSORY_SUPPLY
95void accessory_supply_set(bool enable)
96{
97 if (enable)
98 {
99 /* Accessory voltage supply */
100 pcf50605_write(PCF5060X_D2REGC1, 0xf8); /* 3.3V ON */
101 }
102 else
103 {
104 /* Accessory voltage supply */
105 pcf50605_write(PCF5060X_D2REGC1, 0x18); /* OFF */
106 }
107
108}
109#endif