Thread (36 messages) 36 messages, 7 authors, 2011-12-07

[RFC PATCH 1/3] pinctrl: imx: add pinmux imx core driver

From: Dong Aisheng-B29396 <hidden>
Date: 2011-12-06 07:13:23
Also in: lkml

-----Original Message-----
From: Guo Shawn-R65073
Sent: Tuesday, December 06, 2011 3:06 PM
To: Dong Aisheng-B29396
Cc: linux-kernel at vger.kernel.org; linux-arm-kernel at lists.infradead.org;
linus.walleij at stericsson.com; s.hauer at pengutronix.de;
kernel at pengutronix.de
Subject: Re: [RFC PATCH 1/3] pinctrl: imx: add pinmux imx core driver

On Sun, Dec 04, 2011 at 07:49:42PM +0800, Dong Aisheng wrote:
quoted
---
This patch series shows the basic idea of driver design. There're
still some TODOes like adding more pinmux functions and gpio support.
The patch is here for request for comments on the driver design and
other might exist issues.

Signed-off-by: Dong Aisheng <redacted>
Cc: Linus Walleij <redacted>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Shawn Guo <redacted>
---
 drivers/pinctrl/Kconfig           |    6 +
 drivers/pinctrl/Makefile          |    2 +
 drivers/pinctrl/pinmux-imx-core.c |  284
+++++++++++++++++++++++++++++++++++++
quoted
 drivers/pinctrl/pinmux-imx-core.h |   83 +++++++++++
 4 files changed, 375 insertions(+), 0 deletions(-)
diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig index
ef56644..214d072 100644
--- a/drivers/pinctrl/Kconfig
+++ b/drivers/pinctrl/Kconfig
@@ -40,4 +40,10 @@ config PINMUX_U300
 	help
 	  Say Y here to enable the U300 pinmux driver

+config PINMUX_IMX
+	bool "IMX pinmux driver"
+	depends on ARCH_MXC
+	select PINMUX
+	help
+	  Say Y here to enable the IMX pinmux driver
 endif
diff --git a/drivers/pinctrl/Makefile b/drivers/pinctrl/Makefile index
bdc548a..764657b 100644
--- a/drivers/pinctrl/Makefile
+++ b/drivers/pinctrl/Makefile
@@ -4,5 +4,7 @@ ccflags-$(CONFIG_DEBUG_PINMUX)	+= -DDEBUG

 obj-$(CONFIG_PINCTRL)		+= core.o
 obj-$(CONFIG_PINMUX)		+= pinmux.o
+obj-$(CONFIG_PINMUX_IMX)	+= pinmux-imx-core.o \
+				   pinmux-imx53.o pinmux-imx6q.o
You do not have pinmux-imx53.c and pinmux-imx6q.c in this patch yet.
quoted
 obj-$(CONFIG_PINMUX_SIRF)	+= pinmux-sirf.o
 obj-$(CONFIG_PINMUX_U300)	+= pinmux-u300.o
diff --git a/drivers/pinctrl/pinmux-imx-core.c
b/drivers/pinctrl/pinmux-imx-core.c
new file mode 100644
index 0000000..1e60932
--- /dev/null
+++ b/drivers/pinctrl/pinmux-imx-core.c
@@ -0,0 +1,284 @@
+/*
+ * Core driver for the imx pin controller
+ *
+ * Copyright (C) 2011 Freescale Semiconductor, Inc.
+ * Copyright (C) 2011 Linaro Ltd.
+ *
+ * Author: Dong Aisheng <dong.aisheng@linaro.org>
+ *
+ * This program is free software; you can redistribute it and/or
+modify
+ * it under the terms of the GNU General Public License as published
+by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ */
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/io.h>
+#include <linux/err.h>
+#include <linux/pinctrl/pinctrl.h>
+#include <linux/pinctrl/pinmux.h>
+
+#include "pinmux-imx-core.h"
+
+#define DRIVER_NAME "pinmux-imx"
+
+/**
+ * @dev: a pointer back to containing device
+ * @virtbase: the offset to the controller in virtual memory  */
+struct imx_pmx {
+	struct device *dev;
+	struct pinctrl_dev *pctl;
+	void __iomem *virtbase;
+	struct imx_pinctrl_info *info;
+};
+
+#define IMX_PINCTRL_REG_SIZE 4
+#define IMX_PINCTRL_MAX_FUNC 7
+
+extern struct imx_pinctrl_info mx53_pinctrl_info; extern struct
+imx_pinctrl_info mx6q_pinctrl_info;
+
You do not have mx53_pinctrl_info and mx6q_pinctrl_info in this patch yet.
Yes, it's defined in another file in this patch series.
I just separate them for clear.
Maybe I should put them together in one patch or change sequence right?
BTW, if taking it from platform_data, I may not have this issue.

Regards
Dong Aisheng
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help