Merge tag 'pinctrl-v6.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw...
[linux-2.6-microblaze.git] / drivers / pinctrl / qcom / pinctrl-lpass-lpi.h
index 387d83e..a9b2f65 100644 (file)
@@ -6,8 +6,8 @@
 #ifndef __PINCTRL_LPASS_LPI_H__
 #define __PINCTRL_LPASS_LPI_H__
 
+#include <linux/array_size.h>
 #include <linux/bits.h>
-#include <linux/kernel.h>
 
 #include "../core.h"
 
@@ -45,11 +45,8 @@ struct pinctrl_pin_desc;
 
 #define LPI_PINGROUP(id, soff, f1, f2, f3, f4)         \
        {                                               \
-               .group.name = "gpio" #id,                       \
-               .group.pins = gpio##id##_pins,          \
                .pin = id,                              \
                .slew_offset = soff,                    \
-               .group.num_pins = ARRAY_SIZE(gpio##id##_pins),  \
                .funcs = (int[]){                       \
                        LPI_MUX_gpio,                   \
                        LPI_MUX_##f1,                   \
@@ -60,8 +57,13 @@ struct pinctrl_pin_desc;
                .nfuncs = 5,                            \
        }
 
+/*
+ * Slew rate control is done in the same register as rest of the
+ * pin configuration.
+ */
+#define LPI_FLAG_SLEW_RATE_SAME_REG                    BIT(0)
+
 struct lpi_pingroup {
-       struct group_desc group;
        unsigned int pin;
        /* Bit offset in slew register for SoundWire pins only */
        int slew_offset;
@@ -82,6 +84,7 @@ struct lpi_pinctrl_variant_data {
        int ngroups;
        const struct lpi_function *functions;
        int nfunctions;
+       unsigned int flags;
 };
 
 int lpi_pinctrl_probe(struct platform_device *pdev);