Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 355338
b: refs/heads/master
c: f916513
h: refs/heads/master
v: v3
  • Loading branch information
Laurent Pinchart authored and Simon Horman committed Jan 25, 2013
1 parent 5d1c98d commit d8076ca
Show file tree
Hide file tree
Showing 6 changed files with 51 additions and 30 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: d4e62d0094e1b0f69946c3f16ce8ec882302a461
refs/heads/master: f9165132c5ee681235068857e4f86c7ecc5a4617
2 changes: 2 additions & 0 deletions trunk/drivers/sh/pfc/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
#include <linux/ioport.h>
#include <linux/pinctrl/machine.h>

#include "core.h"

static struct sh_pfc sh_pfc __read_mostly;

static void pfc_iounmap(struct sh_pfc *pfc)
Expand Down
44 changes: 44 additions & 0 deletions trunk/drivers/sh/pfc/core.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/*
* SuperH Pin Function Controller support.
*
* Copyright (C) 2012 Renesas Solutions Corp.
*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*/
#ifndef __SH_PFC_CORE_H__
#define __SH_PFC_CORE_H__

#include <linux/compiler.h>
#include <linux/sh_pfc.h>
#include <linux/types.h>

struct pfc_window {
phys_addr_t phys;
void __iomem *virt;
unsigned long size;
};

struct sh_pfc {
struct sh_pfc_platform_data *pdata;
spinlock_t lock;

struct pfc_window *window;
};

int sh_pfc_register_gpiochip(struct sh_pfc *pfc);

int sh_pfc_register_pinctrl(struct sh_pfc *pfc);

int sh_pfc_read_bit(struct pinmux_data_reg *dr, unsigned long in_pos);
void sh_pfc_write_bit(struct pinmux_data_reg *dr, unsigned long in_pos,
unsigned long value);
int sh_pfc_get_data_reg(struct sh_pfc *pfc, unsigned gpio,
struct pinmux_data_reg **drp, int *bitp);
int sh_pfc_gpio_to_enum(struct sh_pfc *pfc, unsigned gpio, int pos,
pinmux_enum_t *enum_idp);
int sh_pfc_config_gpio(struct sh_pfc *pfc, unsigned gpio, int pinmux_type,
int cfg_mode);

#endif /* __SH_PFC_CORE_H__ */
2 changes: 2 additions & 0 deletions trunk/drivers/sh/pfc/gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
#include <linux/pinctrl/consumer.h>
#include <linux/sh_pfc.h>

#include "core.h"

struct sh_pfc_chip {
struct sh_pfc *pfc;
struct gpio_chip gpio_chip;
Expand Down
2 changes: 2 additions & 0 deletions trunk/drivers/sh/pfc/pinctrl.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
#include <linux/pinctrl/pinmux.h>
#include <linux/pinctrl/pinconf-generic.h>

#include "core.h"

struct sh_pfc_pinctrl {
struct pinctrl_dev *pctl;
struct sh_pfc *pfc;
Expand Down
29 changes: 0 additions & 29 deletions trunk/include/linux/sh_pfc.h
Original file line number Diff line number Diff line change
Expand Up @@ -88,12 +88,6 @@ struct pinmux_range {
pinmux_enum_t force;
};

struct pfc_window {
phys_addr_t phys;
void __iomem *virt;
unsigned long size;
};

struct sh_pfc_platform_data {
char *name;
pinmux_enum_t reserved_id;
Expand Down Expand Up @@ -123,35 +117,12 @@ struct sh_pfc_platform_data {
unsigned long unlock_reg;
};

struct sh_pfc {
struct sh_pfc_platform_data *pdata;
spinlock_t lock;

struct pfc_window *window;
};

/* XXX compat for now */
#define pinmux_info sh_pfc_platform_data

/* drivers/sh/pfc/gpio.c */
int sh_pfc_register_gpiochip(struct sh_pfc *pfc);

/* drivers/sh/pfc/pinctrl.c */
int sh_pfc_register_pinctrl(struct sh_pfc *pfc);

/* drivers/sh/pfc/core.c */
int register_sh_pfc(struct sh_pfc_platform_data *pfc);

int sh_pfc_read_bit(struct pinmux_data_reg *dr, unsigned long in_pos);
void sh_pfc_write_bit(struct pinmux_data_reg *dr, unsigned long in_pos,
unsigned long value);
int sh_pfc_get_data_reg(struct sh_pfc *pfc, unsigned gpio,
struct pinmux_data_reg **drp, int *bitp);
int sh_pfc_gpio_to_enum(struct sh_pfc *pfc, unsigned gpio, int pos,
pinmux_enum_t *enum_idp);
int sh_pfc_config_gpio(struct sh_pfc *pfc, unsigned gpio, int pinmux_type,
int cfg_mode);

/* xxx */
static inline int register_pinmux(struct pinmux_info *pip)
{
Expand Down

0 comments on commit d8076ca

Please sign in to comment.