]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00214367-2 imx6 usb charger: bind usb charger with power supply
authorRong Dian <b38775@freescale.com>
Thu, 21 Jun 2012 06:26:45 +0000 (14:26 +0800)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 24 May 2013 06:34:51 +0000 (08:34 +0200)
Bind usb charger with power supply, and print some attributes about
usb charger.

Signed-off-by: Rong Dian <b38775@freescale.com>
drivers/usb/gadget/imx_usb_charger.c
drivers/usb/gadget/imx_usb_charger.h

index e1020421adb8721c9a608ddca99576f16591d008..33242a7ab4d8722fcb3df7fa554fb17ba42016bf 100644 (file)
  * NOTICE: Currently, it only supports i.mx6q usb charger detect
  */
 
+static void my_batt_ext_power_changed(struct power_supply *psy)
+{
+       int mA;
+       union power_supply_propval ret = {0,};
+       printk(KERN_INFO "my_batt_ext_power_changed!\n");
+       if (!power_supply_am_i_supplied(psy)) {
+               /* stop charging */
+               printk(KERN_ERR "It is not usb supply!\n");
+               return;
+       }
+       power_supply_get_supplier_property(psy,
+               POWER_SUPPLY_PROP_ONLINE, &ret);
+
+       printk(KERN_INFO "imx6 usb charger online:%d\n", ret.intval);
+
+       power_supply_get_supplier_property(psy,
+               POWER_SUPPLY_PROP_CURRENT_MAX, &ret);
+               /* maximum milliamps we are allowed to draw from VBUS */
+       mA = ret.intval;
+       printk(KERN_INFO "imx6 usb charger limit mA: %d\n", mA);
+}
+
+
 static int usb_charger_get_property(struct power_supply *psy,
                                enum power_supply_property psp,
                                union power_supply_propval *val)
@@ -216,6 +239,7 @@ int imx_usb_create_charger(struct usb_charger *charger,
 
        psy->supplied_to        = usb_charger_supplied_to;
        psy->num_supplicants    = sizeof(usb_charger_supplied_to)/sizeof(char *);
+       psy->external_power_changed = my_batt_ext_power_changed;
 
        ret = power_supply_register(charger->dev, psy);
        if (ret)
index 5417743a511824777a4b13ddb034b6808ede2d95..b3beb0fe58d7718e148baf86d67da69d1c6166f0 100644 (file)
@@ -160,7 +160,6 @@ struct usb_charger {
        struct device           *dev; /* udc supplies */
        /* charger detect can be enabled/disabled by kernel config */
        bool                    enable;
-
        struct power_supply     psy;
        struct work_struct      work;
        struct mutex            lock;
@@ -182,7 +181,7 @@ struct usb_charger {
 };
 
 static char *usb_charger_supplied_to[] = {
-       "main-battery",
+       "imx_usb_charger",
 };
 
 static enum power_supply_property power_props[] = {