aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>2013-03-12 22:23:50 -0400
committerLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>2013-03-15 08:34:11 -0400
commit83aeac9874b6fe45e42891c0d4cc0f3e86b8aa66 (patch)
tree97ce167c2781e9d2bb50c50d10f1df162919fefb
parentee9f8da7f722367478b4ebfb51d3c88417246123 (diff)
ARM: shmobile: kzm9g: Register pinctrl mappings for SDHI and MMCIF
Replace the GPIO-based SDHI and MMCIF pinmux configuration by pinctrl mappings. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
-rw-r--r--arch/arm/mach-shmobile/board-kzm9g.c54
1 files changed, 28 insertions, 26 deletions
diff --git a/arch/arm/mach-shmobile/board-kzm9g.c b/arch/arm/mach-shmobile/board-kzm9g.c
index a628d1b3b84e..335bdbbcd9f6 100644
--- a/arch/arm/mach-shmobile/board-kzm9g.c
+++ b/arch/arm/mach-shmobile/board-kzm9g.c
@@ -31,6 +31,7 @@
31#include <linux/mmc/sh_mobile_sdhi.h> 31#include <linux/mmc/sh_mobile_sdhi.h>
32#include <linux/mfd/tmio.h> 32#include <linux/mfd/tmio.h>
33#include <linux/pinctrl/machine.h> 33#include <linux/pinctrl/machine.h>
34#include <linux/pinctrl/pinconf-generic.h>
34#include <linux/platform_device.h> 35#include <linux/platform_device.h>
35#include <linux/regulator/fixed.h> 36#include <linux/regulator/fixed.h>
36#include <linux/regulator/machine.h> 37#include <linux/regulator/machine.h>
@@ -600,6 +601,10 @@ static struct platform_device *kzm_devices[] __initdata = {
600 &fsi_ak4648_device, 601 &fsi_ak4648_device,
601}; 602};
602 603
604static unsigned long pin_pullup_conf[] = {
605 PIN_CONF_PACKED(PIN_CONFIG_BIAS_PULL_UP, 0),
606};
607
603static const struct pinctrl_map kzm_pinctrl_map[] = { 608static const struct pinctrl_map kzm_pinctrl_map[] = {
604 /* FSIA (AK4648) */ 609 /* FSIA (AK4648) */
605 PIN_MAP_MUX_GROUP_DEFAULT("sh_fsi2.0", "pfc-sh73a0", 610 PIN_MAP_MUX_GROUP_DEFAULT("sh_fsi2.0", "pfc-sh73a0",
@@ -618,11 +623,34 @@ static const struct pinctrl_map kzm_pinctrl_map[] = {
618 "lcd_data24", "lcd"), 623 "lcd_data24", "lcd"),
619 PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_lcdc_fb.0", "pfc-sh73a0", 624 PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_lcdc_fb.0", "pfc-sh73a0",
620 "lcd_sync", "lcd"), 625 "lcd_sync", "lcd"),
626 /* MMCIF */
627 PIN_MAP_MUX_GROUP_DEFAULT("sh_mmcif.0", "pfc-sh73a0",
628 "mmc0_data8_0", "mmc0"),
629 PIN_MAP_MUX_GROUP_DEFAULT("sh_mmcif.0", "pfc-sh73a0",
630 "mmc0_ctrl_0", "mmc0"),
631 PIN_MAP_CONFIGS_PIN_DEFAULT("sh_mmcif.0", "pfc-sh73a0",
632 "PORT279", pin_pullup_conf),
633 PIN_MAP_CONFIGS_GROUP_DEFAULT("sh_mmcif.0", "pfc-sh73a0",
634 "mmc0_data8_0", pin_pullup_conf),
621 /* SCIFA4 */ 635 /* SCIFA4 */
622 PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.4", "pfc-sh73a0", 636 PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.4", "pfc-sh73a0",
623 "scifa4_data", "scifa4"), 637 "scifa4_data", "scifa4"),
624 PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.4", "pfc-sh73a0", 638 PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.4", "pfc-sh73a0",
625 "scifa4_ctrl", "scifa4"), 639 "scifa4_ctrl", "scifa4"),
640 /* SDHI0 */
641 PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-sh73a0",
642 "sdhi0_data4", "sdhi0"),
643 PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-sh73a0",
644 "sdhi0_ctrl", "sdhi0"),
645 PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-sh73a0",
646 "sdhi0_cd", "sdhi0"),
647 PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-sh73a0",
648 "sdhi0_wp", "sdhi0"),
649 /* SDHI2 */
650 PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.2", "pfc-sh73a0",
651 "sdhi2_data4", "sdhi2"),
652 PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.2", "pfc-sh73a0",
653 "sdhi2_ctrl", "sdhi2"),
626}; 654};
627 655
628/* 656/*
@@ -703,37 +731,11 @@ static void __init kzm_init(void)
703 /* Touchscreen */ 731 /* Touchscreen */
704 gpio_request_one(223, GPIOF_IN, NULL); /* IRQ8 */ 732 gpio_request_one(223, GPIOF_IN, NULL); /* IRQ8 */
705 733
706 /* enable MMCIF */
707 gpio_request(GPIO_FN_MMCCLK0, NULL);
708 gpio_request(GPIO_FN_MMCCMD0_PU, NULL);
709 gpio_request(GPIO_FN_MMCD0_0_PU, NULL);
710 gpio_request(GPIO_FN_MMCD0_1_PU, NULL);
711 gpio_request(GPIO_FN_MMCD0_2_PU, NULL);
712 gpio_request(GPIO_FN_MMCD0_3_PU, NULL);
713 gpio_request(GPIO_FN_MMCD0_4_PU, NULL);
714 gpio_request(GPIO_FN_MMCD0_5_PU, NULL);
715 gpio_request(GPIO_FN_MMCD0_6_PU, NULL);
716 gpio_request(GPIO_FN_MMCD0_7_PU, NULL);
717
718 /* enable SD */ 734 /* enable SD */
719 gpio_request(GPIO_FN_SDHIWP0, NULL);
720 gpio_request(GPIO_FN_SDHICD0, NULL);
721 gpio_request(GPIO_FN_SDHICMD0, NULL);
722 gpio_request(GPIO_FN_SDHICLK0, NULL);
723 gpio_request(GPIO_FN_SDHID0_3, NULL);
724 gpio_request(GPIO_FN_SDHID0_2, NULL);
725 gpio_request(GPIO_FN_SDHID0_1, NULL);
726 gpio_request(GPIO_FN_SDHID0_0, NULL);
727 gpio_request(GPIO_FN_SDHI0_VCCQ_MC0_ON, NULL); 735 gpio_request(GPIO_FN_SDHI0_VCCQ_MC0_ON, NULL);
728 gpio_request_one(15, GPIOF_OUT_INIT_HIGH, NULL); /* power */ 736 gpio_request_one(15, GPIOF_OUT_INIT_HIGH, NULL); /* power */
729 737
730 /* enable Micro SD */ 738 /* enable Micro SD */
731 gpio_request(GPIO_FN_SDHID2_0, NULL);
732 gpio_request(GPIO_FN_SDHID2_1, NULL);
733 gpio_request(GPIO_FN_SDHID2_2, NULL);
734 gpio_request(GPIO_FN_SDHID2_3, NULL);
735 gpio_request(GPIO_FN_SDHICMD2, NULL);
736 gpio_request(GPIO_FN_SDHICLK2, NULL);
737 gpio_request_one(14, GPIOF_OUT_INIT_HIGH, NULL); /* power */ 739 gpio_request_one(14, GPIOF_OUT_INIT_HIGH, NULL); /* power */
738 740
739 /* enable USB */ 741 /* enable USB */