mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-25 14:10:43 +00:00
pinctrl: renesas: Add R8A77965 pin control tables
Add pin control tables for R8A77965 from Linux 5.0 . Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com> Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
This commit is contained in:
parent
933143997b
commit
c6435c317a
6 changed files with 5992 additions and 12 deletions
|
@ -15,7 +15,7 @@ config R8A7796
|
||||||
config R8A77965
|
config R8A77965
|
||||||
bool "Renesas SoC R8A77965"
|
bool "Renesas SoC R8A77965"
|
||||||
imply CLK_R8A77965
|
imply CLK_R8A77965
|
||||||
imply PINCTRL_PFC_R8A7796
|
imply PINCTRL_PFC_R8A77965
|
||||||
|
|
||||||
config R8A77970
|
config R8A77970
|
||||||
bool "Renesas SoC R8A77970"
|
bool "Renesas SoC R8A77970"
|
||||||
|
|
|
@ -76,6 +76,16 @@ config PINCTRL_PFC_R8A7796
|
||||||
the GPIO definitions and pin control functions for each available
|
the GPIO definitions and pin control functions for each available
|
||||||
multiplex function.
|
multiplex function.
|
||||||
|
|
||||||
|
config PINCTRL_PFC_R8A77965
|
||||||
|
bool "Renesas RCar Gen3 R8A77965 pin control driver"
|
||||||
|
depends on PINCTRL_PFC
|
||||||
|
help
|
||||||
|
Support pin multiplexing control on Renesas RCar Gen3 R8A77965 SoCs.
|
||||||
|
|
||||||
|
The driver is controlled by a device tree node which contains both
|
||||||
|
the GPIO definitions and pin control functions for each available
|
||||||
|
multiplex function.
|
||||||
|
|
||||||
config PINCTRL_PFC_R8A77970
|
config PINCTRL_PFC_R8A77970
|
||||||
bool "Renesas RCar Gen3 R8A77970 pin control driver"
|
bool "Renesas RCar Gen3 R8A77970 pin control driver"
|
||||||
depends on PINCTRL_PFC
|
depends on PINCTRL_PFC
|
||||||
|
|
|
@ -6,6 +6,7 @@ obj-$(CONFIG_PINCTRL_PFC_R8A7793) += pfc-r8a7791.o
|
||||||
obj-$(CONFIG_PINCTRL_PFC_R8A7794) += pfc-r8a7794.o
|
obj-$(CONFIG_PINCTRL_PFC_R8A7794) += pfc-r8a7794.o
|
||||||
obj-$(CONFIG_PINCTRL_PFC_R8A7795) += pfc-r8a7795.o
|
obj-$(CONFIG_PINCTRL_PFC_R8A7795) += pfc-r8a7795.o
|
||||||
obj-$(CONFIG_PINCTRL_PFC_R8A7796) += pfc-r8a7796.o
|
obj-$(CONFIG_PINCTRL_PFC_R8A7796) += pfc-r8a7796.o
|
||||||
|
obj-$(CONFIG_PINCTRL_PFC_R8A77965) += pfc-r8a77965.o
|
||||||
obj-$(CONFIG_PINCTRL_PFC_R8A77970) += pfc-r8a77970.o
|
obj-$(CONFIG_PINCTRL_PFC_R8A77970) += pfc-r8a77970.o
|
||||||
obj-$(CONFIG_PINCTRL_PFC_R8A77990) += pfc-r8a77990.o
|
obj-$(CONFIG_PINCTRL_PFC_R8A77990) += pfc-r8a77990.o
|
||||||
obj-$(CONFIG_PINCTRL_PFC_R8A77995) += pfc-r8a77995.o
|
obj-$(CONFIG_PINCTRL_PFC_R8A77995) += pfc-r8a77995.o
|
||||||
|
|
5952
drivers/pinctrl/renesas/pfc-r8a77965.c
Normal file
5952
drivers/pinctrl/renesas/pfc-r8a77965.c
Normal file
File diff suppressed because it is too large
Load diff
|
@ -28,6 +28,7 @@ enum sh_pfc_model {
|
||||||
SH_PFC_R8A7794,
|
SH_PFC_R8A7794,
|
||||||
SH_PFC_R8A7795,
|
SH_PFC_R8A7795,
|
||||||
SH_PFC_R8A7796,
|
SH_PFC_R8A7796,
|
||||||
|
SH_PFC_R8A77965,
|
||||||
SH_PFC_R8A77970,
|
SH_PFC_R8A77970,
|
||||||
SH_PFC_R8A77990,
|
SH_PFC_R8A77990,
|
||||||
SH_PFC_R8A77995,
|
SH_PFC_R8A77995,
|
||||||
|
@ -808,6 +809,10 @@ static int sh_pfc_pinctrl_probe(struct udevice *dev)
|
||||||
if (model == SH_PFC_R8A7796)
|
if (model == SH_PFC_R8A7796)
|
||||||
priv->pfc.info = &r8a7796_pinmux_info;
|
priv->pfc.info = &r8a7796_pinmux_info;
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef CONFIG_PINCTRL_PFC_R8A77965
|
||||||
|
if (model == SH_PFC_R8A77965)
|
||||||
|
priv->pfc.info = &r8a77965_pinmux_info;
|
||||||
|
#endif
|
||||||
#ifdef CONFIG_PINCTRL_PFC_R8A77970
|
#ifdef CONFIG_PINCTRL_PFC_R8A77970
|
||||||
if (model == SH_PFC_R8A77970)
|
if (model == SH_PFC_R8A77970)
|
||||||
priv->pfc.info = &r8a77970_pinmux_info;
|
priv->pfc.info = &r8a77970_pinmux_info;
|
||||||
|
@ -869,9 +874,12 @@ static const struct udevice_id sh_pfc_pinctrl_ids[] = {
|
||||||
{
|
{
|
||||||
.compatible = "renesas,pfc-r8a7796",
|
.compatible = "renesas,pfc-r8a7796",
|
||||||
.data = SH_PFC_R8A7796,
|
.data = SH_PFC_R8A7796,
|
||||||
}, {
|
},
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_PINCTRL_PFC_R8A77965
|
||||||
|
{
|
||||||
.compatible = "renesas,pfc-r8a77965",
|
.compatible = "renesas,pfc-r8a77965",
|
||||||
.data = SH_PFC_R8A7796,
|
.data = SH_PFC_R8A77965,
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_PINCTRL_PFC_R8A77970
|
#ifdef CONFIG_PINCTRL_PFC_R8A77970
|
||||||
|
|
|
@ -53,18 +53,26 @@ struct sh_pfc_pin_group {
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Using union vin_data saves memory occupied by the VIN data pins.
|
* Using union vin_data{,12,16} saves memory occupied by the VIN data pins.
|
||||||
* VIN_DATA_PIN_GROUP() is a macro used to describe the VIN pin groups
|
* VIN_DATA_PIN_GROUP() is a macro used to describe the VIN pin groups
|
||||||
* in this case.
|
* in this case. It accepts an optional 'version' argument used when the
|
||||||
|
* same group can appear on a different set of pins.
|
||||||
*/
|
*/
|
||||||
#define VIN_DATA_PIN_GROUP(n, s) \
|
#define VIN_DATA_PIN_GROUP(n, s, ...) \
|
||||||
{ \
|
{ \
|
||||||
.name = #n#s, \
|
.name = #n#s#__VA_ARGS__, \
|
||||||
.pins = n##_pins.data##s, \
|
.pins = n##__VA_ARGS__##_pins.data##s, \
|
||||||
.mux = n##_mux.data##s, \
|
.mux = n##__VA_ARGS__##_mux.data##s, \
|
||||||
.nr_pins = ARRAY_SIZE(n##_pins.data##s), \
|
.nr_pins = ARRAY_SIZE(n##__VA_ARGS__##_pins.data##s), \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
union vin_data16 {
|
||||||
|
unsigned int data16[16];
|
||||||
|
unsigned int data12[12];
|
||||||
|
unsigned int data10[10];
|
||||||
|
unsigned int data8[8];
|
||||||
|
};
|
||||||
|
|
||||||
union vin_data {
|
union vin_data {
|
||||||
unsigned int data24[24];
|
unsigned int data24[24];
|
||||||
unsigned int data20[20];
|
unsigned int data20[20];
|
||||||
|
@ -270,6 +278,7 @@ extern const struct sh_pfc_soc_info r8a7793_pinmux_info;
|
||||||
extern const struct sh_pfc_soc_info r8a7794_pinmux_info;
|
extern const struct sh_pfc_soc_info r8a7794_pinmux_info;
|
||||||
extern const struct sh_pfc_soc_info r8a7795_pinmux_info;
|
extern const struct sh_pfc_soc_info r8a7795_pinmux_info;
|
||||||
extern const struct sh_pfc_soc_info r8a7796_pinmux_info;
|
extern const struct sh_pfc_soc_info r8a7796_pinmux_info;
|
||||||
|
extern const struct sh_pfc_soc_info r8a77965_pinmux_info;
|
||||||
extern const struct sh_pfc_soc_info r8a77970_pinmux_info;
|
extern const struct sh_pfc_soc_info r8a77970_pinmux_info;
|
||||||
extern const struct sh_pfc_soc_info r8a77990_pinmux_info;
|
extern const struct sh_pfc_soc_info r8a77990_pinmux_info;
|
||||||
extern const struct sh_pfc_soc_info r8a77995_pinmux_info;
|
extern const struct sh_pfc_soc_info r8a77995_pinmux_info;
|
||||||
|
|
Loading…
Reference in a new issue