| From cf84c64cd8b8f4fe4c6cb0abe4b4e96765b81a32 Mon Sep 17 00:00:00 2001 |
| From: Magnus Damm <damm@opensource.se> |
| Date: Thu, 13 Mar 2014 08:36:26 +0900 |
| Subject: ARM: shmobile: Use shmobile_clk_workaround() on Lager |
| |
| Convert the Lager DT reference code to use the newly introduced |
| function shmobile_clk_workaround(). |
| |
| Signed-off-by: Magnus Damm <damm@opensource.se> |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| (cherry picked from commit e6597e0e19bbabfdd1983dbe79892d8ba210a180) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| arch/arm/mach-shmobile/board-lager-reference.c | 65 ++++++++++---------------- |
| 1 file changed, 25 insertions(+), 40 deletions(-) |
| |
| diff --git a/arch/arm/mach-shmobile/board-lager-reference.c b/arch/arm/mach-shmobile/board-lager-reference.c |
| index 440aac36d693..c76248b9a5e7 100644 |
| --- a/arch/arm/mach-shmobile/board-lager-reference.c |
| +++ b/arch/arm/mach-shmobile/board-lager-reference.c |
| @@ -18,12 +18,11 @@ |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
| */ |
| |
| -#include <linux/clk.h> |
| -#include <linux/clkdev.h> |
| #include <linux/dma-mapping.h> |
| #include <linux/init.h> |
| #include <linux/of_platform.h> |
| #include <linux/platform_data/rcar-du.h> |
| +#include <mach/clock.h> |
| #include <mach/common.h> |
| #include <mach/irqs.h> |
| #include <mach/rcar-gen2.h> |
| @@ -86,46 +85,32 @@ static void __init lager_add_du_device(void) |
| platform_device_register_full(&info); |
| } |
| |
| +/* |
| + * This is a really crude hack to provide clkdev support to platform |
| + * devices until they get moved to DT. |
| + */ |
| +static const struct clk_name clk_names[] = { |
| + { "cmt0", NULL, "sh_cmt.0" }, |
| + { "scifa0", NULL, "sh-sci.0" }, |
| + { "scifa1", NULL, "sh-sci.1" }, |
| + { "scifb0", NULL, "sh-sci.2" }, |
| + { "scifb1", NULL, "sh-sci.3" }, |
| + { "scifb2", NULL, "sh-sci.4" }, |
| + { "scifa2", NULL, "sh-sci.5" }, |
| + { "scif0", NULL, "sh-sci.6" }, |
| + { "scif1", NULL, "sh-sci.7" }, |
| + { "hscif0", NULL, "sh-sci.8" }, |
| + { "hscif1", NULL, "sh-sci.9" }, |
| + { "du0", "du.0", "rcar-du-r8a7790" }, |
| + { "du1", "du.1", "rcar-du-r8a7790" }, |
| + { "du2", "du.2", "rcar-du-r8a7790" }, |
| + { "lvds0", "lvds.0", "rcar-du-r8a7790" }, |
| + { "lvds1", "lvds.1", "rcar-du-r8a7790" }, |
| +}; |
| + |
| static void __init lager_add_standard_devices(void) |
| { |
| - /* |
| - * This is a really crude hack to provide clkdev support to platform |
| - * devices until they get moved to DT. |
| - */ |
| - static const struct clk_name { |
| - const char *clk; |
| - const char *con_id; |
| - const char *dev_id; |
| - } clk_names[] = { |
| - { "cmt0", NULL, "sh_cmt.0" }, |
| - { "scifa0", NULL, "sh-sci.0" }, |
| - { "scifa1", NULL, "sh-sci.1" }, |
| - { "scifb0", NULL, "sh-sci.2" }, |
| - { "scifb1", NULL, "sh-sci.3" }, |
| - { "scifb2", NULL, "sh-sci.4" }, |
| - { "scifa2", NULL, "sh-sci.5" }, |
| - { "scif0", NULL, "sh-sci.6" }, |
| - { "scif1", NULL, "sh-sci.7" }, |
| - { "hscif0", NULL, "sh-sci.8" }, |
| - { "hscif1", NULL, "sh-sci.9" }, |
| - { "du0", "du.0", "rcar-du-r8a7790" }, |
| - { "du1", "du.1", "rcar-du-r8a7790" }, |
| - { "du2", "du.2", "rcar-du-r8a7790" }, |
| - { "lvds0", "lvds.0", "rcar-du-r8a7790" }, |
| - { "lvds1", "lvds.1", "rcar-du-r8a7790" }, |
| - }; |
| - struct clk *clk; |
| - unsigned int i; |
| - |
| - for (i = 0; i < ARRAY_SIZE(clk_names); ++i) { |
| - clk = clk_get(NULL, clk_names[i].clk); |
| - if (!IS_ERR(clk)) { |
| - clk_register_clkdev(clk, clk_names[i].con_id, |
| - clk_names[i].dev_id); |
| - clk_put(clk); |
| - } |
| - } |
| - |
| + shmobile_clk_workaround(clk_names, ARRAY_SIZE(clk_names), false); |
| r8a7790_add_dt_devices(); |
| of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); |
| |
| -- |
| 2.1.2 |
| |