From patchwork Thu Nov 26 01:43:43 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chin Liang See X-Patchwork-Id: 548894 X-Patchwork-Delegate: marek.vasut@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 0BCBD1402DD for ; Thu, 26 Nov 2015 12:44:19 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id B57504B968; Thu, 26 Nov 2015 02:44:17 +0100 (CET) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id A28Jg6c0fxkV; Thu, 26 Nov 2015 02:44:17 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 4A8904B922; Thu, 26 Nov 2015 02:44:17 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 0E9244B922 for ; Thu, 26 Nov 2015 02:44:15 +0100 (CET) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ci9sZt5KOhmL for ; Thu, 26 Nov 2015 02:44:14 +0100 (CET) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0088.outbound.protection.outlook.com [207.46.100.88]) by theia.denx.de (Postfix) with ESMTPS id 0B0114B921 for ; Thu, 26 Nov 2015 02:44:11 +0100 (CET) Received: from CH1PR03CA003.namprd03.prod.outlook.com (10.255.156.148) by BLUPR0301MB1650.namprd03.prod.outlook.com (10.162.214.144) with Microsoft SMTP Server (TLS) id 15.1.331.20; Thu, 26 Nov 2015 01:44:08 +0000 Received: from BL2FFO11OLC016.protection.gbl (10.255.156.132) by CH1PR03CA003.outlook.office365.com (10.255.156.148) with Microsoft SMTP Server (TLS) id 15.1.331.20 via Frontend Transport; Thu, 26 Nov 2015 01:44:08 +0000 Authentication-Results: spf=softfail (sender IP is 66.35.236.227) smtp.mailfrom=altera.com; denx.de; dkim=none (message not signed) header.d=none; denx.de; dmarc=none action=none header.from=altera.com; Received-SPF: SoftFail (protection.outlook.com: domain of transitioning altera.com discourages use of 66.35.236.227 as permitted sender) Received: from sj-itexedge03.altera.priv.altera.com (66.35.236.227) by BL2FFO11OLC016.mail.protection.outlook.com (10.173.160.82) with Microsoft SMTP Server (TLS) id 15.1.331.11 via Frontend Transport; Thu, 26 Nov 2015 01:44:07 +0000 Received: from sj-mail01.altera.com (137.57.1.6) by webmail.altera.com (66.35.236.227) with Microsoft SMTP Server (TLS) id 14.3.174.1; Wed, 25 Nov 2015 17:43:31 -0800 Received: from sunrise.altera.com (pg-clsee-450.altera.priv.altera.com [137.57.103.45]) by sj-mail01.altera.com (8.13.7+Sun/8.13.7) with ESMTP id tAQ1hucp009130; Wed, 25 Nov 2015 17:44:02 -0800 (PST) From: Chin Liang See To: Date: Thu, 26 Nov 2015 09:43:43 +0800 Message-ID: <1448502223-3159-1-git-send-email-clsee@altera.com> X-Mailer: git-send-email 2.5.0 MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11OLC016; 1:fBJ7HR6KF/+Iz1dDq9Y/x/ncOYaMJ27PzpbKZH4bMB3p9LsXev2EV00717Pwm9YZYNlBOXRzMsmzhD8puR7QCw35lM718AdVzLy6mFkP4gkeHS6AxlGrxubb8E5eXxn7qi00wRdxWJK79ZEEsHhVGJKAnLhEVeN2MXEbSoLRT4ndQSoOYj8OnxmZkv4gm6dTfM+CVavC8rhdLSarBkKgMebh85VoQ/n1ItoQ8q0fqQXtXAolvgNNp5SEpCVjg9sl9/lmY8URQhtQB3KyL8mCfeoRKmBcykO7hmSs8clOQPBJE1RZo9Nw0vVG0FeUlhPV/oEWNU1W3Mb/e0G7NjEa8UZbtKJvUFUybsObNge7v45436uWhnyp8+z8A8SWCOOCGy2xlL+oJ3W3xw7ZOO44dA== X-Forefront-Antispam-Report: CIP:66.35.236.227; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(2980300002)(189002)(199003)(5001960100002)(50226001)(189998001)(50466002)(110136002)(97736004)(81156007)(11100500001)(1220700001)(87936001)(229853001)(36756003)(48376002)(2351001)(5003940100001)(53416004)(5008740100001)(16796002)(6806005)(50986999)(92566002)(86362001)(575784001)(586003)(106466001)(47776003)(19580395003)(5003600100002)(33646002)(105596002)(19580405001)(1096002)(7099028); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0301MB1650; H:sj-itexedge03.altera.priv.altera.com; FPR:; SPF:SoftFail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0301MB1650; 2:QEd0wh//r3QUwq9FhAGfK3ynm9Luhd/fCw4bQkMAr3UiUETkS48GtJHiDhu9wMbizysYPwj/SmOfxBKNvYfIiqxV3YRNzsplzUStXWawZ24/FcaOZunSHGrIXqkIucqyX5RrUaBvq14yE03GaAKJsQ==; 3:gbbFSL7Z1R5IHFIQvHVsFbLqm+6G0w9cU9aQjB+XHAL9ZAjRr6QcC28kSQVOJkuTB722AtpEIzJDMrpuh3AJlUikuOs1xl5fM5c1KpW0OqM9Dhvcyxdj4x8bM3p4u0FqFBl2Zn4u3Ts87HLy8+OXYJPEXQanGgTeA3ZZy3DtNVYtGm2Gw/oLatm0376w2DtusWX4yKzAEx3KyivGW4NffAwYxdoFDzElPtK+DF5+ifE=; 25:JTRwD95DWBX2a9JfILZ3Pr6AJq0jsKHFgJ5aXO09oL2qp+Lc2J9/Kt7IjgNZwtE1uhLq+VtNmED+dxUrm/t1kgeKA4TER97CNQW+hGC303X5ili2PWTFKpHQt34sseGshuiXNjECBhyd22YUsI3+dCrut/ZifH+M8j5xIl2KXg1Pf+75AE53E33VXBpbQTS4pGGgjs8BbUohfCRf3T4JF+nhjPDmB7od7jFnFf5WotU6g1QIAQwCNAVNThL44J6BzUmf/mwcVwE/zf4I2fJ1Lg==; 20:bHhzV12muVvs+JwEWi4y0DRQ8SnvMaHm7mfCdwERgfrRdHaWmAF9npCt5+YpEszKkP7mSyYJyEF5+QiHfquT1cxjsn8FRI99fzXnlcoSEEJO3kcSR2t9uZsA8dc0TZidPvcOLoFqJnf1sZTFXZIgBCBRajdQVQ+i9DiF6vYhC1M= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR0301MB1650; X-LD-Processed: fbd72e03-d4a5-4110-adce-614d51f2077a,ExtAddr X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(80048183373757)(204874498639787); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(8121501046)(520078)(5005006)(3002001)(10201501046); SRVR:BLUPR0301MB1650; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0301MB1650; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0301MB1650; 4:1ayLWGbDenrdYUHTGlYPYT/Z8sW/korV4G4wKVFMc7frbBrnVGOxgacB4fY/HMjuTH3+SJAOcKpyXIl6DlQ0pA1wcTwFzJc4lESxZseualGurH2qD/yETVOU4yuAhvAKwmm8BsTGKe2xGYFP2mqYDkSuAlw9fFh9s3HHZLQLNDI89CjkF4rJAs5y2ojZKqFFZ/n4raeJN87HidnfneboGJ87SO4ogksEfWwqBMjT3o4wjX8b1bLrgNm5ows8gtJtk66HaAmJi8eSm/vdgGG2DGfmpZUHWoPXvnm+39T+vAPWjMF4/v4BFQIaMt6+IcflM3r8vu6KD0AqIqg6h+eVOIF4Q2f35XRV/m//mciICaHsTBbJW6kBPW5AV33dmr5RVRyxGt+vrQ2BlEx1vIFv3smx5eHO6DyJHpZawiM4+aMymo93ku5eS2AvoDNwJWYRqcysfpTGKK9qmyKXX++/ew== X-Forefront-PRVS: 0772E5DAD5 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0301MB1650; 23:LuBGYp6ZsAgxXNkENXcrbE8klIb4ILK6v8x0c+y?= =?us-ascii?Q?QlcXJe+A6Efwm5FSdNc15AWYEZk3/V7XmvkfYgWQOrE+1+jDcz7Arl7bC6g3?= =?us-ascii?Q?xzlyC6pwTdCPvZVDti6h29ep6Xv47oJ1+epOGNlu0C2NW2LtuQEFVbIBK3cu?= =?us-ascii?Q?I3GEBmKRWPZLGxxkWhUNxsTpzyiP8zVO3Jo29lzpG8LROpZGzt86IFU1/P+X?= =?us-ascii?Q?xGKnhQshmfjgYkdq9Qi3F9kCdyC+yC4T6xvOn+sl8+ElaGpixc36/19e7fjv?= =?us-ascii?Q?BqJohaMLaORt4ACMRWdv+dPTdFTW8vcLLik7YTUMISXaB9D5nbJIyAyhCnvw?= =?us-ascii?Q?zf0+tybv9W+VO5jeaEi+mDMJ8E953Ra6wbz7ZFGOPq6nNodYjNE/MI+KNiLY?= =?us-ascii?Q?VGvsPrU/WzHKIgcwN4BCYsISQh7YfcwSgHgM3tOxJqMRx5Lb8CuaVQxxNCZC?= =?us-ascii?Q?mjJ+9WtGtAd8jDWjpd9Xem4JJv+b7S/vveyrnJcznHlNvYmH8EkyMkNeWHrN?= =?us-ascii?Q?2en5cZYd+IhzZVbfPPbEbNuyTGFGLIiDMrHBdbzpRJXAIzg4vWGGAk0wY1T9?= =?us-ascii?Q?kWwgrHZv5rmOkRsh9d9eu6lUkBjxmA5rHYU+eTQRghUo9geUdVhCvcWpkJKA?= =?us-ascii?Q?aPsB5As4DrNDbl+MRUsD5cXH5v/2tBj4KQczZ5AJdSy65Pt2HTeP/G65vzFG?= =?us-ascii?Q?kHybkHT2dwYhoL3y44GF/kVzzo7y+YXTTfkAD7VntHb3VNPZEBCjNYYfzirl?= =?us-ascii?Q?4z3B2bPxPrXvRElb3Zw6u2Tp/gQpGw+gnj5ZVsvqg/jh2r8Hj647IqcNLd/K?= =?us-ascii?Q?EE8wrcWqrom/KTSRmi0WetBmJjFT+KL0zrRorkPmaj+cBs/x9ef/AGZ4es5X?= =?us-ascii?Q?SBoeOEHtIM4pK/soyRHdk+h4S1AKRB23oU/nshCkxNMwqaCfgE9NPNJZh5p6?= =?us-ascii?Q?DTR3YYScKdJcp/C+HB/EZPrwNlE7XndalSC8lBtpUlo3u02nzoD3KQBfYeTg?= =?us-ascii?Q?Nio9dF+Or45+JpDPpJeQjAqB6?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0301MB1650; 5:/B6A2qTsNZN2OlCPCsXK9N85ESpvi8zKbhNM5E72RZHVoNVDGW0lM5TyGCeE1+0V3vMRsltIqGNhyQvxBg1IRl7C4ojghAfH14XXx19brQtzDsHy2irzg1MSdXq/rSThXeYg9K84Z0zrwu06SR37PA==; 24:HX4xTiXoxTipSXTXIYu+ZrkPW8oS6ic232gxZVi21TWtT4sQtMJGM/hhXMsLfLkb9/pkiKFVm9CLwWoxlTN0a8ACwjRHy5/Whw3HvCNZI4M=; 20:gjQxCleKGO3+7tsWfpBmojY+Z7zc59kR6QMexLdJCFSkozjn6EHYIkISLAFuSWqVmeRvVddFMuSgd0rwiH06enDBWYw4l1KOwFqc7l6eeyKA6YQwJyfJ4DyQRK7/cyCj4aM702J3LcSXepLVb+olkNvdqfDwMPWNN7jTqvHEaOk= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: altera.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2015 01:44:07.7433 (UTC) X-MS-Exchange-CrossTenant-Id: fbd72e03-d4a5-4110-adce-614d51f2077a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=fbd72e03-d4a5-4110-adce-614d51f2077a; Ip=[66.35.236.227]; Helo=[sj-itexedge03.altera.priv.altera.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0301MB1650 Cc: Marek Vasut , Pavel Machek , Pantelis Antoniou , Chin Liang See , Jaehoon Chung , Stefan Roese Subject: [U-Boot] [PATCH v3 1/2] mmc: socfpga_dw_mmc: Move drvsel and smplsel to dts X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.15 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" socfpga_dw_mmc driver will obtain the drvsel and smplsel value from device tree instead of definition in config header file. Signed-off-by: Chin Liang See Cc: Dinh Nguyen Cc: Dinh Nguyen Cc: Pavel Machek Cc: Marek Vasut Cc: Stefan Roese Cc: Pantelis Antoniou Cc: Simon Glass Cc: Jaehoon Chung Acked-by: Marek Vasut Acked-by: Jaehoon Chung --- Changes for v3 - Split patch to separte DTS and driver patches Changes for v2 - Put default value for drvsel to 3 in case node in DT missing - Remove unnecessary ad-hoc vairable - Free up first calloc if second calloc failed --- drivers/mmc/socfpga_dw_mmc.c | 29 +++++++++++++++++++++-------- include/configs/socfpga_common.h | 2 -- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/drivers/mmc/socfpga_dw_mmc.c b/drivers/mmc/socfpga_dw_mmc.c index 8076761..2bd0ebd 100644 --- a/drivers/mmc/socfpga_dw_mmc.c +++ b/drivers/mmc/socfpga_dw_mmc.c @@ -19,21 +19,23 @@ static const struct socfpga_clock_manager *clock_manager_base = static const struct socfpga_system_manager *system_manager_base = (void *)SOCFPGA_SYSMGR_ADDRESS; -static void socfpga_dwmci_clksel(struct dwmci_host *host) -{ +/* socfpga implmentation specific drver private data */ +struct dwmci_socfpga_priv_data { unsigned int drvsel; unsigned int smplsel; +}; + +static void socfpga_dwmci_clksel(struct dwmci_host *host) +{ + struct dwmci_socfpga_priv_data *priv = host->priv; /* Disable SDMMC clock. */ clrbits_le32(&clock_manager_base->per_pll.en, CLKMGR_PERPLLGRP_EN_SDMMCCLK_MASK); - /* Configures drv_sel and smpl_sel */ - drvsel = CONFIG_SOCFPGA_DWMMC_DRVSEL; - smplsel = CONFIG_SOCFPGA_DWMMC_SMPSEL; - - debug("%s: drvsel %d smplsel %d\n", __func__, drvsel, smplsel); - writel(SYSMGR_SDMMC_CTRL_SET(smplsel, drvsel), + debug("%s: drvsel %d smplsel %d\n", __func__, + priv->drvsel, priv->smplsel); + writel(SYSMGR_SDMMC_CTRL_SET(priv->smplsel, priv->drvsel), &system_manager_base->sdmmcgrp_ctrl); debug("%s: SYSMGR_SDMMCGRP_CTRL_REG = 0x%x\n", __func__, @@ -50,6 +52,7 @@ static int socfpga_dwmci_of_probe(const void *blob, int node, const int idx) const unsigned long clk = cm_get_mmc_controller_clk_hz(); struct dwmci_host *host; + struct dwmci_socfpga_priv_data *priv; fdt_addr_t reg_base; int bus_width, fifo_depth; @@ -83,6 +86,13 @@ static int socfpga_dwmci_of_probe(const void *blob, int node, const int idx) if (!host) return -ENOMEM; + /* Allocate the priv */ + priv = calloc(1, sizeof(*priv)); + if (!priv) { + free(host); + return -ENOMEM; + } + host->name = "SOCFPGA DWMMC"; host->ioaddr = (void *)reg_base; host->buswidth = bus_width; @@ -92,6 +102,9 @@ static int socfpga_dwmci_of_probe(const void *blob, int node, const int idx) host->bus_hz = clk; host->fifoth_val = MSIZE(0x2) | RX_WMARK(fifo_depth / 2 - 1) | TX_WMARK(fifo_depth / 2); + priv->drvsel = fdtdec_get_uint(blob, node, "drvsel", 3); + priv->smplsel = fdtdec_get_uint(blob, node, "smplsel", 0); + host->priv = priv; return add_dwmci(host, host->bus_hz, 400000); } diff --git a/include/configs/socfpga_common.h b/include/configs/socfpga_common.h index f6808b5..b661cc2 100644 --- a/include/configs/socfpga_common.h +++ b/include/configs/socfpga_common.h @@ -153,8 +153,6 @@ #define CONFIG_DWMMC #define CONFIG_SOCFPGA_DWMMC #define CONFIG_SOCFPGA_DWMMC_FIFO_DEPTH 1024 -#define CONFIG_SOCFPGA_DWMMC_DRVSEL 3 -#define CONFIG_SOCFPGA_DWMMC_SMPSEL 0 /* FIXME */ /* using smaller max blk cnt to avoid flooding the limited stack we have */ #define CONFIG_SYS_MMC_MAX_BLK_COUNT 256 /* FIXME -- SPL only? */