diff options
author | Simon Horman <horms+renesas@verge.net.au> | 2013-03-21 07:18:12 -0400 |
---|---|---|
committer | Simon Horman <horms+renesas@verge.net.au> | 2013-03-21 09:03:58 -0400 |
commit | ac22dde76c80a3ffa3c3c24cf16bb8076b20b767 (patch) | |
tree | 6b17d7f8305bf60b0931a4e9265ed0c097c55fe9 /arch | |
parent | a463f731766e8273f44ba397233bfc7ecf752f98 (diff) |
Revert "ARM: shmobile: streamline mackerel SD and MMC devices"
This reverts commit 626a645eb75415255aad3162f4da3f6988f0c8ec.
This appears to be incompatible with
"ARM: shmobile: sh7372: Remove SDHI and MMCIF function GPIOs"
Reverting this change resolves the following build failure:
arch/arm/mach-shmobile/board-mackerel.c: In function ‘mackerel_init’:
arch/arm/mach-shmobile/board-mackerel.c:1468: error: ‘GPIO_FN_SDHICMD1’ undeclared (first use in this function)
arch/arm/mach-shmobile/board-mackerel.c:1468: error: (Each undeclared identifier is reported only once
arch/arm/mach-shmobile/board-mackerel.c:1468: error: for each function it appears in.)
arch/arm/mach-shmobile/board-mackerel.c:1469: error: ‘GPIO_FN_SDHICLK1’ undeclared (first use in this function)
arch/arm/mach-shmobile/board-mackerel.c:1470: error: ‘GPIO_FN_SDHID1_3’ undeclared (first use in this function)
arch/arm/mach-shmobile/board-mackerel.c:1471: error: ‘GPIO_FN_SDHID1_2’ undeclared (first use in this function)
arch/arm/mach-shmobile/board-mackerel.c:1472: error: ‘GPIO_FN_SDHID1_1’ undeclared (first use in this function)
arch/arm/mach-shmobile/board-mackerel.c:1473: error: ‘GPIO_FN_SDHID1_0’ undeclared (first use in this function)
arch/arm/mach-shmobile/board-mackerel.c:1489: error: ‘GPIO_FN_SDHICMD2’ undeclared (first use in this function)
arch/arm/mach-shmobile/board-mackerel.c:1490: error: ‘GPIO_FN_SDHICLK2’ undeclared (first use in this function)
arch/arm/mach-shmobile/board-mackerel.c:1491: error: ‘GPIO_FN_SDHID2_3’ undeclared (first use in this function)
arch/arm/mach-shmobile/board-mackerel.c:1492: error: ‘GPIO_FN_SDHID2_2’ undeclared (first use in this function)
arch/arm/mach-shmobile/board-mackerel.c:1493: error: ‘GPIO_FN_SDHID2_1’ undeclared (first use in this function)
arch/arm/mach-shmobile/board-mackerel.c:1494: error: ‘GPIO_FN_SDHID2_0’ undeclared (first use in this function)
Cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-shmobile/board-mackerel.c | 113 |
1 files changed, 56 insertions, 57 deletions
diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index ef22ec4dafae..1a9c75383ca0 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c | |||
@@ -963,6 +963,15 @@ static struct platform_device nand_flash_device = { | |||
963 | }, | 963 | }, |
964 | }; | 964 | }; |
965 | 965 | ||
966 | /* | ||
967 | * The card detect pin of the top SD/MMC slot (CN7) is active low and is | ||
968 | * connected to GPIO A22 of SH7372 (GPIO 41). | ||
969 | */ | ||
970 | static int slot_cn7_get_cd(struct platform_device *pdev) | ||
971 | { | ||
972 | return !gpio_get_value(41); | ||
973 | } | ||
974 | |||
966 | /* SDHI0 */ | 975 | /* SDHI0 */ |
967 | static struct sh_mobile_sdhi_info sdhi0_info = { | 976 | static struct sh_mobile_sdhi_info sdhi0_info = { |
968 | .dma_slave_tx = SHDMA_SLAVE_SDHI0_TX, | 977 | .dma_slave_tx = SHDMA_SLAVE_SDHI0_TX, |
@@ -973,21 +982,21 @@ static struct sh_mobile_sdhi_info sdhi0_info = { | |||
973 | }; | 982 | }; |
974 | 983 | ||
975 | static struct resource sdhi0_resources[] = { | 984 | static struct resource sdhi0_resources[] = { |
976 | { | 985 | [0] = { |
977 | .name = "SDHI0", | 986 | .name = "SDHI0", |
978 | .start = 0xe6850000, | 987 | .start = 0xe6850000, |
979 | .end = 0xe68500ff, | 988 | .end = 0xe68500ff, |
980 | .flags = IORESOURCE_MEM, | 989 | .flags = IORESOURCE_MEM, |
981 | }, { | 990 | }, |
982 | .name = SH_MOBILE_SDHI_IRQ_CARD_DETECT, | 991 | [1] = { |
983 | .start = evt2irq(0x0e00) /* SDHI0_SDHI0I0 */, | 992 | .start = evt2irq(0x0e00) /* SDHI0_SDHI0I0 */, |
984 | .flags = IORESOURCE_IRQ, | 993 | .flags = IORESOURCE_IRQ, |
985 | }, { | 994 | }, |
986 | .name = SH_MOBILE_SDHI_IRQ_SDCARD, | 995 | [2] = { |
987 | .start = evt2irq(0x0e20) /* SDHI0_SDHI0I1 */, | 996 | .start = evt2irq(0x0e20) /* SDHI0_SDHI0I1 */, |
988 | .flags = IORESOURCE_IRQ, | 997 | .flags = IORESOURCE_IRQ, |
989 | }, { | 998 | }, |
990 | .name = SH_MOBILE_SDHI_IRQ_SDIO, | 999 | [3] = { |
991 | .start = evt2irq(0x0e40) /* SDHI0_SDHI0I2 */, | 1000 | .start = evt2irq(0x0e40) /* SDHI0_SDHI0I2 */, |
992 | .flags = IORESOURCE_IRQ, | 1001 | .flags = IORESOURCE_IRQ, |
993 | }, | 1002 | }, |
@@ -1005,28 +1014,34 @@ static struct platform_device sdhi0_device = { | |||
1005 | 1014 | ||
1006 | #if !defined(CONFIG_MMC_SH_MMCIF) && !defined(CONFIG_MMC_SH_MMCIF_MODULE) | 1015 | #if !defined(CONFIG_MMC_SH_MMCIF) && !defined(CONFIG_MMC_SH_MMCIF_MODULE) |
1007 | /* SDHI1 */ | 1016 | /* SDHI1 */ |
1008 | |||
1009 | /* GPIO_PORT41 can trigger IRQ8, but it is used by USBHS1, we have to poll */ | ||
1010 | static struct sh_mobile_sdhi_info sdhi1_info = { | 1017 | static struct sh_mobile_sdhi_info sdhi1_info = { |
1011 | .dma_slave_tx = SHDMA_SLAVE_SDHI1_TX, | 1018 | .dma_slave_tx = SHDMA_SLAVE_SDHI1_TX, |
1012 | .dma_slave_rx = SHDMA_SLAVE_SDHI1_RX, | 1019 | .dma_slave_rx = SHDMA_SLAVE_SDHI1_RX, |
1013 | .tmio_flags = TMIO_MMC_WRPROTECT_DISABLE | TMIO_MMC_USE_GPIO_CD, | 1020 | .tmio_ocr_mask = MMC_VDD_165_195, |
1021 | .tmio_flags = TMIO_MMC_WRPROTECT_DISABLE, | ||
1014 | .tmio_caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ | | 1022 | .tmio_caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ | |
1015 | MMC_CAP_NEEDS_POLL, | 1023 | MMC_CAP_NEEDS_POLL, |
1016 | .cd_gpio = GPIO_PORT41, | 1024 | .get_cd = slot_cn7_get_cd, |
1017 | }; | 1025 | }; |
1018 | 1026 | ||
1019 | static struct resource sdhi1_resources[] = { | 1027 | static struct resource sdhi1_resources[] = { |
1020 | { | 1028 | [0] = { |
1021 | .name = "SDHI1", | 1029 | .name = "SDHI1", |
1022 | .start = 0xe6860000, | 1030 | .start = 0xe6860000, |
1023 | .end = 0xe68600ff, | 1031 | .end = 0xe68600ff, |
1024 | .flags = IORESOURCE_MEM, | 1032 | .flags = IORESOURCE_MEM, |
1025 | }, { | 1033 | }, |
1034 | [1] = { | ||
1035 | .name = SH_MOBILE_SDHI_IRQ_CARD_DETECT, | ||
1036 | .start = evt2irq(0x0e80), /* SDHI1_SDHI1I0 */ | ||
1037 | .flags = IORESOURCE_IRQ, | ||
1038 | }, | ||
1039 | [2] = { | ||
1026 | .name = SH_MOBILE_SDHI_IRQ_SDCARD, | 1040 | .name = SH_MOBILE_SDHI_IRQ_SDCARD, |
1027 | .start = evt2irq(0x0ea0), /* SDHI1_SDHI1I1 */ | 1041 | .start = evt2irq(0x0ea0), /* SDHI1_SDHI1I1 */ |
1028 | .flags = IORESOURCE_IRQ, | 1042 | .flags = IORESOURCE_IRQ, |
1029 | }, { | 1043 | }, |
1044 | [3] = { | ||
1030 | .name = SH_MOBILE_SDHI_IRQ_SDIO, | 1045 | .name = SH_MOBILE_SDHI_IRQ_SDIO, |
1031 | .start = evt2irq(0x0ec0), /* SDHI1_SDHI1I2 */ | 1046 | .start = evt2irq(0x0ec0), /* SDHI1_SDHI1I2 */ |
1032 | .flags = IORESOURCE_IRQ, | 1047 | .flags = IORESOURCE_IRQ, |
@@ -1044,32 +1059,43 @@ static struct platform_device sdhi1_device = { | |||
1044 | }; | 1059 | }; |
1045 | #endif | 1060 | #endif |
1046 | 1061 | ||
1047 | /* SDHI2 */ | ||
1048 | |||
1049 | /* | 1062 | /* |
1050 | * The card detect pin of the top SD/MMC slot (CN23) is active low and is | 1063 | * The card detect pin of the top SD/MMC slot (CN23) is active low and is |
1051 | * connected to GPIO SCIFB_SCK of SH7372 (GPIO_PORT162). | 1064 | * connected to GPIO SCIFB_SCK of SH7372 (162). |
1052 | */ | 1065 | */ |
1066 | static int slot_cn23_get_cd(struct platform_device *pdev) | ||
1067 | { | ||
1068 | return !gpio_get_value(162); | ||
1069 | } | ||
1070 | |||
1071 | /* SDHI2 */ | ||
1053 | static struct sh_mobile_sdhi_info sdhi2_info = { | 1072 | static struct sh_mobile_sdhi_info sdhi2_info = { |
1054 | .dma_slave_tx = SHDMA_SLAVE_SDHI2_TX, | 1073 | .dma_slave_tx = SHDMA_SLAVE_SDHI2_TX, |
1055 | .dma_slave_rx = SHDMA_SLAVE_SDHI2_RX, | 1074 | .dma_slave_rx = SHDMA_SLAVE_SDHI2_RX, |
1056 | .tmio_flags = TMIO_MMC_WRPROTECT_DISABLE | TMIO_MMC_USE_GPIO_CD, | 1075 | .tmio_flags = TMIO_MMC_WRPROTECT_DISABLE, |
1057 | .tmio_caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ | | 1076 | .tmio_caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ | |
1058 | MMC_CAP_NEEDS_POLL, | 1077 | MMC_CAP_NEEDS_POLL, |
1059 | .cd_gpio = GPIO_PORT162, | 1078 | .get_cd = slot_cn23_get_cd, |
1060 | }; | 1079 | }; |
1061 | 1080 | ||
1062 | static struct resource sdhi2_resources[] = { | 1081 | static struct resource sdhi2_resources[] = { |
1063 | { | 1082 | [0] = { |
1064 | .name = "SDHI2", | 1083 | .name = "SDHI2", |
1065 | .start = 0xe6870000, | 1084 | .start = 0xe6870000, |
1066 | .end = 0xe68700ff, | 1085 | .end = 0xe68700ff, |
1067 | .flags = IORESOURCE_MEM, | 1086 | .flags = IORESOURCE_MEM, |
1068 | }, { | 1087 | }, |
1088 | [1] = { | ||
1089 | .name = SH_MOBILE_SDHI_IRQ_CARD_DETECT, | ||
1090 | .start = evt2irq(0x1200), /* SDHI2_SDHI2I0 */ | ||
1091 | .flags = IORESOURCE_IRQ, | ||
1092 | }, | ||
1093 | [2] = { | ||
1069 | .name = SH_MOBILE_SDHI_IRQ_SDCARD, | 1094 | .name = SH_MOBILE_SDHI_IRQ_SDCARD, |
1070 | .start = evt2irq(0x1220), /* SDHI2_SDHI2I1 */ | 1095 | .start = evt2irq(0x1220), /* SDHI2_SDHI2I1 */ |
1071 | .flags = IORESOURCE_IRQ, | 1096 | .flags = IORESOURCE_IRQ, |
1072 | }, { | 1097 | }, |
1098 | [3] = { | ||
1073 | .name = SH_MOBILE_SDHI_IRQ_SDIO, | 1099 | .name = SH_MOBILE_SDHI_IRQ_SDIO, |
1074 | .start = evt2irq(0x1240), /* SDHI2_SDHI2I2 */ | 1100 | .start = evt2irq(0x1240), /* SDHI2_SDHI2I2 */ |
1075 | .flags = IORESOURCE_IRQ, | 1101 | .flags = IORESOURCE_IRQ, |
@@ -1108,12 +1134,11 @@ static struct resource sh_mmcif_resources[] = { | |||
1108 | 1134 | ||
1109 | static struct sh_mmcif_plat_data sh_mmcif_plat = { | 1135 | static struct sh_mmcif_plat_data sh_mmcif_plat = { |
1110 | .sup_pclk = 0, | 1136 | .sup_pclk = 0, |
1137 | .ocr = MMC_VDD_165_195 | MMC_VDD_32_33 | MMC_VDD_33_34, | ||
1111 | .caps = MMC_CAP_4_BIT_DATA | | 1138 | .caps = MMC_CAP_4_BIT_DATA | |
1112 | MMC_CAP_8_BIT_DATA | | 1139 | MMC_CAP_8_BIT_DATA | |
1113 | MMC_CAP_NEEDS_POLL, | 1140 | MMC_CAP_NEEDS_POLL, |
1114 | .use_cd_gpio = true, | 1141 | .get_cd = slot_cn7_get_cd, |
1115 | /* card detect pin for SD/MMC slot (CN7) */ | ||
1116 | .cd_gpio = GPIO_PORT41, | ||
1117 | .slave_id_tx = SHDMA_SLAVE_MMCIF_TX, | 1142 | .slave_id_tx = SHDMA_SLAVE_MMCIF_TX, |
1118 | .slave_id_rx = SHDMA_SLAVE_MMCIF_RX, | 1143 | .slave_id_rx = SHDMA_SLAVE_MMCIF_RX, |
1119 | }; | 1144 | }; |
@@ -1238,10 +1263,9 @@ static struct platform_device *mackerel_devices[] __initdata = { | |||
1238 | &sdhi0_device, | 1263 | &sdhi0_device, |
1239 | #if !defined(CONFIG_MMC_SH_MMCIF) && !defined(CONFIG_MMC_SH_MMCIF_MODULE) | 1264 | #if !defined(CONFIG_MMC_SH_MMCIF) && !defined(CONFIG_MMC_SH_MMCIF_MODULE) |
1240 | &sdhi1_device, | 1265 | &sdhi1_device, |
1241 | #else | ||
1242 | &sh_mmcif_device, | ||
1243 | #endif | 1266 | #endif |
1244 | &sdhi2_device, | 1267 | &sdhi2_device, |
1268 | &sh_mmcif_device, | ||
1245 | &ceu_device, | 1269 | &ceu_device, |
1246 | &mackerel_camera, | 1270 | &mackerel_camera, |
1247 | &hdmi_device, | 1271 | &hdmi_device, |
@@ -1348,11 +1372,10 @@ static void __init mackerel_init(void) | |||
1348 | { "A3SP", &usbhs0_device, }, | 1372 | { "A3SP", &usbhs0_device, }, |
1349 | { "A3SP", &usbhs1_device, }, | 1373 | { "A3SP", &usbhs1_device, }, |
1350 | { "A3SP", &nand_flash_device, }, | 1374 | { "A3SP", &nand_flash_device, }, |
1375 | { "A3SP", &sh_mmcif_device, }, | ||
1351 | { "A3SP", &sdhi0_device, }, | 1376 | { "A3SP", &sdhi0_device, }, |
1352 | #if !defined(CONFIG_MMC_SH_MMCIF) && !defined(CONFIG_MMC_SH_MMCIF_MODULE) | 1377 | #if !defined(CONFIG_MMC_SH_MMCIF) && !defined(CONFIG_MMC_SH_MMCIF_MODULE) |
1353 | { "A3SP", &sdhi1_device, }, | 1378 | { "A3SP", &sdhi1_device, }, |
1354 | #else | ||
1355 | { "A3SP", &sh_mmcif_device, }, | ||
1356 | #endif | 1379 | #endif |
1357 | { "A3SP", &sdhi2_device, }, | 1380 | { "A3SP", &sdhi2_device, }, |
1358 | { "A4R", &ceu_device, }, | 1381 | { "A4R", &ceu_device, }, |
@@ -1463,35 +1486,11 @@ static void __init mackerel_init(void) | |||
1463 | /* SDHI0 PORT172 card-detect IRQ26 */ | 1486 | /* SDHI0 PORT172 card-detect IRQ26 */ |
1464 | gpio_request(GPIO_FN_IRQ26_172, NULL); | 1487 | gpio_request(GPIO_FN_IRQ26_172, NULL); |
1465 | 1488 | ||
1466 | #if !defined(CONFIG_MMC_SH_MMCIF) && !defined(CONFIG_MMC_SH_MMCIF_MODULE) | 1489 | /* card detect pin for MMC slot (CN7) */ |
1467 | /* enable SDHI1 */ | 1490 | gpio_request_one(41, GPIOF_IN, NULL); |
1468 | gpio_request(GPIO_FN_SDHICMD1, NULL); | ||
1469 | gpio_request(GPIO_FN_SDHICLK1, NULL); | ||
1470 | gpio_request(GPIO_FN_SDHID1_3, NULL); | ||
1471 | gpio_request(GPIO_FN_SDHID1_2, NULL); | ||
1472 | gpio_request(GPIO_FN_SDHID1_1, NULL); | ||
1473 | gpio_request(GPIO_FN_SDHID1_0, NULL); | ||
1474 | #else | ||
1475 | /* MMCIF */ | ||
1476 | gpio_request(GPIO_FN_MMCD0_0, NULL); | ||
1477 | gpio_request(GPIO_FN_MMCD0_1, NULL); | ||
1478 | gpio_request(GPIO_FN_MMCD0_2, NULL); | ||
1479 | gpio_request(GPIO_FN_MMCD0_3, NULL); | ||
1480 | gpio_request(GPIO_FN_MMCD0_4, NULL); | ||
1481 | gpio_request(GPIO_FN_MMCD0_5, NULL); | ||
1482 | gpio_request(GPIO_FN_MMCD0_6, NULL); | ||
1483 | gpio_request(GPIO_FN_MMCD0_7, NULL); | ||
1484 | gpio_request(GPIO_FN_MMCCMD0, NULL); | ||
1485 | gpio_request(GPIO_FN_MMCCLK0, NULL); | ||
1486 | #endif | ||
1487 | 1491 | ||
1488 | /* enable SDHI2 */ | 1492 | /* card detect pin for microSD slot (CN23) */ |
1489 | gpio_request(GPIO_FN_SDHICMD2, NULL); | 1493 | gpio_request_one(162, GPIOF_IN, NULL); |
1490 | gpio_request(GPIO_FN_SDHICLK2, NULL); | ||
1491 | gpio_request(GPIO_FN_SDHID2_3, NULL); | ||
1492 | gpio_request(GPIO_FN_SDHID2_2, NULL); | ||
1493 | gpio_request(GPIO_FN_SDHID2_1, NULL); | ||
1494 | gpio_request(GPIO_FN_SDHID2_0, NULL); | ||
1495 | 1494 | ||
1496 | /* FLCTL */ | 1495 | /* FLCTL */ |
1497 | gpio_request(GPIO_FN_D0_NAF0, NULL); | 1496 | gpio_request(GPIO_FN_D0_NAF0, NULL); |