Skip to content

Commit

Permalink
sh: Add PFC platform device registration helper function
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Laurent Pinchart authored and Simon Horman committed Jan 25, 2013
1 parent c2a163c commit 8fdff1d
Show file tree
Hide file tree
Showing 3 changed files with 75 additions and 1 deletion.
30 changes: 30 additions & 0 deletions arch/sh/include/cpu-common/cpu/pfc.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/*
* SH Pin Function Control Initialization
*
* Copyright (C) 2012 Renesas Solutions Corp.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/

#ifndef __ARCH_SH_CPU_PFC_H__
#define __ARCH_SH_CPU_PFC_H__

#include <linux/types.h>

struct pinmux_info;
struct resource;

int sh_pfc_register(const char *name,
struct resource *resource, u32 num_resources);
int sh_pfc_register_info(const char *name,
struct resource *resource, u32 num_resources,
struct pinmux_info *pdata);

#endif /* __ARCH_SH_CPU_PFC_H__ */
2 changes: 1 addition & 1 deletion arch/sh/kernel/cpu/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@ obj-$(CONFIG_ARCH_SHMOBILE) += shmobile/
obj-$(CONFIG_SH_ADC) += adc.o
obj-$(CONFIG_SH_CLK_CPG_LEGACY) += clock-cpg.o

obj-y += irq/ init.o clock.o fpu.o proc.o
obj-y += irq/ init.o clock.o fpu.o pfc.o proc.o
44 changes: 44 additions & 0 deletions arch/sh/kernel/cpu/pfc.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/*
* SH Pin Function Control Initialization
*
* Copyright (C) 2012 Renesas Solutions Corp.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/

#include <linux/init.h>
#include <linux/platform_device.h>

#include <cpu/pfc.h>

static struct platform_device sh_pfc_device = {
.name = "sh-pfc",
.id = -1,
};

int __init sh_pfc_register(const char *name,
struct resource *resource, u32 num_resources)
{
if (name)
sh_pfc_device.name = name;
sh_pfc_device.num_resources = num_resources;
sh_pfc_device.resource = resource;

return platform_device_register(&sh_pfc_device);
}

int __init sh_pfc_register_info(const char *name,
struct resource *resource, u32 num_resources,
struct pinmux_info *pdata)
{
sh_pfc_device.dev.platform_data = pdata;

return sh_pfc_register(name, resource, num_resources);
}

0 comments on commit 8fdff1d

Please sign in to comment.