From patchwork Tue Jul 30 15:50:00 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guennadi Liakhovetski X-Patchwork-Id: 2835782 Return-Path: X-Original-To: patchwork-linux-sh@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id A0174C0319 for ; Tue, 30 Jul 2013 15:50:15 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id C96C220453 for ; Tue, 30 Jul 2013 15:50:10 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7402B2041E for ; Tue, 30 Jul 2013 15:50:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750959Ab3G3PuI (ORCPT ); Tue, 30 Jul 2013 11:50:08 -0400 Received: from moutng.kundenserver.de ([212.227.126.171]:49774 "EHLO moutng.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750745Ab3G3PuI (ORCPT ); Tue, 30 Jul 2013 11:50:08 -0400 Received: from axis700.grange (dslb-094-220-155-198.pools.arcor-ip.net [94.220.155.198]) by mrelayeu.kundenserver.de (node=mrbap2) with ESMTP (Nemesis) id 0MTNxP-1UbmEJ375j-00S76D; Tue, 30 Jul 2013 17:50:01 +0200 Received: by axis700.grange (Postfix, from userid 1000) id 31A0540BB4; Tue, 30 Jul 2013 17:50:00 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by axis700.grange (Postfix) with ESMTP id 1CC3440BB3; Tue, 30 Jul 2013 17:50:00 +0200 (CEST) Date: Tue, 30 Jul 2013 17:50:00 +0200 (CEST) From: Guennadi Liakhovetski X-X-Sender: lyakh@axis700.grange To: linux-sh@vger.kernel.org cc: Laurent Pinchart , Magnus Damm , Simon Horman Subject: [PATCH/RFC] ARM: shmobile: ape6evm: update MMC0, SDHI0 and SDHI1 with correct regulators Message-ID: MIME-Version: 1.0 X-Provags-ID: V02:K0:whposVQMGrwAiN1ISinFwe5yoxayFFdFMh6ZPt301eT qdHTGg/qNMpllh8rzrGCpIUG1m8Nd8+HdzEnna2CIktSv2ZSOD 4CKcYCyZ8FKjUTQ+IPQmSj35jFbJZinv9hi/aBX1naNAH2SGGD J0wPis9SyjCwi/1Ry/H+MIc6SmSvFRpcUifSmpPEQyIAzraAxZ WBfF0rQzZ8lTWGm9hLVV4TRqbXcqa970lcj65bLCu2vsAwmZJl q5c14WPf4GFd89RgowLv//d2CX4n7X/VOwmKi6HA9AuNdjPbVo oGHABObV5G4VoEtPmPSNpz21Gqgnm6NUXfFRsnrkwjL8nozURJ ONCgsLopJaXL5XP2sG9hvfN5M37GTKKPRWM7bcM7n3pmQGvAAr 0SrAtaca2QpjQ== Sender: linux-sh-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-sh@vger.kernel.org X-Spam-Status: No, score=-8.4 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 Currently a dummy fixed always-on regulator is used for all 3 SD/MMC interfaces on ape6evm. This patch updates the board to use correct supplies for MMC0, SDHI0 and SDHI1 VDD. SDHI0 VccQ supply regulator should be implemented in a separate patch. Signed-off-by: Guennadi Liakhovetski --- Marked as RFC, because this doesn't properlly describe MMC0 VDD, VccQ and SDHI0 VccQ power supplies. If this is accepted I'll make another patch for ape6evm-reference. arch/arm/mach-shmobile/board-ape6evm.c | 43 ++++++++++++++++++++++++------- 1 files changed, 33 insertions(+), 10 deletions(-) diff --git a/arch/arm/mach-shmobile/board-ape6evm.c b/arch/arm/mach-shmobile/board-ape6evm.c index ccf8b04..27b7c9d 100644 --- a/arch/arm/mach-shmobile/board-ape6evm.c +++ b/arch/arm/mach-shmobile/board-ape6evm.c @@ -58,17 +58,35 @@ 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. Also use the - * static power supply for SDHI0 and SDHI1, whereas SDHI0's VccQ is also - * supplied by the same tps80032 regulator and thus can also be adjusted - * dynamically. - */ -static struct regulator_consumer_supply fixed3v3_power_consumers[] = +/* MMC0, SDHI0 and SDHI1 power supplies */ +static struct regulator_consumer_supply vcc_mmc0_consumers[] = { REGULATOR_SUPPLY("vmmc", "sh_mmcif.0"), +}; + +static struct regulator_consumer_supply vcc_sdhi0_consumers[] = +{ REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.0"), +}; + +static struct regulator_init_data vcc_sdhi0_init_data = { + .constraints = { + .valid_ops_mask = REGULATOR_CHANGE_STATUS, + }, + .num_consumer_supplies = ARRAY_SIZE(vcc_sdhi0_consumers), + .consumer_supplies = vcc_sdhi0_consumers, +}; + +static const struct fixed_voltage_config vcc_sdhi0_info __initdata = { + .supply_name = "SDHI0 Vcc", + .microvolts = 3000000, + .gpio = 76, + .enable_high = 1, + .init_data = &vcc_sdhi0_init_data, +}; + +static struct regulator_consumer_supply vcc_sdhi1_consumers[] = +{ REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.1"), }; @@ -161,14 +179,19 @@ 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); + + regulator_register_always_on(1, "MMC0 Vcc", vcc_mmc0_consumers, + ARRAY_SIZE(vcc_mmc0_consumers), 2800000); platform_device_register_resndata(&platform_bus, "sh_mmcif", 0, mmcif0_resources, ARRAY_SIZE(mmcif0_resources), &mmcif0_pdata, sizeof(mmcif0_pdata)); + platform_device_register_data(&platform_bus, "reg-fixed-voltage", 2, + &vcc_sdhi0_info, sizeof(vcc_sdhi0_info)); platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 0, sdhi0_resources, ARRAY_SIZE(sdhi0_resources), &sdhi0_pdata, sizeof(sdhi0_pdata)); + regulator_register_always_on(3, "SDHI1 Vcc", vcc_sdhi1_consumers, + ARRAY_SIZE(vcc_sdhi1_consumers), 3300000); platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 1, sdhi1_resources, ARRAY_SIZE(sdhi1_resources), &sdhi1_pdata, sizeof(sdhi1_pdata));