summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2019-06-09 01:11:38 +0200
committerLinus Walleij <linus.walleij@linaro.org>2019-06-10 16:01:54 +0200
commit7fae8a9ced742f364604a88a53084f471cc9c6e5 (patch)
treefa7be419e46f1398ca873bf0aece9fcb04592eec
parentdt-bindings: gpio: davinci: Add k3 am654 compatible (diff)
downloadlinux-7fae8a9ced742f364604a88a53084f471cc9c6e5.tar.xz
linux-7fae8a9ced742f364604a88a53084f471cc9c6e5.zip
fmc: Decouple from Linux GPIO subsystem
FMC has its own GPIO handling, the inclusion of <linux/gpio.h> is only to reuse some flags that we can just as well provide using local defines. Cc: Federico Vaga <federico.vaga@cern.ch> Cc: Pat Riehecky <riehecky@fnal.gov> Acked-by: Alessandro Rubini <rubini@gnudd.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r--drivers/fmc/fmc-trivial.c1
-rw-r--r--include/linux/fmc.h18
2 files changed, 10 insertions, 9 deletions
diff --git a/drivers/fmc/fmc-trivial.c b/drivers/fmc/fmc-trivial.c
index 8defdee3e3a3..b99dbc7ee203 100644
--- a/drivers/fmc/fmc-trivial.c
+++ b/drivers/fmc/fmc-trivial.c
@@ -15,7 +15,6 @@
#include <linux/module.h>
#include <linux/init.h>
#include <linux/interrupt.h>
-#include <linux/gpio.h>
#include <linux/fmc.h>
static struct fmc_driver t_drv; /* initialized later */
diff --git a/include/linux/fmc.h b/include/linux/fmc.h
index b355f3806f3f..8661a46a676f 100644
--- a/include/linux/fmc.h
+++ b/include/linux/fmc.h
@@ -100,7 +100,7 @@ struct fmc_gpio {
char *carrier_name; /* name or NULL for virtual pins */
int gpio;
int _gpio; /* internal use by the carrier */
- int mode; /* GPIOF_DIR_OUT etc, from <linux/gpio.h> */
+ int mode; /* GPIOF_DIR_OUT etc */
int irqmode; /* IRQF_TRIGGER_LOW and so on */
};
@@ -114,13 +114,15 @@ struct fmc_gpio {
#define FMC_GPIO_USER(x) ((x) + 0x1400) /* 256 of them */
/* We may add SCL and SDA, or other roles if the need arises */
-/* GPIOF_DIR_IN etc are missing before 3.0. copy from <linux/gpio.h> */
-#ifndef GPIOF_DIR_IN
-# define GPIOF_DIR_OUT (0 << 0)
-# define GPIOF_DIR_IN (1 << 0)
-# define GPIOF_INIT_LOW (0 << 1)
-# define GPIOF_INIT_HIGH (1 << 1)
-#endif
+/*
+ * These are similar to the legacy Linux GPIO defines from <linux/gpio.h>
+ * but in fact FMC has its own GPIO handling and is not using the Linux
+ * GPIO subsystem.
+ */
+#define GPIOF_DIR_OUT (0 << 0)
+#define GPIOF_DIR_IN (1 << 0)
+#define GPIOF_INIT_LOW (0 << 1)
+#define GPIOF_INIT_HIGH (1 << 1)
/*
* The operations are offered by each carrier and should make driver