summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Marklund <robert.marklund@stericsson.com>2011-09-30 22:28:15 +0200
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-05-22 11:05:54 +0200
commit5bd8e713595fe86cb417315069ecd123e2fcdbc9 (patch)
tree29aa8df9d2db14d44e0c96a2078208617e4ae567
parent9d0db881bca4a95544ef4f1513b8309c83ba68af (diff)
cg2900: u5500: Make ux500 play nice at build time
Make the cg2900 build if we have both soc:s enabled. Change-Id: I302b0772128270f07a2b6ab114d151faa8680dd2 Signed-off-by: Robert Marklund <robert.marklund@stericsson.com>
-rw-r--r--drivers/staging/cg2900/Makefile5
-rw-r--r--drivers/staging/cg2900/board-u5500-cg2900.c6
-rw-r--r--drivers/staging/cg2900/devices-cg2900-u5500.c6
-rw-r--r--drivers/staging/cg2900/devices-cg2900.c16
-rw-r--r--drivers/staging/cg2900/devices-cg2900.h4
5 files changed, 26 insertions, 11 deletions
diff --git a/drivers/staging/cg2900/Makefile b/drivers/staging/cg2900/Makefile
index 0e76f4bf5bd..76668094ab9 100644
--- a/drivers/staging/cg2900/Makefile
+++ b/drivers/staging/cg2900/Makefile
@@ -6,13 +6,12 @@ ccflags-y := \
-Idrivers/staging/cg2900/include \
-Iarch/arm/mach-ux500
-obj-$(CONFIG_CG2900) += devices-cg2900.o
+obj-$(CONFIG_CG2900) += devices-cg2900.o \
+ devices-cg2900-u5500.o devices-cg2900-u8500.o
ifeq ($(CONFIG_UX500_SOC_DB8500), y)
-obj-$(CONFIG_CG2900) += devices-cg2900-u8500.o
obj-$(CONFIG_CG2900) += board-mop500-cg2900.o
endif
ifeq ($(CONFIG_UX500_SOC_DB5500), y)
-obj-$(CONFIG_CG2900) += devices-cg2900-u5500.o
obj-$(CONFIG_CG2900) += board-u5500-cg2900.o
endif
diff --git a/drivers/staging/cg2900/board-u5500-cg2900.c b/drivers/staging/cg2900/board-u5500-cg2900.c
index 07b29b2a997..d6ca7b4c858 100644
--- a/drivers/staging/cg2900/board-u5500-cg2900.c
+++ b/drivers/staging/cg2900/board-u5500-cg2900.c
@@ -18,7 +18,7 @@
#define CG2900_BT_CTS_GPIO 168
-enum cg2900_gpio_pull_sleep cg2900_sleep_gpio[21] = {
+enum cg2900_gpio_pull_sleep cg2900_u5500_sleep_gpio[21] = {
CG2900_NO_PULL, /* GPIO 0: PTA_CONFX */
CG2900_PULL_DN, /* GPIO 1: PTA_STATUS */
CG2900_NO_PULL, /* GPIO 2: UART_CTSN */
@@ -55,7 +55,7 @@ static struct platform_device ux500_cg2900_chip_device = {
static struct cg2900_platform_data cg2900_test_platform_data = {
.bus = HCI_VIRTUAL,
- .gpio_sleep = cg2900_sleep_gpio,
+ .gpio_sleep = cg2900_u5500_sleep_gpio,
};
static struct platform_device ux500_cg2900_test_device = {
@@ -97,7 +97,7 @@ static pin_cfg_t cg2900_uart_disabled[] = {
static struct cg2900_platform_data cg2900_uart_platform_data = {
.bus = HCI_UART,
- .gpio_sleep = cg2900_sleep_gpio,
+ .gpio_sleep = cg2900_u5500_sleep_gpio,
.uart = {
.n_uart_gpios = 4,
.uart_enabled = cg2900_uart_enabled,
diff --git a/drivers/staging/cg2900/devices-cg2900-u5500.c b/drivers/staging/cg2900/devices-cg2900-u5500.c
index cabb4ebed67..39152e51295 100644
--- a/drivers/staging/cg2900/devices-cg2900-u5500.c
+++ b/drivers/staging/cg2900/devices-cg2900-u5500.c
@@ -26,7 +26,7 @@
#include "devices-cg2900.h"
/* prcmu resout1 pin is used for CG2900 reset*/
-void dcg2900_enable_chip(struct cg2900_chip_dev *dev)
+void dcg2900_u5500_enable_chip(struct cg2900_chip_dev *dev)
{
struct dcg2900_info *info = dev->b_data;
@@ -45,7 +45,7 @@ void dcg2900_enable_chip(struct cg2900_chip_dev *dev)
prcmu_resetout(1, 1);
}
-void dcg2900_disable_chip(struct cg2900_chip_dev *dev)
+void dcg2900_u5500_disable_chip(struct cg2900_chip_dev *dev)
{
struct dcg2900_info *info = dev->b_data;
@@ -53,7 +53,7 @@ void dcg2900_disable_chip(struct cg2900_chip_dev *dev)
clk_disable(info->lpoclk);
}
-int dcg2900_setup(struct cg2900_chip_dev *dev,
+int dcg2900_u5500_setup(struct cg2900_chip_dev *dev,
struct dcg2900_info *info)
{
info->lpoclk = clk_get(dev->dev, "lpoclk");
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;
diff --git a/drivers/staging/cg2900/devices-cg2900.h b/drivers/staging/cg2900/devices-cg2900.h
index be5975ccb0a..eeb9e2e46b4 100644
--- a/drivers/staging/cg2900/devices-cg2900.h
+++ b/drivers/staging/cg2900/devices-cg2900.h
@@ -33,6 +33,10 @@ extern void dcg2900_enable_chip(struct cg2900_chip_dev *dev);
extern void dcg2900_disable_chip(struct cg2900_chip_dev *dev);
extern int dcg2900_setup(struct cg2900_chip_dev *dev,
struct dcg2900_info *info);
+extern void dcg2900_u5500_enable_chip(struct cg2900_chip_dev *dev);
+extern void dcg2900_u5500_disable_chip(struct cg2900_chip_dev *dev);
+extern int dcg2900_u5500_setup(struct cg2900_chip_dev *dev,
+ struct dcg2900_info *info);
/**
* enum cg2900_gpio_pull_sleep - GPIO pull setting in sleep.