mirror of
https://github.com/torvalds/linux.git
synced 2024-11-26 06:02:05 +00:00
pinctrl: cy8c95x0: Fix regression
Commit 1fa3df901f
("pinctrl: cy8c95x0: Remove custom ->set_config()")
removed support for PIN_CONFIG_INPUT_ENABLE and
PIN_CONFIG_OUTPUT.
Add the following options to restore functionality:
- PIN_CONFIG_INPUT_ENABLE
- PIN_CONFIG_OUTPUT_ENABLE
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Link: https://lore.kernel.org/r/20231219125120.4028862-2-patrick.rudolph@9elements.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
47b1fa4811
commit
04dfca968c
@ -308,6 +308,9 @@ static const char * const cy8c95x0_groups[] = {
|
||||
"gp77",
|
||||
};
|
||||
|
||||
static int cy8c95x0_pinmux_direction(struct cy8c95x0_pinctrl *chip,
|
||||
unsigned int pin, bool input);
|
||||
|
||||
static inline u8 cypress_get_port(struct cy8c95x0_pinctrl *chip, unsigned int pin)
|
||||
{
|
||||
/* Account for GPORT2 which only has 4 bits */
|
||||
@ -727,6 +730,7 @@ static int cy8c95x0_gpio_set_pincfg(struct cy8c95x0_pinctrl *chip,
|
||||
u8 port = cypress_get_port(chip, off);
|
||||
u8 bit = cypress_get_pin_mask(chip, off);
|
||||
unsigned long param = pinconf_to_config_param(config);
|
||||
unsigned long arg = pinconf_to_config_argument(config);
|
||||
unsigned int reg;
|
||||
int ret;
|
||||
|
||||
@ -765,6 +769,12 @@ static int cy8c95x0_gpio_set_pincfg(struct cy8c95x0_pinctrl *chip,
|
||||
case PIN_CONFIG_MODE_PWM:
|
||||
reg = CY8C95X0_PWMSEL;
|
||||
break;
|
||||
case PIN_CONFIG_OUTPUT_ENABLE:
|
||||
ret = cy8c95x0_pinmux_direction(chip, off, !arg);
|
||||
goto out;
|
||||
case PIN_CONFIG_INPUT_ENABLE:
|
||||
ret = cy8c95x0_pinmux_direction(chip, off, arg);
|
||||
goto out;
|
||||
default:
|
||||
ret = -ENOTSUPP;
|
||||
goto out;
|
||||
|
Loading…
Reference in New Issue
Block a user