aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>2012-12-15 17:51:04 -0500
committerSimon Horman <horms+renesas@verge.net.au>2013-01-24 19:24:23 -0500
commit8fdff1dc26fc0f50be2c64656229efca2e9de8c5 (patch)
tree81d183311b31fdc10354c18c6f6e183e747d4547 /arch/sh
parentc2a163c8304023267e557d9eda61c7ff8e14a158 (diff)
sh: Add PFC platform device registration helper function
The sh_pfc_register() function can be called by boards or SoC setup code to register the PFC platform device. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Diffstat (limited to 'arch/sh')
-rw-r--r--arch/sh/include/cpu-common/cpu/pfc.h30
-rw-r--r--arch/sh/kernel/cpu/Makefile2
-rw-r--r--arch/sh/kernel/cpu/pfc.c44
3 files changed, 75 insertions, 1 deletions
diff --git a/arch/sh/include/cpu-common/cpu/pfc.h b/arch/sh/include/cpu-common/cpu/pfc.h
new file mode 100644
index 000000000000..40e864360543
--- /dev/null
+++ b/arch/sh/include/cpu-common/cpu/pfc.h
@@ -0,0 +1,30 @@
1/*
2 * SH Pin Function Control Initialization
3 *
4 * Copyright (C) 2012 Renesas Solutions Corp.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; version 2 of the License.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 */
15
16#ifndef __ARCH_SH_CPU_PFC_H__
17#define __ARCH_SH_CPU_PFC_H__
18
19#include <linux/types.h>
20
21struct pinmux_info;
22struct resource;
23
24int sh_pfc_register(const char *name,
25 struct resource *resource, u32 num_resources);
26int sh_pfc_register_info(const char *name,
27 struct resource *resource, u32 num_resources,
28 struct pinmux_info *pdata);
29
30#endif /* __ARCH_SH_CPU_PFC_H__ */
diff --git a/arch/sh/kernel/cpu/Makefile b/arch/sh/kernel/cpu/Makefile
index fa58bfd30d82..accc7ca722e1 100644
--- a/arch/sh/kernel/cpu/Makefile
+++ b/arch/sh/kernel/cpu/Makefile
@@ -18,4 +18,4 @@ obj-$(CONFIG_ARCH_SHMOBILE) += shmobile/
18obj-$(CONFIG_SH_ADC) += adc.o 18obj-$(CONFIG_SH_ADC) += adc.o
19obj-$(CONFIG_SH_CLK_CPG_LEGACY) += clock-cpg.o 19obj-$(CONFIG_SH_CLK_CPG_LEGACY) += clock-cpg.o
20 20
21obj-y += irq/ init.o clock.o fpu.o proc.o 21obj-y += irq/ init.o clock.o fpu.o pfc.o proc.o
diff --git a/arch/sh/kernel/cpu/pfc.c b/arch/sh/kernel/cpu/pfc.c
new file mode 100644
index 000000000000..d045d75c05be
--- /dev/null
+++ b/arch/sh/kernel/cpu/pfc.c
@@ -0,0 +1,44 @@
1/*
2 * SH Pin Function Control Initialization
3 *
4 * Copyright (C) 2012 Renesas Solutions Corp.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; version 2 of the License.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 */
15
16#include <linux/init.h>
17#include <linux/platform_device.h>
18
19#include <cpu/pfc.h>
20
21static struct platform_device sh_pfc_device = {
22 .name = "sh-pfc",
23 .id = -1,
24};
25
26int __init sh_pfc_register(const char *name,
27 struct resource *resource, u32 num_resources)
28{
29 if (name)
30 sh_pfc_device.name = name;
31 sh_pfc_device.num_resources = num_resources;
32 sh_pfc_device.resource = resource;
33
34 return platform_device_register(&sh_pfc_device);
35}
36
37int __init sh_pfc_register_info(const char *name,
38 struct resource *resource, u32 num_resources,
39 struct pinmux_info *pdata)
40{
41 sh_pfc_device.dev.platform_data = pdata;
42
43 return sh_pfc_register(name, resource, num_resources);
44}