1 
   2 
   3 
   4 
   5 
   6 
   7 #ifndef __SH_PFC_CORE_H__
   8 #define __SH_PFC_CORE_H__
   9 
  10 #include <linux/types.h>
  11 
  12 #include "sh_pfc.h"
  13 
  14 struct sh_pfc_pin_range {
  15         u16 start;
  16         u16 end;
  17 };
  18 
  19 int sh_pfc_register_gpiochip(struct sh_pfc *pfc);
  20 
  21 int sh_pfc_register_pinctrl(struct sh_pfc *pfc);
  22 
  23 u32 sh_pfc_read_raw_reg(void __iomem *mapped_reg, unsigned int reg_width);
  24 void sh_pfc_write_raw_reg(void __iomem *mapped_reg, unsigned int reg_width,
  25                           u32 data);
  26 u32 sh_pfc_read(struct sh_pfc *pfc, u32 reg);
  27 void sh_pfc_write(struct sh_pfc *pfc, u32 reg, u32 data);
  28 
  29 int sh_pfc_get_pin_index(struct sh_pfc *pfc, unsigned int pin);
  30 int sh_pfc_config_mux(struct sh_pfc *pfc, unsigned mark, int pinmux_type);
  31 
  32 const struct pinmux_bias_reg *
  33 sh_pfc_pin_to_bias_reg(const struct sh_pfc *pfc, unsigned int pin,
  34                        unsigned int *bit);
  35 
  36 #endif