diff options
author | Max Krummenacher <max.krummenacher@toradex.com> | 2019-05-13 14:52:49 +0200 |
---|---|---|
committer | Max Krummenacher <max.krummenacher@toradex.com> | 2019-05-13 19:32:22 +0200 |
commit | 258adbe3d2ac9c7c8d31e5071c0689a4227dae09 (patch) | |
tree | 79c9c1168904b56bc9a1611f39ff31c3aefe4795 /recipes-bsp/u-boot-mainline/files/0010-misc-imx8-add-sc_misc_get_temp.patch | |
parent | dc4a695bba8f4becb8b821515e16079453ccd135 (diff) |
u-boot: provide a mainline u-boot, based on 2019.07 rc1
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Diffstat (limited to 'recipes-bsp/u-boot-mainline/files/0010-misc-imx8-add-sc_misc_get_temp.patch')
-rw-r--r-- | recipes-bsp/u-boot-mainline/files/0010-misc-imx8-add-sc_misc_get_temp.patch | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/recipes-bsp/u-boot-mainline/files/0010-misc-imx8-add-sc_misc_get_temp.patch b/recipes-bsp/u-boot-mainline/files/0010-misc-imx8-add-sc_misc_get_temp.patch new file mode 100644 index 0000000..fd50211 --- /dev/null +++ b/recipes-bsp/u-boot-mainline/files/0010-misc-imx8-add-sc_misc_get_temp.patch @@ -0,0 +1,80 @@ +From 286d5ccf4ab601c8b93be40acaaeb4af6f6b2d49 Mon Sep 17 00:00:00 2001 +From: Peng Fan <peng.fan@nxp.com> +Date: Fri, 12 Apr 2019 07:55:00 +0000 +Subject: [PATCH 10/19] misc: imx8: add sc_misc_get_temp + +Add sc_misc_get_temp to support get temperature + +Signed-off-by: Peng Fan <peng.fan@nxp.com> +--- + arch/arm/include/asm/arch-imx8/sci/sci.h | 2 ++ + arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h | 1 + + drivers/misc/imx8/scu_api.c | 28 +++++++++++++++++++++++ + 3 files changed, 31 insertions(+) + +diff --git a/arch/arm/include/asm/arch-imx8/sci/sci.h b/arch/arm/include/asm/arch-imx8/sci/sci.h +index 97377697f0..901b90d705 100644 +--- a/arch/arm/include/asm/arch-imx8/sci/sci.h ++++ b/arch/arm/include/asm/arch-imx8/sci/sci.h +@@ -72,6 +72,8 @@ void sc_misc_get_boot_dev(sc_ipc_t ipc, sc_rsrc_t *boot_dev); + void sc_misc_boot_status(sc_ipc_t ipc, sc_misc_boot_status_t status); + void sc_misc_build_info(sc_ipc_t ipc, u32 *build, u32 *commit); + int sc_misc_otp_fuse_read(sc_ipc_t ipc, u32 word, u32 *val); ++int sc_misc_get_temp(sc_ipc_t ipc, sc_rsrc_t resource, sc_misc_temp_t temp, ++ s16 *celsius, s8 *tenths); + + /* RM API */ + sc_bool_t sc_rm_is_memreg_owned(sc_ipc_t ipc, sc_rm_mr_t mr); +diff --git a/arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h b/arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h +index 5d17b553d7..3629eb68d7 100644 +--- a/arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h ++++ b/arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h +@@ -26,5 +26,6 @@ + #define SC_MISC_REL_CONTAINER 2U /* Release container */ + + typedef u8 sc_misc_boot_status_t; ++typedef u8 sc_misc_temp_t; + + #endif /* SC_MISC_API_H */ +diff --git a/drivers/misc/imx8/scu_api.c b/drivers/misc/imx8/scu_api.c +index d9c4d5d784..031bc0048b 100644 +--- a/drivers/misc/imx8/scu_api.c ++++ b/drivers/misc/imx8/scu_api.c +@@ -273,6 +273,34 @@ int sc_misc_otp_fuse_read(sc_ipc_t ipc, u32 word, u32 *val) + return 0; + } + ++int sc_misc_get_temp(sc_ipc_t ipc, sc_rsrc_t resource, sc_misc_temp_t temp, ++ s16 *celsius, s8 *tenths) ++{ ++ struct udevice *dev = gd->arch.scu_dev; ++ int size = sizeof(struct sc_rpc_msg_s); ++ struct sc_rpc_msg_s msg; ++ int ret; ++ ++ RPC_VER(&msg) = SC_RPC_VERSION; ++ RPC_SVC(&msg) = (u8)SC_RPC_SVC_MISC; ++ RPC_FUNC(&msg) = (u8)MISC_FUNC_GET_TEMP; ++ RPC_U16(&msg, 0U) = (u16)resource; ++ RPC_U8(&msg, 2U) = (u8)temp; ++ RPC_SIZE(&msg) = 2U; ++ ++ ret = misc_call(dev, SC_FALSE, &msg, size, &msg, size); ++ if (ret < 0) ++ return ret; ++ ++ if (celsius) ++ *celsius = RPC_I16(&msg, 0U); ++ ++ if (tenths) ++ *tenths = RPC_I8(&msg, 2U); ++ ++ return 0; ++} ++ + /* RM */ + sc_bool_t sc_rm_is_memreg_owned(sc_ipc_t ipc, sc_rm_mr_t mr) + { +-- +2.14.5 + |