greybus: arche-platform: bring SVC out of reset later in probe
authorMichael Scott <michael.scott@linaro.org>
Thu, 28 Jan 2016 00:40:59 +0000 (16:40 -0800)
committerGreg Kroah-Hartman <gregkh@google.com>
Fri, 29 Jan 2016 16:50:13 +0000 (08:50 -0800)
Move SVC deassert reset to after wake-detect pin has been pulled
low in probe.  Otherwise, SVC may trigger WAKE_OUT based on a
default high signal.

Testing Done:
- Used for DB3.5/EVT1.5 hardware during bringup
- Regression tested on DB3.1+ES2, DB3.1+ES3

Signed-off-by: Michael Scott <michael.scott@linaro.org>
Reviewed-by: Vaibhav Hiremath <vaibhav.hiremath@linaro.org>
Tested-by: Vaibhav Hiremath <vaibhav.hiremath@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
drivers/staging/greybus/arche-platform.c

index 4e49be8..b6fb90e 100644 (file)
@@ -191,10 +191,6 @@ static int arche_platform_probe(struct platform_device *pdev)
 
        platform_set_drvdata(pdev, arche_pdata);
 
-       /* bring SVC out of reset */
-       svc_reset_onoff(arche_pdata->svc_reset_gpio,
-                       !arche_pdata->is_reset_act_hi);
-
        arche_pdata->num_apbs = of_get_child_count(np);
        dev_dbg(dev, "Number of APB's available - %d\n", arche_pdata->num_apbs);
 
@@ -214,6 +210,10 @@ static int arche_platform_probe(struct platform_device *pdev)
        /* deassert wake detect */
        gpio_direction_output(arche_pdata->wake_detect_gpio, 0);
 
+       /* bring SVC out of reset */
+       svc_reset_onoff(arche_pdata->svc_reset_gpio,
+                       !arche_pdata->is_reset_act_hi);
+
        arche_pdata->dev = &pdev->dev;
        INIT_DELAYED_WORK(&arche_pdata->delayed_work, svc_delayed_work);
        schedule_delayed_work(&arche_pdata->delayed_work, msecs_to_jiffies(2000));