xref: /rk3399_ARM-atf/plat/arm/board/automotive_rd/platform/rd1ae/rd1ae_bl31_setup.c (revision 3df50a069918c5b3f33c5dda683c0809619fc911)
1 /*
2  * Copyright (c) 2024, Arm Limited. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #include <drivers/arm/css/css_mhu_doorbell.h>
8 #include <drivers/arm/css/scmi.h>
9 
10 static scmi_channel_plat_info_t plat_rd_scmi_info[] = {
11 	{
12 		.scmi_mbx_mem = CSS_SCMI_PAYLOAD_BASE,
13 		.db_reg_addr = PLAT_CSS_MHU_BASE + MHU_V3_SENDER_REG_SET(0),
14 		.db_preserve_mask = 0xfffffffe,
15 		.db_modify_mask = 0x1,
16 		.ring_doorbell = &mhu_ring_doorbell,
17 	},
18 };
19 
plat_css_get_scmi_info(unsigned int channel_id)20 scmi_channel_plat_info_t *plat_css_get_scmi_info(unsigned int channel_id)
21 {
22 	return &plat_rd_scmi_info[channel_id];
23 }
24 
plat_arm_psci_override_pm_ops(plat_psci_ops_t * ops)25 const plat_psci_ops_t *plat_arm_psci_override_pm_ops(plat_psci_ops_t *ops)
26 {
27 	return css_scmi_override_pm_ops(ops);
28 }
29 
30 #if defined(SPD_spmd) && (SPMC_AT_EL3 == 0)
31 /*
32  * A dummy implementation of the platform handler for Group0 secure interrupt.
33  */
plat_spmd_handle_group0_interrupt(uint32_t intid)34 int plat_spmd_handle_group0_interrupt(uint32_t intid)
35 {
36 	(void)intid;
37 	return -1;
38 }
39 #endif /* defined(SPD_spmd) && (SPMC_AT_EL3 == 0) */
40