sh-pfc: Add emev2 pinmux support
Add PFC support for the EMMA Mobile EV2 SoC including pin groups for on-chip devices. Signed-off-by: Niklas Söderlund <niso@kth.se> Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
4c9e473541
commit
1e7d5d849c
6 changed files with 1728 additions and 0 deletions
|
@ -10,6 +10,7 @@ Pin Control
|
||||||
Required Properties:
|
Required Properties:
|
||||||
|
|
||||||
- compatible: should be one of the following.
|
- compatible: should be one of the following.
|
||||||
|
- "renesas,pfc-emev2": for EMEV2 (EMMA Mobile EV2) compatible pin-controller.
|
||||||
- "renesas,pfc-r8a73a4": for R8A73A4 (R-Mobile APE6) compatible pin-controller.
|
- "renesas,pfc-r8a73a4": for R8A73A4 (R-Mobile APE6) compatible pin-controller.
|
||||||
- "renesas,pfc-r8a7740": for R8A7740 (R-Mobile A1) compatible pin-controller.
|
- "renesas,pfc-r8a7740": for R8A7740 (R-Mobile A1) compatible pin-controller.
|
||||||
- "renesas,pfc-r8a7778": for R8A7778 (R-Mobile M1) compatible pin-controller.
|
- "renesas,pfc-r8a7778": for R8A7778 (R-Mobile M1) compatible pin-controller.
|
||||||
|
|
|
@ -20,6 +20,11 @@ config GPIO_SH_PFC
|
||||||
This enables support for GPIOs within the SoC's pin function
|
This enables support for GPIOs within the SoC's pin function
|
||||||
controller.
|
controller.
|
||||||
|
|
||||||
|
config PINCTRL_PFC_EMEV2
|
||||||
|
def_bool y
|
||||||
|
depends on ARCH_EMEV2
|
||||||
|
select PINCTRL_SH_PFC
|
||||||
|
|
||||||
config PINCTRL_PFC_R8A73A4
|
config PINCTRL_PFC_R8A73A4
|
||||||
def_bool y
|
def_bool y
|
||||||
depends on ARCH_R8A73A4
|
depends on ARCH_R8A73A4
|
||||||
|
|
|
@ -3,6 +3,7 @@ ifeq ($(CONFIG_GPIO_SH_PFC),y)
|
||||||
sh-pfc-objs += gpio.o
|
sh-pfc-objs += gpio.o
|
||||||
endif
|
endif
|
||||||
obj-$(CONFIG_PINCTRL_SH_PFC) += sh-pfc.o
|
obj-$(CONFIG_PINCTRL_SH_PFC) += sh-pfc.o
|
||||||
|
obj-$(CONFIG_PINCTRL_PFC_EMEV2) += pfc-emev2.o
|
||||||
obj-$(CONFIG_PINCTRL_PFC_R8A73A4) += pfc-r8a73a4.o
|
obj-$(CONFIG_PINCTRL_PFC_R8A73A4) += pfc-r8a73a4.o
|
||||||
obj-$(CONFIG_PINCTRL_PFC_R8A7740) += pfc-r8a7740.o
|
obj-$(CONFIG_PINCTRL_PFC_R8A7740) += pfc-r8a7740.o
|
||||||
obj-$(CONFIG_PINCTRL_PFC_R8A7778) += pfc-r8a7778.o
|
obj-$(CONFIG_PINCTRL_PFC_R8A7778) += pfc-r8a7778.o
|
||||||
|
|
|
@ -439,6 +439,12 @@ static int sh_pfc_init_ranges(struct sh_pfc *pfc)
|
||||||
|
|
||||||
#ifdef CONFIG_OF
|
#ifdef CONFIG_OF
|
||||||
static const struct of_device_id sh_pfc_of_table[] = {
|
static const struct of_device_id sh_pfc_of_table[] = {
|
||||||
|
#ifdef CONFIG_PINCTRL_PFC_EMEV2
|
||||||
|
{
|
||||||
|
.compatible = "renesas,pfc-emev2",
|
||||||
|
.data = &emev2_pinmux_info,
|
||||||
|
},
|
||||||
|
#endif
|
||||||
#ifdef CONFIG_PINCTRL_PFC_R8A73A4
|
#ifdef CONFIG_PINCTRL_PFC_R8A73A4
|
||||||
{
|
{
|
||||||
.compatible = "renesas,pfc-r8a73a4",
|
.compatible = "renesas,pfc-r8a73a4",
|
||||||
|
@ -579,6 +585,9 @@ static int sh_pfc_remove(struct platform_device *pdev)
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct platform_device_id sh_pfc_id_table[] = {
|
static const struct platform_device_id sh_pfc_id_table[] = {
|
||||||
|
#ifdef CONFIG_PINCTRL_PFC_EMEV2
|
||||||
|
{ "pfc-emev2", (kernel_ulong_t)&emev2_pinmux_info },
|
||||||
|
#endif
|
||||||
#ifdef CONFIG_PINCTRL_PFC_R8A73A4
|
#ifdef CONFIG_PINCTRL_PFC_R8A73A4
|
||||||
{ "pfc-r8a73a4", (kernel_ulong_t)&r8a73a4_pinmux_info },
|
{ "pfc-r8a73a4", (kernel_ulong_t)&r8a73a4_pinmux_info },
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -65,6 +65,7 @@ void sh_pfc_write_raw_reg(void __iomem *mapped_reg, unsigned long reg_width,
|
||||||
int sh_pfc_get_pin_index(struct sh_pfc *pfc, unsigned int pin);
|
int sh_pfc_get_pin_index(struct sh_pfc *pfc, unsigned int pin);
|
||||||
int sh_pfc_config_mux(struct sh_pfc *pfc, unsigned mark, int pinmux_type);
|
int sh_pfc_config_mux(struct sh_pfc *pfc, unsigned mark, int pinmux_type);
|
||||||
|
|
||||||
|
extern const struct sh_pfc_soc_info emev2_pinmux_info;
|
||||||
extern const struct sh_pfc_soc_info r8a73a4_pinmux_info;
|
extern const struct sh_pfc_soc_info r8a73a4_pinmux_info;
|
||||||
extern const struct sh_pfc_soc_info r8a7740_pinmux_info;
|
extern const struct sh_pfc_soc_info r8a7740_pinmux_info;
|
||||||
extern const struct sh_pfc_soc_info r8a7778_pinmux_info;
|
extern const struct sh_pfc_soc_info r8a7778_pinmux_info;
|
||||||
|
|
1711
drivers/pinctrl/sh-pfc/pfc-emev2.c
Normal file
1711
drivers/pinctrl/sh-pfc/pfc-emev2.c
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue