devfreq: devfreq_simple_dev: Add support for preparing device clock
For certain implementation, device clock needs to be prepared before rate voting taking effect. Add support for preparing device clock during initialization. Change-Id: Ib22e83952187118342ff2546d4c79d3970a288f9 Signed-off-by: Junjie Wu <junjiew@codeaurora.org>
This commit is contained in:
parent
7abb04398a
commit
708a8f999e
2 changed files with 15 additions and 3 deletions
|
@ -14,6 +14,7 @@ Required properties:
|
|||
Optional properties:
|
||||
- polling-ms: Polling interval for the device in milliseconds. Default: 50
|
||||
- governor: Initial governor to user for the device. Default: "performance"
|
||||
- qcom,prepare-clk: Prepare the device clock during initialization.
|
||||
|
||||
Example:
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2014, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -146,12 +146,23 @@ static int devfreq_clock_probe(struct platform_device *pdev)
|
|||
if (of_property_read_string(dev->of_node, "governor", &gov_name))
|
||||
gov_name = "performance";
|
||||
|
||||
if (of_property_read_bool(dev->of_node, "qcom,prepare-clk")) {
|
||||
ret = clk_prepare(d->clk);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
d->df = devfreq_add_device(dev, p, gov_name, NULL);
|
||||
if (IS_ERR(d->df))
|
||||
return PTR_ERR(d->df);
|
||||
if (IS_ERR(d->df)) {
|
||||
ret = PTR_ERR(d->df);
|
||||
goto add_err;
|
||||
}
|
||||
|
||||
return 0;
|
||||
add_err:
|
||||
if (of_property_read_bool(dev->of_node, "qcom,prepare-clk"))
|
||||
clk_unprepare(d->clk);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int devfreq_clock_remove(struct platform_device *pdev)
|
||||
|
|
Loading…
Add table
Reference in a new issue