greybus: arche-platform: Disable clock as part of driver remove
As part of driver remove (cleanup) function, disable the clock for both SVC, APB1 & APB2. Testing Done: Tested on EVT1 platform with Connect=>disconnect=>connect iteration, almost close to 100 iterations have passed (demo branch). And also tested with kernel-only build. Signed-off-by: Vaibhav Hiremath <vaibhav.hiremath@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
parent
4fbf69c71c
commit
d8b16338df
|
@ -220,6 +220,10 @@ static int apb_ctrl_get_devtree_data(struct platform_device *pdev,
|
|||
|
||||
static void apb_ctrl_cleanup(struct arche_apb_ctrl_drvdata *apb)
|
||||
{
|
||||
/* disable the clock */
|
||||
if (gpio_is_valid(apb->clk_en_gpio))
|
||||
gpio_set_value(apb->clk_en_gpio, 0);
|
||||
|
||||
if (!IS_ERR(apb->vcore) && regulator_is_enabled(apb->vcore) > 0)
|
||||
regulator_disable(apb->vcore);
|
||||
|
||||
|
|
|
@ -104,6 +104,7 @@ static void unexport_gpios(struct arche_platform_drvdata *arche_pdata)
|
|||
|
||||
static void arche_platform_cleanup(struct arche_platform_drvdata *arche_pdata)
|
||||
{
|
||||
clk_disable_unprepare(arche_pdata->svc_ref_clk);
|
||||
/* As part of exit, put APB back in reset state */
|
||||
svc_reset_onoff(arche_pdata->svc_reset_gpio,
|
||||
arche_pdata->is_reset_act_hi);
|
||||
|
|
Loading…
Reference in New Issue