From: Vitor Sato Eschholz <[email protected]> Add pinmux_property_set ops for mediatek pinctrl framework
Signed-off-by: Julien Masson <[email protected]> Signed-off-by: Vitor Sato Eschholz <[email protected]> Signed-off-by: Julien Stephan <[email protected]> --- drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c index 0483d532800..fbbe3f8aa25 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c +++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c @@ -11,6 +11,7 @@ #include <asm/io.h> #include <asm-generic/gpio.h> #include <linux/bitops.h> +#include <dt-bindings/pinctrl/mt65xx.h> #include "pinctrl-mtk-common.h" @@ -651,6 +652,16 @@ static int mtk_pinconf_group_set(struct udevice *dev, } #endif +static int mtk_pinctrl_pinmux_property_set(struct udevice *dev, u32 pinmux_group) +{ + u32 pin = MTK_GET_PIN_NO(pinmux_group); + u32 func = MTK_GET_PIN_FUNC(pinmux_group); + int ret; + + ret = mtk_hw_set_value(dev, pin, PINCTRL_PIN_REG_MODE, func); + return ret ? ret : pin; +} + const struct pinctrl_ops mtk_pinctrl_ops = { .get_pins_count = mtk_get_pins_count, .get_pin_name = mtk_get_pin_name, @@ -668,6 +679,7 @@ const struct pinctrl_ops mtk_pinctrl_ops = { .pinconf_group_set = mtk_pinconf_group_set, #endif .set_state = pinctrl_generic_set_state, + .pinmux_property_set = mtk_pinctrl_pinmux_property_set, }; #if CONFIG_IS_ENABLED(DM_GPIO) || \ -- 2.52.0

