From patchwork Mon Jul 1 10:02:03 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rajeshwari Birje X-Patchwork-Id: 256056 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 243BE2C00A7 for ; Mon, 1 Jul 2013 20:01:36 +1000 (EST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 131494A1C5; Mon, 1 Jul 2013 12:01:25 +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 2E7Ti3gujznH; Mon, 1 Jul 2013 12:01:24 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id B03814A18E; Mon, 1 Jul 2013 12:01:12 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 428ED4A178 for ; Mon, 1 Jul 2013 12:01:00 +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 jCyAME2l2aSj for ; Mon, 1 Jul 2013 12:00:54 +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 mailout2.samsung.com (mailout2.samsung.com [203.254.224.25]) by theia.denx.de (Postfix) with ESMTP id 33AC64A184 for ; Mon, 1 Jul 2013 12:00:51 +0200 (CEST) Received: from epcpsbgr4.samsung.com (u144.gpu120.samsung.co.kr [203.254.230.144]) by mailout2.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MP900CC354P58A0@mailout2.samsung.com> for u-boot@lists.denx.de; Mon, 01 Jul 2013 19:00:41 +0900 (KST) Received: from epcpsbgm1.samsung.com ( [172.20.52.123]) by epcpsbgr4.samsung.com (EPCPMTA) with SMTP id 24.0F.29708.94351D15; Mon, 01 Jul 2013 19:00:41 +0900 (KST) X-AuditID: cbfee690-b7f6f6d00000740c-ee-51d153493200 Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id 14.01.28381.94351D15; Mon, 01 Jul 2013 19:00:41 +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 <0MP9006XU54ZGCO0@mmp1.samsung.com>; Mon, 01 Jul 2013 19:00:41 +0900 (KST) From: Rajeshwari Shinde To: u-boot@lists.denx.de Date: Mon, 01 Jul 2013 15:32:03 +0530 Message-id: <1372672926-32614-2-git-send-email-rajeshwari.s@samsung.com> X-Mailer: git-send-email 1.7.4.4 In-reply-to: <1372672926-32614-1-git-send-email-rajeshwari.s@samsung.com> References: <1372672926-32614-1-git-send-email-rajeshwari.s@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrGLMWRmVeSWpSXmKPExsWyRsSkWtcz+GKgQecqXYuOIy2MFlMOf2Gx WHV4A7vFty3bGC0OPlzAbLH89UZ2i7d7O9kd2D1mN1xk8ViwqdTjzrU9bB5n7+xg9Ojbsoox gDWKyyYlNSezLLVI3y6BK2PO1Q6mglaRiqeLbBoYPwp0MXJySAiYSHxecJQdwhaTuHBvPVsX IxeHkMBSRomf1xezwhS9u76NCSKxiFHi2YNzUM5EJoknL74xg1SxCRhJbD05jRHEFhGQkPjV f5URpIhZoIdRYtO9bWA7hAXcJXY8mgJmswioSnx//hWomYODV8ADqDkQYpuCxLGpX8E2cwp4 SvxY9g3MFgIqabm/nRVkpoTAPHaJad/WQc0RkPg2+RALyBwJAVmJTQeYIeZIShxccYNlAqPw AkaGVYyiqQXJBcVJ6UUmesWJucWleel6yfm5mxiBYX7637MJOxjvHbA+xJgMNG4is5Rocj4w TvJK4g2NzYwsTE1MjY3MLc1IE1YS51VvsQ4UEkhPLEnNTk0tSC2KLyrNSS0+xMjEwSnVwGiR P6skyiO25/CG0oR2rWMrjy6KyNR0m+lq17FtZvQlLsut/3k+cT7IW7pw+8vrLLHXp/mkvehe bzBfLK5E8ouKnOVPvbOVvS8X8Yc9mjTfZ5k2Z0X3tm/yi7RYVaf7btM1Sc7m2nko9Nqd7AXG z7533F+xPSLwGIsDR8uGX2xpHZNjYn8u81NiKc5INNRiLipOBADSTRJaiQIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrMIsWRmVeSWpSXmKPExsVy+t9jAV3P4IuBBt/mqFh0HGlhtJhy+AuL xarDG9gtvm3Zxmhx8OECZovlrzeyW7zd28nuwO4xu+Eii8eCTaUed67tYfM4e2cHo0ffllWM AaxRDYw2GamJKalFCql5yfkpmXnptkrewfHO8aZmBoa6hpYW5koKeYm5qbZKLj4Bum6ZOUB3 KCmUJeaUAoUCEouLlfTtME0IDXHTtYBpjND1DQmC6zEyQAMJaxgz5lztYCpoFal4usimgfGj QBcjJ4eEgInEu+vbmCBsMYkL99azdTFycQgJLGKUePbgHBOEM5FJ4smLb8wgVWwCRhJbT05j BLFFBCQkfvVfZQQpYhboYZTYdG8bO0hCWMBdYsejKWA2i4CqxPfnX4GaOTh4BTyAmgMhtilI HJv6lRXE5hTwlPix7BuYLQRU0nJ/O+sERt4FjAyrGEVTC5ILipPScw31ihNzi0vz0vWS83M3 MYKj6JnUDsaVDRaHGAU4GJV4eBdMvxAoxJpYVlyZe4hRgoNZSYT3pvfFQCHelMTKqtSi/Pii 0pzU4kOMyUBHTWSWEk3OB0Z4Xkm8obGJuamxqaWJhYmZJWnCSuK8B1qtA4UE0hNLUrNTUwtS i2C2MHFwSjUwnldzn3tV5EJnT1v+1JeV/67su26xdt/FKCk1X5tZRiccGDw3HnX+dHXr28mF K27vvqUqcOHHYT3N5xsPxs2zODJ1qmkjX56C7RTXJwYbfirvbleudn5z+eCRc727pqp1Tl5g H12ozCTDH6Q21TM5s2DDtKUL7/zhKbL3bdsxJUn+aLPq++/3fZRYijMSDbWYi4oTAf2N9UDm AgAA 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 V2] 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. 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