From b9dfb81f2aa45be745a8aed9684076210aed4152 Mon Sep 17 00:00:00 2001 From: Mirko Vogt Date: Fri, 12 Dec 2008 00:02:36 +0000 Subject: add support for target 3c24xx (more known as Openmoko GTA02 "Freerunner") and merge it with the openmoko-target and the work Michael Buesch did SVN-Revision: 13609 --- ...d-pcf50633-allow-force-charger-type.patch.patch | 69 ++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100755 target/linux/s3c24xx/patches/0209-add-pcf50633-allow-force-charger-type.patch.patch (limited to 'target/linux/s3c24xx/patches/0209-add-pcf50633-allow-force-charger-type.patch.patch') diff --git a/target/linux/s3c24xx/patches/0209-add-pcf50633-allow-force-charger-type.patch.patch b/target/linux/s3c24xx/patches/0209-add-pcf50633-allow-force-charger-type.patch.patch new file mode 100755 index 0000000000..0abfd0a871 --- /dev/null +++ b/target/linux/s3c24xx/patches/0209-add-pcf50633-allow-force-charger-type.patch.patch @@ -0,0 +1,69 @@ +From a671530397303f2a65c503e9670b5e32e867ffcf Mon Sep 17 00:00:00 2001 +From: Andy Green +Date: Fri, 25 Jul 2008 23:06:19 +0100 +Subject: [PATCH] add-pcf50633-allow-force-charger-type.patch + +This patch adds a sysfs node: + +/sys/class/i2c-adapter/i2c-0/0-0073/force_usb_limit_dangerous + +it allows to force the charging limit regardless of the one chosen +by pcf50633 kernel driver. As such, if you write a charging limit +here that is not suitable for the power source, and the power source +is not current limited on its side, it could draw more current than +your power source can handle, burn down you house, etc. + +If you're certain that your power supply can handle it, you can use +this on your own responsibility to make the amount drawn by the +PMU match what you believed your power supply could handle. + +Example usage, in case where you have a dumb 500mA USB charger that +does not have the ID resistor: + +# cat /sys/class/i2c-adapter/i2c-0/0-0073/charger_type +host/500mA usb mode 100mA <=== dumb charger does not ennumerate us +# echo 500 > /sys/class/i2c-adapter/i2c-0/0-0073/force_usb_limit_dangerous +# cat /sys/class/i2c-adapter/i2c-0/0-0073/charger_type +host/500mA usb mode 500mA + +Signed-off-by: Andy Green +--- + drivers/i2c/chips/pcf50633.c | 15 +++++++++++++++ + 1 files changed, 15 insertions(+), 0 deletions(-) + +diff --git a/drivers/i2c/chips/pcf50633.c b/drivers/i2c/chips/pcf50633.c +index 352b54a..1074b94 100644 +--- a/drivers/i2c/chips/pcf50633.c ++++ b/drivers/i2c/chips/pcf50633.c +@@ -1946,6 +1946,20 @@ static ssize_t show_charger_type(struct device *dev, + + static DEVICE_ATTR(charger_type, 0444, show_charger_type, NULL); + ++static ssize_t force_usb_limit_dangerous(struct device *dev, ++ struct device_attribute *attr, const char *buf, size_t count) ++{ ++ struct i2c_client *client = to_i2c_client(dev); ++ struct pcf50633_data *pcf = i2c_get_clientdata(client); ++ int ma = simple_strtoul(buf, NULL, 10); ++ ++ pcf50633_usb_curlim_set(pcf, ma); ++ return count; ++} ++ ++static DEVICE_ATTR(force_usb_limit_dangerous, 0600, ++ NULL, force_usb_limit_dangerous); ++ + /* + * Charger adc + */ +@@ -2023,6 +2037,7 @@ static struct attribute *pcf_sysfs_entries[] = { + &dev_attr_voltage_ldo6.attr, + &dev_attr_voltage_hcldo.attr, + &dev_attr_charger_type.attr, ++ &dev_attr_force_usb_limit_dangerous.attr, + &dev_attr_charger_adc.attr, + &dev_attr_dump_regs.attr, + NULL, /* going to add things at this point! */ +-- +1.5.6.3 + -- cgit v1.2.3