summaryrefslogtreecommitdiffstats
path: root/board
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2009-04-07 12:00:47 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2009-05-19 12:30:42 +0200
commit36581777756c25cf5a63de19d88d832f946602bb (patch)
tree5493f88e8e25dd11bb84094050270ce3bda9f646 /board
parentaec91d05374bd4a0babc0d6ad2e4e78252304cd0 (diff)
downloadbarebox-36581777756c25cf5a63de19d88d832f946602bb.tar.gz
barebox-36581777756c25cf5a63de19d88d832f946602bb.tar.xz
i.MX35: Add iomux support from kernel
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'board')
-rw-r--r--board/freescale-mx35-3-stack/3stack.c49
-rw-r--r--board/pcm043/pcm043.c59
2 files changed, 61 insertions, 47 deletions
diff --git a/board/freescale-mx35-3-stack/3stack.c b/board/freescale-mx35-3-stack/3stack.c
index 269b24195e..3fe5193b50 100644
--- a/board/freescale-mx35-3-stack/3stack.c
+++ b/board/freescale-mx35-3-stack/3stack.c
@@ -36,6 +36,7 @@
#include <spi/spi.h>
#include <asm/io.h>
#include <asm/arch/imx-nand.h>
+#include <asm/arch/iomux-mx35.h>
static struct device_d cfi_dev = {
.name = "cfi_flash",
@@ -80,25 +81,6 @@ static struct device_d smc911x_dev = {
static int f3s_devices_init(void)
{
- imx_gpio_mode(MUX_FEC_TX_CLK_FEC_TX_CLK);
- imx_gpio_mode(MUX_FEC_RX_CLK_FEC_RX_CLK);
- imx_gpio_mode(MUX_FEC_RX_DV_FEC_RX_DV);
- imx_gpio_mode(MUX_FEC_COL_FEC_COL);
- imx_gpio_mode(MUX_FEC_TX_EN_FEC_TX_EN);
- imx_gpio_mode(MUX_FEC_MDC_FEC_MDC);
- imx_gpio_mode(MUX_FEC_MDIO_FEC_MDIO);
- imx_gpio_mode(MUX_FEC_TX_ERR_FEC_TX_ERR);
- imx_gpio_mode(MUX_FEC_RX_ERR_FEC_RX_ERR);
- imx_gpio_mode(MUX_FEC_CRS_FEC_CRS);
- imx_gpio_mode(MUX_FEC_RDATA0_FEC_RDATA0);
- imx_gpio_mode(MUX_FEC_TDATA0_FEC_TDATA0);
- imx_gpio_mode(MUX_FEC_RDATA1_FEC_RDATA1);
- imx_gpio_mode(MUX_FEC_TDATA1_FEC_TDATA1);
- imx_gpio_mode(MUX_FEC_RDATA2_FEC_RDATA2);
- imx_gpio_mode(MUX_FEC_TDATA2_FEC_TDATA2);
- imx_gpio_mode(MUX_FEC_RDATA3_FEC_RDATA3);
- imx_gpio_mode(MUX_FEC_TDATA3_FEC_TDATA3);
-
register_device(&cfi_dev);
register_device(&sdram_dev);
register_device(&smc911x_dev);
@@ -133,8 +115,37 @@ static struct device_d f3s_serial_device = {
.type = DEVICE_TYPE_CONSOLE,
};
+static struct pad_desc f3s_pads[] = {
+ MX35_PAD_FEC_TX_CLK__FEC_TX_CLK,
+ MX35_PAD_FEC_RX_CLK__FEC_RX_CLK,
+ MX35_PAD_FEC_RX_DV__FEC_RX_DV,
+ MX35_PAD_FEC_COL__FEC_COL,
+ MX35_PAD_FEC_RDATA0__FEC_RDATA_0,
+ MX35_PAD_FEC_TDATA0__FEC_TDATA_0,
+ MX35_PAD_FEC_TX_EN__FEC_TX_EN,
+ MX35_PAD_FEC_MDC__FEC_MDC,
+ MX35_PAD_FEC_MDIO__FEC_MDIO,
+ MX35_PAD_FEC_TX_ERR__FEC_TX_ERR,
+ MX35_PAD_FEC_RX_ERR__FEC_RX_ERR,
+ MX35_PAD_FEC_CRS__FEC_CRS,
+ MX35_PAD_FEC_RDATA0__FEC_RDATA_0,
+ MX35_PAD_FEC_TDATA0__FEC_TDATA_0,
+ MX35_PAD_FEC_RDATA1__FEC_RDATA_1,
+ MX35_PAD_FEC_TDATA1__FEC_TDATA_1,
+ MX35_PAD_FEC_RDATA2__FEC_RDATA_2,
+ MX35_PAD_FEC_TDATA2__FEC_TDATA_2,
+ MX35_PAD_FEC_RDATA3__FEC_RDATA_3,
+ MX35_PAD_FEC_TDATA3__FEC_TDATA_3,
+ MX35_PAD_RXD1__UART1_RXD_MUX,
+ MX35_PAD_TXD1__UART1_TXD_MUX,
+ MX35_PAD_RTS1__UART1_RTS,
+ MX35_PAD_CTS1__UART1_CTS,
+};
+
static int f3s_console_init(void)
{
+ mxc_iomux_v3_setup_multiple_pads(f3s_pads, ARRAY_SIZE(f3s_pads));
+
register_device(&f3s_serial_device);
return 0;
}
diff --git a/board/pcm043/pcm043.c b/board/pcm043/pcm043.c
index c8f267d11a..007a0dbad7 100644
--- a/board/pcm043/pcm043.c
+++ b/board/pcm043/pcm043.c
@@ -36,6 +36,7 @@
#include <asm/arch/imx-nand.h>
#include <fec.h>
#include <asm/arch/imx-pll.h>
+#include <asm/arch/iomux-mx35.h>
#define CYG_MACRO_START
#define CYG_MACRO_END
@@ -94,10 +95,6 @@ static int imx35_devices_init(void)
writel(0x10000d03, CSCR_L(0));
writel(0x00720900, CSCR_A(0));
- /* setup pins for I2C1 (for EEPROM, RTC) */
- imx_gpio_mode(MUX_I2C1_CLK_I2C1_SLC);
- imx_gpio_mode(MUX_I2C1_DAT_I2C1_SDA);
-
register_device(&cfi_dev);
/*
@@ -111,25 +108,6 @@ static int imx35_devices_init(void)
dev_protect(&cfi_dev, 0x20000, 0, 1);
register_device(&nand_dev);
-
- imx_gpio_mode(MUX_FEC_TX_CLK_FEC_TX_CLK);
- imx_gpio_mode(MUX_FEC_RX_CLK_FEC_RX_CLK);
- imx_gpio_mode(MUX_FEC_RX_DV_FEC_RX_DV);
- imx_gpio_mode(MUX_FEC_COL_FEC_COL);
- imx_gpio_mode(MUX_FEC_TX_EN_FEC_TX_EN);
- imx_gpio_mode(MUX_FEC_MDC_FEC_MDC);
- imx_gpio_mode(MUX_FEC_MDIO_FEC_MDIO);
- imx_gpio_mode(MUX_FEC_TX_ERR_FEC_TX_ERR);
- imx_gpio_mode(MUX_FEC_RX_ERR_FEC_RX_ERR);
- imx_gpio_mode(MUX_FEC_CRS_FEC_CRS);
- imx_gpio_mode(MUX_FEC_RDATA0_FEC_RDATA0);
- imx_gpio_mode(MUX_FEC_TDATA0_FEC_TDATA0);
- imx_gpio_mode(MUX_FEC_RDATA1_FEC_RDATA1);
- imx_gpio_mode(MUX_FEC_TDATA1_FEC_TDATA1);
- imx_gpio_mode(MUX_FEC_RDATA2_FEC_RDATA2);
- imx_gpio_mode(MUX_FEC_TDATA2_FEC_TDATA2);
- imx_gpio_mode(MUX_FEC_RDATA3_FEC_RDATA3);
- imx_gpio_mode(MUX_FEC_TDATA3_FEC_TDATA3);
register_device(&fec_dev);
@@ -151,13 +129,38 @@ static struct device_d imx35_serial_device = {
.type = DEVICE_TYPE_CONSOLE,
};
+static struct pad_desc pcm043_pads[] = {
+ MX35_PAD_FEC_TX_CLK__FEC_TX_CLK,
+ MX35_PAD_FEC_RX_CLK__FEC_RX_CLK,
+ MX35_PAD_FEC_RX_DV__FEC_RX_DV,
+ MX35_PAD_FEC_COL__FEC_COL,
+ MX35_PAD_FEC_RDATA0__FEC_RDATA_0,
+ MX35_PAD_FEC_TDATA0__FEC_TDATA_0,
+ MX35_PAD_FEC_TX_EN__FEC_TX_EN,
+ MX35_PAD_FEC_MDC__FEC_MDC,
+ MX35_PAD_FEC_MDIO__FEC_MDIO,
+ MX35_PAD_FEC_TX_ERR__FEC_TX_ERR,
+ MX35_PAD_FEC_RX_ERR__FEC_RX_ERR,
+ MX35_PAD_FEC_CRS__FEC_CRS,
+ MX35_PAD_FEC_RDATA0__FEC_RDATA_0,
+ MX35_PAD_FEC_TDATA0__FEC_TDATA_0,
+ MX35_PAD_FEC_RDATA1__FEC_RDATA_1,
+ MX35_PAD_FEC_TDATA1__FEC_TDATA_1,
+ MX35_PAD_FEC_RDATA2__FEC_RDATA_2,
+ MX35_PAD_FEC_TDATA2__FEC_TDATA_2,
+ MX35_PAD_FEC_RDATA3__FEC_RDATA_3,
+ MX35_PAD_FEC_TDATA3__FEC_TDATA_3,
+ MX35_PAD_RXD1__UART1_RXD_MUX,
+ MX35_PAD_TXD1__UART1_TXD_MUX,
+ MX35_PAD_RTS1__UART1_RTS,
+ MX35_PAD_CTS1__UART1_CTS,
+ MX35_PAD_I2C1_CLK__I2C1_SCL,
+ MX35_PAD_I2C1_DAT__I2C1_SDA
+};
+
static int imx35_console_init(void)
{
- /* init gpios for serial port */
- imx_gpio_mode(MUX_RXD1_UART1_RXD_MUX);
- imx_gpio_mode(MUX_TXD1_UART1_TXD_MUX);
- imx_gpio_mode(MUX_RTS1_UART1_RTS_B);
- imx_gpio_mode(MUX_RTS1_UART1_CTS_B);
+ mxc_iomux_v3_setup_multiple_pads(pcm043_pads, ARRAY_SIZE(pcm043_pads));
register_device(&imx35_serial_device);
return 0;