aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>2013-03-12 22:52:31 -0400
committerLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>2013-03-15 08:34:09 -0400
commita1fedc46c897c58e62d40d03557c25279f666227 (patch)
tree59285189b8c64a6c2389c4c4cff705410388df10
parent9723b7934920091b2a2515f22d433e4efea1d2fb (diff)
ARM: shmobile: ag5evm: 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-ag5evm.c57
1 files changed, 30 insertions, 27 deletions
diff --git a/arch/arm/mach-shmobile/board-ag5evm.c b/arch/arm/mach-shmobile/board-ag5evm.c
index 178bfd12de9f..987b9b6f5f5d 100644
--- a/arch/arm/mach-shmobile/board-ag5evm.c
+++ b/arch/arm/mach-shmobile/board-ag5evm.c
@@ -24,6 +24,7 @@
24#include <linux/interrupt.h> 24#include <linux/interrupt.h>
25#include <linux/irq.h> 25#include <linux/irq.h>
26#include <linux/pinctrl/machine.h> 26#include <linux/pinctrl/machine.h>
27#include <linux/pinctrl/pinconf-generic.h>
27#include <linux/platform_device.h> 28#include <linux/platform_device.h>
28#include <linux/delay.h> 29#include <linux/delay.h>
29#include <linux/io.h> 30#include <linux/io.h>
@@ -551,6 +552,10 @@ static struct platform_device *ag5evm_devices[] __initdata = {
551 &sdhi1_device, 552 &sdhi1_device,
552}; 553};
553 554
555static unsigned long pin_pullup_conf[] = {
556 PIN_CONF_PACKED(PIN_CONFIG_BIAS_PULL_UP, 0),
557};
558
554static const struct pinctrl_map ag5evm_pinctrl_map[] = { 559static const struct pinctrl_map ag5evm_pinctrl_map[] = {
555 /* FSIA */ 560 /* FSIA */
556 PIN_MAP_MUX_GROUP_DEFAULT("sh_fsi2.0", "pfc-sh73a0", 561 PIN_MAP_MUX_GROUP_DEFAULT("sh_fsi2.0", "pfc-sh73a0",
@@ -566,11 +571,36 @@ static const struct pinctrl_map ag5evm_pinctrl_map[] = {
566 "i2c2_0", "i2c2"), 571 "i2c2_0", "i2c2"),
567 PIN_MAP_MUX_GROUP_DEFAULT("i2c-sh_mobile.3", "pfc-sh73a0", 572 PIN_MAP_MUX_GROUP_DEFAULT("i2c-sh_mobile.3", "pfc-sh73a0",
568 "i2c3_0", "i2c3"), 573 "i2c3_0", "i2c3"),
574 /* MMCIF */
575 PIN_MAP_MUX_GROUP_DEFAULT("sh_mmcif.0", "pfc-sh73a0",
576 "mmc0_data8_0", "mmc0"),
577 PIN_MAP_MUX_GROUP_DEFAULT("sh_mmcif.0", "pfc-sh73a0",
578 "mmc0_ctrl_0", "mmc0"),
579 PIN_MAP_CONFIGS_PIN_DEFAULT("sh_mmcif.0", "pfc-sh73a0",
580 "PORT279", pin_pullup_conf),
581 PIN_MAP_CONFIGS_GROUP_DEFAULT("sh_mmcif.0", "pfc-sh73a0",
582 "mmc0_data8_0", pin_pullup_conf),
569 /* SCIFA2 */ 583 /* SCIFA2 */
570 PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.2", "pfc-sh73a0", 584 PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.2", "pfc-sh73a0",
571 "scifa2_data_0", "scifa2"), 585 "scifa2_data_0", "scifa2"),
572 PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.2", "pfc-sh73a0", 586 PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.2", "pfc-sh73a0",
573 "scifa2_ctrl_0", "scifa2"), 587 "scifa2_ctrl_0", "scifa2"),
588 /* SDHI0 (CN15 [SD I/F]) */
589 PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-sh73a0",
590 "sdhi0_data4", "sdhi0"),
591 PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-sh73a0",
592 "sdhi0_ctrl", "sdhi0"),
593 PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-sh73a0",
594 "sdhi0_wp", "sdhi0"),
595 /* SDHI1 (CN4 [WLAN I/F]) */
596 PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.1", "pfc-sh73a0",
597 "sdhi1_data4", "sdhi1"),
598 PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.1", "pfc-sh73a0",
599 "sdhi1_ctrl", "sdhi1"),
600 PIN_MAP_CONFIGS_GROUP_DEFAULT("sh_mobile_sdhi.1", "pfc-sh73a0",
601 "sdhi1_data4", pin_pullup_conf),
602 PIN_MAP_CONFIGS_PIN_DEFAULT("sh_mobile_sdhi.1", "pfc-sh73a0",
603 "PORT263", pin_pullup_conf),
574}; 604};
575 605
576static void __init ag5evm_init(void) 606static void __init ag5evm_init(void)
@@ -606,16 +636,6 @@ static void __init ag5evm_init(void)
606 gpio_request(GPIO_FN_PORT149_KEYOUT9, NULL); 636 gpio_request(GPIO_FN_PORT149_KEYOUT9, NULL);
607 637
608 /* enable MMCIF */ 638 /* enable MMCIF */
609 gpio_request(GPIO_FN_MMCCLK0, NULL);
610 gpio_request(GPIO_FN_MMCCMD0_PU, NULL);
611 gpio_request(GPIO_FN_MMCD0_0_PU, NULL);
612 gpio_request(GPIO_FN_MMCD0_1_PU, NULL);
613 gpio_request(GPIO_FN_MMCD0_2_PU, NULL);
614 gpio_request(GPIO_FN_MMCD0_3_PU, NULL);
615 gpio_request(GPIO_FN_MMCD0_4_PU, NULL);
616 gpio_request(GPIO_FN_MMCD0_5_PU, NULL);
617 gpio_request(GPIO_FN_MMCD0_6_PU, NULL);
618 gpio_request(GPIO_FN_MMCD0_7_PU, NULL);
619 gpio_request_one(208, GPIOF_OUT_INIT_HIGH, NULL); /* Reset */ 639 gpio_request_one(208, GPIOF_OUT_INIT_HIGH, NULL); /* Reset */
620 640
621 /* enable SMSC911X */ 641 /* enable SMSC911X */
@@ -637,23 +657,6 @@ static void __init ag5evm_init(void)
637 gpio_request_one(235, GPIOF_OUT_INIT_LOW, NULL); /* RESET */ 657 gpio_request_one(235, GPIOF_OUT_INIT_LOW, NULL); /* RESET */
638 lcd_backlight_set_brightness(0); 658 lcd_backlight_set_brightness(0);
639 659
640 /* enable SDHI0 on CN15 [SD I/F] */
641 gpio_request(GPIO_FN_SDHIWP0, NULL);
642 gpio_request(GPIO_FN_SDHICMD0, NULL);
643 gpio_request(GPIO_FN_SDHICLK0, NULL);
644 gpio_request(GPIO_FN_SDHID0_3, NULL);
645 gpio_request(GPIO_FN_SDHID0_2, NULL);
646 gpio_request(GPIO_FN_SDHID0_1, NULL);
647 gpio_request(GPIO_FN_SDHID0_0, NULL);
648
649 /* enable SDHI1 on CN4 [WLAN I/F] */
650 gpio_request(GPIO_FN_SDHICLK1, NULL);
651 gpio_request(GPIO_FN_SDHICMD1_PU, NULL);
652 gpio_request(GPIO_FN_SDHID1_3_PU, NULL);
653 gpio_request(GPIO_FN_SDHID1_2_PU, NULL);
654 gpio_request(GPIO_FN_SDHID1_1_PU, NULL);
655 gpio_request(GPIO_FN_SDHID1_0_PU, NULL);
656
657#ifdef CONFIG_CACHE_L2X0 660#ifdef CONFIG_CACHE_L2X0
658 /* Shared attribute override enable, 64K*8way */ 661 /* Shared attribute override enable, 64K*8way */
659 l2x0_init(IOMEM(0xf0100000), 0x00460000, 0xc2000fff); 662 l2x0_init(IOMEM(0xf0100000), 0x00460000, 0xc2000fff);