From patchwork Thu Jan 8 05:44:25 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joonyoung Shim X-Patchwork-Id: 426507 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 12C171400DE for ; Thu, 8 Jan 2015 16:44:44 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id C1A974B63A; Thu, 8 Jan 2015 06:44:42 +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 UKJuG2Iz8ANg; Thu, 8 Jan 2015 06:44:42 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id BF73F4B62A; Thu, 8 Jan 2015 06:44:41 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 11E1C4B62A for ; Thu, 8 Jan 2015 06:44:38 +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 6V5sc2b7jBXw for ; Thu, 8 Jan 2015 06:44:37 +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 mailout3.samsung.com (mailout3.samsung.com [203.254.224.33]) by theia.denx.de (Postfix) with ESMTPS id 073664B61A for ; Thu, 8 Jan 2015 06:44:32 +0100 (CET) Received: from epcpsbgr4.samsung.com (u144.gpu120.samsung.co.kr [203.254.230.144]) by mailout3.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0NHU00JL9FXRCG80@mailout3.samsung.com> for u-boot@lists.denx.de; Thu, 08 Jan 2015 14:44:15 +0900 (KST) Received: from epcpsbgm2.samsung.com ( [172.20.52.113]) by epcpsbgr4.samsung.com (EPCPMTA) with SMTP id 30.54.18167.F291EA45; Thu, 08 Jan 2015 14:44:15 +0900 (KST) X-AuditID: cbfee690-f79ab6d0000046f7-be-54ae192f238d Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm2.samsung.com (EPCPMTA) with SMTP id 73.F7.09430.F291EA45; Thu, 08 Jan 2015 14:44:15 +0900 (KST) Received: from localhost.localdomain ([10.252.81.123]) by mmp1.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0NHU00LFAFXQDQB0@mmp1.samsung.com>; Thu, 08 Jan 2015 14:44:15 +0900 (KST) From: Joonyoung Shim To: u-boot@lists.denx.de Date: Thu, 08 Jan 2015 14:44:25 +0900 Message-id: <1420695867-1621-1-git-send-email-jy0922.shim@samsung.com> X-Mailer: git-send-email 1.9.1 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrPLMWRmVeSWpSXmKPExsWyRsSkUFdfcl2IQdMtJYulM/pYLV7cu8hi 0XGkhdFix+UbLBbftmxjtJh+/C2rxdu9newO7B6zGy6yePx9fp3F4+ydHYwefVtWMQawRHHZ pKTmZJalFunbJXBl9Fx8w1qwQLTi7aQ29gbGfYJdjJwcEgImEr1ztjFD2GISF+6tZwOxhQSW MkrMOuMNU7Pl7m2o+CJGid8tyV2MXEB2G5PEhqn7GEESbAJ6Ene2HWcCsUUEJCR+9V9lBCli FpjCKPHxznWwImEBB4lpy/ewgtgsAqoSu2dOZAGxeQXcJD4/u8EIsU1O4uSxyawgzRIC39kk bt1cwAbRICDxbfIhoAYOoISsxKYDUFdLShxccYNlAqPgAkaGVYyiqQXJBcVJ6UUmesWJucWl eel6yfm5mxiB4Xr637MJOxjvHbA+xCjAwajEw/vh/toQIdbEsuLK3EOMpkAbJjJLiSbnA6Mi ryTe0NjMyMLUxNTYyNzSTEmc97XUz2AhgfTEktTs1NSC1KL4otKc1OJDjEwcnFINjFLHztRv TM65vuTrhQnXlFeG9HjymtyplfP/eUPEbcuBHc5iq2NYpm8wU36yJSCnUOZW24lQzefCqvd6 vjYItDPUlF35rDNpqvYvyynzM+PTsv65z5yxaZNixIed7GyfLngH2QGVzFcp7VTPvl/PGPnS vCNdr1tl/xV19XN9Z3JNLMsvZhoosRRnJBpqMRcVJwIA9Q+2BVICAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupikeLIzCtJLcpLzFFi42I5/e+xgK6+5LoQg41bpSyWzuhjtXhx7yKL RceRFkaLHZdvsFh827KN0WL68besFm/3drI7sHvMbrjI4vH3+XUWj7N3djB69G1ZxRjAEtXA aJORmpiSWqSQmpecn5KZl26r5B0c7xxvamZgqGtoaWGupJCXmJtqq+TiE6DrlpkDdIOSQlli TilQKCCxuFhJ3w7ThNAQN10LmMYIXd+QILgeIwM0kLCGMaPn4hvWggWiFW8ntbE3MO4T7GLk 5JAQMJHYcvc2G4QtJnHh3nowW0hgEaPE75bkLkYuILuNSWLD1H2MIAk2AT2JO9uOM4HYIgIS Er/6rzKCFDELTGGU+HjnOliRsICDxLTle1hBbBYBVYndMyeygNi8Am4Sn5/dYITYJidx8thk 1gmM3AsYGVYxiqYWJBcUJ6XnGukVJ+YWl+al6yXn525iBMfDM+kdjKsaLA4xCnAwKvHwfri/ NkSINbGsuDL3EKMEB7OSCG/yE6AQb0piZVVqUX58UWlOavEhRlOg7ROZpUST84GxmlcSb2hs YmZkaWRuaGFkbK4kzqtk3xYiJJCeWJKanZpakFoE08fEwSnVwJi0hjFLqu3RNPO9p/9xZe2P O1N+tOtBzp07Et8vLQ5sWB/xVtriSZL7tJvTRdbOlN2dEdNsxBailHt+2c0F3kzW3T8KGO5k ue71CS94mPTqSvs3nifBXVJbXhn+YT1dPPVljoOqQPAj3eYSib5DS72OCFe8U3kdwdwf1eW9 Mi982rSQMkOxb0osxRmJhlrMRcWJAAeIzKadAgAA DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected Cc: p.marczak@samsung.com, human.hwang@samsung.com Subject: [U-Boot] [PATCH 1/3] samsung: board: support eMMC reset using DT X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.13 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 Some exynos boards require special handling of SD4_nRESET_OUT line for eMMC memory to perform complete reboot e.g. Odroid X2/U3/XU3 boards. This will support eMMC reset using DT from reset_misc of samsung common board file and each board files can support eMMC reset on non DT case. Signed-off-by: Joonyoung Shim --- board/samsung/common/board.c | 27 ++++++++++++++++++++++++++ board/samsung/odroid/odroid.c | 2 +- doc/device-tree-bindings/exynos/emmc-reset.txt | 15 ++++++++++++++ 3 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 doc/device-tree-bindings/exynos/emmc-reset.txt diff --git a/board/samsung/common/board.c b/board/samsung/common/board.c index c04ab3c..3218463 100644 --- a/board/samsung/common/board.c +++ b/board/samsung/common/board.c @@ -40,6 +40,8 @@ __weak int exynos_power_init(void) return 0; } +__weak void exynos_reset_misc(void) {} + #if defined CONFIG_EXYNOS_TMU /* Boot Time Thermal Analysis for SoC temperature threshold breach */ static void boot_temp_check(void) @@ -400,3 +402,28 @@ int misc_init_r(void) return 0; } #endif + +void reset_misc(void) +{ +#ifdef CONFIG_OF_CONTROL + struct gpio_desc gpio = {}; + int node; + + node = fdt_node_offset_by_compatible(gd->fdt_blob, 0, + "samsung,emmc-reset"); + if (node < 0) + return; + + gpio_request_by_name_nodev(gd->fdt_blob, node, "reset-gpio", 0, &gpio, + GPIOD_IS_OUT); + + if (dm_gpio_is_valid(&gpio)) { + /* Reset eMMC*/ + dm_gpio_set_value(&gpio, 0); + mdelay(10); + dm_gpio_set_value(&gpio, 1); + } +#else + exynos_reset_misc(); +#endif +} diff --git a/board/samsung/odroid/odroid.c b/board/samsung/odroid/odroid.c index 3f43e17..db35945 100644 --- a/board/samsung/odroid/odroid.c +++ b/board/samsung/odroid/odroid.c @@ -516,7 +516,7 @@ int board_usb_init(int index, enum usb_init_type init) } #endif -void reset_misc(void) +void exynos_reset_misc(void) { /* Reset eMMC*/ gpio_set_value(EXYNOS4X12_GPIO_K12, 0); diff --git a/doc/device-tree-bindings/exynos/emmc-reset.txt b/doc/device-tree-bindings/exynos/emmc-reset.txt new file mode 100644 index 0000000..e48e508 --- /dev/null +++ b/doc/device-tree-bindings/exynos/emmc-reset.txt @@ -0,0 +1,15 @@ +* Samsung eMMC reset + +Some exynos boards require special handling of SD4_nRESET_OUT line for eMMC +memory to perform complete reboot. + +Required properties: +- compatible: should be "samsung,emmc-reset" +- reset-gpio: gpio chip for eMMC reset. + +Example: + +emmc-reset { + compatible = "samsung,emmc-reset"; + reset-gpio = <&gpk1 2 0>; +};