diff options
author | Magnus Damm <damm@opensource.se> | 2011-04-27 23:21:00 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2011-05-23 23:17:40 -0400 |
commit | 6822471e29a41f5a245d521a7d95868a5434fd16 (patch) | |
tree | 52fffa3e56ee0e6238d1d9dfafd142edec6ae697 /arch/arm/mach-shmobile | |
parent | de3283511f5bf305a8c36b8413d9834e4e7e26c5 (diff) |
ARM: mach-shmobile: sh7372 UIO platform data V3
Export the following sh7372 multimedia hardware blocks
using UIO: VPU, VEU[0-3], JPU and SPU2[0-1]
Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/arm/mach-shmobile')
-rw-r--r-- | arch/arm/mach-shmobile/setup-sh7372.c | 217 |
1 files changed, 217 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/setup-sh7372.c b/arch/arm/mach-shmobile/setup-sh7372.c index ff0494f3d00c..cd807eea69e2 100644 --- a/arch/arm/mach-shmobile/setup-sh7372.c +++ b/arch/arm/mach-shmobile/setup-sh7372.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <linux/interrupt.h> | 22 | #include <linux/interrupt.h> |
23 | #include <linux/irq.h> | 23 | #include <linux/irq.h> |
24 | #include <linux/platform_device.h> | 24 | #include <linux/platform_device.h> |
25 | #include <linux/uio_driver.h> | ||
25 | #include <linux/delay.h> | 26 | #include <linux/delay.h> |
26 | #include <linux/input.h> | 27 | #include <linux/input.h> |
27 | #include <linux/io.h> | 28 | #include <linux/io.h> |
@@ -601,6 +602,214 @@ static struct platform_device dma2_device = { | |||
601 | }, | 602 | }, |
602 | }; | 603 | }; |
603 | 604 | ||
605 | /* VPU */ | ||
606 | static struct uio_info vpu_platform_data = { | ||
607 | .name = "VPU5HG", | ||
608 | .version = "0", | ||
609 | .irq = intcs_evt2irq(0x980), | ||
610 | }; | ||
611 | |||
612 | static struct resource vpu_resources[] = { | ||
613 | [0] = { | ||
614 | .name = "VPU", | ||
615 | .start = 0xfe900000, | ||
616 | .end = 0xfe900157, | ||
617 | .flags = IORESOURCE_MEM, | ||
618 | }, | ||
619 | }; | ||
620 | |||
621 | static struct platform_device vpu_device = { | ||
622 | .name = "uio_pdrv_genirq", | ||
623 | .id = 0, | ||
624 | .dev = { | ||
625 | .platform_data = &vpu_platform_data, | ||
626 | }, | ||
627 | .resource = vpu_resources, | ||
628 | .num_resources = ARRAY_SIZE(vpu_resources), | ||
629 | }; | ||
630 | |||
631 | /* VEU0 */ | ||
632 | static struct uio_info veu0_platform_data = { | ||
633 | .name = "VEU0", | ||
634 | .version = "0", | ||
635 | .irq = intcs_evt2irq(0x700), | ||
636 | }; | ||
637 | |||
638 | static struct resource veu0_resources[] = { | ||
639 | [0] = { | ||
640 | .name = "VEU0", | ||
641 | .start = 0xfe920000, | ||
642 | .end = 0xfe9200cb, | ||
643 | .flags = IORESOURCE_MEM, | ||
644 | }, | ||
645 | }; | ||
646 | |||
647 | static struct platform_device veu0_device = { | ||
648 | .name = "uio_pdrv_genirq", | ||
649 | .id = 1, | ||
650 | .dev = { | ||
651 | .platform_data = &veu0_platform_data, | ||
652 | }, | ||
653 | .resource = veu0_resources, | ||
654 | .num_resources = ARRAY_SIZE(veu0_resources), | ||
655 | }; | ||
656 | |||
657 | /* VEU1 */ | ||
658 | static struct uio_info veu1_platform_data = { | ||
659 | .name = "VEU1", | ||
660 | .version = "0", | ||
661 | .irq = intcs_evt2irq(0x720), | ||
662 | }; | ||
663 | |||
664 | static struct resource veu1_resources[] = { | ||
665 | [0] = { | ||
666 | .name = "VEU1", | ||
667 | .start = 0xfe924000, | ||
668 | .end = 0xfe9240cb, | ||
669 | .flags = IORESOURCE_MEM, | ||
670 | }, | ||
671 | }; | ||
672 | |||
673 | static struct platform_device veu1_device = { | ||
674 | .name = "uio_pdrv_genirq", | ||
675 | .id = 2, | ||
676 | .dev = { | ||
677 | .platform_data = &veu1_platform_data, | ||
678 | }, | ||
679 | .resource = veu1_resources, | ||
680 | .num_resources = ARRAY_SIZE(veu1_resources), | ||
681 | }; | ||
682 | |||
683 | /* VEU2 */ | ||
684 | static struct uio_info veu2_platform_data = { | ||
685 | .name = "VEU2", | ||
686 | .version = "0", | ||
687 | .irq = intcs_evt2irq(0x740), | ||
688 | }; | ||
689 | |||
690 | static struct resource veu2_resources[] = { | ||
691 | [0] = { | ||
692 | .name = "VEU2", | ||
693 | .start = 0xfe928000, | ||
694 | .end = 0xfe928307, | ||
695 | .flags = IORESOURCE_MEM, | ||
696 | }, | ||
697 | }; | ||
698 | |||
699 | static struct platform_device veu2_device = { | ||
700 | .name = "uio_pdrv_genirq", | ||
701 | .id = 3, | ||
702 | .dev = { | ||
703 | .platform_data = &veu2_platform_data, | ||
704 | }, | ||
705 | .resource = veu2_resources, | ||
706 | .num_resources = ARRAY_SIZE(veu2_resources), | ||
707 | }; | ||
708 | |||
709 | /* VEU3 */ | ||
710 | static struct uio_info veu3_platform_data = { | ||
711 | .name = "VEU3", | ||
712 | .version = "0", | ||
713 | .irq = intcs_evt2irq(0x760), | ||
714 | }; | ||
715 | |||
716 | static struct resource veu3_resources[] = { | ||
717 | [0] = { | ||
718 | .name = "VEU3", | ||
719 | .start = 0xfe92c000, | ||
720 | .end = 0xfe92c307, | ||
721 | .flags = IORESOURCE_MEM, | ||
722 | }, | ||
723 | }; | ||
724 | |||
725 | static struct platform_device veu3_device = { | ||
726 | .name = "uio_pdrv_genirq", | ||
727 | .id = 4, | ||
728 | .dev = { | ||
729 | .platform_data = &veu3_platform_data, | ||
730 | }, | ||
731 | .resource = veu3_resources, | ||
732 | .num_resources = ARRAY_SIZE(veu3_resources), | ||
733 | }; | ||
734 | |||
735 | /* JPU */ | ||
736 | static struct uio_info jpu_platform_data = { | ||
737 | .name = "JPU", | ||
738 | .version = "0", | ||
739 | .irq = intcs_evt2irq(0x560), | ||
740 | }; | ||
741 | |||
742 | static struct resource jpu_resources[] = { | ||
743 | [0] = { | ||
744 | .name = "JPU", | ||
745 | .start = 0xfe980000, | ||
746 | .end = 0xfe9902d3, | ||
747 | .flags = IORESOURCE_MEM, | ||
748 | }, | ||
749 | }; | ||
750 | |||
751 | static struct platform_device jpu_device = { | ||
752 | .name = "uio_pdrv_genirq", | ||
753 | .id = 5, | ||
754 | .dev = { | ||
755 | .platform_data = &jpu_platform_data, | ||
756 | }, | ||
757 | .resource = jpu_resources, | ||
758 | .num_resources = ARRAY_SIZE(jpu_resources), | ||
759 | }; | ||
760 | |||
761 | /* SPU2DSP0 */ | ||
762 | static struct uio_info spu0_platform_data = { | ||
763 | .name = "SPU2DSP0", | ||
764 | .version = "0", | ||
765 | .irq = evt2irq(0x1800), | ||
766 | }; | ||
767 | |||
768 | static struct resource spu0_resources[] = { | ||
769 | [0] = { | ||
770 | .name = "SPU2DSP0", | ||
771 | .start = 0xfe200000, | ||
772 | .end = 0xfe2fffff, | ||
773 | .flags = IORESOURCE_MEM, | ||
774 | }, | ||
775 | }; | ||
776 | |||
777 | static struct platform_device spu0_device = { | ||
778 | .name = "uio_pdrv_genirq", | ||
779 | .id = 6, | ||
780 | .dev = { | ||
781 | .platform_data = &spu0_platform_data, | ||
782 | }, | ||
783 | .resource = spu0_resources, | ||
784 | .num_resources = ARRAY_SIZE(spu0_resources), | ||
785 | }; | ||
786 | |||
787 | /* SPU2DSP1 */ | ||
788 | static struct uio_info spu1_platform_data = { | ||
789 | .name = "SPU2DSP1", | ||
790 | .version = "0", | ||
791 | .irq = evt2irq(0x1820), | ||
792 | }; | ||
793 | |||
794 | static struct resource spu1_resources[] = { | ||
795 | [0] = { | ||
796 | .name = "SPU2DSP1", | ||
797 | .start = 0xfe300000, | ||
798 | .end = 0xfe3fffff, | ||
799 | .flags = IORESOURCE_MEM, | ||
800 | }, | ||
801 | }; | ||
802 | |||
803 | static struct platform_device spu1_device = { | ||
804 | .name = "uio_pdrv_genirq", | ||
805 | .id = 7, | ||
806 | .dev = { | ||
807 | .platform_data = &spu1_platform_data, | ||
808 | }, | ||
809 | .resource = spu1_resources, | ||
810 | .num_resources = ARRAY_SIZE(spu1_resources), | ||
811 | }; | ||
812 | |||
604 | static struct platform_device *sh7372_early_devices[] __initdata = { | 813 | static struct platform_device *sh7372_early_devices[] __initdata = { |
605 | &scif0_device, | 814 | &scif0_device, |
606 | &scif1_device, | 815 | &scif1_device, |
@@ -620,6 +829,14 @@ static struct platform_device *sh7372_late_devices[] __initdata = { | |||
620 | &dma0_device, | 829 | &dma0_device, |
621 | &dma1_device, | 830 | &dma1_device, |
622 | &dma2_device, | 831 | &dma2_device, |
832 | &vpu_device, | ||
833 | &veu0_device, | ||
834 | &veu1_device, | ||
835 | &veu2_device, | ||
836 | &veu3_device, | ||
837 | &jpu_device, | ||
838 | &spu0_device, | ||
839 | &spu1_device, | ||
623 | }; | 840 | }; |
624 | 841 | ||
625 | void __init sh7372_add_standard_devices(void) | 842 | void __init sh7372_add_standard_devices(void) |