aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2012-01-26 08:34:21 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2012-03-24 07:29:52 -0400
commit07be45f57ebe037977c8033a008e9012617b1915 (patch)
treea3b7f11eb00c78e5817c68412cad0e412a5c55db /arch
parente5c0fc4185c551c270868dcb6573604db2bc3171 (diff)
ARM: sa1111: provide a generic way to prevent devices from registering
Some platforms don't want certain devices to be registered, because, eg, the interface is not wired. Provide a way for platforms to prevent various devices from being registered via a devid bitmask in the platform data. Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/common/sa1111.c7
-rw-r--r--arch/arm/include/asm/hardware/sa1111.h1
-rw-r--r--arch/arm/mach-pxa/lubbock.c1
-rw-r--r--arch/arm/mach-sa1100/badge4.c1
-rw-r--r--arch/arm/mach-sa1100/jornada720.c1
-rw-r--r--arch/arm/mach-sa1100/neponset.c1
6 files changed, 7 insertions, 5 deletions
diff --git a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c
index 4bdf1bb283dc..17694cf64aa6 100644
--- a/arch/arm/common/sa1111.c
+++ b/arch/arm/common/sa1111.c
@@ -833,11 +833,8 @@ __sa1111_probe(struct device *me, struct resource *mem, int irq)
833 g_sa1111 = sachip; 833 g_sa1111 = sachip;
834 834
835 has_devs = ~0; 835 has_devs = ~0;
836 if (machine_is_assabet() || machine_is_jornada720() || 836 if (pd)
837 machine_is_badge4()) 837 has_devs &= ~pd->disable_devs;
838 has_devs &= ~SA1111_DEVID_PS2_MSE;
839 else
840 has_devs &= ~SA1111_DEVID_SAC;
841 838
842 for (i = 0; i < ARRAY_SIZE(sa1111_devices); i++) 839 for (i = 0; i < ARRAY_SIZE(sa1111_devices); i++)
843 if (sa1111_devices[i].devid & has_devs) 840 if (sa1111_devices[i].devid & has_devs)
diff --git a/arch/arm/include/asm/hardware/sa1111.h b/arch/arm/include/asm/hardware/sa1111.h
index 37ad29d482f4..74afe20fffff 100644
--- a/arch/arm/include/asm/hardware/sa1111.h
+++ b/arch/arm/include/asm/hardware/sa1111.h
@@ -584,6 +584,7 @@ void sa1111_set_sleep_io(struct sa1111_dev *sadev, unsigned int bits, unsigned i
584 584
585struct sa1111_platform_data { 585struct sa1111_platform_data {
586 int irq_base; /* base for cascaded on-chip IRQs */ 586 int irq_base; /* base for cascaded on-chip IRQs */
587 unsigned disable_devs;
587 void *data; 588 void *data;
588 int (*enable)(void *, unsigned); 589 int (*enable)(void *, unsigned);
589 void (*disable)(void *, unsigned); 590 void (*disable)(void *, unsigned);
diff --git a/arch/arm/mach-pxa/lubbock.c b/arch/arm/mach-pxa/lubbock.c
index 6ebd276aebeb..6bb3f47b1f14 100644
--- a/arch/arm/mach-pxa/lubbock.c
+++ b/arch/arm/mach-pxa/lubbock.c
@@ -223,6 +223,7 @@ static struct resource sa1111_resources[] = {
223 223
224static struct sa1111_platform_data sa1111_info = { 224static struct sa1111_platform_data sa1111_info = {
225 .irq_base = LUBBOCK_SA1111_IRQ_BASE, 225 .irq_base = LUBBOCK_SA1111_IRQ_BASE,
226 .disable_devs = SA1111_DEVID_SAC,
226}; 227};
227 228
228static struct platform_device sa1111_device = { 229static struct platform_device sa1111_device = {
diff --git a/arch/arm/mach-sa1100/badge4.c b/arch/arm/mach-sa1100/badge4.c
index d84924993bad..8fb80f02c2a9 100644
--- a/arch/arm/mach-sa1100/badge4.c
+++ b/arch/arm/mach-sa1100/badge4.c
@@ -66,6 +66,7 @@ static void badge4_sa1111_disable(void *data, unsigned devid)
66 66
67static struct sa1111_platform_data sa1111_info = { 67static struct sa1111_platform_data sa1111_info = {
68 .irq_base = IRQ_BOARD_END, 68 .irq_base = IRQ_BOARD_END,
69 .disable_devs = SA1111_DEVID_PS2_MSE,
69 .enable = badge4_sa1111_enable, 70 .enable = badge4_sa1111_enable,
70 .disable = badge4_sa1111_disable, 71 .disable = badge4_sa1111_disable,
71}; 72};
diff --git a/arch/arm/mach-sa1100/jornada720.c b/arch/arm/mach-sa1100/jornada720.c
index ee121d6f0480..dcd6d026aa68 100644
--- a/arch/arm/mach-sa1100/jornada720.c
+++ b/arch/arm/mach-sa1100/jornada720.c
@@ -211,6 +211,7 @@ static struct resource sa1111_resources[] = {
211 211
212static struct sa1111_platform_data sa1111_info = { 212static struct sa1111_platform_data sa1111_info = {
213 .irq_base = IRQ_BOARD_END, 213 .irq_base = IRQ_BOARD_END,
214 .disable_devs = SA1111_DEVID_PS2_MSE,
214}; 215};
215 216
216static u64 sa1111_dmamask = 0xffffffffUL; 217static u64 sa1111_dmamask = 0xffffffffUL;
diff --git a/arch/arm/mach-sa1100/neponset.c b/arch/arm/mach-sa1100/neponset.c
index b4fa53a1427e..b40a7192f09f 100644
--- a/arch/arm/mach-sa1100/neponset.c
+++ b/arch/arm/mach-sa1100/neponset.c
@@ -242,6 +242,7 @@ static struct resource sa1111_resources[] = {
242 242
243static struct sa1111_platform_data sa1111_info = { 243static struct sa1111_platform_data sa1111_info = {
244 .irq_base = IRQ_BOARD_END, 244 .irq_base = IRQ_BOARD_END,
245 .disable_devs = SA1111_DEVID_PS2_MSE,
245}; 246};
246 247
247static u64 sa1111_dmamask = 0xffffffffUL; 248static u64 sa1111_dmamask = 0xffffffffUL;