From patchwork Fri Jul 5 15:25:28 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guennadi Liakhovetski X-Patchwork-Id: 2824262 Return-Path: X-Original-To: patchwork-linux-sh@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 1A69D9F3EB for ; Fri, 5 Jul 2013 15:25:43 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 278102016C for ; Fri, 5 Jul 2013 15:25:42 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id CAB8720178 for ; Fri, 5 Jul 2013 15:25:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757482Ab3GEPZk (ORCPT ); Fri, 5 Jul 2013 11:25:40 -0400 Received: from moutng.kundenserver.de ([212.227.126.187]:65391 "EHLO moutng.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757363Ab3GEPZj (ORCPT ); Fri, 5 Jul 2013 11:25:39 -0400 Received: from axis700.grange (dslb-178-001-146-173.pools.arcor-ip.net [178.1.146.173]) by mrelayeu.kundenserver.de (node=mrbap2) with ESMTP (Nemesis) id 0MDEgG-1V0c3l3hZk-00GshN; Fri, 05 Jul 2013 17:25:34 +0200 Received: from 6a.grange (6a.grange [192.168.1.11]) by axis700.grange (Postfix) with ESMTPS id 4779440BB3; Fri, 5 Jul 2013 17:25:33 +0200 (CEST) Received: from lyakh by 6a.grange with local (Exim 4.72) (envelope-from ) id 1Uv7t7-0005Bm-2M; Fri, 05 Jul 2013 17:25:33 +0200 From: Guennadi Liakhovetski To: linux-sh@vger.kernel.org Cc: Magnus Damm , Simon Horman , Guennadi Liakhovetski Subject: [PATCH v2 2/6] ARM: shmobile: APE6EVM: add MMCIF support Date: Fri, 5 Jul 2013 17:25:28 +0200 Message-Id: <1373037932-19918-3-git-send-email-g.liakhovetski@gmx.de> X-Mailer: git-send-email 1.7.2.5 In-Reply-To: <1373037932-19918-1-git-send-email-g.liakhovetski@gmx.de> References: <1373037932-19918-1-git-send-email-g.liakhovetski@gmx.de> X-Provags-ID: V02:K0:DaxvOEwNFczPfrAx8r8TszetK9G9/XfIpvuA9uVg4vW gG665t4sUgKz0NufNTQ5ToZo+LNeoNfrrS6aTZEbEIT5E13SJC tvw0e5+uMj3Ndt9awbk0YPRG5iuDLIgmEkrnd1jwMe7lBRkSMF 4d/hcL+hDNl7TebSAunFtD7ctjXciF90hzaeVSj8OJ6vOIK1Xy 1f8k9/VjD1sN9/ErwD3l6Qy9eVM3BIIUA5xo3kPzLYaYPJpxk/ VJM9ubR/QRWdkPhV5XQOknMAgcobktf8YFcWc7pIO/tYLXLyIv oBQEvjhGn9jekAuCXhtBXvKl95OI1Dy9aeHaW68vCoUT5EkpMc I74gnuDOJlu3lTUU/sHfs0RnOhGjM2E+oyo6FONFITQZVvQW2m 1yu99eaNElsZA== Sender: linux-sh-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-sh@vger.kernel.org X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Add MMCIF support to the APE6EVM board in both PIO and DMA modes, depending on the DMAC driver availability. Power supply is fixed for now, eventually support for the tps80032 regulator, also supplying both VDD and VccQ to the MMCIF slot should be added to APE6EVM. Signed-off-by: Guennadi Liakhovetski Acked-by: Magnus Damm --- v2: Added a comment about a regulator, supplying power to eMMC on APE6EVM. arch/arm/mach-shmobile/board-ape6evm.c | 33 ++++++++++++++++++++++++++++++++ 1 files changed, 33 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-shmobile/board-ape6evm.c b/arch/arm/mach-shmobile/board-ape6evm.c index af6dd39..ab33030 100644 --- a/arch/arm/mach-shmobile/board-ape6evm.c +++ b/arch/arm/mach-shmobile/board-ape6evm.c @@ -21,6 +21,8 @@ #include #include #include +#include +#include #include #include #include @@ -54,6 +56,27 @@ static const struct smsc911x_platform_config lan9220_data = { .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_HIGH, }; +/* + * On APE6EVM power is supplied to MMCIF by a tps80032 regulator. For now we + * model a VDD supply to MMCIF, using a fixed 3.3V regulator. + */ +static struct regulator_consumer_supply fixed3v3_power_consumers[] = +{ + REGULATOR_SUPPLY("vmmc", "sh_mmcif.0"), +}; + +/* MMCIF */ +static struct sh_mmcif_plat_data mmcif0_pdata = { + .caps = MMC_CAP_8_BIT_DATA | MMC_CAP_NONREMOVABLE, + .slave_id_tx = SHDMA_SLAVE_MMCIF0_TX, + .slave_id_rx = SHDMA_SLAVE_MMCIF0_RX, +}; + +static struct resource mmcif0_resources[] = { + DEFINE_RES_MEM_NAMED(0xee200000, 0x100, "MMCIF0"), + DEFINE_RES_IRQ(gic_spi(169)), +}; + static const struct pinctrl_map ape6evm_pinctrl_map[] = { /* SCIFA0 console */ PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.0", "pfc-r8a73a4", @@ -61,6 +84,11 @@ static const struct pinctrl_map ape6evm_pinctrl_map[] = { /* SMSC */ PIN_MAP_MUX_GROUP_DEFAULT("smsc911x", "pfc-r8a73a4", "irqc_irq40", "irqc"), + /* MMCIF0 */ + PIN_MAP_MUX_GROUP_DEFAULT("sh_mmcif.0", "pfc-r8a73a4", + "mmc0_data8", "mmc0"), + PIN_MAP_MUX_GROUP_DEFAULT("sh_mmcif.0", "pfc-r8a73a4", + "mmc0_ctrl", "mmc0"), }; static void __init ape6evm_add_standard_devices(void) @@ -93,6 +121,11 @@ static void __init ape6evm_add_standard_devices(void) platform_device_register_resndata(&platform_bus, "smsc911x", -1, lan9220_res, ARRAY_SIZE(lan9220_res), &lan9220_data, sizeof(lan9220_data)); + regulator_register_always_on(1, "fixed-3.3V", fixed3v3_power_consumers, + ARRAY_SIZE(fixed3v3_power_consumers), 3300000); + platform_device_register_resndata(&platform_bus, "sh_mmcif", 0, + mmcif0_resources, ARRAY_SIZE(mmcif0_resources), + &mmcif0_pdata, sizeof(mmcif0_pdata)); } static const char *ape6evm_boards_compat_dt[] __initdata = {