From patchwork Thu Dec 5 13:34:51 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sascha Hauer X-Patchwork-Id: 3288201 Return-Path: X-Original-To: patchwork-linux-mmc@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 1A1299F387 for ; Thu, 5 Dec 2013 13:35:20 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 4D9512041D for ; Thu, 5 Dec 2013 13:35:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 12EC2203B4 for ; Thu, 5 Dec 2013 13:35:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932213Ab3LENfL (ORCPT ); Thu, 5 Dec 2013 08:35:11 -0500 Received: from metis.ext.pengutronix.de ([92.198.50.35]:49787 "EHLO metis.ext.pengutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932203Ab3LENfK (ORCPT ); Thu, 5 Dec 2013 08:35:10 -0500 Received: from dude.hi.pengutronix.de ([2001:6f8:1178:2:21e:67ff:fe11:9c5c]) by metis.ext.pengutronix.de with esmtp (Exim 4.72) (envelope-from ) id 1VoZ4v-000686-4F; Thu, 05 Dec 2013 14:34:53 +0100 Received: from sha by dude.hi.pengutronix.de with local (Exim 4.80) (envelope-from ) id 1VoZ4u-0002oi-9Z; Thu, 05 Dec 2013 14:34:52 +0100 From: Sascha Hauer To: linux-mmc@vger.kernel.org Cc: Chris Ball , , Sascha Hauer Subject: [PATCH 6/6] mmc: mxs: use mmc_of_parse to parse devicetree properties Date: Thu, 5 Dec 2013 14:34:51 +0100 Message-Id: <1386250491-4708-7-git-send-email-s.hauer@pengutronix.de> X-Mailer: git-send-email 1.8.4.3 In-Reply-To: <1386250491-4708-1-git-send-email-s.hauer@pengutronix.de> References: <1386250491-4708-1-git-send-email-s.hauer@pengutronix.de> X-SA-Exim-Connect-IP: 2001:6f8:1178:2:21e:67ff:fe11:9c5c X-SA-Exim-Mail-From: sha@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-mmc@vger.kernel.org Sender: linux-mmc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-mmc@vger.kernel.org X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00, 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 Use generic helper function. This also adds support for the cd-gpios and max-frequency devicetree properties. Signed-off-by: Sascha Hauer --- drivers/mmc/host/mxs-mmc.c | 37 +++++++++++-------------------------- 1 file changed, 11 insertions(+), 26 deletions(-) diff --git a/drivers/mmc/host/mxs-mmc.c b/drivers/mmc/host/mxs-mmc.c index 13016e2..073e871 100644 --- a/drivers/mmc/host/mxs-mmc.c +++ b/drivers/mmc/host/mxs-mmc.c @@ -76,7 +76,11 @@ static int mxs_mmc_get_cd(struct mmc_host *mmc) { struct mxs_mmc_host *host = mmc_priv(mmc); struct mxs_ssp *ssp = &host->ssp; - int present; + int present, ret; + + ret = mmc_gpio_get_cd(mmc); + if (ret >= 0) + return ret; present = !(readl(ssp->base + HW_SSP_STATUS(ssp)) & BM_SSP_STATUS_CARD_DETECT); @@ -564,15 +568,12 @@ static int mxs_mmc_probe(struct platform_device *pdev) { const struct of_device_id *of_id = of_match_device(mxs_mmc_dt_ids, &pdev->dev); - struct device_node *np = pdev->dev.of_node; struct mxs_mmc_host *host; struct mmc_host *mmc; struct resource *iores; - int ret = 0, irq_err, gpio; + int ret = 0, irq_err; struct regulator *reg_vmmc; - enum of_gpio_flags flags; struct mxs_ssp *ssp; - u32 bus_width = 0; iores = platform_get_resource(pdev, IORESOURCE_MEM, 0); irq_err = platform_get_irq(pdev, 0); @@ -633,29 +634,13 @@ static int mxs_mmc_probe(struct platform_device *pdev) mmc->caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SDIO_IRQ | MMC_CAP_NEEDS_POLL; - of_property_read_u32(np, "bus-width", &bus_width); - if (bus_width == 4) - mmc->caps |= MMC_CAP_4_BIT_DATA; - else if (bus_width == 8) - mmc->caps |= MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA; - if (of_property_read_bool(np, "broken-cd")) - mmc->caps |= MMC_CAP_NEEDS_POLL; - if (of_property_read_bool(np, "non-removable")) - mmc->caps |= MMC_CAP_NONREMOVABLE; - gpio = of_get_named_gpio_flags(np, "wp-gpios", 0, &flags); - if (gpio_is_valid(gpio)) { - ret = mmc_gpio_request_ro(mmc, gpio); - if (ret) - goto out_clk_disable; - if (!(flags & OF_GPIO_ACTIVE_LOW)) - mmc->caps2 |= MMC_CAP2_RO_ACTIVE_HIGH; - } - - if (of_property_read_bool(np, "cd-inverted")) - mmc->caps2 |= MMC_CAP2_CD_ACTIVE_HIGH; - mmc->f_min = 400000; mmc->f_max = 288000000; + + ret = mmc_of_parse(mmc); + if (ret) + goto out_clk_disable; + mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34; mmc->max_segs = 52;