From 850a11250a8c5b6825b080ff843f30fd68cb71f6 Mon Sep 17 00:00:00 2001 From: Andree Buschmann Date: Sun, 20 Apr 2008 18:28:25 +0000 Subject: Adding new setting to System Settings + + id: LANG_ACCESSORY_SUPPLY + desc: in keyclick settings menu + user: + + *: "Zubehör Spannungsversorgung" + + + *: "Zubehör Spannungsversorgung" + + + *: "Zubehör Spannungsversorgung" + + diff --git a/apps/lang/english.lang b/apps/lang/english.lang index e3b632f790..6a793711c2 100644 --- a/apps/lang/english.lang +++ b/apps/lang/english.lang @@ -11576,3 +11576,17 @@ swcodec: "Keyclick Repeats" + + id: LANG_ACCESSORY_SUPPLY + desc: in keyclick settings menu + user: + + *: "Accessory Power Supply" + + + *: "Accessory Power Supply" + + + *: "Accessory Power Supply" + + diff --git a/apps/main.c b/apps/main.c index 8b1e2e4556..e84a672476 100644 --- a/apps/main.c +++ b/apps/main.c @@ -583,6 +583,9 @@ static void init(void) #if CONFIG_CHARGING car_adapter_mode_init(); #endif +#ifdef HAVE_ACCESSORY_SUPPLY + accessory_supply_set(global_settings.accessory_supply); +#endif } #ifdef CPU_PP diff --git a/apps/menus/settings_menu.c b/apps/menus/settings_menu.c index 9d816c99b1..635651e256 100644 --- a/apps/menus/settings_menu.c +++ b/apps/menus/settings_menu.c @@ -34,19 +34,19 @@ #include "splash.h" #include "talk.h" #include "sprintf.h" -#include "powermgmt.h" -#if CONFIG_CODEC == SWCODEC -#include "playback.h" -#endif +#include "powermgmt.h" +#if CONFIG_CODEC == SWCODEC +#include "playback.h" +#endif #ifdef HAVE_RTC_ALARM #include "alarm_menu.h" #endif #if CONFIG_TUNER #include "radio.h" #endif -#if CONFIG_RTC -#include "screens.h" -#endif +#if CONFIG_RTC +#include "screens.h" +#endif /***********************************/ /* TAGCACHE MENU */ @@ -348,6 +348,9 @@ MENUITEM_SETTING(line_in, &global_settings.line_in, linein_callback); #if CONFIG_CHARGING MENUITEM_SETTING(car_adapter_mode, &global_settings.car_adapter_mode, NULL); #endif +#ifdef HAVE_ACCESSORY_SUPPLY +MENUITEM_SETTING(accessory_supply, &global_settings.accessory_supply, NULL); +#endif MENUITEM_SETTING(start_screen, &global_settings.start_in_screen, NULL); #ifdef HAVE_BUTTON_LIGHT @@ -385,6 +388,9 @@ MAKE_MENU(system_menu, ID2P(LANG_SYSTEM), #if CONFIG_CHARGING &car_adapter_mode, #endif +#ifdef HAVE_ACCESSORY_SUPPLY + &accessory_supply, +#endif #ifdef HAVE_BUTTON_LIGHT &buttonlight_timeout, #endif diff --git a/apps/settings.h b/apps/settings.h index 25314d7f70..7c32ba21e3 100644 --- a/apps/settings.h +++ b/apps/settings.h @@ -453,6 +453,9 @@ struct user_settings bool peak_meter_clipcounter; /* clipping count indicator */ #endif bool car_adapter_mode; /* 0=off 1=on */ +#ifdef HAVE_ACCESSORY_SUPPLY + bool accessory_supply; /* 0=off 1=on, accessory power supply for iPod */ +#endif /* show status bar */ bool statusbar; /* 0=hide, 1=show */ diff --git a/apps/settings_list.c b/apps/settings_list.c index e72b259767..d8b21541d4 100644 --- a/apps/settings_list.c +++ b/apps/settings_list.c @@ -511,6 +511,10 @@ const struct settings_list settings[] = { #if CONFIG_CHARGING OFFON_SETTING(NVRAM(1), car_adapter_mode, LANG_CAR_ADAPTER_MODE, false, "car adapter mode", NULL), +#endif +#ifdef HAVE_ACCESSORY_SUPPLY + OFFON_SETTING(0, accessory_supply, LANG_ACCESSORY_SUPPLY, + false, "accessory power supply", accessory_supply_set), #endif /* tuner */ #if CONFIG_TUNER 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) #if defined (IPOD_VIDEO) /* I/O and GPO voltage supply (default: 0xf8 = 3.3V ON) */ /* ECO not allowed regarding data sheet */ - pcf50605_write(PCF5060X_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(PCF5060X_DCDC1, 0xec); /* 1.2V ON */ - pcf50605_write(PCF5060X_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(PCF5060X_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(PCF5060X_D1REGC1, 0xf0); /* 2.5V ON */ + pcf50605_write(PCF5060X_D1REGC1, 0xf0); /* 2.5V ON */ /* LCD voltage supply (default: 0xf5 = 3.0V ON) */ - pcf50605_write(PCF5060X_D3REGC1, 0xf1); /* 2.6V ON */ + pcf50605_write(PCF5060X_D3REGC1, 0xf1); /* 2.6V ON */ #else /* keep initialization from svn for other iPods */ 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(PCF5060X_D2REGC1, 0xf8); /* 3.3V ON */ } 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 @@ /* Define if the device can wake from an RTC alarm */ #define HAVE_RTC_ALARM +/* Define this if you can switch on/off the accessory power supply */ +#define HAVE_ACCESSORY_SUPPLY + /* Define this if you have a software controlled poweroff */ #define HAVE_SW_POWEROFF 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 @@ /* Define if the device can wake from an RTC alarm */ #define HAVE_RTC_ALARM +/* Define this if you can switch on/off the accessory power supply */ +#define HAVE_ACCESSORY_SUPPLY + /* Define this if you have a software controlled poweroff */ #define HAVE_SW_POWEROFF 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 @@ /* Define if the device can wake from an RTC alarm */ #define HAVE_RTC_ALARM +/* Define this if you can switch on/off the accessory power supply */ +#define HAVE_ACCESSORY_SUPPLY + /* Define this if you have a software controlled poweroff */ #define HAVE_SW_POWEROFF 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 @@ /* Define if the device can wake from an RTC alarm */ #define HAVE_RTC_ALARM +/* Define this if you can switch on/off the accessory power supply */ +#define HAVE_ACCESSORY_SUPPLY + /* Define this if you have a software controlled poweroff */ #define HAVE_SW_POWEROFF 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 @@ /* Define if the device can wake from an RTC alarm */ #define HAVE_RTC_ALARM +/* Define this if you can switch on/off the accessory power supply */ +#define HAVE_ACCESSORY_SUPPLY + /* Define this if you have a software controlled poweroff */ #define HAVE_SW_POWEROFF 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 @@ /* Define if the device can wake from an RTC alarm */ #define HAVE_RTC_ALARM +/* Define this if you can switch on/off the accessory power supply */ +#define HAVE_ACCESSORY_SUPPLY + /* Define this if you have a software controlled poweroff */ #define HAVE_SW_POWEROFF 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 @@ /* Define if the device can wake from an RTC alarm */ #define HAVE_RTC_ALARM +/* Define this if you can switch on/off the accessory power supply */ +#define HAVE_ACCESSORY_SUPPLY + /* Define this if you have a software controlled poweroff */ #define HAVE_SW_POWEROFF 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); void cancel_shutdown(void); void shutdown_hw(void); void sys_poweroff(void); - +#ifdef HAVE_ACCESSORY_SUPPLY +void accessory_supply_set(bool); +#endif #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 @@ #include "config.h" #include "adc.h" #include "powermgmt.h" +#include "pcf5060x.h" +#include "pcf50605.h" const unsigned short battery_level_dangerous[BATTERY_TYPES_COUNT] = { @@ -88,3 +90,20 @@ unsigned int battery_adc_voltage(void) { return (adc_read(ADC_UNREG_POWER) * BATTERY_SCALE_FACTOR) >> 10; } + +#ifdef HAVE_ACCESSORY_SUPPLY +void accessory_supply_set(bool enable) +{ + if (enable) + { + /* Accessory voltage supply */ + pcf50605_write(PCF5060X_D2REGC1, 0xf8); /* 3.3V ON */ + } + else + { + /* Accessory voltage supply */ + pcf50605_write(PCF5060X_D2REGC1, 0x18); /* OFF */ + } + +} +#endif -- cgit v1.2.3