From 5999210c0aa466b0cee03b2679151bd146e3f4f8 Mon Sep 17 00:00:00 2001 From: Ulf Hansson Date: Thu, 22 Nov 2012 11:35:39 +0100 Subject: [PATCH] --- yaml --- r: 336511 b: refs/heads/master c: 45228ef32240957b1536fbba1ca12377cb2e587c h: refs/heads/master i: 336509: d40634e1b51f55453a93631f5ba2948165886c00 336507: 2bbf40f6b7f44c583f5a8e779d073c083f9b31b4 336503: 43d2af78edcfaa1d4bd11c0f24f763f17ce3966f 336495: 7c5ce3be568ee2bc75326db5799a1f518614f79f 336479: b1941de1a330205081b9094d942c9617918aee4f 336447: b79b9f9e10494dacf2399a89bcb288a9ed5c7f2e 336383: 1aed76677c38407721821043fcb641e7867a865b v: v3 --- [refs] | 2 +- trunk/drivers/clk/ux500/Makefile | 3 ++ trunk/drivers/clk/ux500/abx500-clk.c | 73 ++++++++++++++++++++++++++++ 3 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 trunk/drivers/clk/ux500/abx500-clk.c diff --git a/[refs] b/[refs] index 213f6d0c8b0c..50cd023f03f2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b70e6d009a88e09805152597e02f3d97a1d6ee99 +refs/heads/master: 45228ef32240957b1536fbba1ca12377cb2e587c diff --git a/trunk/drivers/clk/ux500/Makefile b/trunk/drivers/clk/ux500/Makefile index 858fbfe66281..bcc0c11a507c 100644 --- a/trunk/drivers/clk/ux500/Makefile +++ b/trunk/drivers/clk/ux500/Makefile @@ -10,3 +10,6 @@ obj-y += clk-prcmu.o obj-y += u8500_clk.o obj-y += u9540_clk.o obj-y += u8540_clk.o + +# ABX500 clock driver +obj-y += abx500-clk.o diff --git a/trunk/drivers/clk/ux500/abx500-clk.c b/trunk/drivers/clk/ux500/abx500-clk.c new file mode 100644 index 000000000000..e27c52317ffe --- /dev/null +++ b/trunk/drivers/clk/ux500/abx500-clk.c @@ -0,0 +1,73 @@ +/* + * abx500 clock implementation for ux500 platform. + * + * Copyright (C) 2012 ST-Ericsson SA + * Author: Ulf Hansson + * + * License terms: GNU General Public License (GPL) version 2 + */ + +#include +#include +#include +#include +#include + +/* TODO: Add clock implementations here */ + + +/* Clock definitions for ab8500 */ +static int ab8500_reg_clks(struct device *dev) +{ + return 0; +} + +/* Clock definitions for ab8540 */ +static int ab8540_reg_clks(struct device *dev) +{ + return 0; +} + +/* Clock definitions for ab9540 */ +static int ab9540_reg_clks(struct device *dev) +{ + return 0; +} + +static int __devinit abx500_clk_probe(struct platform_device *pdev) +{ + struct ab8500 *parent = dev_get_drvdata(pdev->dev.parent); + int ret; + + if (is_ab8500(parent) || is_ab8505(parent)) { + ret = ab8500_reg_clks(&pdev->dev); + } else if (is_ab8540(parent)) { + ret = ab8540_reg_clks(&pdev->dev); + } else if (is_ab9540(parent)) { + ret = ab9540_reg_clks(&pdev->dev); + } else { + dev_err(&pdev->dev, "non supported plf id\n"); + return -ENODEV; + } + + return ret; +} + +static struct platform_driver abx500_clk_driver = { + .driver = { + .name = "abx500-clk", + .owner = THIS_MODULE, + }, + .probe = abx500_clk_probe, +}; + +static int __init abx500_clk_init(void) +{ + return platform_driver_register(&abx500_clk_driver); +} + +arch_initcall(abx500_clk_init); + +MODULE_AUTHOR("Ulf Hansson