12345678910111213141516171819202122232425262728293031323334353637 |
- /*
- * Copyright (c) 2014-2020, ARM Limited and Contributors. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
- #include <platform_def.h>
- #include <arch_helpers.h>
- #include <drivers/arm/css/css_mhu_doorbell.h>
- #include <drivers/arm/css/scmi.h>
- void mhu_ring_doorbell(struct scmi_channel_plat_info *plat_info)
- {
- MHU_RING_DOORBELL(plat_info->db_reg_addr,
- plat_info->db_modify_mask,
- plat_info->db_preserve_mask);
- }
- void mhuv2_ring_doorbell(struct scmi_channel_plat_info *plat_info)
- {
- uintptr_t mhuv2_base = plat_info->db_reg_addr & MHU_V2_FRAME_BASE_MASK;
- /* wake receiver */
- MHU_V2_ACCESS_REQUEST(mhuv2_base);
- /* wait for receiver to acknowledge its ready */
- while (MHU_V2_IS_ACCESS_READY(mhuv2_base) == 0)
- ;
- MHU_RING_DOORBELL(plat_info->db_reg_addr,
- plat_info->db_modify_mask,
- plat_info->db_preserve_mask);
- /* clear the access request for the receiver */
- MHU_V2_CLEAR_REQUEST(mhuv2_base);
- }
|