Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm

* 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm:
[ARM] pxa: spitz wants PXA27x UDC definitions
[ARM] pxa: fix pxafb build when cpufreq is enabled
[ARM] fix parenthesis in include/asm-arm/arch-omap/control.h
[ARM] colibri: fix support for DM9000 ethernet device
[ARM] arm/kernel/arthur.c: add MODULE_LICENSE
[ARM] 5037/1: Orion: fix DNS323/Kurobox Pro PCI initialisation
[ARM] 5034/1: fix arm{925,926,940,946} dma_flush_range() in WT mode
[ARM] export copy_page
[ARM] 5026/1: locomo: add .settype for gpio and several small fixes
ARM: OMAP: Fixed comments on global PRM register usage
ARM: OMAP: Add PARENT_CONTROLS_CLOCK flag to dpll5_m2_ck
ARM: OMAP: PRCM fixes to ssi clock handling
ARM: OMAP: Add fuctional clock enabler for iva2
ARM: OMAP: Fix 34xx to use correct shift values for gpio2-6 fclks
ARM: OMAP: Keymap fix for palmte and palmz71
ARM: OMAP: Fix Unbalanced enable for IRQ in omap mailbox
ARM: OMAP: DMA: Fix incorrect channel linking
ARM: OMAP: Warn on disabling clocks with no users
ARM: OMAP: Add calls to omap2_set_globals_*()
ARM: OMAP: Update MMC header to fix compile

