aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorPhilipp Zabel <philipp.zabel@gmail.com>2008-06-02 13:49:27 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2008-06-02 14:33:25 -0400
commitbc3a595988468b8a9c2526b9fb8d7bcaa27cc1a7 (patch)
treed1fa30150aae6f5559311ebc8859babcd9479d08 /arch
parentffdf786291636137ef2d51c3a5d340793032aa28 (diff)
[ARM] 5075/1: i2c-pxa: move i2c pin setup and PCFR_PI2CEN handling into arch/arm/mach-pxa
This fixes a build error introduced when the power manager register definitions were moved into pxa2xx-regs.h. Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-pxa/devices.c9
-rw-r--r--arch/arm/mach-pxa/pxa27x.c3
2 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/mach-pxa/devices.c b/arch/arm/mach-pxa/devices.c
index d6c05b6eab35..af6cc3dbb9a3 100644
--- a/arch/arm/mach-pxa/devices.c
+++ b/arch/arm/mach-pxa/devices.c
@@ -10,11 +10,13 @@
10#include <asm/arch/mmc.h> 10#include <asm/arch/mmc.h>
11#include <asm/arch/irda.h> 11#include <asm/arch/irda.h>
12#include <asm/arch/i2c.h> 12#include <asm/arch/i2c.h>
13#include <asm/arch/mfp-pxa27x.h>
13#include <asm/arch/ohci.h> 14#include <asm/arch/ohci.h>
14#include <asm/arch/pxa27x_keypad.h> 15#include <asm/arch/pxa27x_keypad.h>
15#include <asm/arch/camera.h> 16#include <asm/arch/camera.h>
16 17
17#include "devices.h" 18#include "devices.h"
19#include "generic.h"
18 20
19void __init pxa_register_device(struct platform_device *dev, void *data) 21void __init pxa_register_device(struct platform_device *dev, void *data)
20{ 22{
@@ -233,8 +235,15 @@ struct platform_device pxa_device_i2c = {
233 .num_resources = ARRAY_SIZE(pxai2c_resources), 235 .num_resources = ARRAY_SIZE(pxai2c_resources),
234}; 236};
235 237
238static unsigned long pxa27x_i2c_mfp_cfg[] = {
239 GPIO117_I2C_SCL,
240 GPIO118_I2C_SDA,
241};
242
236void __init pxa_set_i2c_info(struct i2c_pxa_platform_data *info) 243void __init pxa_set_i2c_info(struct i2c_pxa_platform_data *info)
237{ 244{
245 if (cpu_is_pxa27x())
246 pxa2xx_mfp_config(ARRAY_AND_SIZE(pxa27x_i2c_mfp_cfg));
238 pxa_register_device(&pxa_device_i2c, info); 247 pxa_register_device(&pxa_device_i2c, info);
239} 248}
240 249
diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c
index cdaf573e0f17..48cbdc771a80 100644
--- a/arch/arm/mach-pxa/pxa27x.c
+++ b/arch/arm/mach-pxa/pxa27x.c
@@ -349,6 +349,9 @@ struct platform_device pxa27x_device_i2c_power = {
349 349
350void __init pxa_set_i2c_power_info(struct i2c_pxa_platform_data *info) 350void __init pxa_set_i2c_power_info(struct i2c_pxa_platform_data *info)
351{ 351{
352 local_irq_disable();
353 PCFR |= PCFR_PI2CEN;
354 local_irq_enable();
352 pxa27x_device_i2c_power.dev.platform_data = info; 355 pxa27x_device_i2c_power.dev.platform_data = info;
353} 356}
354 357