diff options
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/drivers/pcf50605.c | 14 | ||||
-rw-r--r-- | firmware/export/config-ipod3g.h | 3 | ||||
-rw-r--r-- | firmware/export/config-ipod4g.h | 3 | ||||
-rw-r--r-- | firmware/export/config-ipodcolor.h | 3 | ||||
-rw-r--r-- | firmware/export/config-ipodmini.h | 3 | ||||
-rw-r--r-- | firmware/export/config-ipodmini2g.h | 3 | ||||
-rw-r--r-- | firmware/export/config-ipodnano.h | 3 | ||||
-rw-r--r-- | firmware/export/config-ipodvideo.h | 3 | ||||
-rw-r--r-- | firmware/export/powermgmt.h | 4 | ||||
-rw-r--r-- | firmware/target/arm/ipod/powermgmt-ipod-pcf.c | 19 |
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); | |||
182 | void cancel_shutdown(void); | 182 | void cancel_shutdown(void); |
183 | void shutdown_hw(void); | 183 | void shutdown_hw(void); |
184 | void sys_poweroff(void); | 184 | void sys_poweroff(void); |
185 | 185 | #ifdef HAVE_ACCESSORY_SUPPLY | |
186 | void 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 | ||
25 | const unsigned short battery_level_dangerous[BATTERY_TYPES_COUNT] = | 27 | const 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 | ||
95 | void 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 | ||