aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-shmobile/board-mackerel.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-shmobile/board-mackerel.c')
-rw-r--r--arch/arm/mach-shmobile/board-mackerel.c52
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 */
710static struct sh_mobile_sdhi_info sdhi1_info = { 712static 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
824static 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
806static struct sh_mmcif_plat_data sh_mmcif_plat = { 833static 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
815static struct platform_device sh_mmcif_device = { 843static 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);