pinctrl: renesas: Updates for v6.4
- Add pin groups for audio on R-Car V4H, - Drop support for the obsolete R-Car H3 ES1.* (R8A77950) SoC, - Miscellaneous fixes and improvements. -----BEGIN PGP SIGNATURE----- iHUEABYIAB0WIQQ9qaHoIs/1I4cXmEiKwlD9ZEnxcAUCZCFTVQAKCRCKwlD9ZEnx cOF/AQCVgxHD3qjF36rJI+QU6/vxmXsrW6d/b9mKgtRYkgRi+QEAkziIjGGu0pOt Vnjf8O0o45Kxj1V0geDoM6NAqKmxvg0= =9ugh -----END PGP SIGNATURE----- Merge tag 'renesas-pinctrl-for-v6.4-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel pinctrl: renesas: Updates for v6.4 - Add pin groups for audio on R-Car V4H, - Drop support for the obsolete R-Car H3 ES1.* (R8A77950) SoC, - Miscellaneous fixes and improvements.
This commit is contained in:
commit
617385bb27
@ -27,7 +27,6 @@ config PINCTRL_RENESAS
|
||||
select PINCTRL_PFC_R8A7792 if ARCH_R8A7792
|
||||
select PINCTRL_PFC_R8A7793 if ARCH_R8A7793
|
||||
select PINCTRL_PFC_R8A7794 if ARCH_R8A7794
|
||||
select PINCTRL_PFC_R8A77950 if ARCH_R8A77950
|
||||
select PINCTRL_PFC_R8A77951 if ARCH_R8A77951
|
||||
select PINCTRL_PFC_R8A77960 if ARCH_R8A77960
|
||||
select PINCTRL_PFC_R8A77961 if ARCH_R8A77961
|
||||
@ -103,10 +102,6 @@ config PINCTRL_PFC_R8A7790
|
||||
bool "pin control support for R-Car H2" if COMPILE_TEST
|
||||
select PINCTRL_SH_PFC
|
||||
|
||||
config PINCTRL_PFC_R8A77950
|
||||
bool "pin control support for R-Car H3 ES1.x" if COMPILE_TEST
|
||||
select PINCTRL_SH_PFC
|
||||
|
||||
config PINCTRL_PFC_R8A77951
|
||||
bool "pin control support for R-Car H3 ES2.0+" if COMPILE_TEST
|
||||
select PINCTRL_SH_PFC
|
||||
|
@ -20,7 +20,6 @@ obj-$(CONFIG_PINCTRL_PFC_R8A7791) += pfc-r8a7791.o
|
||||
obj-$(CONFIG_PINCTRL_PFC_R8A7792) += pfc-r8a7792.o
|
||||
obj-$(CONFIG_PINCTRL_PFC_R8A7793) += pfc-r8a7791.o
|
||||
obj-$(CONFIG_PINCTRL_PFC_R8A7794) += pfc-r8a7794.o
|
||||
obj-$(CONFIG_PINCTRL_PFC_R8A77950) += pfc-r8a77950.o
|
||||
obj-$(CONFIG_PINCTRL_PFC_R8A77951) += pfc-r8a77951.o
|
||||
obj-$(CONFIG_PINCTRL_PFC_R8A77960) += pfc-r8a7796.o
|
||||
obj-$(CONFIG_PINCTRL_PFC_R8A77961) += pfc-r8a7796.o
|
||||
|
@ -573,23 +573,12 @@ static const struct of_device_id sh_pfc_of_table[] = {
|
||||
.data = &r8a7794_pinmux_info,
|
||||
},
|
||||
#endif
|
||||
/*
|
||||
* Both r8a7795 entries must be present to make sanity checks work, but only
|
||||
* the first entry is actually used.
|
||||
* R-Car H3 ES1.x is matched using soc_device_match() instead.
|
||||
*/
|
||||
#ifdef CONFIG_PINCTRL_PFC_R8A77951
|
||||
{
|
||||
.compatible = "renesas,pfc-r8a7795",
|
||||
.data = &r8a77951_pinmux_info,
|
||||
},
|
||||
#endif
|
||||
#ifdef CONFIG_PINCTRL_PFC_R8A77950
|
||||
{
|
||||
.compatible = "renesas,pfc-r8a7795",
|
||||
.data = &r8a77950_pinmux_info,
|
||||
},
|
||||
#endif
|
||||
#ifdef CONFIG_PINCTRL_PFC_R8A77960
|
||||
{
|
||||
.compatible = "renesas,pfc-r8a7796",
|
||||
@ -1309,28 +1298,6 @@ free_regs:
|
||||
static inline void sh_pfc_check_driver(struct platform_driver *pdrv) {}
|
||||
#endif /* !DEBUG */
|
||||
|
||||
#ifdef CONFIG_OF
|
||||
static const void *sh_pfc_quirk_match(void)
|
||||
{
|
||||
#ifdef CONFIG_PINCTRL_PFC_R8A77950
|
||||
const struct soc_device_attribute *match;
|
||||
static const struct soc_device_attribute quirks[] = {
|
||||
{
|
||||
.soc_id = "r8a7795", .revision = "ES1.*",
|
||||
.data = &r8a77950_pinmux_info,
|
||||
},
|
||||
{ /* sentinel */ }
|
||||
};
|
||||
|
||||
match = soc_device_match(quirks);
|
||||
if (match)
|
||||
return match->data;
|
||||
#endif /* CONFIG_PINCTRL_PFC_R8A77950 */
|
||||
|
||||
return NULL;
|
||||
}
|
||||
#endif /* CONFIG_OF */
|
||||
|
||||
static int sh_pfc_probe(struct platform_device *pdev)
|
||||
{
|
||||
const struct sh_pfc_soc_info *info;
|
||||
@ -1338,11 +1305,9 @@ static int sh_pfc_probe(struct platform_device *pdev)
|
||||
int ret;
|
||||
|
||||
#ifdef CONFIG_OF
|
||||
if (pdev->dev.of_node) {
|
||||
info = sh_pfc_quirk_match();
|
||||
if (!info)
|
||||
info = of_device_get_match_data(&pdev->dev);
|
||||
} else
|
||||
if (pdev->dev.of_node)
|
||||
info = of_device_get_match_data(&pdev->dev);
|
||||
else
|
||||
#endif
|
||||
info = (const void *)platform_get_device_id(pdev)->driver_data;
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -696,16 +696,8 @@ static const u16 pinmux_data[] = {
|
||||
PINMUX_SINGLE(PCIE0_CLKREQ_N),
|
||||
|
||||
PINMUX_SINGLE(AVB0_PHY_INT),
|
||||
PINMUX_SINGLE(AVB0_MAGIC),
|
||||
PINMUX_SINGLE(AVB0_MDC),
|
||||
PINMUX_SINGLE(AVB0_MDIO),
|
||||
PINMUX_SINGLE(AVB0_TXCREFCLK),
|
||||
|
||||
PINMUX_SINGLE(AVB1_PHY_INT),
|
||||
PINMUX_SINGLE(AVB1_MAGIC),
|
||||
PINMUX_SINGLE(AVB1_MDC),
|
||||
PINMUX_SINGLE(AVB1_MDIO),
|
||||
PINMUX_SINGLE(AVB1_TXCREFCLK),
|
||||
|
||||
PINMUX_SINGLE(AVB2_AVTP_PPS),
|
||||
PINMUX_SINGLE(AVB2_AVTP_CAPTURE),
|
||||
|
@ -1213,7 +1213,7 @@ static const unsigned int tsn1_avtp_pps_pins[] = {
|
||||
RCAR_GP_PIN(3, 13),
|
||||
};
|
||||
static const unsigned int tsn1_avtp_pps_mux[] = {
|
||||
TSN0_AVTP_PPS_MARK,
|
||||
TSN1_AVTP_PPS_MARK,
|
||||
};
|
||||
static const unsigned int tsn1_avtp_capture_a_pins[] = {
|
||||
/* TSN1_AVTP_CAPTURE_A */
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -40,10 +40,6 @@ struct sh_pfc_pinctrl {
|
||||
|
||||
struct pinctrl_pin_desc *pins;
|
||||
struct sh_pfc_pin_config *configs;
|
||||
|
||||
const char *func_prop_name;
|
||||
const char *groups_prop_name;
|
||||
const char *pins_prop_name;
|
||||
};
|
||||
|
||||
static int sh_pfc_get_groups_count(struct pinctrl_dev *pctldev)
|
||||
@ -120,27 +116,10 @@ static int sh_pfc_dt_subnode_to_map(struct pinctrl_dev *pctldev,
|
||||
const char *pin;
|
||||
int ret;
|
||||
|
||||
/* Support both the old Renesas-specific properties and the new standard
|
||||
* properties. Mixing old and new properties isn't allowed, neither
|
||||
* inside a subnode nor across subnodes.
|
||||
*/
|
||||
if (!pmx->func_prop_name) {
|
||||
if (of_find_property(np, "groups", NULL) ||
|
||||
of_find_property(np, "pins", NULL)) {
|
||||
pmx->func_prop_name = "function";
|
||||
pmx->groups_prop_name = "groups";
|
||||
pmx->pins_prop_name = "pins";
|
||||
} else {
|
||||
pmx->func_prop_name = "renesas,function";
|
||||
pmx->groups_prop_name = "renesas,groups";
|
||||
pmx->pins_prop_name = "renesas,pins";
|
||||
}
|
||||
}
|
||||
|
||||
/* Parse the function and configuration properties. At least a function
|
||||
* or one configuration must be specified.
|
||||
*/
|
||||
ret = of_property_read_string(np, pmx->func_prop_name, &function);
|
||||
ret = of_property_read_string(np, "function", &function);
|
||||
if (ret < 0 && ret != -EINVAL) {
|
||||
dev_err(dev, "Invalid function in DT\n");
|
||||
return ret;
|
||||
@ -158,7 +137,7 @@ static int sh_pfc_dt_subnode_to_map(struct pinctrl_dev *pctldev,
|
||||
}
|
||||
|
||||
/* Count the number of pins and groups and reallocate mappings. */
|
||||
ret = of_property_count_strings(np, pmx->pins_prop_name);
|
||||
ret = of_property_count_strings(np, "pins");
|
||||
if (ret == -EINVAL) {
|
||||
num_pins = 0;
|
||||
} else if (ret < 0) {
|
||||
@ -168,7 +147,7 @@ static int sh_pfc_dt_subnode_to_map(struct pinctrl_dev *pctldev,
|
||||
num_pins = ret;
|
||||
}
|
||||
|
||||
ret = of_property_count_strings(np, pmx->groups_prop_name);
|
||||
ret = of_property_count_strings(np, "groups");
|
||||
if (ret == -EINVAL) {
|
||||
num_groups = 0;
|
||||
} else if (ret < 0) {
|
||||
@ -199,7 +178,7 @@ static int sh_pfc_dt_subnode_to_map(struct pinctrl_dev *pctldev,
|
||||
*num_maps = nmaps;
|
||||
|
||||
/* Iterate over pins and groups and create the mappings. */
|
||||
of_property_for_each_string(np, pmx->groups_prop_name, prop, group) {
|
||||
of_property_for_each_string(np, "groups", prop, group) {
|
||||
if (function) {
|
||||
maps[idx].type = PIN_MAP_TYPE_MUX_GROUP;
|
||||
maps[idx].data.mux.group = group;
|
||||
@ -223,7 +202,7 @@ static int sh_pfc_dt_subnode_to_map(struct pinctrl_dev *pctldev,
|
||||
goto done;
|
||||
}
|
||||
|
||||
of_property_for_each_string(np, pmx->pins_prop_name, prop, pin) {
|
||||
of_property_for_each_string(np, "pins", prop, pin) {
|
||||
ret = sh_pfc_map_add_config(&maps[idx], pin,
|
||||
PIN_MAP_TYPE_CONFIGS_PIN,
|
||||
configs, num_configs);
|
||||
|
@ -314,7 +314,6 @@ extern const struct sh_pfc_soc_info r8a7791_pinmux_info;
|
||||
extern const struct sh_pfc_soc_info r8a7792_pinmux_info;
|
||||
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 r8a77950_pinmux_info;
|
||||
extern const struct sh_pfc_soc_info r8a77951_pinmux_info;
|
||||
extern const struct sh_pfc_soc_info r8a77960_pinmux_info;
|
||||
extern const struct sh_pfc_soc_info r8a77961_pinmux_info;
|
||||
|
Loading…
x
Reference in New Issue
Block a user