pinctrl: uniphier: support pin configuration for dedicated pins
[oweals/u-boot.git] / drivers / pinctrl / uniphier / pinctrl-uniphier-core.c
index fc8bbd292b899880fde3af605c7d5dbe2a1aac4c..0ad15abb4a0d3f5afddfc7939bb1826a3fb63f0b 100644 (file)
@@ -91,7 +91,7 @@ static void uniphier_pinconf_input_enable(struct udevice *dev, unsigned pin)
 }
 
 static void uniphier_pinmux_set_one(struct udevice *dev, unsigned pin,
-                                   unsigned muxval)
+                                   int muxval)
 {
        struct uniphier_pinctrl_priv *priv = dev_get_priv(dev);
        unsigned mux_bits, reg_stride, reg, reg_end, shift, mask;
@@ -101,6 +101,9 @@ static void uniphier_pinmux_set_one(struct udevice *dev, unsigned pin,
        /* some pins need input-enabling */
        uniphier_pinconf_input_enable(dev, pin);
 
+       if (muxval < 0)
+               return;         /* dedicated pin; nothing to do for pin-mux */
+
        if (priv->socdata->caps & UNIPHIER_PINCTRL_CAPS_DBGMUX_SEPARATE) {
                /*
                 *  Mode       offset        bit