From patchwork Thu May 15 08:56:57 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jaehoon Chung X-Patchwork-Id: 349124 X-Patchwork-Delegate: promsoft@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 053B8140083 for ; Thu, 15 May 2014 18:57:55 +1000 (EST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 7C54F4BE17; Thu, 15 May 2014 10:57:51 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at theia.denx.de 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 21wykt1zcgjn; Thu, 15 May 2014 10:57:51 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 3A5FE4BDC4; Thu, 15 May 2014 10:57:29 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 7CBDE4BD22 for ; Thu, 15 May 2014 10:57:22 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at theia.denx.de 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 QuH1bG7vqWVb for ; Thu, 15 May 2014 10:57:19 +0200 (CEST) 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 mailout1.samsung.com (mailout1.samsung.com [203.254.224.24]) by theia.denx.de (Postfix) with ESMTPS id 178BD4BD03 for ; Thu, 15 May 2014 10:57:15 +0200 (CEST) Received: from epcpsbgr3.samsung.com (u143.gpu120.samsung.co.kr [203.254.230.143]) by mailout1.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0N5L009RKY7C7E00@mailout1.samsung.com> for u-boot@lists.denx.de; Thu, 15 May 2014 17:57:12 +0900 (KST) Received: from epcpsbgm2.samsung.com ( [172.20.52.113]) by epcpsbgr3.samsung.com (EPCPMTA) with SMTP id AF.77.11120.76184735; Thu, 15 May 2014 17:57:11 +0900 (KST) X-AuditID: cbfee68f-b7eff6d000002b70-54-5374816731b2 Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm2.samsung.com (EPCPMTA) with SMTP id BD.91.25708.76184735; Thu, 15 May 2014 17:57:11 +0900 (KST) Received: from localhost.localdomain ([10.252.81.186]) by mmp1.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0N5L00D1IY7B2MH0@mmp1.samsung.com>; Thu, 15 May 2014 17:57:11 +0900 (KST) From: Jaehoon Chung To: u-boot@lists.denx.de Date: Thu, 15 May 2014 17:56:57 +0900 Message-id: <1400144230-9829-2-git-send-email-jh80.chung@samsung.com> X-Mailer: git-send-email 1.7.9.5 In-reply-to: <1400144230-9829-1-git-send-email-jh80.chung@samsung.com> References: <1400144230-9829-1-git-send-email-jh80.chung@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrKLMWRmVeSWpSXmKPExsWyRsSkUDe9sSTY4MlLG4vTn7axW9z41cZq 8ebhZkaLjiMtjBbrnqxltdh1ezKLxdu9newW5y7tYnXg8Jj3cyKTR/+mDmaPs3d2MHr0bVnF GMASxWWTkpqTWZZapG+XwJVxZd4r9oIjihX/tx9lbmDsl+5i5OSQEDCRmP7jKRuELSZx4d56 IJuLQ0hgKaPEpj+n2WCKek62MEIkFjFKnOj4wQzhtDFJXJi8iBGkik1AR2L7t+NMILaIgITE r/6rYB3MAvsZJX7tbWEGSQgLhEgc2TwLqIiDg0VAVeJ1nwqIySvgKnF9nRiIKSGgIDFnkg2I ySngJjGpowSkTwio4NydRWC3SQgsYpdYde4a2CYWAQGJb5MPsUC0ykpsOsAMcbKkxMEVN1gm MAovYGRYxSiaWpBcUJyUXmSsV5yYW1yal66XnJ+7iREY5Kf/PevfwXj3gPUhxmSgcROZpUST 84FRklcSb2hsZmRhamJqbGRuaUaasJI47/2HSUFCAumJJanZqakFqUXxRaU5qcWHGJk4OKUa GHuKnp63/XZy79evNf1xc8PyriZFuht+uRh5uG3rez2mBs3UvKLMs3xv7mScNH7EsDfrQeaC 37NVzrH3Z/OpWW77e//Gh55rnlqz7n1u4mG71KarWrfM9brnrXcO9tVLLF9Xu0T0i6w/I5Xr +Ot0tvrlG9+D3ifu+OF06fLGVYbzX9mnbFp4Z5YSS3FGoqEWc1FxIgCMUWpCiAIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrEIsWRmVeSWpSXmKPExsVy+t9jAd30xpJgg62/jSxOf9rGbnHjVxur xZuHmxktOo60MFqse7KW1WLX7cksFm/3drJbnLu0i9WBw2Pez4lMHv2bOpg9zt7ZwejRt2UV YwBLVAOjTUZqYkpqkUJqXnJ+SmZeuq2Sd3C8c7ypmYGhrqGlhbmSQl5ibqqtkotPgK5bZg7Q IUoKZYk5pUChgMTiYiV9O0wTQkPcdC1gGiN0fUOC4HqMDNBAwhrGjCvzXrEXHFGs+L/9KHMD Y790FyMnh4SAiUTPyRZGCFtM4sK99WxdjFwcQgKLGCVOdPxghnDamCQuTF4EVsUmoCOx/dtx JhBbREBC4lf/VUaQImaB/YwSv/a2MIMkhAVCJI5sngVUxMHBIqAq8bpPBcTkFXCVuL5ODMSU EFCQmDPJBsTkFHCTmNRRAtInBFRw7s4itgmMvAsYGVYxiqYWJBcUJ6XnGukVJ+YWl+al6yXn 525iBMfQM+kdjKsaLA4xCnAwKvHwMkwuDhZiTSwrrsw9xCjBwawkwruvviRYiDclsbIqtSg/ vqg0J7X4EGMy0EUTmaVEk/OB8Z1XEm9obGJmZGlkbmhhZGxOmrCSOO/BVutAIYH0xJLU7NTU gtQimC1MHJxSDYyFWgaTZ1/a982watkfr3MPnnne8lzXU+fM9Hb9BL7zZ2co5STxfhV/eLvv /IbQw0vqusJkdnvOP6Nfs3DliUlHHnvFxKYtPrx485OK527etZ12H0MlBGqmLUuc55zKUXYm a/vykBaZduXjEhuFF/Cr3g/3klF/efOZJ/vc7TvqX8XEzPUv0qtTYinOSDTUYi4qTgQASrvA XOUCAAA= DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected Cc: p.wilczek@samsung.com, panto@antoniou-consulting.com, Jaehoon Chung , vanbaren@cideas.com Subject: [U-Boot] [RESEND PATCHv4 01/14] arm: exynos: pinmux: add sdmmc4 gpio configratuion X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: u-boot-bounces@lists.denx.de Errors-To: u-boot-bounces@lists.denx.de From: Beomho Seo For use dwmmc controller at exynos4, add SDMMC4 gpio configuration. Signed-off-by: Beomho Seo Signed-off-by: Jaehoon Chung Tested-by: Piotr Wilczek Cc: Lukasz Majewski Cc: Piotr Wilczek Cc: Minkyu Kang --- arch/arm/cpu/armv7/exynos/pinmux.c | 35 +++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/arch/arm/cpu/armv7/exynos/pinmux.c b/arch/arm/cpu/armv7/exynos/pinmux.c index ee7c2e5..86a0c75 100644 --- a/arch/arm/cpu/armv7/exynos/pinmux.c +++ b/arch/arm/cpu/armv7/exynos/pinmux.c @@ -573,15 +573,26 @@ static void exynos4_i2c_config(int peripheral, int flags) static int exynos4_mmc_config(int peripheral, int flags) { int i, start = 0, start_ext = 0; + unsigned int func, ext_func; switch (peripheral) { case PERIPH_ID_SDMMC0: start = EXYNOS4_GPIO_K00; start_ext = EXYNOS4_GPIO_K13; + func = S5P_GPIO_FUNC(0x2); + ext_func = S5P_GPIO_FUNC(0x3); break; case PERIPH_ID_SDMMC2: start = EXYNOS4_GPIO_K20; start_ext = EXYNOS4_GPIO_K33; + func = S5P_GPIO_FUNC(0x2); + ext_func = S5P_GPIO_FUNC(0x3); + break; + case PERIPH_ID_SDMMC4: + start = EXYNOS4_GPIO_K00; + start_ext = EXYNOS4_GPIO_K13; + func = S5P_GPIO_FUNC(0x3); + ext_func = S5P_GPIO_FUNC(0x4); break; default: return -1; @@ -589,13 +600,14 @@ static int exynos4_mmc_config(int peripheral, int flags) for (i = start; i < (start + 7); i++) { if (i == (start + 2)) continue; - gpio_cfg_pin(i, S5P_GPIO_FUNC(0x2)); + gpio_cfg_pin(i, func); gpio_set_pull(i, S5P_GPIO_PULL_NONE); gpio_set_drv(i, S5P_GPIO_DRV_4X); } + /* SDMMC2 do not use 8bit mode at exynos4 */ if (flags & PINMUX_FLAG_8BIT_MODE) { for (i = start_ext; i < (start_ext + 4); i++) { - gpio_cfg_pin(i, S5P_GPIO_FUNC(0x3)); + gpio_cfg_pin(i, ext_func); gpio_set_pull(i, S5P_GPIO_PULL_NONE); gpio_set_drv(i, S5P_GPIO_DRV_4X); } @@ -676,15 +688,26 @@ static void exynos4x12_i2c_config(int peripheral, int flags) static int exynos4x12_mmc_config(int peripheral, int flags) { int i, start = 0, start_ext = 0; + unsigned int func, ext_func; switch (peripheral) { case PERIPH_ID_SDMMC0: start = EXYNOS4X12_GPIO_K00; start_ext = EXYNOS4X12_GPIO_K13; + func = S5P_GPIO_FUNC(0x2); + ext_func = S5P_GPIO_FUNC(0x3); break; case PERIPH_ID_SDMMC2: start = EXYNOS4X12_GPIO_K20; start_ext = EXYNOS4X12_GPIO_K33; + func = S5P_GPIO_FUNC(0x2); + ext_func = S5P_GPIO_FUNC(0x3); + break; + case PERIPH_ID_SDMMC4: + start = EXYNOS4_GPIO_K00; + start_ext = EXYNOS4_GPIO_K13; + func = S5P_GPIO_FUNC(0x3); + ext_func = S5P_GPIO_FUNC(0x4); break; default: return -1; @@ -692,13 +715,13 @@ static int exynos4x12_mmc_config(int peripheral, int flags) for (i = start; i < (start + 7); i++) { if (i == (start + 2)) continue; - gpio_cfg_pin(i, S5P_GPIO_FUNC(0x2)); + gpio_cfg_pin(i, func); gpio_set_pull(i, S5P_GPIO_PULL_NONE); gpio_set_drv(i, S5P_GPIO_DRV_4X); } if (flags & PINMUX_FLAG_8BIT_MODE) { for (i = start_ext; i < (start_ext + 4); i++) { - gpio_cfg_pin(i, S5P_GPIO_FUNC(0x3)); + gpio_cfg_pin(i, ext_func); gpio_set_pull(i, S5P_GPIO_PULL_NONE); gpio_set_drv(i, S5P_GPIO_DRV_4X); } @@ -759,10 +782,10 @@ static int exynos4_pinmux_config(int peripheral, int flags) break; case PERIPH_ID_SDMMC0: case PERIPH_ID_SDMMC2: + case PERIPH_ID_SDMMC4: return exynos4_mmc_config(peripheral, flags); case PERIPH_ID_SDMMC1: case PERIPH_ID_SDMMC3: - case PERIPH_ID_SDMMC4: debug("SDMMC device %d not implemented\n", peripheral); return -1; default: @@ -794,10 +817,10 @@ static int exynos4x12_pinmux_config(int peripheral, int flags) break; case PERIPH_ID_SDMMC0: case PERIPH_ID_SDMMC2: + case PERIPH_ID_SDMMC4: return exynos4x12_mmc_config(peripheral, flags); case PERIPH_ID_SDMMC1: case PERIPH_ID_SDMMC3: - case PERIPH_ID_SDMMC4: debug("SDMMC device %d not implemented\n", peripheral); return -1; default: