summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2013-04-23 09:43:15 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2013-04-23 09:48:25 +0200
commit32dc070fd499a8a0bc4bc434fe74319c7463a97a (patch)
tree7a0db8d600d5f42a0613eaa6e1411e0df86d7309 /arch
parente2f9687c02eac444fd5962b4ef55b9daf24f95ae (diff)
downloadbarebox-32dc070fd499a8a0bc4bc434fe74319c7463a97a.tar.gz
barebox-32dc070fd499a8a0bc4bc434fe74319c7463a97a.tar.xz
pinctrl: move imx-iomux-v1 to drivers/pinctrl/
For consistency reasons. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-imx/Kconfig3
-rw-r--r--arch/arm/mach-imx/Makefile6
-rw-r--r--arch/arm/mach-imx/iomux-v1.c116
3 files changed, 6 insertions, 119 deletions
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index d76732b2e1..977fea5d83 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -165,10 +165,12 @@ choice
config ARCH_IMX1
bool "i.MX1"
select CPU_ARM920T
+ select PINCTRL_IMX_IOMUX_V1
config ARCH_IMX21
bool "i.MX21"
select CPU_ARM926T
+ select PINCTRL_IMX_IOMUX_V1
config ARCH_IMX25
bool "i.MX25"
@@ -180,6 +182,7 @@ config ARCH_IMX27
bool "i.MX27"
select CPU_ARM926T
select ARCH_HAS_FEC_IMX
+ select PINCTRL_IMX_IOMUX_V1
config ARCH_IMX31
select CPU_V6
diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile
index 0b156aae43..339b6a1569 100644
--- a/arch/arm/mach-imx/Makefile
+++ b/arch/arm/mach-imx/Makefile
@@ -1,8 +1,8 @@
obj-y += clocksource.o gpio.o
-obj-$(CONFIG_ARCH_IMX1) += imx1.o iomux-v1.o clk-imx1.o
+obj-$(CONFIG_ARCH_IMX1) += imx1.o clk-imx1.o
obj-$(CONFIG_ARCH_IMX25) += imx25.o clk-imx25.o
-obj-$(CONFIG_ARCH_IMX21) += imx21.o iomux-v1.o clk-imx21.o
-obj-$(CONFIG_ARCH_IMX27) += imx27.o iomux-v1.o clk-imx27.o
+obj-$(CONFIG_ARCH_IMX21) += imx21.o clk-imx21.o
+obj-$(CONFIG_ARCH_IMX27) += imx27.o clk-imx27.o
obj-$(CONFIG_ARCH_IMX31) += imx31.o clk-imx31.o
obj-$(CONFIG_ARCH_IMX35) += imx35.o clk-imx35.o
obj-$(CONFIG_ARCH_IMX51) += imx51.o imx5.o clk-imx5.o
diff --git a/arch/arm/mach-imx/iomux-v1.c b/arch/arm/mach-imx/iomux-v1.c
deleted file mode 100644
index f8f90615c6..0000000000
--- a/arch/arm/mach-imx/iomux-v1.c
+++ /dev/null
@@ -1,116 +0,0 @@
-#include <common.h>
-#include <io.h>
-#include <mach/iomux-v1.h>
-
-/*
- * GPIO Module and I/O Multiplexer
- * x = 0..3 for reg_A, reg_B, reg_C, reg_D
- *
- * i.MX1 and i.MXL: 0 <= x <= 3
- * i.MX27 : 0 <= x <= 5
- */
-#define DDIR 0x00
-#define OCR1 0x04
-#define OCR2 0x08
-#define ICONFA1 0x0c
-#define ICONFA2 0x10
-#define ICONFB1 0x14
-#define ICONFB2 0x18
-#define DR 0x1c
-#define GIUS 0x20
-#define SSR 0x24
-#define ICR1 0x28
-#define ICR2 0x2c
-#define IMR 0x30
-#define ISR 0x34
-#define GPR 0x38
-#define SWR 0x3c
-#define PUEN 0x40
-
-static void __iomem *iomuxv1_base;
-
-void imx_gpio_mode(int gpio_mode)
-{
- unsigned int pin = gpio_mode & GPIO_PIN_MASK;
- unsigned int port = (gpio_mode & GPIO_PORT_MASK) >> GPIO_PORT_SHIFT;
- unsigned int ocr = (gpio_mode & GPIO_OCR_MASK) >> GPIO_OCR_SHIFT;
- unsigned int aout = (gpio_mode & GPIO_AOUT_MASK) >> GPIO_AOUT_SHIFT;
- unsigned int bout = (gpio_mode & GPIO_BOUT_MASK) >> GPIO_BOUT_SHIFT;
- void __iomem *portbase = iomuxv1_base + port * 0x100;
- uint32_t val;
-
- if (!iomuxv1_base)
- return;
-
- /* Pullup enable */
- val = readl(portbase + PUEN);
- if (gpio_mode & GPIO_PUEN)
- val |= (1 << pin);
- else
- val &= ~(1 << pin);
- writel(val, portbase + PUEN);
-
- /* Data direction */
- val = readl(portbase + DDIR);
- if (gpio_mode & GPIO_OUT)
- val |= 1 << pin;
- else
- val &= ~(1 << pin);
- writel(val, portbase + DDIR);
-
- /* Primary / alternate function */
- val = readl(portbase + GPR);
- if (gpio_mode & GPIO_AF)
- val |= (1 << pin);
- else
- val &= ~(1 << pin);
- writel(val, portbase + GPR);
-
- /* use as gpio? */
- val = readl(portbase + GIUS);
- if (!(gpio_mode & (GPIO_PF | GPIO_AF)))
- val |= (1 << pin);
- else
- val &= ~(1 << pin);
- writel(val, portbase + GIUS);
-
- /* Output / input configuration */
- if (pin < 16) {
- val = readl(portbase + OCR1);
- val &= ~(3 << (pin * 2));
- val |= (ocr << (pin * 2));
- writel(val, portbase + OCR1);
-
- val = readl(portbase + ICONFA1);
- val &= ~(3 << (pin * 2));
- val |= aout << (pin * 2);
- writel(val, portbase + ICONFA1);
-
- val = readl(portbase + ICONFB1);
- val &= ~(3 << (pin * 2));
- val |= bout << (pin * 2);
- writel(val, portbase + ICONFB1);
- } else {
- pin -= 16;
-
- val = readl(portbase + OCR2);
- val &= ~(3 << (pin * 2));
- val |= (ocr << (pin * 2));
- writel(val, portbase + OCR2);
-
- val = readl(portbase + ICONFA2);
- val &= ~(3 << (pin * 2));
- val |= aout << (pin * 2);
- writel(val, portbase + ICONFA2);
-
- val = readl(portbase + ICONFB2);
- val &= ~(3 << (pin * 2));
- val |= bout << (pin * 2);
- writel(val, portbase + ICONFB2);
- }
-}
-
-void imx_iomuxv1_init(void __iomem *base)
-{
- iomuxv1_base = base;
-}