From patchwork Wed Nov 7 13:08:45 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [U-Boot,5/8,v2] EXYNOS5: TMU: Add TMU status polling Date: Wed, 07 Nov 2012 03:08:45 -0000 From: Hatim RV X-Patchwork-Id: 197667 Message-Id: <1352293728-9958-6-git-send-email-hatim.rv@samsung.com> To: u-boot@lists.denx.de Cc: akshay.s@samsung.com, alim.akhtar@samsung.com From: Akshay Saraswat This adds call to tmu_init() and TMU status polling in board_poll_devices() funtion to monitor temperature change of the SOC. Signed-off-by: Akshay Saraswat Acked-by: Simon Glass --- Changes since v1: - Removed debug print under TMU_STATUS_NORMAL case - Added Acked-by: Simon Glass board/samsung/smdk5250/smdk5250.c | 36 ++++++++++++++++++++++++++++++++++++ 1 files changed, 36 insertions(+), 0 deletions(-) diff --git a/board/samsung/smdk5250/smdk5250.c b/board/samsung/smdk5250/smdk5250.c index ac7346d..db2457b 100644 --- a/board/samsung/smdk5250/smdk5250.c +++ b/board/samsung/smdk5250/smdk5250.c @@ -32,15 +32,51 @@ #include #include #include +#include +#include +#include DECLARE_GLOBAL_DATA_PTR; +/* + * Polling various devices on board for details and status monitoring purposes + */ +void board_poll_devices(void) +{ +#if defined CONFIG_EXYNOS_TMU + int temp; + + switch (tmu_monitor(&temp)) { + case TMU_STATUS_TRIPPED: + puts("EXYNOS_TMU: TRIPPING! Device power going down ...\n"); + power_shutdown(); + break; + case TMU_STATUS_WARNING: + puts("EXYNOS_TMU: WARNING! Temperature very high\n"); + break; + case TMU_STATUS_INIT: + case TMU_STATUS_NORMAL: + break; + default: + debug("Unknown TMU state\n"); + } +#endif +} + int board_init(void) { gd->bd->bi_boot_params = (PHYS_SDRAM_1 + 0x100UL); #if defined(CONFIG_PMIC) pmic_init(); #endif + +#if defined CONFIG_EXYNOS_TMU + if (tmu_init(gd->fdt_blob)) { + debug("%s: Failed to init TMU\n", __func__); + return -1; + } +#endif + #ifdef CONFIG_EXYNOS_SPI spi_init(); #endif