aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-integrator/impd1.c15
-rw-r--r--arch/arm/mach-pxa/generic.c20
-rw-r--r--arch/arm/mach-s3c2410/mach-bast.c6
3 files changed, 31 insertions, 10 deletions
diff --git a/arch/arm/mach-integrator/impd1.c b/arch/arm/mach-integrator/impd1.c
index c3c2f17d030e..a1b153d1626c 100644
--- a/arch/arm/mach-integrator/impd1.c
+++ b/arch/arm/mach-integrator/impd1.c
@@ -67,7 +67,7 @@ static void impd1_setvco(struct clk *clk, struct icst525_vco vco)
67 } 67 }
68 writel(0, impd1->base + IMPD1_LOCK); 68 writel(0, impd1->base + IMPD1_LOCK);
69 69
70#if DEBUG 70#ifdef DEBUG
71 vco.v = val & 0x1ff; 71 vco.v = val & 0x1ff;
72 vco.r = (val >> 9) & 0x7f; 72 vco.r = (val >> 9) & 0x7f;
73 vco.s = (val >> 16) & 7; 73 vco.s = (val >> 16) & 7;
@@ -427,17 +427,18 @@ static int impd1_probe(struct lm_device *dev)
427 return ret; 427 return ret;
428} 428}
429 429
430static int impd1_remove_one(struct device *dev, void *data)
431{
432 device_unregister(dev);
433 return 0;
434}
435
430static void impd1_remove(struct lm_device *dev) 436static void impd1_remove(struct lm_device *dev)
431{ 437{
432 struct impd1_module *impd1 = lm_get_drvdata(dev); 438 struct impd1_module *impd1 = lm_get_drvdata(dev);
433 struct list_head *l, *n;
434 int i; 439 int i;
435 440
436 list_for_each_safe(l, n, &dev->dev.children) { 441 device_for_each_child(&dev->dev, NULL, impd1_remove_one);
437 struct device *d = list_to_dev(l);
438
439 device_unregister(d);
440 }
441 442
442 for (i = 0; i < ARRAY_SIZE(impd1->vcos); i++) 443 for (i = 0; i < ARRAY_SIZE(impd1->vcos); i++)
443 clk_unregister(&impd1->vcos[i]); 444 clk_unregister(&impd1->vcos[i]);
diff --git a/arch/arm/mach-pxa/generic.c b/arch/arm/mach-pxa/generic.c
index d327c127eddb..1d7677669a76 100644
--- a/arch/arm/mach-pxa/generic.c
+++ b/arch/arm/mach-pxa/generic.c
@@ -250,6 +250,25 @@ void __init pxa_set_i2c_info(struct i2c_pxa_platform_data *info)
250 i2c_device.dev.platform_data = info; 250 i2c_device.dev.platform_data = info;
251} 251}
252 252
253static struct resource i2s_resources[] = {
254 {
255 .start = 0x40400000,
256 .end = 0x40400083,
257 .flags = IORESOURCE_MEM,
258 }, {
259 .start = IRQ_I2S,
260 .end = IRQ_I2S,
261 .flags = IORESOURCE_IRQ,
262 },
263};
264
265static struct platform_device i2s_device = {
266 .name = "pxa2xx-i2s",
267 .id = -1,
268 .resource = i2c_resources,
269 .num_resources = ARRAY_SIZE(i2s_resources),
270};
271
253static struct platform_device *devices[] __initdata = { 272static struct platform_device *devices[] __initdata = {
254 &pxamci_device, 273 &pxamci_device,
255 &udc_device, 274 &udc_device,
@@ -258,6 +277,7 @@ static struct platform_device *devices[] __initdata = {
258 &btuart_device, 277 &btuart_device,
259 &stuart_device, 278 &stuart_device,
260 &i2c_device, 279 &i2c_device,
280 &i2s_device,
261}; 281};
262 282
263static int __init pxa_init(void) 283static int __init pxa_init(void)
diff --git a/arch/arm/mach-s3c2410/mach-bast.c b/arch/arm/mach-s3c2410/mach-bast.c
index 8ca955984645..7b51bfd0ba6d 100644
--- a/arch/arm/mach-s3c2410/mach-bast.c
+++ b/arch/arm/mach-s3c2410/mach-bast.c
@@ -307,9 +307,9 @@ static void bast_nand_select(struct s3c2410_nand_set *set, int slot)
307} 307}
308 308
309static struct s3c2410_platform_nand bast_nand_info = { 309static struct s3c2410_platform_nand bast_nand_info = {
310 .tacls = 40, 310 .tacls = 30,
311 .twrph0 = 80, 311 .twrph0 = 60,
312 .twrph1 = 80, 312 .twrph1 = 60,
313 .nr_sets = ARRAY_SIZE(bast_nand_sets), 313 .nr_sets = ARRAY_SIZE(bast_nand_sets),
314 .sets = bast_nand_sets, 314 .sets = bast_nand_sets,
315 .select_chip = bast_nand_select, 315 .select_chip = bast_nand_select,