forked from Minki/linux
clk: raspberrypi: register platform device for raspberrypi-cpufreq
As 'clk-raspberrypi' depends on RPi's firmware interface, which might be configured as a module, the cpu clock might not be available for the cpufreq driver during it's init process. So we register the 'raspberrypi-cpufreq' platform device after the probe sequence succeeds. Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Acked-by: Eric Anholt <eric@anholt.net> Signed-off-by: Stephen Boyd <sboyd@kernel.org>
This commit is contained in:
parent
91f2cf4a6b
commit
e2bb18347c
@ -34,6 +34,7 @@
|
|||||||
struct raspberrypi_clk {
|
struct raspberrypi_clk {
|
||||||
struct device *dev;
|
struct device *dev;
|
||||||
struct rpi_firmware *firmware;
|
struct rpi_firmware *firmware;
|
||||||
|
struct platform_device *cpufreq;
|
||||||
|
|
||||||
unsigned long min_rate;
|
unsigned long min_rate;
|
||||||
unsigned long max_rate;
|
unsigned long max_rate;
|
||||||
@ -272,6 +273,7 @@ static int raspberrypi_clk_probe(struct platform_device *pdev)
|
|||||||
|
|
||||||
rpi->dev = dev;
|
rpi->dev = dev;
|
||||||
rpi->firmware = firmware;
|
rpi->firmware = firmware;
|
||||||
|
platform_set_drvdata(pdev, rpi);
|
||||||
|
|
||||||
ret = raspberrypi_register_pllb(rpi);
|
ret = raspberrypi_register_pllb(rpi);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
@ -283,6 +285,18 @@ static int raspberrypi_clk_probe(struct platform_device *pdev)
|
|||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
rpi->cpufreq = platform_device_register_data(dev, "raspberrypi-cpufreq",
|
||||||
|
-1, NULL, 0);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int raspberrypi_clk_remove(struct platform_device *pdev)
|
||||||
|
{
|
||||||
|
struct raspberrypi_clk *rpi = platform_get_drvdata(pdev);
|
||||||
|
|
||||||
|
platform_device_unregister(rpi->cpufreq);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -291,6 +305,7 @@ static struct platform_driver raspberrypi_clk_driver = {
|
|||||||
.name = "raspberrypi-clk",
|
.name = "raspberrypi-clk",
|
||||||
},
|
},
|
||||||
.probe = raspberrypi_clk_probe,
|
.probe = raspberrypi_clk_probe,
|
||||||
|
.remove = raspberrypi_clk_remove,
|
||||||
};
|
};
|
||||||
module_platform_driver(raspberrypi_clk_driver);
|
module_platform_driver(raspberrypi_clk_driver);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user