summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorshc@milas.spb.ru <shc@milas.spb.ru>2011-08-12 13:21:56 +0400
committerSascha Hauer <s.hauer@pengutronix.de>2011-08-17 09:34:55 +0200
commitddbbeee82214c5edcdeb7da0a1d480d1d32104d0 (patch)
treeef5a9fc720f1f4beec657614f3fb6d50547189c2
parentb7a3e559158af9c18a30d260f37aa0e4c6525cbc (diff)
downloadbarebox-ddbbeee82214c5edcdeb7da0a1d480d1d32104d0.tar.gz
barebox-ddbbeee82214c5edcdeb7da0a1d480d1d32104d0.tar.xz
I2C support to PCM-038 board
Sascha Hauer <s.hauer@pengutronix.de> wrote .. > On Thu, Aug 11, 2011 at 02:37:05PM +0400, Alexander Shiyan wrote: > > Hello. > > > > Please review and apply this simple patch. ... > Please remove the #ifdef CONFIG_I2C OK. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--arch/arm/boards/pcm038/pcm038.c11
-rw-r--r--arch/arm/mach-imx/include/mach/devices-imx27.h5
2 files changed, 16 insertions, 0 deletions
diff --git a/arch/arm/boards/pcm038/pcm038.c b/arch/arm/boards/pcm038/pcm038.c
index 4db50fe8c0..6fee5c2d61 100644
--- a/arch/arm/boards/pcm038/pcm038.c
+++ b/arch/arm/boards/pcm038/pcm038.c
@@ -40,6 +40,7 @@
#include <mach/imx-pll.h>
#include <mach/imxfb.h>
#include <asm/mmu.h>
+#include <i2c/i2c.h>
#include <usb/isp1504.h>
#include <mach/spi.h>
#include <mach/iomux-mx27.h>
@@ -213,6 +214,12 @@ static int pcm038_devices_init(void)
PD23_AF_USBH2_DATA2,
PD24_AF_USBH2_DATA1,
PD26_AF_USBH2_DATA5,
+ /* I2C1 */
+ PD17_PF_I2C_DATA | GPIO_PUEN,
+ PD18_PF_I2C_CLK,
+ /* I2C2 */
+ PC5_PF_I2C2_SDA,
+ PC6_PF_I2C2_SCL,
};
/* configure 16 bit nor flash on cs0 */
@@ -247,6 +254,10 @@ static int pcm038_devices_init(void)
imx27_add_nand(&nand_info);
imx27_add_fb(&pcm038_fb_data);
+ PCCR0 |= PCCR0_I2C1_EN | PCCR0_I2C2_EN;
+ imx27_add_i2c0(NULL);
+ imx27_add_i2c1(NULL);
+
#ifdef CONFIG_USB
pcm038_usbh_init();
add_generic_usb_ehci_device(-1, IMX_OTG_BASE + 0x400, NULL);
diff --git a/arch/arm/mach-imx/include/mach/devices-imx27.h b/arch/arm/mach-imx/include/mach/devices-imx27.h
index 0511eb5d21..0518e3b146 100644
--- a/arch/arm/mach-imx/include/mach/devices-imx27.h
+++ b/arch/arm/mach-imx/include/mach/devices-imx27.h
@@ -11,6 +11,11 @@ static inline struct device_d *imx27_add_i2c0(struct i2c_platform_data *pdata)
return imx_add_i2c((void *)IMX_I2C1_BASE, 0, pdata);
}
+static inline struct device_d *imx27_add_i2c1(struct i2c_platform_data *pdata)
+{
+ return imx_add_i2c((void *)IMX_I2C2_BASE, 1, pdata);
+}
+
static inline struct device_d *imx27_add_uart0(void)
{
return imx_add_uart((void *)IMX_UART1_BASE, 0);