+142 -74
+48 -18
arch/arm/common/locomo.c
··· 321 locomo_writel(r, mapbase + LOCOMO_GIE); 322 } 323 324 static struct irq_chip locomo_gpio_chip = { 325 - .name = "LOCOMO-gpio", 326 - .ack = locomo_gpio_ack_irq, 327 - .mask = locomo_gpio_mask_irq, 328 - .unmask = locomo_gpio_unmask_irq, 329 }; 330 331 static void locomo_lt_handler(unsigned int irq, struct irq_desc *desc) ··· 481 set_irq_chip(IRQ_LOCOMO_KEY_BASE, &locomo_chip); 482 set_irq_chip_data(IRQ_LOCOMO_KEY_BASE, irqbase); 483 set_irq_chained_handler(IRQ_LOCOMO_KEY_BASE, locomo_key_handler); 484 - set_irq_flags(IRQ_LOCOMO_KEY_BASE, IRQF_VALID | IRQF_PROBE); 485 486 set_irq_chip(IRQ_LOCOMO_GPIO_BASE, &locomo_chip); 487 set_irq_chip_data(IRQ_LOCOMO_GPIO_BASE, irqbase); 488 set_irq_chained_handler(IRQ_LOCOMO_GPIO_BASE, locomo_gpio_handler); 489 - set_irq_flags(IRQ_LOCOMO_GPIO_BASE, IRQF_VALID | IRQF_PROBE); 490 491 set_irq_chip(IRQ_LOCOMO_LT_BASE, &locomo_chip); 492 set_irq_chip_data(IRQ_LOCOMO_LT_BASE, irqbase); 493 set_irq_chained_handler(IRQ_LOCOMO_LT_BASE, locomo_lt_handler); 494 - set_irq_flags(IRQ_LOCOMO_LT_BASE, IRQF_VALID | IRQF_PROBE); 495 496 set_irq_chip(IRQ_LOCOMO_SPI_BASE, &locomo_chip); 497 set_irq_chip_data(IRQ_LOCOMO_SPI_BASE, irqbase); 498 set_irq_chained_handler(IRQ_LOCOMO_SPI_BASE, locomo_spi_handler); 499 - set_irq_flags(IRQ_LOCOMO_SPI_BASE, IRQF_VALID | IRQF_PROBE); 500 501 /* install handlers for IRQ_LOCOMO_KEY_BASE generated interrupts */ 502 set_irq_chip(LOCOMO_IRQ_KEY_START, &locomo_key_chip); ··· 515 set_irq_flags(LOCOMO_IRQ_LT_START, IRQF_VALID | IRQF_PROBE); 516 517 /* install handlers for IRQ_LOCOMO_SPI_BASE generated interrupts */ 518 - for (irq = LOCOMO_IRQ_SPI_START; irq < LOCOMO_IRQ_SPI_START + 3; irq++) { 519 set_irq_chip(irq, &locomo_spi_chip); 520 set_irq_chip_data(irq, irqbase); 521 set_irq_handler(irq, handle_edge_irq); ··· 601 602 save->LCM_GPO = locomo_readl(lchip->base + LOCOMO_GPO); /* GPIO */ 603 locomo_writel(0x00, lchip->base + LOCOMO_GPO); 604 - save->LCM_SPICT = locomo_readl(lchip->base + LOCOMO_SPICT); /* SPI */ 605 locomo_writel(0x40, lchip->base + LOCOMO_SPICT); 606 save->LCM_GPE = locomo_readl(lchip->base + LOCOMO_GPE); /* GPIO */ 607 locomo_writel(0x00, lchip->base + LOCOMO_GPE); 608 save->LCM_ASD = locomo_readl(lchip->base + LOCOMO_ASD); /* ADSTART */ 609 locomo_writel(0x00, lchip->base + LOCOMO_ASD); 610 - save->LCM_SPIMD = locomo_readl(lchip->base + LOCOMO_SPIMD); /* SPI */ 611 - locomo_writel(0x3C14, lchip->base + LOCOMO_SPIMD); 612 613 locomo_writel(0x00, lchip->base + LOCOMO_PAIF); 614 locomo_writel(0x00, lchip->base + LOCOMO_DAC); 615 locomo_writel(0x00, lchip->base + LOCOMO_BACKLIGHT + LOCOMO_TC); 616 617 - if ( (locomo_readl(lchip->base + LOCOMO_LED + LOCOMO_LPT0) & 0x88) && (locomo_readl(lchip->base + LOCOMO_LED + LOCOMO_LPT1) & 0x88) ) 618 locomo_writel(0x00, lchip->base + LOCOMO_C32K); /* CLK32 off */ 619 else 620 /* 18MHz already enabled, so no wait */ ··· 643 spin_lock_irqsave(&lchip->lock, flags); 644 645 locomo_writel(save->LCM_GPO, lchip->base + LOCOMO_GPO); 646 - locomo_writel(save->LCM_SPICT, lchip->base + LOCOMO_SPICT); 647 locomo_writel(save->LCM_GPE, lchip->base + LOCOMO_GPE); 648 locomo_writel(save->LCM_ASD, lchip->base + LOCOMO_ASD); 649 - locomo_writel(save->LCM_SPIMD, lchip->base + LOCOMO_SPIMD); 650 651 locomo_writel(0x00, lchip->base + LOCOMO_C32K); 652 locomo_writel(0x90, lchip->base + LOCOMO_TADC); ··· 715 716 /* GPIO */ 717 locomo_writel(0, lchip->base + LOCOMO_GPO); 718 - locomo_writel( (LOCOMO_GPIO(2) | LOCOMO_GPIO(3) | LOCOMO_GPIO(13) | LOCOMO_GPIO(14)) 719 , lchip->base + LOCOMO_GPE); 720 - locomo_writel( (LOCOMO_GPIO(2) | LOCOMO_GPIO(3) | LOCOMO_GPIO(13) | LOCOMO_GPIO(14)) 721 , lchip->base + LOCOMO_GPD); 722 locomo_writel(0, lchip->base + LOCOMO_GIE); 723 ··· 860 spin_lock_irqsave(&lchip->lock, flags); 861 862 r = locomo_readl(lchip->base + LOCOMO_GPD); 863 - r &= ~bits; 864 locomo_writel(r, lchip->base + LOCOMO_GPD); 865 866 r = locomo_readl(lchip->base + LOCOMO_GPE);
··· 321 locomo_writel(r, mapbase + LOCOMO_GIE); 322 } 323 324 + static int GPIO_IRQ_rising_edge; 325 + static int GPIO_IRQ_falling_edge; 326 + 327 + static int locomo_gpio_type(unsigned int irq, unsigned int type) 328 + { 329 + unsigned int mask; 330 + void __iomem *mapbase = get_irq_chip_data(irq); 331 + 332 + mask = 1 << (irq - LOCOMO_IRQ_GPIO_START); 333 + 334 + if (type == IRQT_PROBE) { 335 + if ((GPIO_IRQ_rising_edge | GPIO_IRQ_falling_edge) & mask) 336 + return 0; 337 + type = __IRQT_RISEDGE | __IRQT_FALEDGE; 338 + } 339 + 340 + if (type & __IRQT_RISEDGE) 341 + GPIO_IRQ_rising_edge |= mask; 342 + else 343 + GPIO_IRQ_rising_edge &= ~mask; 344 + if (type & __IRQT_FALEDGE) 345 + GPIO_IRQ_falling_edge |= mask; 346 + else 347 + GPIO_IRQ_falling_edge &= ~mask; 348 + locomo_writel(GPIO_IRQ_rising_edge, mapbase + LOCOMO_GRIE); 349 + locomo_writel(GPIO_IRQ_falling_edge, mapbase + LOCOMO_GFIE); 350 + 351 + return 0; 352 + } 353 + 354 static struct irq_chip locomo_gpio_chip = { 355 + .name = "LOCOMO-gpio", 356 + .ack = locomo_gpio_ack_irq, 357 + .mask = locomo_gpio_mask_irq, 358 + .unmask = locomo_gpio_unmask_irq, 359 + .set_type = locomo_gpio_type, 360 }; 361 362 static void locomo_lt_handler(unsigned int irq, struct irq_desc *desc) ··· 450 set_irq_chip(IRQ_LOCOMO_KEY_BASE, &locomo_chip); 451 set_irq_chip_data(IRQ_LOCOMO_KEY_BASE, irqbase); 452 set_irq_chained_handler(IRQ_LOCOMO_KEY_BASE, locomo_key_handler); 453 454 set_irq_chip(IRQ_LOCOMO_GPIO_BASE, &locomo_chip); 455 set_irq_chip_data(IRQ_LOCOMO_GPIO_BASE, irqbase); 456 set_irq_chained_handler(IRQ_LOCOMO_GPIO_BASE, locomo_gpio_handler); 457 458 set_irq_chip(IRQ_LOCOMO_LT_BASE, &locomo_chip); 459 set_irq_chip_data(IRQ_LOCOMO_LT_BASE, irqbase); 460 set_irq_chained_handler(IRQ_LOCOMO_LT_BASE, locomo_lt_handler); 461 462 set_irq_chip(IRQ_LOCOMO_SPI_BASE, &locomo_chip); 463 set_irq_chip_data(IRQ_LOCOMO_SPI_BASE, irqbase); 464 set_irq_chained_handler(IRQ_LOCOMO_SPI_BASE, locomo_spi_handler); 465 466 /* install handlers for IRQ_LOCOMO_KEY_BASE generated interrupts */ 467 set_irq_chip(LOCOMO_IRQ_KEY_START, &locomo_key_chip); ··· 488 set_irq_flags(LOCOMO_IRQ_LT_START, IRQF_VALID | IRQF_PROBE); 489 490 /* install handlers for IRQ_LOCOMO_SPI_BASE generated interrupts */ 491 + for (irq = LOCOMO_IRQ_SPI_START; irq < LOCOMO_IRQ_SPI_START + 4; irq++) { 492 set_irq_chip(irq, &locomo_spi_chip); 493 set_irq_chip_data(irq, irqbase); 494 set_irq_handler(irq, handle_edge_irq); ··· 574 575 save->LCM_GPO = locomo_readl(lchip->base + LOCOMO_GPO); /* GPIO */ 576 locomo_writel(0x00, lchip->base + LOCOMO_GPO); 577 + save->LCM_SPICT = locomo_readl(lchip->base + LOCOMO_SPI + LOCOMO_SPICT); /* SPI */ 578 locomo_writel(0x40, lchip->base + LOCOMO_SPICT); 579 save->LCM_GPE = locomo_readl(lchip->base + LOCOMO_GPE); /* GPIO */ 580 locomo_writel(0x00, lchip->base + LOCOMO_GPE); 581 save->LCM_ASD = locomo_readl(lchip->base + LOCOMO_ASD); /* ADSTART */ 582 locomo_writel(0x00, lchip->base + LOCOMO_ASD); 583 + save->LCM_SPIMD = locomo_readl(lchip->base + LOCOMO_SPI + LOCOMO_SPIMD); /* SPI */ 584 + locomo_writel(0x3C14, lchip->base + LOCOMO_SPI + LOCOMO_SPIMD); 585 586 locomo_writel(0x00, lchip->base + LOCOMO_PAIF); 587 locomo_writel(0x00, lchip->base + LOCOMO_DAC); 588 locomo_writel(0x00, lchip->base + LOCOMO_BACKLIGHT + LOCOMO_TC); 589 590 + if ((locomo_readl(lchip->base + LOCOMO_LED + LOCOMO_LPT0) & 0x88) && (locomo_readl(lchip->base + LOCOMO_LED + LOCOMO_LPT1) & 0x88)) 591 locomo_writel(0x00, lchip->base + LOCOMO_C32K); /* CLK32 off */ 592 else 593 /* 18MHz already enabled, so no wait */ ··· 616 spin_lock_irqsave(&lchip->lock, flags); 617 618 locomo_writel(save->LCM_GPO, lchip->base + LOCOMO_GPO); 619 + locomo_writel(save->LCM_SPICT, lchip->base + LOCOMO_SPI + LOCOMO_SPICT); 620 locomo_writel(save->LCM_GPE, lchip->base + LOCOMO_GPE); 621 locomo_writel(save->LCM_ASD, lchip->base + LOCOMO_ASD); 622 + locomo_writel(save->LCM_SPIMD, lchip->base + LOCOMO_SPI + LOCOMO_SPIMD); 623 624 locomo_writel(0x00, lchip->base + LOCOMO_C32K); 625 locomo_writel(0x90, lchip->base + LOCOMO_TADC); ··· 688 689 /* GPIO */ 690 locomo_writel(0, lchip->base + LOCOMO_GPO); 691 + locomo_writel((LOCOMO_GPIO(1) | LOCOMO_GPIO(2) | LOCOMO_GPIO(13) | LOCOMO_GPIO(14)) 692 , lchip->base + LOCOMO_GPE); 693 + locomo_writel((LOCOMO_GPIO(1) | LOCOMO_GPIO(2) | LOCOMO_GPIO(13) | LOCOMO_GPIO(14)) 694 , lchip->base + LOCOMO_GPD); 695 locomo_writel(0, lchip->base + LOCOMO_GIE); 696 ··· 833 spin_lock_irqsave(&lchip->lock, flags); 834 835 r = locomo_readl(lchip->base + LOCOMO_GPD); 836 + if (dir) 837 + r |= bits; 838 + else 839 + r &= ~bits; 840 locomo_writel(r, lchip->base + LOCOMO_GPD); 841 842 r = locomo_readl(lchip->base + LOCOMO_GPE);
+2
arch/arm/kernel/armksyms.c
··· 179 EXPORT_SYMBOL(_find_first_bit_be); 180 EXPORT_SYMBOL(_find_next_bit_be); 181 #endif
··· 179 EXPORT_SYMBOL(_find_first_bit_be); 180 EXPORT_SYMBOL(_find_next_bit_be); 181 #endif 182 + 183 + EXPORT_SYMBOL(copy_page);
+2
arch/arm/kernel/arthur.c
··· 90 91 module_init(arthur_init); 92 module_exit(arthur_exit);
··· 90 91 module_init(arthur_init); 92 module_exit(arthur_exit); 93 + 94 + MODULE_LICENSE("GPL");
+1 -1
arch/arm/mach-omap1/board-palmte.c
··· 63 KEY(1, 1, KEY_DOWN), 64 KEY(1, 2, KEY_UP), 65 KEY(1, 3, KEY_RIGHT), 66 - KEY(1, 4, KEY_CENTER), 67 0, 68 }; 69
··· 63 KEY(1, 1, KEY_DOWN), 64 KEY(1, 2, KEY_UP), 65 KEY(1, 3, KEY_RIGHT), 66 + KEY(1, 4, KEY_ENTER), 67 0, 68 }; 69
+1 -1
arch/arm/mach-omap1/board-palmz71.c
··· 65 KEY(1, 1, KEY_DOWN), 66 KEY(1, 2, KEY_UP), 67 KEY(1, 3, KEY_RIGHT), 68 - KEY(1, 4, KEY_CENTER), 69 KEY(2, 0, KEY_CAMERA), 70 0, 71 };
··· 65 KEY(1, 1, KEY_DOWN), 66 KEY(1, 2, KEY_UP), 67 KEY(1, 3, KEY_RIGHT), 68 + KEY(1, 4, KEY_ENTER), 69 KEY(2, 0, KEY_CAMERA), 70 0, 71 };
+1
arch/arm/mach-omap2/board-2430sdp.c
··· 208 209 static void __init omap_2430sdp_map_io(void) 210 { 211 omap2_map_common_io(); 212 } 213
··· 208 209 static void __init omap_2430sdp_map_io(void) 210 { 211 + omap2_set_globals_243x(); 212 omap2_map_common_io(); 213 } 214
+1
arch/arm/mach-omap2/board-apollon.c
··· 394 395 static void __init omap_apollon_map_io(void) 396 { 397 omap2_map_common_io(); 398 } 399
··· 394 395 static void __init omap_apollon_map_io(void) 396 { 397 + omap2_set_globals_242x(); 398 omap2_map_common_io(); 399 } 400
+1
arch/arm/mach-omap2/board-generic.c
··· 65 66 static void __init omap_generic_map_io(void) 67 { 68 omap2_map_common_io(); 69 } 70
··· 65 66 static void __init omap_generic_map_io(void) 67 { 68 + omap2_set_globals_242x(); /* should be 242x, 243x, or 343x */ 69 omap2_map_common_io(); 70 } 71
+1
arch/arm/mach-omap2/board-h4.c
··· 420 421 static void __init omap_h4_map_io(void) 422 { 423 omap2_map_common_io(); 424 } 425
··· 420 421 static void __init omap_h4_map_io(void) 422 { 423 + omap2_set_globals_242x(); 424 omap2_map_common_io(); 425 } 426
+3 -1
arch/arm/mach-omap2/clock.c
··· 205 /* REVISIT: What are the appropriate exclusions for 34XX? */ 206 /* OMAP3: ignore DSS-mod clocks */ 207 if (cpu_is_omap34xx() && 208 - (((u32)reg & ~0xff) == (u32)OMAP_CM_REGADDR(OMAP3430_DSS_MOD, 0))) 209 return; 210 211 /* Check if both functional and interface clocks
··· 205 /* REVISIT: What are the appropriate exclusions for 34XX? */ 206 /* OMAP3: ignore DSS-mod clocks */ 207 if (cpu_is_omap34xx() && 208 + (((u32)reg & ~0xff) == (u32)OMAP_CM_REGADDR(OMAP3430_DSS_MOD, 0) || 209 + ((((u32)reg & ~0xff) == (u32)OMAP_CM_REGADDR(CORE_MOD, 0)) && 210 + clk->enable_bit == OMAP3430_EN_SSI_SHIFT))) 211 return; 212 213 /* Check if both functional and interface clocks
+12 -9
arch/arm/mach-omap2/clock34xx.h
··· 836 .clksel_reg = OMAP_CM_REGADDR(PLL_MOD, OMAP3430ES2_CM_CLKSEL5), 837 .clksel_mask = OMAP3430ES2_DIV_120M_MASK, 838 .clksel = div16_dpll5_clksel, 839 - .flags = CLOCK_IN_OMAP3430ES2 | RATE_PROPAGATES, 840 .recalc = &omap2_clksel_recalc, 841 }; 842 ··· 1047 .name = "iva2_ck", 1048 .parent = &dpll2_m2_ck, 1049 .init = &omap2_init_clksel_parent, 1050 .clksel_reg = OMAP_CM_REGADDR(OMAP3430_IVA2_MOD, 1051 OMAP3430_CM_IDLEST_PLL), 1052 .clksel_mask = OMAP3430_ST_IVA2_CLK_MASK, 1053 .clksel = iva2_clksel, 1054 - .flags = CLOCK_IN_OMAP343X | RATE_PROPAGATES | 1055 - PARENT_CONTROLS_CLOCK, 1056 .recalc = &omap2_clksel_recalc, 1057 }; 1058 ··· 1838 static struct clk ssi_l4_ick = { 1839 .name = "ssi_l4_ick", 1840 .parent = &l4_ick, 1841 - .flags = CLOCK_IN_OMAP343X | RATE_PROPAGATES, 1842 .recalc = &followparent_recalc, 1843 }; 1844 ··· 2347 .name = "gpio6_fck", 2348 .parent = &per_32k_alwon_fck, 2349 .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_FCLKEN), 2350 - .enable_bit = OMAP3430_EN_GPT6_SHIFT, 2351 .flags = CLOCK_IN_OMAP343X, 2352 .recalc = &followparent_recalc, 2353 }; ··· 2356 .name = "gpio5_fck", 2357 .parent = &per_32k_alwon_fck, 2358 .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_FCLKEN), 2359 - .enable_bit = OMAP3430_EN_GPT5_SHIFT, 2360 .flags = CLOCK_IN_OMAP343X, 2361 .recalc = &followparent_recalc, 2362 }; ··· 2365 .name = "gpio4_fck", 2366 .parent = &per_32k_alwon_fck, 2367 .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_FCLKEN), 2368 - .enable_bit = OMAP3430_EN_GPT4_SHIFT, 2369 .flags = CLOCK_IN_OMAP343X, 2370 .recalc = &followparent_recalc, 2371 }; ··· 2374 .name = "gpio3_fck", 2375 .parent = &per_32k_alwon_fck, 2376 .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_FCLKEN), 2377 - .enable_bit = OMAP3430_EN_GPT3_SHIFT, 2378 .flags = CLOCK_IN_OMAP343X, 2379 .recalc = &followparent_recalc, 2380 }; ··· 2383 .name = "gpio2_fck", 2384 .parent = &per_32k_alwon_fck, 2385 .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_FCLKEN), 2386 - .enable_bit = OMAP3430_EN_GPT2_SHIFT, 2387 .flags = CLOCK_IN_OMAP343X, 2388 .recalc = &followparent_recalc, 2389 };
··· 836 .clksel_reg = OMAP_CM_REGADDR(PLL_MOD, OMAP3430ES2_CM_CLKSEL5), 837 .clksel_mask = OMAP3430ES2_DIV_120M_MASK, 838 .clksel = div16_dpll5_clksel, 839 + .flags = CLOCK_IN_OMAP3430ES2 | RATE_PROPAGATES | 840 + PARENT_CONTROLS_CLOCK, 841 .recalc = &omap2_clksel_recalc, 842 }; 843 ··· 1046 .name = "iva2_ck", 1047 .parent = &dpll2_m2_ck, 1048 .init = &omap2_init_clksel_parent, 1049 + .enable_reg = OMAP_CM_REGADDR(OMAP3430_IVA2_MOD, CM_FCLKEN), 1050 + .enable_bit = OMAP3430_CM_FCLKEN_IVA2_EN_IVA2_SHIFT, 1051 .clksel_reg = OMAP_CM_REGADDR(OMAP3430_IVA2_MOD, 1052 OMAP3430_CM_IDLEST_PLL), 1053 .clksel_mask = OMAP3430_ST_IVA2_CLK_MASK, 1054 .clksel = iva2_clksel, 1055 + .flags = CLOCK_IN_OMAP343X | RATE_PROPAGATES, 1056 .recalc = &omap2_clksel_recalc, 1057 }; 1058 ··· 1836 static struct clk ssi_l4_ick = { 1837 .name = "ssi_l4_ick", 1838 .parent = &l4_ick, 1839 + .flags = CLOCK_IN_OMAP343X | RATE_PROPAGATES | 1840 + PARENT_CONTROLS_CLOCK, 1841 .recalc = &followparent_recalc, 1842 }; 1843 ··· 2344 .name = "gpio6_fck", 2345 .parent = &per_32k_alwon_fck, 2346 .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_FCLKEN), 2347 + .enable_bit = OMAP3430_EN_GPIO6_SHIFT, 2348 .flags = CLOCK_IN_OMAP343X, 2349 .recalc = &followparent_recalc, 2350 }; ··· 2353 .name = "gpio5_fck", 2354 .parent = &per_32k_alwon_fck, 2355 .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_FCLKEN), 2356 + .enable_bit = OMAP3430_EN_GPIO5_SHIFT, 2357 .flags = CLOCK_IN_OMAP343X, 2358 .recalc = &followparent_recalc, 2359 }; ··· 2362 .name = "gpio4_fck", 2363 .parent = &per_32k_alwon_fck, 2364 .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_FCLKEN), 2365 + .enable_bit = OMAP3430_EN_GPIO4_SHIFT, 2366 .flags = CLOCK_IN_OMAP343X, 2367 .recalc = &followparent_recalc, 2368 }; ··· 2371 .name = "gpio3_fck", 2372 .parent = &per_32k_alwon_fck, 2373 .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_FCLKEN), 2374 + .enable_bit = OMAP3430_EN_GPIO3_SHIFT, 2375 .flags = CLOCK_IN_OMAP343X, 2376 .recalc = &followparent_recalc, 2377 }; ··· 2380 .name = "gpio2_fck", 2381 .parent = &per_32k_alwon_fck, 2382 .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_FCLKEN), 2383 + .enable_bit = OMAP3430_EN_GPIO2_SHIFT, 2384 .flags = CLOCK_IN_OMAP343X, 2385 .recalc = &followparent_recalc, 2386 };
+1
arch/arm/mach-omap2/cm-regbits-34xx.h
··· 56 57 /* CM_FCLKEN_IVA2 */ 58 #define OMAP3430_CM_FCLKEN_IVA2_EN_IVA2 (1 << 0) 59 60 /* CM_CLKEN_PLL_IVA2 */ 61 #define OMAP3430_IVA2_DPLL_RAMPTIME_SHIFT 8
··· 56 57 /* CM_FCLKEN_IVA2 */ 58 #define OMAP3430_CM_FCLKEN_IVA2_EN_IVA2 (1 << 0) 59 + #define OMAP3430_CM_FCLKEN_IVA2_EN_IVA2_SHIFT 0 60 61 /* CM_CLKEN_PLL_IVA2 */ 62 #define OMAP3430_IVA2_DPLL_RAMPTIME_SHIFT 8
+15 -10
arch/arm/mach-omap2/mailbox.c
··· 70 71 static struct clk *mbox_ick_handle; 72 73 static inline unsigned int mbox_read_reg(unsigned int reg) 74 { 75 return __raw_readl(mbox_base + reg); ··· 84 } 85 86 /* Mailbox H/W preparations */ 87 - static inline int omap2_mbox_startup(struct omap_mbox *mbox) 88 { 89 unsigned int l; 90 ··· 100 l |= 0x00000011; 101 mbox_write_reg(l, MAILBOX_SYSCONFIG); 102 103 return 0; 104 } 105 106 - static inline void omap2_mbox_shutdown(struct omap_mbox *mbox) 107 { 108 clk_disable(mbox_ick_handle); 109 clk_put(mbox_ick_handle); 110 } 111 112 /* Mailbox FIFO handle functions */ 113 - static inline mbox_msg_t omap2_mbox_fifo_read(struct omap_mbox *mbox) 114 { 115 struct omap_mbox2_fifo *fifo = 116 &((struct omap_mbox2_priv *)mbox->priv)->rx_fifo; 117 return (mbox_msg_t) mbox_read_reg(fifo->msg); 118 } 119 120 - static inline void omap2_mbox_fifo_write(struct omap_mbox *mbox, mbox_msg_t msg) 121 { 122 struct omap_mbox2_fifo *fifo = 123 &((struct omap_mbox2_priv *)mbox->priv)->tx_fifo; 124 mbox_write_reg(msg, fifo->msg); 125 } 126 127 - static inline int omap2_mbox_fifo_empty(struct omap_mbox *mbox) 128 { 129 struct omap_mbox2_fifo *fifo = 130 &((struct omap_mbox2_priv *)mbox->priv)->rx_fifo; 131 return (mbox_read_reg(fifo->msg_stat) == 0); 132 } 133 134 - static inline int omap2_mbox_fifo_full(struct omap_mbox *mbox) 135 { 136 struct omap_mbox2_fifo *fifo = 137 &((struct omap_mbox2_priv *)mbox->priv)->tx_fifo; ··· 141 } 142 143 /* Mailbox IRQ handle functions */ 144 - static inline void omap2_mbox_enable_irq(struct omap_mbox *mbox, 145 omap_mbox_type_t irq) 146 { 147 struct omap_mbox2_priv *p = (struct omap_mbox2_priv *)mbox->priv; ··· 152 mbox_write_reg(l, p->irqenable); 153 } 154 155 - static inline void omap2_mbox_disable_irq(struct omap_mbox *mbox, 156 omap_mbox_type_t irq) 157 { 158 struct omap_mbox2_priv *p = (struct omap_mbox2_priv *)mbox->priv; ··· 163 mbox_write_reg(l, p->irqenable); 164 } 165 166 - static inline void omap2_mbox_ack_irq(struct omap_mbox *mbox, 167 omap_mbox_type_t irq) 168 { 169 struct omap_mbox2_priv *p = (struct omap_mbox2_priv *)mbox->priv; ··· 172 mbox_write_reg(bit, p->irqstatus); 173 } 174 175 - static inline int omap2_mbox_is_irq(struct omap_mbox *mbox, 176 omap_mbox_type_t irq) 177 { 178 struct omap_mbox2_priv *p = (struct omap_mbox2_priv *)mbox->priv;
··· 70 71 static struct clk *mbox_ick_handle; 72 73 + static void omap2_mbox_enable_irq(struct omap_mbox *mbox, 74 + omap_mbox_type_t irq); 75 + 76 static inline unsigned int mbox_read_reg(unsigned int reg) 77 { 78 return __raw_readl(mbox_base + reg); ··· 81 } 82 83 /* Mailbox H/W preparations */ 84 + static int omap2_mbox_startup(struct omap_mbox *mbox) 85 { 86 unsigned int l; 87 ··· 97 l |= 0x00000011; 98 mbox_write_reg(l, MAILBOX_SYSCONFIG); 99 100 + omap2_mbox_enable_irq(mbox, IRQ_RX); 101 + 102 return 0; 103 } 104 105 + static void omap2_mbox_shutdown(struct omap_mbox *mbox) 106 { 107 clk_disable(mbox_ick_handle); 108 clk_put(mbox_ick_handle); 109 } 110 111 /* Mailbox FIFO handle functions */ 112 + static mbox_msg_t omap2_mbox_fifo_read(struct omap_mbox *mbox) 113 { 114 struct omap_mbox2_fifo *fifo = 115 &((struct omap_mbox2_priv *)mbox->priv)->rx_fifo; 116 return (mbox_msg_t) mbox_read_reg(fifo->msg); 117 } 118 119 + static void omap2_mbox_fifo_write(struct omap_mbox *mbox, mbox_msg_t msg) 120 { 121 struct omap_mbox2_fifo *fifo = 122 &((struct omap_mbox2_priv *)mbox->priv)->tx_fifo; 123 mbox_write_reg(msg, fifo->msg); 124 } 125 126 + static int omap2_mbox_fifo_empty(struct omap_mbox *mbox) 127 { 128 struct omap_mbox2_fifo *fifo = 129 &((struct omap_mbox2_priv *)mbox->priv)->rx_fifo; 130 return (mbox_read_reg(fifo->msg_stat) == 0); 131 } 132 133 + static int omap2_mbox_fifo_full(struct omap_mbox *mbox) 134 { 135 struct omap_mbox2_fifo *fifo = 136 &((struct omap_mbox2_priv *)mbox->priv)->tx_fifo; ··· 136 } 137 138 /* Mailbox IRQ handle functions */ 139 + static void omap2_mbox_enable_irq(struct omap_mbox *mbox, 140 omap_mbox_type_t irq) 141 { 142 struct omap_mbox2_priv *p = (struct omap_mbox2_priv *)mbox->priv; ··· 147 mbox_write_reg(l, p->irqenable); 148 } 149 150 + static void omap2_mbox_disable_irq(struct omap_mbox *mbox, 151 omap_mbox_type_t irq) 152 { 153 struct omap_mbox2_priv *p = (struct omap_mbox2_priv *)mbox->priv; ··· 158 mbox_write_reg(l, p->irqenable); 159 } 160 161 + static void omap2_mbox_ack_irq(struct omap_mbox *mbox, 162 omap_mbox_type_t irq) 163 { 164 struct omap_mbox2_priv *p = (struct omap_mbox2_priv *)mbox->priv; ··· 167 mbox_write_reg(bit, p->irqstatus); 168 } 169 170 + static int omap2_mbox_is_irq(struct omap_mbox *mbox, 171 omap_mbox_type_t irq) 172 { 173 struct omap_mbox2_priv *p = (struct omap_mbox2_priv *)mbox->priv;
+1 -1
arch/arm/mach-omap2/prm.h
··· 30 31 /* 32 * Architecture-specific global PRM registers 33 - * Use prm_{read,write}_reg() with these registers. 34 * 35 * With a few exceptions, these are the register names beginning with 36 * PRCM_* on 24xx, and PRM_* on 34xx. (The exceptions are the
··· 30 31 /* 32 * Architecture-specific global PRM registers 33 + * Use __raw_{read,write}l() with these registers. 34 * 35 * With a few exceptions, these are the register names beginning with 36 * PRCM_* on 24xx, and PRM_* on 34xx. (The exceptions are the
+1 -1
arch/arm/mach-orion5x/dns323-setup.c
··· 58 } 59 60 static struct hw_pci dns323_pci __initdata = { 61 - .nr_controllers = 1, 62 .swizzle = pci_std_swizzle, 63 .setup = orion5x_pci_sys_setup, 64 .scan = orion5x_pci_sys_scan_bus,
··· 58 } 59 60 static struct hw_pci dns323_pci __initdata = { 61 + .nr_controllers = 2, 62 .swizzle = pci_std_swizzle, 63 .setup = orion5x_pci_sys_setup, 64 .scan = orion5x_pci_sys_scan_bus,
+1 -1
arch/arm/mach-orion5x/kurobox_pro-setup.c
··· 138 } 139 140 static struct hw_pci kurobox_pro_pci __initdata = { 141 - .nr_controllers = 1, 142 .swizzle = pci_std_swizzle, 143 .setup = orion5x_pci_sys_setup, 144 .scan = orion5x_pci_sys_scan_bus,
··· 138 } 139 140 static struct hw_pci kurobox_pro_pci __initdata = { 141 + .nr_controllers = 2, 142 .swizzle = pci_std_swizzle, 143 .setup = orion5x_pci_sys_setup, 144 .scan = orion5x_pci_sys_scan_bus,
+1 -2
arch/arm/mach-pxa/colibri.c
··· 98 [2] = { 99 .start = COLIBRI_ETH_IRQ, 100 .end = COLIBRI_ETH_IRQ, 101 - .flags = IORESOURCE_IRQ, 102 }, 103 }; 104 ··· 119 /* DM9000 LAN */ 120 pxa_gpio_mode(GPIO78_nCS_2_MD); 121 pxa_gpio_mode(GPIO_DM9000 | GPIO_IN); 122 - set_irq_type(COLIBRI_ETH_IRQ, IRQT_FALLING); 123 124 platform_add_devices(colibri_devices, ARRAY_SIZE(colibri_devices)); 125 }
··· 98 [2] = { 99 .start = COLIBRI_ETH_IRQ, 100 .end = COLIBRI_ETH_IRQ, 101 + .flags = IORESOURCE_IRQ | IRQF_TRIGGER_RISING, 102 }, 103 }; 104 ··· 119 /* DM9000 LAN */ 120 pxa_gpio_mode(GPIO78_nCS_2_MD); 121 pxa_gpio_mode(GPIO_DM9000 | GPIO_IN); 122 123 platform_add_devices(colibri_devices, ARRAY_SIZE(colibri_devices)); 124 }
+1
arch/arm/mach-pxa/spitz.c
··· 38 #include <asm/arch/pxa-regs.h> 39 #include <asm/arch/pxa2xx-regs.h> 40 #include <asm/arch/pxa2xx-gpio.h> 41 #include <asm/arch/irda.h> 42 #include <asm/arch/mmc.h> 43 #include <asm/arch/ohci.h>
··· 38 #include <asm/arch/pxa-regs.h> 39 #include <asm/arch/pxa2xx-regs.h> 40 #include <asm/arch/pxa2xx-gpio.h> 41 + #include <asm/arch/pxa27x-udc.h> 42 #include <asm/arch/irda.h> 43 #include <asm/arch/mmc.h> 44 #include <asm/arch/ohci.h>
+1 -1
arch/arm/mm/proc-arm925.S
··· 332 #ifndef CONFIG_CPU_DCACHE_WRITETHROUGH 333 mcr p15, 0, r0, c7, c14, 1 @ clean+invalidate D entry 334 #else 335 - mcr p15, 0, r0, c7, c10, 1 @ clean D entry 336 #endif 337 add r0, r0, #CACHE_DLINESIZE 338 cmp r0, r1
··· 332 #ifndef CONFIG_CPU_DCACHE_WRITETHROUGH 333 mcr p15, 0, r0, c7, c14, 1 @ clean+invalidate D entry 334 #else 335 + mcr p15, 0, r0, c7, c6, 1 @ invalidate D entry 336 #endif 337 add r0, r0, #CACHE_DLINESIZE 338 cmp r0, r1
+1 -1
arch/arm/mm/proc-arm926.S
··· 295 #ifndef CONFIG_CPU_DCACHE_WRITETHROUGH 296 mcr p15, 0, r0, c7, c14, 1 @ clean+invalidate D entry 297 #else 298 - mcr p15, 0, r0, c7, c10, 1 @ clean D entry 299 #endif 300 add r0, r0, #CACHE_DLINESIZE 301 cmp r0, r1
··· 295 #ifndef CONFIG_CPU_DCACHE_WRITETHROUGH 296 mcr p15, 0, r0, c7, c14, 1 @ clean+invalidate D entry 297 #else 298 + mcr p15, 0, r0, c7, c6, 1 @ invalidate D entry 299 #endif 300 add r0, r0, #CACHE_DLINESIZE 301 cmp r0, r1
+1 -1
arch/arm/mm/proc-arm940.S
··· 222 #ifndef CONFIG_CPU_DCACHE_WRITETHROUGH 223 mcr p15, 0, r3, c7, c14, 2 @ clean/flush D entry 224 #else 225 - mcr p15, 0, r3, c7, c10, 2 @ clean D entry 226 #endif 227 subs r3, r3, #1 << 26 228 bcs 2b @ entries 63 to 0
··· 222 #ifndef CONFIG_CPU_DCACHE_WRITETHROUGH 223 mcr p15, 0, r3, c7, c14, 2 @ clean/flush D entry 224 #else 225 + mcr p15, 0, r3, c7, c6, 2 @ invalidate D entry 226 #endif 227 subs r3, r3, #1 << 26 228 bcs 2b @ entries 63 to 0
+1 -1
arch/arm/mm/proc-arm946.S
··· 265 #ifndef CONFIG_CPU_DCACHE_WRITETHROUGH 266 mcr p15, 0, r0, c7, c14, 1 @ clean+invalidate D entry 267 #else 268 - mcr p15, 0, r0, c7, c10, 1 @ clean D entry 269 #endif 270 add r0, r0, #CACHE_DLINESIZE 271 cmp r0, r1
··· 265 #ifndef CONFIG_CPU_DCACHE_WRITETHROUGH 266 mcr p15, 0, r0, c7, c14, 1 @ clean+invalidate D entry 267 #else 268 + mcr p15, 0, r0, c7, c6, 1 @ invalidate D entry 269 #endif 270 add r0, r0, #CACHE_DLINESIZE 271 cmp r0, r1
+9 -1
arch/arm/plat-omap/clock.c
··· 134 return; 135 136 spin_lock_irqsave(&clockfw_lock, flags); 137 - BUG_ON(clk->usecount == 0); 138 if (arch_clock->clk_disable) 139 arch_clock->clk_disable(clk); 140 spin_unlock_irqrestore(&clockfw_lock, flags); 141 } 142 EXPORT_SYMBOL(clk_disable);
··· 134 return; 135 136 spin_lock_irqsave(&clockfw_lock, flags); 137 + if (clk->usecount == 0) { 138 + printk(KERN_ERR "Trying disable clock %s with 0 usecount\n", 139 + clk->name); 140 + WARN_ON(1); 141 + goto out; 142 + } 143 + 144 if (arch_clock->clk_disable) 145 arch_clock->clk_disable(clk); 146 + 147 + out: 148 spin_unlock_irqrestore(&clockfw_lock, flags); 149 } 150 EXPORT_SYMBOL(clk_disable);
+1 -1
arch/arm/plat-omap/dma.c
··· 604 chan->data = data; 605 #ifndef CONFIG_ARCH_OMAP1 606 chan->chain_id = -1; 607 #endif 608 chan->enabled_irqs = OMAP_DMA_DROP_IRQ | OMAP_DMA_BLOCK_IRQ; 609 ··· 1088 printk(KERN_ERR "omap_dma: Request failed %d\n", err); 1089 return err; 1090 } 1091 - dma_chan[channels[i]].next_linked_ch = -1; 1092 dma_chan[channels[i]].prev_linked_ch = -1; 1093 dma_chan[channels[i]].state = DMA_CH_NOTSTARTED; 1094
··· 604 chan->data = data; 605 #ifndef CONFIG_ARCH_OMAP1 606 chan->chain_id = -1; 607 + chan->next_linked_ch = -1; 608 #endif 609 chan->enabled_irqs = OMAP_DMA_DROP_IRQ | OMAP_DMA_BLOCK_IRQ; 610 ··· 1087 printk(KERN_ERR "omap_dma: Request failed %d\n", err); 1088 return err; 1089 } 1090 dma_chan[channels[i]].prev_linked_ch = -1; 1091 dma_chan[channels[i]].state = DMA_CH_NOTSTARTED; 1092
-1
arch/arm/plat-omap/mailbox.c
··· 355 "failed to register mailbox interrupt:%d\n", ret); 356 goto fail_request_irq; 357 } 358 - enable_mbox_irq(mbox, IRQ_RX); 359 360 mq = mbox_queue_alloc(mbox, mbox_txq_fn, mbox_tx_work); 361 if (!mq) {
··· 355 "failed to register mailbox interrupt:%d\n", ret); 356 goto fail_request_irq; 357 } 358 359 mq = mbox_queue_alloc(mbox, mbox_txq_fn, mbox_tx_work); 360 if (!mq) {
+2 -3
drivers/video/pxafb.c
··· 355 } 356 357 #ifdef CONFIG_CPU_FREQ 358 - pr_debug("pxafb: dma period = %d ps, clock = %d kHz\n", 359 - pxafb_display_dma_period(var), 360 - get_clk_frequency_khz(0)); 361 #endif 362 363 return 0;
··· 355 } 356 357 #ifdef CONFIG_CPU_FREQ 358 + pr_debug("pxafb: dma period = %d ps\n", 359 + pxafb_display_dma_period(var)); 360 #endif 361 362 return 0;
+4
include/asm-arm/arch-omap/common.h
··· 47 } 48 #endif 49 50 #endif /* __ARCH_ARM_MACH_OMAP_COMMON_H */
··· 47 } 48 #endif 49 50 + void omap2_set_globals_242x(void); 51 + void omap2_set_globals_243x(void); 52 + void omap2_set_globals_343x(void); 53 + 54 #endif /* __ARCH_ARM_MACH_OMAP_COMMON_H */
+1 -1
include/asm-arm/arch-omap/control.h
··· 80 #define OMAP24XX_CONTROL_SEC_TAP (OMAP2_CONTROL_GENERAL + 0x0064) 81 #define OMAP24XX_CONTROL_OCM_PUB_RAM_ADD (OMAP2_CONTROL_GENERAL + 0x006c) 82 #define OMAP24XX_CONTROL_EXT_SEC_RAM_START_ADD (OMAP2_CONTROL_GENERAL + 0x0070) 83 - #define OMAP24XX_CONTROL_EXT_SEC_RAM_STOP_ADD (OMAP2_CONTROL_GENERAL + 0x0074 84 #define OMAP24XX_CONTROL_SEC_STATUS (OMAP2_CONTROL_GENERAL + 0x0080) 85 #define OMAP24XX_CONTROL_SEC_ERR_STATUS (OMAP2_CONTROL_GENERAL + 0x0084) 86 #define OMAP24XX_CONTROL_STATUS (OMAP2_CONTROL_GENERAL + 0x0088)
··· 80 #define OMAP24XX_CONTROL_SEC_TAP (OMAP2_CONTROL_GENERAL + 0x0064) 81 #define OMAP24XX_CONTROL_OCM_PUB_RAM_ADD (OMAP2_CONTROL_GENERAL + 0x006c) 82 #define OMAP24XX_CONTROL_EXT_SEC_RAM_START_ADD (OMAP2_CONTROL_GENERAL + 0x0070) 83 + #define OMAP24XX_CONTROL_EXT_SEC_RAM_STOP_ADD (OMAP2_CONTROL_GENERAL + 0x0074) 84 #define OMAP24XX_CONTROL_SEC_STATUS (OMAP2_CONTROL_GENERAL + 0x0080) 85 #define OMAP24XX_CONTROL_SEC_ERR_STATUS (OMAP2_CONTROL_GENERAL + 0x0084) 86 #define OMAP24XX_CONTROL_STATUS (OMAP2_CONTROL_GENERAL + 0x0088)
+15 -9
include/asm-arm/arch-omap/mmc.h
··· 15 #include <linux/device.h> 16 #include <linux/mmc/host.h> 17 18 #define OMAP_MMC_MAX_SLOTS 2 19 20 struct omap_mmc_platform_data { 21 struct omap_mmc_conf conf; 22 23 - unsigned enabled:1; 24 /* number of slots on board */ 25 unsigned nr_slots:2; 26 - /* nomux means "standard" muxing is wrong on this board, and that 27 - * board-specific code handled it before common init logic. 28 - */ 29 - unsigned nomux:1; 30 - /* 4 wire signaling is optional, and is only used for SD/SDIO and 31 - * MMCv4 */ 32 - unsigned wire4:1; 33 /* set if your board has components or wiring that limits the 34 * maximum frequency on the MMC bus */ 35 unsigned int max_freq; ··· 35 * not supported */ 36 int (* init)(struct device *dev); 37 void (* cleanup)(struct device *dev); 38 39 struct omap_mmc_slot_data { 40 int (* set_bus_mode)(struct device *dev, int slot, int bus_mode); ··· 56 57 const char *name; 58 u32 ocr_mask; 59 } slots[OMAP_MMC_MAX_SLOTS]; 60 }; 61 62 extern void omap_set_mmc_info(int host, const struct omap_mmc_platform_data *info); 63 64 /* called from board-specific card detection service routine */ 65 - extern void omap_mmc_notify_card_detect(struct device *dev, int slot, int detected); 66 extern void omap_mmc_notify_cover_event(struct device *dev, int slot, int is_closed); 67 68 #endif
··· 15 #include <linux/device.h> 16 #include <linux/mmc/host.h> 17 18 + #include <asm/arch/board.h> 19 + 20 #define OMAP_MMC_MAX_SLOTS 2 21 22 struct omap_mmc_platform_data { 23 struct omap_mmc_conf conf; 24 25 /* number of slots on board */ 26 unsigned nr_slots:2; 27 + 28 /* set if your board has components or wiring that limits the 29 * maximum frequency on the MMC bus */ 30 unsigned int max_freq; ··· 40 * not supported */ 41 int (* init)(struct device *dev); 42 void (* cleanup)(struct device *dev); 43 + void (* shutdown)(struct device *dev); 44 + 45 + /* To handle board related suspend/resume functionality for MMC */ 46 + int (*suspend)(struct device *dev, int slot); 47 + int (*resume)(struct device *dev, int slot); 48 49 struct omap_mmc_slot_data { 50 int (* set_bus_mode)(struct device *dev, int slot, int bus_mode); ··· 56 57 const char *name; 58 u32 ocr_mask; 59 + 60 + /* Card detection IRQs */ 61 + int card_detect_irq; 62 + int (* card_detect)(int irq); 63 + 64 + unsigned int ban_openended:1; 65 + 66 } slots[OMAP_MMC_MAX_SLOTS]; 67 }; 68 69 extern void omap_set_mmc_info(int host, const struct omap_mmc_platform_data *info); 70 71 /* called from board-specific card detection service routine */ 72 extern void omap_mmc_notify_cover_event(struct device *dev, int slot, int is_closed); 73 74 #endif
+1 -1
include/asm-arm/arch-sa1100/irqs.h
··· 141 #define IRQ_LOCOMO_LT (IRQ_BOARD_END + 17) 142 #define IRQ_LOCOMO_SPI_RFR (IRQ_BOARD_END + 18) 143 #define IRQ_LOCOMO_SPI_RFW (IRQ_BOARD_END + 19) 144 - #define IRQ_LOCOMO_SPI_OVRN (IRQ_BOARD_END + 20) 145 #define IRQ_LOCOMO_SPI_TEND (IRQ_BOARD_END + 21) 146 147 /*
··· 141 #define IRQ_LOCOMO_LT (IRQ_BOARD_END + 17) 142 #define IRQ_LOCOMO_SPI_RFR (IRQ_BOARD_END + 18) 143 #define IRQ_LOCOMO_SPI_RFW (IRQ_BOARD_END + 19) 144 + #define IRQ_LOCOMO_SPI_REND (IRQ_BOARD_END + 20) 145 #define IRQ_LOCOMO_SPI_TEND (IRQ_BOARD_END + 21) 146 147 /*
+11 -8
include/asm-arm/hardware/locomo.h
··· 58 #define LOCOMO_SPIMD 0x00 /* SPI mode setting */ 59 #define LOCOMO_SPICT 0x04 /* SPI mode control */ 60 #define LOCOMO_SPIST 0x08 /* SPI status */ 61 #define LOCOMO_SPIIS 0x10 /* SPI interrupt status */ 62 #define LOCOMO_SPIWE 0x14 /* SPI interrupt status write enable */ 63 #define LOCOMO_SPIIE 0x18 /* SPI interrupt enable */ ··· 71 #define LOCOMO_SPIRD 0x24 /* SPI receive data read */ 72 #define LOCOMO_SPITS 0x28 /* SPI transfer data shift */ 73 #define LOCOMO_SPIRS 0x2C /* SPI receive data shift */ 74 - #define LOCOMO_SPI_TEND (1 << 3) /* Transfer end bit */ 75 - #define LOCOMO_SPI_OVRN (1 << 2) /* Over Run bit */ 76 - #define LOCOMO_SPI_RFW (1 << 1) /* write buffer bit */ 77 - #define LOCOMO_SPI_RFR (1) /* read buffer bit */ 78 79 /* GPIO */ 80 #define LOCOMO_GPD 0x90 /* GPIO direction */ 81 #define LOCOMO_GPE 0x94 /* GPIO input enable */ 82 #define LOCOMO_GPL 0x98 /* GPIO level */ 83 - #define LOCOMO_GPO 0x9c /* GPIO out data setteing */ 84 #define LOCOMO_GRIE 0xa0 /* GPIO rise detection */ 85 #define LOCOMO_GFIE 0xa4 /* GPIO fall detection */ 86 #define LOCOMO_GIS 0xa8 /* GPIO edge detection status */ ··· 97 #define LOCOMO_GPIO_DAC_SDATA LOCOMO_GPIO(10) 98 #define LOCOMO_GPIO_DAC_SCK LOCOMO_GPIO(11) 99 #define LOCOMO_GPIO_DAC_SLOAD LOCOMO_GPIO(12) 100 101 /* Start the definitions of the devices. Each device has an initial 102 * base address and a series of offsets from that base address. */ ··· 126 /* Audio controller */ 127 #define LOCOMO_AUDIO 0x54 128 #define LOCOMO_ACC 0x00 /* Audio clock */ 129 - #define LOCOMO_PAIF 0x7C /* PCM audio interface */ 130 /* Audio clock */ 131 #define LOCOMO_ACC_XON 0x80 132 #define LOCOMO_ACC_XEN 0x40 ··· 166 #define LOCOMO_DEVID_AUDIO 3 167 #define LOCOMO_DEVID_LED 4 168 #define LOCOMO_DEVID_UART 5 169 - #define LOCOMO_DEVID_SPI 6 170 171 struct locomo_dev { 172 struct device dev; ··· 207 int locomo_gpio_read_level(struct device *dev, unsigned int bits); 208 int locomo_gpio_read_output(struct device *dev, unsigned int bits); 209 void locomo_gpio_write(struct device *dev, unsigned int bits, unsigned int set); 210 - 211 212 /* M62332 control function */ 213 void locomo_m62332_senddata(struct locomo_dev *ldev, unsigned int dac_data, int channel);
··· 58 #define LOCOMO_SPIMD 0x00 /* SPI mode setting */ 59 #define LOCOMO_SPICT 0x04 /* SPI mode control */ 60 #define LOCOMO_SPIST 0x08 /* SPI status */ 61 + #define LOCOMO_SPI_TEND (1 << 3) /* Transfer end bit */ 62 + #define LOCOMO_SPI_REND (1 << 2) /* Receive end bit */ 63 + #define LOCOMO_SPI_RFW (1 << 1) /* write buffer bit */ 64 + #define LOCOMO_SPI_RFR (1) /* read buffer bit */ 65 + 66 #define LOCOMO_SPIIS 0x10 /* SPI interrupt status */ 67 #define LOCOMO_SPIWE 0x14 /* SPI interrupt status write enable */ 68 #define LOCOMO_SPIIE 0x18 /* SPI interrupt enable */ ··· 66 #define LOCOMO_SPIRD 0x24 /* SPI receive data read */ 67 #define LOCOMO_SPITS 0x28 /* SPI transfer data shift */ 68 #define LOCOMO_SPIRS 0x2C /* SPI receive data shift */ 69 70 /* GPIO */ 71 #define LOCOMO_GPD 0x90 /* GPIO direction */ 72 #define LOCOMO_GPE 0x94 /* GPIO input enable */ 73 #define LOCOMO_GPL 0x98 /* GPIO level */ 74 + #define LOCOMO_GPO 0x9c /* GPIO out data setting */ 75 #define LOCOMO_GRIE 0xa0 /* GPIO rise detection */ 76 #define LOCOMO_GFIE 0xa4 /* GPIO fall detection */ 77 #define LOCOMO_GIS 0xa8 /* GPIO edge detection status */ ··· 96 #define LOCOMO_GPIO_DAC_SDATA LOCOMO_GPIO(10) 97 #define LOCOMO_GPIO_DAC_SCK LOCOMO_GPIO(11) 98 #define LOCOMO_GPIO_DAC_SLOAD LOCOMO_GPIO(12) 99 + #define LOCOMO_GPIO_CARD_DETECT LOCOMO_GPIO(13) 100 + #define LOCOMO_GPIO_WRITE_PROT LOCOMO_GPIO(14) 101 + #define LOCOMO_GPIO_CARD_POWER LOCOMO_GPIO(15) 102 103 /* Start the definitions of the devices. Each device has an initial 104 * base address and a series of offsets from that base address. */ ··· 122 /* Audio controller */ 123 #define LOCOMO_AUDIO 0x54 124 #define LOCOMO_ACC 0x00 /* Audio clock */ 125 + #define LOCOMO_PAIF 0xD0 /* PCM audio interface */ 126 /* Audio clock */ 127 #define LOCOMO_ACC_XON 0x80 128 #define LOCOMO_ACC_XEN 0x40 ··· 162 #define LOCOMO_DEVID_AUDIO 3 163 #define LOCOMO_DEVID_LED 4 164 #define LOCOMO_DEVID_UART 5 165 + #define LOCOMO_DEVID_SPI 6 166 167 struct locomo_dev { 168 struct device dev; ··· 203 int locomo_gpio_read_level(struct device *dev, unsigned int bits); 204 int locomo_gpio_read_output(struct device *dev, unsigned int bits); 205 void locomo_gpio_write(struct device *dev, unsigned int bits, unsigned int set); 206 207 /* M62332 control function */ 208 void locomo_m62332_senddata(struct locomo_dev *ldev, unsigned int dac_data, int channel);