1/* SPDX-License-Identifier: GPL-2.0
2 *
3 * SuperH Pin Function Controller support.
4 *
5 * Copyright (C) 2012  Renesas Solutions Corp.
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
14struct sh_pfc_pin_range {
15	u16 start;
16	u16 end;
17};
18
19int sh_pfc_register_gpiochip(struct sh_pfc *pfc);
20
21int sh_pfc_register_pinctrl(struct sh_pfc *pfc);
22
23u32 sh_pfc_read_raw_reg(void __iomem *mapped_reg, unsigned int reg_width);
24void sh_pfc_write_raw_reg(void __iomem *mapped_reg, unsigned int reg_width,
25			  u32 data);
26u32 sh_pfc_read(struct sh_pfc *pfc, u32 reg);
27void sh_pfc_write(struct sh_pfc *pfc, u32 reg, u32 data);
28
29int sh_pfc_get_pin_index(struct sh_pfc *pfc, unsigned int pin);
30int sh_pfc_config_mux(struct sh_pfc *pfc, unsigned mark, int pinmux_type);
31
32#endif /* __SH_PFC_CORE_H__ */
33