]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/commitdiff
usb: gadget: tegra: get DCP current from platform data
authorRakesh Bodla <rbodla@nvidia.com>
Fri, 22 Nov 2013 14:50:55 +0000 (20:20 +0530)
committerRakesh Babu Bodla <rbodla@nvidia.com>
Mon, 25 Nov 2013 08:44:40 +0000 (00:44 -0800)
Get DCP current limit from platform data, if it is
not passed used default value specified.

Bug 1403563

Change-Id: I65fba7b6329955ef20e8ce0f738e2842b255b8da
Signed-off-by: Rakesh Bodla <rbodla@nvidia.com>
Reviewed-on: http://git-master/r/332255
Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
drivers/usb/gadget/tegra_udc.c
drivers/usb/gadget/tegra_udc.h

index 34d16965998f61a7262fd8e4ec3dfdd30d04d14e..41dc9318b6645a9b8b2f33aff65ca4f8d397989d 100644 (file)
@@ -1404,7 +1404,7 @@ static int tegra_usb_set_charging_current(struct tegra_udc *udc)
                break;
        case CONNECT_TYPE_DCP:
                dev_info(dev, "connected to DCP(wall charger)\n");
-               max_ua = USB_CHARGING_DCP_CURRENT_LIMIT_UA;
+               max_ua = udc->dcp_current_limit;
                tegra_udc_notify_event(udc, USB_EVENT_CHARGER);
                break;
        case CONNECT_TYPE_CDP:
@@ -2841,11 +2841,16 @@ static int __init tegra_udc_probe(struct platform_device *pdev)
                        udc->fence_read = false;
                else
                        udc->fence_read = true;
+
+               if (pdata->u_data.dev.dcp_current_limit_ma)
+                       udc->dcp_current_limit =
+                               pdata->u_data.dev.dcp_current_limit_ma * 1000;
+               else
+                       udc->dcp_current_limit =
+                               USB_CHARGING_DCP_CURRENT_LIMIT_UA;
        } else
                dev_err(&pdev->dev, "failed to get platform_data\n");
 
-       pdata = dev_get_platdata(&pdev->dev);
-
        udc->phy = tegra_usb_phy_open(pdev);
        if (IS_ERR(udc->phy)) {
                dev_err(&pdev->dev, "failed to open USB phy\n");
index e2d04c2777a18df2a9244d9720f519eb134ff4be..2a6a08cedeef036b1bb115d6d205036511cf67f3 100644 (file)
@@ -37,8 +37,8 @@
 
 #define USB_MAX_CTRL_PAYLOAD           64
 
- /* Charger current limit=1800mA, as per the USB charger spec */
-#define USB_CHARGING_DCP_CURRENT_LIMIT_UA 1800000u
+/* Charger current limit=1500mA, as per BC1.2 spec */
+#define USB_CHARGING_DCP_CURRENT_LIMIT_UA 1500000u
 #define USB_CHARGING_CDP_CURRENT_LIMIT_UA 1500000u
 #define USB_CHARGING_SDP_CURRENT_LIMIT_UA 500000u
 #define USB_CHARGING_NV_CHARGER_CURRENT_LIMIT_UA 2000000u
@@ -47,7 +47,7 @@
 #define USB_CHARGING_APPLE_CHARGER_1000mA_CURRENT_LIMIT_UA 1000000u
 #define USB_CHARGING_APPLE_CHARGER_2000mA_CURRENT_LIMIT_UA 2000000u
 
- /* 1 sec wait time for non-std charger detection after vbus is detected */
+/* 1 sec wait time for non-std charger detection after vbus is detected */
 #define NON_STD_CHARGER_DET_TIME_MS 1000
 #define BOOST_TRIGGER_SIZE 4096
 
@@ -459,6 +459,7 @@ struct tegra_udc {
        u32 ep0_dir;    /* Endpoint zero direction: USB_DIR_IN/USB_DIR_OUT */
        u8 device_address;      /* Device USB address */
        u32 current_limit;
+       u32 dcp_current_limit;
        spinlock_t lock;
        struct mutex sync_lock;
        unsigned softconnect:1;