126e2b93aSVarun Wadekar /* 2ff605ba2Ssteven kao * Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved. 326e2b93aSVarun Wadekar * 426e2b93aSVarun Wadekar * SPDX-License-Identifier: BSD-3-Clause 526e2b93aSVarun Wadekar */ 626e2b93aSVarun Wadekar 726e2b93aSVarun Wadekar #ifndef __BPMP_IPC_H__ 826e2b93aSVarun Wadekar #define __BPMP_IPC_H__ 926e2b93aSVarun Wadekar 10*6e756f6dSAmbroise Vincent #include <lib/utils_def.h> 1126e2b93aSVarun Wadekar #include <stdbool.h> 1226e2b93aSVarun Wadekar #include <stdint.h> 1326e2b93aSVarun Wadekar 1426e2b93aSVarun Wadekar /** 1526e2b93aSVarun Wadekar * Currently supported reset identifiers 1626e2b93aSVarun Wadekar */ 1726e2b93aSVarun Wadekar #define TEGRA_RESET_ID_XUSB_PADCTL U(114) 1826e2b93aSVarun Wadekar #define TEGRA_RESET_ID_GPCDMA U(70) 1926e2b93aSVarun Wadekar 2026e2b93aSVarun Wadekar /** 21ff605ba2Ssteven kao * Clock identifier for the SE device 22ff605ba2Ssteven kao */ 23ff605ba2Ssteven kao #define TEGRA_CLK_SE U(124) 24ff605ba2Ssteven kao 25ff605ba2Ssteven kao /** 2626e2b93aSVarun Wadekar * Function to initialise the IPC with the bpmp 2726e2b93aSVarun Wadekar */ 2826e2b93aSVarun Wadekar int32_t tegra_bpmp_ipc_init(void); 2926e2b93aSVarun Wadekar 3026e2b93aSVarun Wadekar /** 3126e2b93aSVarun Wadekar * Handler to reset a module 3226e2b93aSVarun Wadekar */ 3326e2b93aSVarun Wadekar int32_t tegra_bpmp_ipc_reset_module(uint32_t rst_id); 3426e2b93aSVarun Wadekar 35ff605ba2Ssteven kao /** 36ff605ba2Ssteven kao * Handler to enable clock to a module. Only SE device is 37ff605ba2Ssteven kao * supported for now. 38ff605ba2Ssteven kao */ 39ff605ba2Ssteven kao int tegra_bpmp_ipc_enable_clock(uint32_t clk_id); 40ff605ba2Ssteven kao 41ff605ba2Ssteven kao /** 42ff605ba2Ssteven kao * Handler to disable clock to a module. Only SE device is 43ff605ba2Ssteven kao * supported for now. 44ff605ba2Ssteven kao */ 45ff605ba2Ssteven kao int tegra_bpmp_ipc_disable_clock(uint32_t clk_id); 46ff605ba2Ssteven kao 4726e2b93aSVarun Wadekar #endif /* __BPMP_IPC_H__ */ 48