2 * SuperH Pin Function Controller support.
4 * Copyright (C) 2012 Renesas Solutions Corp.
6 * This file is subject to the terms and conditions of the GNU General Public
7 * License. See the file "COPYING" in the main directory of this archive
10 #ifndef __SH_PFC_CORE_H__
11 #define __SH_PFC_CORE_H__
13 #include <linux/compiler.h>
14 #include <linux/sh_pfc.h>
15 #include <linux/types.h>
17 struct sh_pfc_window
{
24 struct sh_pfc_pinctrl
;
28 struct sh_pfc_soc_info
*info
;
31 unsigned int num_windows
;
32 struct sh_pfc_window
*window
;
34 struct sh_pfc_chip
*gpio
;
35 struct sh_pfc_pinctrl
*pinctrl
;
38 int sh_pfc_register_gpiochip(struct sh_pfc
*pfc
);
39 int sh_pfc_unregister_gpiochip(struct sh_pfc
*pfc
);
41 int sh_pfc_register_pinctrl(struct sh_pfc
*pfc
);
42 int sh_pfc_unregister_pinctrl(struct sh_pfc
*pfc
);
44 int sh_pfc_read_bit(struct pinmux_data_reg
*dr
, unsigned long in_pos
);
45 void sh_pfc_write_bit(struct pinmux_data_reg
*dr
, unsigned long in_pos
,
47 int sh_pfc_get_data_reg(struct sh_pfc
*pfc
, unsigned gpio
,
48 struct pinmux_data_reg
**drp
, int *bitp
);
49 int sh_pfc_gpio_to_enum(struct sh_pfc
*pfc
, unsigned gpio
, int pos
,
50 pinmux_enum_t
*enum_idp
);
51 int sh_pfc_config_gpio(struct sh_pfc
*pfc
, unsigned gpio
, int pinmux_type
,
54 extern struct sh_pfc_soc_info r8a7740_pinmux_info
;
55 extern struct sh_pfc_soc_info r8a7779_pinmux_info
;
56 extern struct sh_pfc_soc_info sh7203_pinmux_info
;
57 extern struct sh_pfc_soc_info sh7264_pinmux_info
;
58 extern struct sh_pfc_soc_info sh7269_pinmux_info
;
59 extern struct sh_pfc_soc_info sh7372_pinmux_info
;
60 extern struct sh_pfc_soc_info sh73a0_pinmux_info
;
61 extern struct sh_pfc_soc_info sh7720_pinmux_info
;
63 #endif /* __SH_PFC_CORE_H__ */