~ubuntu-branches/ubuntu/precise/linux-ti-omap4/precise

« back to all changes in this revision

Viewing changes to drivers/mfd/tc6393xb.c

  • Committer: Bazaar Package Importer
  • Author(s): Paolo Pisati
  • Date: 2011-06-29 15:23:51 UTC
  • mfrom: (26.1.1 natty-proposed)
  • Revision ID: james.westby@ubuntu.com-20110629152351-xs96tm303d95rpbk
Tags: 3.0.0-1200.2
* Rebased against 3.0.0-6.7
* BSP from TI based on 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
393
393
                .name = "tmio-mmc",
394
394
                .enable = tc6393xb_mmc_enable,
395
395
                .resume = tc6393xb_mmc_resume,
396
 
                .mfd_data = &tc6393xb_mmc_data,
 
396
                .platform_data = &tc6393xb_mmc_data,
 
397
                .pdata_size    = sizeof(tc6393xb_mmc_data),
397
398
                .num_resources = ARRAY_SIZE(tc6393xb_mmc_resources),
398
399
                .resources = tc6393xb_mmc_resources,
399
400
        },
513
514
static void
514
515
tc6393xb_irq(unsigned int irq, struct irq_desc *desc)
515
516
{
516
 
        struct tc6393xb *tc6393xb = get_irq_data(irq);
 
517
        struct tc6393xb *tc6393xb = irq_get_handler_data(irq);
517
518
        unsigned int isr;
518
519
        unsigned int i, irq_base;
519
520
 
572
573
        irq_base = tc6393xb->irq_base;
573
574
 
574
575
        for (irq = irq_base; irq < irq_base + TC6393XB_NR_IRQS; irq++) {
575
 
                set_irq_chip(irq, &tc6393xb_chip);
576
 
                set_irq_chip_data(irq, tc6393xb);
577
 
                set_irq_handler(irq, handle_edge_irq);
 
576
                irq_set_chip_and_handler(irq, &tc6393xb_chip, handle_edge_irq);
 
577
                irq_set_chip_data(irq, tc6393xb);
578
578
                set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
579
579
        }
580
580
 
581
 
        set_irq_type(tc6393xb->irq, IRQ_TYPE_EDGE_FALLING);
582
 
        set_irq_data(tc6393xb->irq, tc6393xb);
583
 
        set_irq_chained_handler(tc6393xb->irq, tc6393xb_irq);
 
581
        irq_set_irq_type(tc6393xb->irq, IRQ_TYPE_EDGE_FALLING);
 
582
        irq_set_handler_data(tc6393xb->irq, tc6393xb);
 
583
        irq_set_chained_handler(tc6393xb->irq, tc6393xb_irq);
584
584
}
585
585
 
586
586
static void tc6393xb_detach_irq(struct platform_device *dev)
588
588
        struct tc6393xb *tc6393xb = platform_get_drvdata(dev);
589
589
        unsigned int irq, irq_base;
590
590
 
591
 
        set_irq_chained_handler(tc6393xb->irq, NULL);
592
 
        set_irq_data(tc6393xb->irq, NULL);
 
591
        irq_set_chained_handler(tc6393xb->irq, NULL);
 
592
        irq_set_handler_data(tc6393xb->irq, NULL);
593
593
 
594
594
        irq_base = tc6393xb->irq_base;
595
595
 
596
596
        for (irq = irq_base; irq < irq_base + TC6393XB_NR_IRQS; irq++) {
597
597
                set_irq_flags(irq, 0);
598
 
                set_irq_chip(irq, NULL);
599
 
                set_irq_chip_data(irq, NULL);
 
598
                irq_set_chip(irq, NULL);
 
599
                irq_set_chip_data(irq, NULL);
600
600
        }
601
601
}
602
602
 
693
693
                        goto err_setup;
694
694
        }
695
695
 
696
 
        tc6393xb_cells[TC6393XB_CELL_NAND].mfd_data = tcpd->nand_data;
697
 
        tc6393xb_cells[TC6393XB_CELL_FB].mfd_data = tcpd->fb_data;
 
696
        tc6393xb_cells[TC6393XB_CELL_NAND].platform_data = tcpd->nand_data;
 
697
        tc6393xb_cells[TC6393XB_CELL_NAND].pdata_size =
 
698
                                                sizeof(*tcpd->nand_data);
 
699
        tc6393xb_cells[TC6393XB_CELL_FB].platform_data = tcpd->fb_data;
 
700
        tc6393xb_cells[TC6393XB_CELL_FB].pdata_size = sizeof(*tcpd->fb_data);
698
701
 
699
702
        ret = mfd_add_devices(&dev->dev, dev->id,
700
703
                        tc6393xb_cells, ARRAY_SIZE(tc6393xb_cells),