Commit 5667ab17 authored by Vaibhav Hiremath's avatar Vaibhav Hiremath Committed by Greg Kroah-Hartman

greybus: arche-apb-ctrl: Rename init_seq and cleanup fn

apb_ctrl_coldboot_seq() and apb_ctrl_poweroff_seq()
is appropriate name as per spec and implementation, so rename it.
Also move apb_ctrl_poweroff_seq() fn above, to group it with
other _seq functions.

Testing Done: Tested on EVT1.2 and DB3.5 platform.
Signed-off-by: default avatarVaibhav Hiremath <vaibhav.hiremath@linaro.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parent 6ceed512
...@@ -71,7 +71,7 @@ static void unexport_gpios(struct arche_apb_ctrl_drvdata *apb) ...@@ -71,7 +71,7 @@ static void unexport_gpios(struct arche_apb_ctrl_drvdata *apb)
/* /*
* Note: Please do not modify the below sequence, as it is as per the spec * Note: Please do not modify the below sequence, as it is as per the spec
*/ */
static int apb_ctrl_init_seq(struct platform_device *pdev, static int apb_ctrl_coldboot_seq(struct platform_device *pdev,
struct arche_apb_ctrl_drvdata *apb) struct arche_apb_ctrl_drvdata *apb)
{ {
struct device *dev = &pdev->dev; struct device *dev = &pdev->dev;
...@@ -113,6 +113,25 @@ static int apb_ctrl_init_seq(struct platform_device *pdev, ...@@ -113,6 +113,25 @@ static int apb_ctrl_init_seq(struct platform_device *pdev,
return 0; return 0;
} }
static void apb_ctrl_poweroff_seq(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);
if (!IS_ERR(apb->vio) && regulator_is_enabled(apb->vio) > 0)
regulator_disable(apb->vio);
/* As part of exit, put APB back in reset state */
assert_reset(apb->resetn_gpio);
apb->state = ARCHE_PLATFORM_STATE_OFF;
/* TODO: May have to send an event to SVC about this exit */
}
static int apb_ctrl_get_devtree_data(struct platform_device *pdev, static int apb_ctrl_get_devtree_data(struct platform_device *pdev,
struct arche_apb_ctrl_drvdata *apb) struct arche_apb_ctrl_drvdata *apb)
{ {
...@@ -201,25 +220,6 @@ static int apb_ctrl_get_devtree_data(struct platform_device *pdev, ...@@ -201,25 +220,6 @@ static int apb_ctrl_get_devtree_data(struct platform_device *pdev,
return 0; return 0;
} }
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);
if (!IS_ERR(apb->vio) && regulator_is_enabled(apb->vio) > 0)
regulator_disable(apb->vio);
/* As part of exit, put APB back in reset state */
assert_reset(apb->resetn_gpio);
apb->state = ARCHE_PLATFORM_STATE_OFF;
/* TODO: May have to send an event to SVC about this exit */
}
int arche_apb_ctrl_probe(struct platform_device *pdev) int arche_apb_ctrl_probe(struct platform_device *pdev)
{ {
int ret; int ret;
...@@ -236,7 +236,7 @@ int arche_apb_ctrl_probe(struct platform_device *pdev) ...@@ -236,7 +236,7 @@ int arche_apb_ctrl_probe(struct platform_device *pdev)
return ret; return ret;
} }
ret = apb_ctrl_init_seq(pdev, apb); ret = apb_ctrl_coldboot_seq(pdev, apb);
if (ret) { if (ret) {
dev_err(dev, "failed to set init state of control signal %d\n", dev_err(dev, "failed to set init state of control signal %d\n",
ret); ret);
...@@ -255,7 +255,7 @@ int arche_apb_ctrl_remove(struct platform_device *pdev) ...@@ -255,7 +255,7 @@ int arche_apb_ctrl_remove(struct platform_device *pdev)
{ {
struct arche_apb_ctrl_drvdata *apb = platform_get_drvdata(pdev); struct arche_apb_ctrl_drvdata *apb = platform_get_drvdata(pdev);
apb_ctrl_cleanup(apb); apb_ctrl_poweroff_seq(apb);
platform_set_drvdata(pdev, NULL); platform_set_drvdata(pdev, NULL);
unexport_gpios(apb); unexport_gpios(apb);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment