diff options
Diffstat (limited to 'arch/arm/mach-shmobile/board-mackerel.c')
-rw-r--r-- | arch/arm/mach-shmobile/board-mackerel.c | 52 |
1 files changed, 40 insertions, 12 deletions
diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index 7da2ca24229d..ca5b35bd2466 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c | |||
@@ -458,12 +458,6 @@ static void __init hdmi_init_pm_clock(void) | |||
458 | goto out; | 458 | goto out; |
459 | } | 459 | } |
460 | 460 | ||
461 | ret = clk_enable(&sh7372_pllc2_clk); | ||
462 | if (ret < 0) { | ||
463 | pr_err("Cannot enable pllc2 clock\n"); | ||
464 | goto out; | ||
465 | } | ||
466 | |||
467 | pr_debug("PLLC2 set frequency %lu\n", rate); | 461 | pr_debug("PLLC2 set frequency %lu\n", rate); |
468 | 462 | ||
469 | ret = clk_set_parent(hdmi_ick, &sh7372_pllc2_clk); | 463 | ret = clk_set_parent(hdmi_ick, &sh7372_pllc2_clk); |
@@ -690,7 +684,15 @@ static struct resource sdhi0_resources[] = { | |||
690 | .flags = IORESOURCE_MEM, | 684 | .flags = IORESOURCE_MEM, |
691 | }, | 685 | }, |
692 | [1] = { | 686 | [1] = { |
693 | .start = evt2irq(0x0e00) /* SDHI0 */, | 687 | .start = evt2irq(0x0e00) /* SDHI0_SDHI0I0 */, |
688 | .flags = IORESOURCE_IRQ, | ||
689 | }, | ||
690 | [2] = { | ||
691 | .start = evt2irq(0x0e20) /* SDHI0_SDHI0I1 */, | ||
692 | .flags = IORESOURCE_IRQ, | ||
693 | }, | ||
694 | [3] = { | ||
695 | .start = evt2irq(0x0e40) /* SDHI0_SDHI0I2 */, | ||
694 | .flags = IORESOURCE_IRQ, | 696 | .flags = IORESOURCE_IRQ, |
695 | }, | 697 | }, |
696 | }; | 698 | }; |
@@ -705,7 +707,7 @@ static struct platform_device sdhi0_device = { | |||
705 | }, | 707 | }, |
706 | }; | 708 | }; |
707 | 709 | ||
708 | #if !defined(CONFIG_MMC_SH_MMCIF) | 710 | #if !defined(CONFIG_MMC_SH_MMCIF) && !defined(CONFIG_MMC_SH_MMCIF_MODULE) |
709 | /* SDHI1 */ | 711 | /* SDHI1 */ |
710 | static struct sh_mobile_sdhi_info sdhi1_info = { | 712 | static struct sh_mobile_sdhi_info sdhi1_info = { |
711 | .dma_slave_tx = SHDMA_SLAVE_SDHI1_TX, | 713 | .dma_slave_tx = SHDMA_SLAVE_SDHI1_TX, |
@@ -725,7 +727,15 @@ static struct resource sdhi1_resources[] = { | |||
725 | .flags = IORESOURCE_MEM, | 727 | .flags = IORESOURCE_MEM, |
726 | }, | 728 | }, |
727 | [1] = { | 729 | [1] = { |
728 | .start = evt2irq(0x0e80), | 730 | .start = evt2irq(0x0e80), /* SDHI1_SDHI1I0 */ |
731 | .flags = IORESOURCE_IRQ, | ||
732 | }, | ||
733 | [2] = { | ||
734 | .start = evt2irq(0x0ea0), /* SDHI1_SDHI1I1 */ | ||
735 | .flags = IORESOURCE_IRQ, | ||
736 | }, | ||
737 | [3] = { | ||
738 | .start = evt2irq(0x0ec0), /* SDHI1_SDHI1I2 */ | ||
729 | .flags = IORESOURCE_IRQ, | 739 | .flags = IORESOURCE_IRQ, |
730 | }, | 740 | }, |
731 | }; | 741 | }; |
@@ -768,7 +778,15 @@ static struct resource sdhi2_resources[] = { | |||
768 | .flags = IORESOURCE_MEM, | 778 | .flags = IORESOURCE_MEM, |
769 | }, | 779 | }, |
770 | [1] = { | 780 | [1] = { |
771 | .start = evt2irq(0x1200), | 781 | .start = evt2irq(0x1200), /* SDHI2_SDHI2I0 */ |
782 | .flags = IORESOURCE_IRQ, | ||
783 | }, | ||
784 | [2] = { | ||
785 | .start = evt2irq(0x1220), /* SDHI2_SDHI2I1 */ | ||
786 | .flags = IORESOURCE_IRQ, | ||
787 | }, | ||
788 | [3] = { | ||
789 | .start = evt2irq(0x1240), /* SDHI2_SDHI2I2 */ | ||
772 | .flags = IORESOURCE_IRQ, | 790 | .flags = IORESOURCE_IRQ, |
773 | }, | 791 | }, |
774 | }; | 792 | }; |
@@ -803,6 +821,15 @@ static struct resource sh_mmcif_resources[] = { | |||
803 | }, | 821 | }, |
804 | }; | 822 | }; |
805 | 823 | ||
824 | static struct sh_mmcif_dma sh_mmcif_dma = { | ||
825 | .chan_priv_rx = { | ||
826 | .slave_id = SHDMA_SLAVE_MMCIF_RX, | ||
827 | }, | ||
828 | .chan_priv_tx = { | ||
829 | .slave_id = SHDMA_SLAVE_MMCIF_TX, | ||
830 | }, | ||
831 | }; | ||
832 | |||
806 | static struct sh_mmcif_plat_data sh_mmcif_plat = { | 833 | static struct sh_mmcif_plat_data sh_mmcif_plat = { |
807 | .sup_pclk = 0, | 834 | .sup_pclk = 0, |
808 | .ocr = MMC_VDD_165_195 | MMC_VDD_32_33 | MMC_VDD_33_34, | 835 | .ocr = MMC_VDD_165_195 | MMC_VDD_32_33 | MMC_VDD_33_34, |
@@ -810,6 +837,7 @@ static struct sh_mmcif_plat_data sh_mmcif_plat = { | |||
810 | MMC_CAP_8_BIT_DATA | | 837 | MMC_CAP_8_BIT_DATA | |
811 | MMC_CAP_NEEDS_POLL, | 838 | MMC_CAP_NEEDS_POLL, |
812 | .get_cd = slot_cn7_get_cd, | 839 | .get_cd = slot_cn7_get_cd, |
840 | .dma = &sh_mmcif_dma, | ||
813 | }; | 841 | }; |
814 | 842 | ||
815 | static struct platform_device sh_mmcif_device = { | 843 | static struct platform_device sh_mmcif_device = { |
@@ -940,7 +968,7 @@ static struct platform_device *mackerel_devices[] __initdata = { | |||
940 | &fsi_ak4643_device, | 968 | &fsi_ak4643_device, |
941 | &fsi_hdmi_device, | 969 | &fsi_hdmi_device, |
942 | &sdhi0_device, | 970 | &sdhi0_device, |
943 | #if !defined(CONFIG_MMC_SH_MMCIF) | 971 | #if !defined(CONFIG_MMC_SH_MMCIF) && !defined(CONFIG_MMC_SH_MMCIF_MODULE) |
944 | &sdhi1_device, | 972 | &sdhi1_device, |
945 | #endif | 973 | #endif |
946 | &sdhi2_device, | 974 | &sdhi2_device, |
@@ -1140,7 +1168,7 @@ static void __init mackerel_init(void) | |||
1140 | gpio_request(GPIO_FN_SDHID0_1, NULL); | 1168 | gpio_request(GPIO_FN_SDHID0_1, NULL); |
1141 | gpio_request(GPIO_FN_SDHID0_0, NULL); | 1169 | gpio_request(GPIO_FN_SDHID0_0, NULL); |
1142 | 1170 | ||
1143 | #if !defined(CONFIG_MMC_SH_MMCIF) | 1171 | #if !defined(CONFIG_MMC_SH_MMCIF) && !defined(CONFIG_MMC_SH_MMCIF_MODULE) |
1144 | /* enable SDHI1 */ | 1172 | /* enable SDHI1 */ |
1145 | gpio_request(GPIO_FN_SDHICMD1, NULL); | 1173 | gpio_request(GPIO_FN_SDHICMD1, NULL); |
1146 | gpio_request(GPIO_FN_SDHICLK1, NULL); | 1174 | gpio_request(GPIO_FN_SDHICLK1, NULL); |