greybus: arche-platform: assert wake-detect to complete WAKE_OUT event
authorMichael Scott <michael.scott@linaro.org>
Thu, 28 Jan 2016 00:41:00 +0000 (16:41 -0800)
committerGreg Kroah-Hartman <gregkh@google.com>
Fri, 29 Jan 2016 16:50:13 +0000 (08:50 -0800)
After SVC generates WAKE_OUT (pulling wake-detect pin low) and APB is
brought out of reset, we need to assert wake-detect again to complete
SVC WAKE_OUT logic.

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 b6fb90e9c7dcc9c875da77d1b7d5072ca677579a..f18cec624f7835964cffef707d565113b6cec320 100644 (file)
@@ -79,9 +79,11 @@ static void svc_delayed_work(struct work_struct *work)
 
        if (timeout >= 0) {
                ret = of_platform_populate(np, NULL, NULL, dev);
-               if (!ret)
-                       /* Should we set wake_detect gpio to output again? */
+               if (!ret) {
+                       /* re-assert wake_detect to confirm SVC WAKE_OUT */
+                       gpio_direction_output(arche_pdata->wake_detect_gpio, 1);
                        return;
+               }
        }
 
        /* FIXME: We may want to limit retries here */