From patchwork Tue Jul 2 13:12:38 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rajeshwari Birje X-Patchwork-Id: 256407 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 B8DFD2C007C for ; Tue, 2 Jul 2013 23:11:55 +1000 (EST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 704FB4A210; Tue, 2 Jul 2013 15:11:50 +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 dnVvzmsXp8IJ; Tue, 2 Jul 2013 15:11:50 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 309EB4A174; Tue, 2 Jul 2013 15:11:37 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 1F0124A16F for ; Tue, 2 Jul 2013 15:11:34 +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 UX2SjhZ4uN+o for ; Tue, 2 Jul 2013 15:11:29 +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 ESMTP id 2A56D4A16C for ; Tue, 2 Jul 2013 15:11:24 +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 <0MPB00HV18MREVH0@mailout1.samsung.com> for u-boot@lists.denx.de; Tue, 02 Jul 2013 22:11:16 +0900 (KST) Received: from epcpsbgm1.samsung.com ( [172.20.52.123]) by epcpsbgr3.samsung.com (EPCPMTA) with SMTP id 66.22.03969.471D2D15; Tue, 02 Jul 2013 22:11:16 +0900 (KST) X-AuditID: cbfee68f-b7f436d000000f81-8d-51d2d174edb9 Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id 20.CC.28381.471D2D15; Tue, 02 Jul 2013 22:11:16 +0900 (KST) Received: from rajeshwari-linux.sisodomain.com ([107.108.215.115]) by mmp1.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0MPB00KIE8MK2K80@mmp1.samsung.com>; Tue, 02 Jul 2013 22:11:16 +0900 (KST) From: Rajeshwari Shinde To: u-boot@lists.denx.de Date: Tue, 02 Jul 2013 18:42:38 +0530 Message-id: <1372770761-5561-2-git-send-email-rajeshwari.s@samsung.com> X-Mailer: git-send-email 1.7.4.4 In-reply-to: <1372770761-5561-1-git-send-email-rajeshwari.s@samsung.com> References: <1372770761-5561-1-git-send-email-rajeshwari.s@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrGLMWRmVeSWpSXmKPExsWyRsSkWrfk4qVAg11PjC06jrQwWkw5/IXF YtXhDewW37ZsY7Q4+HABs8Xy1xvZLd7u7WR3YPeY3XCRxWPBplKPO9f2sHmcvbOD0aNvyyrG ANYoLpuU1JzMstQifbsErozNy/4wF8wTqXiw9wtjA2OTYBcjJ4eEgInE9pajbBC2mMSFe+vB bCGBpYwSs49ZwtS0tx5i7GLkAoovYpTYv+cOC4QzkUni7+bdLCBVbAJGEltPTmMEsUUEJCR+ 9V8F62AW6GGU2HRvG3sXIweHsIC7xOrp5iA1LAKqEq0zN7OC2LxA4Q/XNrFCbFOQODb1K5jN KeAh8b3tNSPERe4Sb3rOgy2WEFjELrHy8DVWiEECEt8mH2IBmS8hICux6QAzxBxJiYMrbrBM YBRewMiwilE0tSC5oDgpvchYrzgxt7g0L10vOT93EyMwzE//e9a/g/HuAetDjMlA4yYyS4km 5wPjJK8k3tDYzMjC1MTU2Mjc0ow0YSVxXrUW60AhgfTEktTs1NSC1KL4otKc1OJDjEwcnFIN jOU61vKt75dvWhJ9v8TD2TmL2aK45cZ1jcbMmrr5UTuqGMJunXj7s3CrwOznVjvXfHpx9Qlj 8ILCRdufr3/2u+JT0ZyATWf07rbxlQvufH/j6gs7kbnHeQ0k0rqEdOXPRtv1CNU+Xh+83LKj 4uR7uZutomtUe+M+qatqTT/QeTXyV3bf3GaxM0osxRmJhlrMRcWJAM5j92OJAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrCIsWRmVeSWpSXmKPExsVy+t9jAd2Si5cCDRa91LLoONLCaDHl8BcW i1WHN7BbfNuyjdHi4MMFzBbLX29kt3i7t5Pdgd1jdsNFFo8Fm0o97lzbw+Zx9s4ORo++LasY A1ijGhhtMlITU1KLFFLzkvNTMvPSbZW8g+Od403NDAx1DS0tzJUU8hJzU22VXHwCdN0yc4Du UFIoS8wpBQoFJBYXK+nbYZoQGuKmawHTGKHrGxIE12NkgAYS1jBmbF72h7lgnkjFg71fGBsY mwS7GDk5JARMJNpbDzFC2GISF+6tZ+ti5OIQEljEKLF/zx0WCGcik8TfzbtZQKrYBIwktp6c BtYhIiAh8av/KiNIEbNAD6PEpnvb2LsYOTiEBdwlVk83B6lhEVCVaJ25mRXE5gUKf7i2iRVi m4LEsalfwWxOAQ+J722vwWYKAdW86TnPMoGRdwEjwypG0dSC5ILipPRcQ73ixNzi0rx0veT8 3E2M4Dh6JrWDcWWDxSFGAQ5GJR5ehXkXA4VYE8uKK3MPMUpwMCuJ8HJvvBQoxJuSWFmVWpQf X1Sak1p8iDEZ6KqJzFKiyfnAGM8riTc0NjE3NTa1NLEwMbMkTVhJnPdAq3WgkEB6Yklqdmpq QWoRzBYmDk6pBkbjSsGT+UKb+Zyefps9rSWpjNev1/7qRu3rEwKf2ode0HyZHze1ctp0W5uE Y4q+0zr8lr1cf565Zvcv5cAMG/6b5bNCxFin7Aw/LWGtLf9BeX2vx+roAm71f9+v/FUJsfrh nnnzOu+qvPZs8zCRR9a1+2fuFYs7we4/0TPp6IFQr4wbe07G2SqxFGckGmoxFxUnAgDAmgP1 5wIAAA== DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected Cc: sreekumar.c@samsung.com, u-boot-review@google.com, patches@linaro.org, prashanth.g@samsung.com Subject: [U-Boot] [PATCH 1/4 V3] EXYNOS: Add API for power reset and exit wakeup 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 This patch adds APIs to get power reset status and exit the wakeup condition for both exynos5 and exynos4 Signed-off-by: Rajeshwari Shinde --- Changes in V2: - Expanded the comments for get_reset_status function declaration. Changes in V3: - None arch/arm/cpu/armv7/exynos/power.c | 50 ++++++++++++++++++++++++++++++ arch/arm/include/asm/arch-exynos/power.h | 12 +++++++ 2 files changed, 62 insertions(+), 0 deletions(-) diff --git a/arch/arm/cpu/armv7/exynos/power.c b/arch/arm/cpu/armv7/exynos/power.c index 6375a81..5d3bda2 100644 --- a/arch/arm/cpu/armv7/exynos/power.c +++ b/arch/arm/cpu/armv7/exynos/power.c @@ -140,3 +140,53 @@ void set_hw_thermal_trip(void) setbits_le32(&power->ps_hold_control, POWER_ENABLE_HW_TRIP); } } + +static uint32_t exynos5_get_reset_status(void) +{ + struct exynos5_power *power = + (struct exynos5_power *)samsung_get_base_power(); + + return power->inform1; +} + +static uint32_t exynos4_get_reset_status(void) +{ + struct exynos4_power *power = + (struct exynos4_power *)samsung_get_base_power(); + + return power->inform1; +} + +uint32_t get_reset_status(void) +{ + if (cpu_is_exynos5()) + return exynos5_get_reset_status(); + else + return exynos4_get_reset_status(); +} + +static void exynos5_power_exit_wakeup(void) +{ + struct exynos5_power *power = + (struct exynos5_power *)samsung_get_base_power(); + typedef void (*resume_func)(void); + + ((resume_func)power->inform0)(); +} + +static void exynos4_power_exit_wakeup(void) +{ + struct exynos4_power *power = + (struct exynos4_power *)samsung_get_base_power(); + typedef void (*resume_func)(void); + + ((resume_func)power->inform0)(); +} + +void power_exit_wakeup(void) +{ + if (cpu_is_exynos5()) + exynos5_power_exit_wakeup(); + else + exynos4_power_exit_wakeup(); +} diff --git a/arch/arm/include/asm/arch-exynos/power.h b/arch/arm/include/asm/arch-exynos/power.h index 3549667..b8db663 100644 --- a/arch/arm/include/asm/arch-exynos/power.h +++ b/arch/arm/include/asm/arch-exynos/power.h @@ -888,4 +888,16 @@ void set_ps_hold_ctrl(void); * source as XXTI */ void set_xclkout(void); + +/* + * Read inform1 to get the reset status. + * @return: the value can be either S5P_CHECK_SLEEP or + * S5P_CHECK_DIDLE or S5P_CHECK_LPA as stored in inform1 + * if none of these then its normal booting. + */ +uint32_t get_reset_status(void); + + +/* Read the resume function and call it */ +void power_exit_wakeup(void); #endif