summaryrefslogtreecommitdiff
path: root/drivers/staging/cg2900/devices-cg2900.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/cg2900/devices-cg2900.c')
-rw-r--r--drivers/staging/cg2900/devices-cg2900.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/drivers/staging/cg2900/devices-cg2900.c b/drivers/staging/cg2900/devices-cg2900.c
index 8f342a4a1fc..9fb17c791d9 100644
--- a/drivers/staging/cg2900/devices-cg2900.c
+++ b/drivers/staging/cg2900/devices-cg2900.c
@@ -29,6 +29,7 @@
#include <linux/types.h>
#include <plat/pincfg.h>
#include <asm/mach-types.h>
+#include <mach/id.h>
#include <linux/mfd/ab8500.h>
#include <linux/regulator/consumer.h>
@@ -157,6 +158,10 @@ static int dcg2900_init(struct cg2900_chip_dev *dev)
dev_dbg(dev->dev, "No resources available\n");
goto finished;
}
+ if (cpu_is_u8500())
+ err = dcg2900_setup(dev, info);
+ else
+ err = dcg2900_u5500_setup(dev, info);
err = dcg2900_setup(dev, info);
if (err)
@@ -272,8 +277,15 @@ void dcg2900_init_platdata(struct cg2900_platform_data *data)
{
data->init = dcg2900_init;
data->exit = dcg2900_exit;
- data->enable_chip = dcg2900_enable_chip;
- data->disable_chip = dcg2900_disable_chip;
+
+ if (cpu_is_u8500()) {
+ data->enable_chip = dcg2900_enable_chip;
+ data->disable_chip = dcg2900_disable_chip;
+ } else {
+ data->enable_chip = dcg2900_u5500_enable_chip;
+ data->disable_chip = dcg2900_u5500_disable_chip;
+ }
+
data->get_power_switch_off_cmd = dcg2900_get_power_switch_off_cmd;
data->uart.enable_uart = dcg2900_enable_uart;