157c73515SYidi Lin /* 257c73515SYidi Lin * Copyright (c) 2025, MediaTek Inc. All rights reserved. 357c73515SYidi Lin * 457c73515SYidi Lin * SPDX-License-Identifier: BSD-3-Clause 557c73515SYidi Lin */ 657c73515SYidi Lin 757c73515SYidi Lin #ifndef __MTK_BL31_INTERFACE_H__ 857c73515SYidi Lin #define __MTK_BL31_INTERFACE_H__ 957c73515SYidi Lin 1057c73515SYidi Lin #include <stdbool.h> 1157c73515SYidi Lin #include <stdint.h> 1257c73515SYidi Lin 1357c73515SYidi Lin /* UFS definitions */ 1457c73515SYidi Lin enum ufs_mtk_mphy_op { 1557c73515SYidi Lin UFS_MPHY_BACKUP = 0, 1657c73515SYidi Lin UFS_MPHY_RESTORE, 1757c73515SYidi Lin }; 1857c73515SYidi Lin 1957c73515SYidi Lin enum ufs_notify_change_status { 2057c73515SYidi Lin PRE_CHANGE, 2157c73515SYidi Lin POST_CHANGE, 2257c73515SYidi Lin }; 2357c73515SYidi Lin 2457c73515SYidi Lin /* UFS interfaces */ 2557c73515SYidi Lin void ufs_mphy_va09_cg_ctrl(bool enable); 2657c73515SYidi Lin void ufs_device_reset_ctrl(bool rst_n); 2757c73515SYidi Lin void ufs_crypto_hie_init(void); 2857c73515SYidi Lin void ufs_ref_clk_status(uint32_t on, enum ufs_notify_change_status stage); 2957c73515SYidi Lin void ufs_sram_pwr_ctrl(bool on); 3057c73515SYidi Lin void ufs_device_pwr_ctrl(bool vcc_on, uint64_t ufs_version); 3157c73515SYidi Lin void ufs_mphy_ctrl(enum ufs_mtk_mphy_op op); 3257c73515SYidi Lin void ufs_mtcmos_ctrl(bool on); 3357c73515SYidi Lin 34*31a69d9aSYidi Lin /* UFS functions implemented in the public ATF repo */ 35*31a69d9aSYidi Lin int ufs_rsc_ctrl_mem(bool hold); 36*31a69d9aSYidi Lin int ufs_rsc_ctrl_pmic(bool hold); 37*31a69d9aSYidi Lin void ufs_device_pwr_ctrl_soc(bool vcc_on, uint64_t ufs_version); 38*31a69d9aSYidi Lin int ufs_spm_mtcmos_power(bool on); 39*31a69d9aSYidi Lin int ufs_phy_spm_mtcmos_power(bool on); 40*31a69d9aSYidi Lin bool ufs_is_clk_status_off(void); 41*31a69d9aSYidi Lin void ufs_set_clk_status(bool on); 42*31a69d9aSYidi Lin 4357c73515SYidi Lin #endif /* __MTK_BL31_INTERFACE_H__ */ 44