mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-16 09:34:18 +00:00
Merge "fix(n1sdp): add platform-specific power domain functions" into integration
This commit is contained in:
commit
9d44b2b981
4 changed files with 49 additions and 1 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2018-2022, Arm Limited. All rights reserved.
|
||||
* Copyright (c) 2018-2023, Arm Limited. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -14,6 +14,7 @@
|
|||
#include <plat/arm/common/plat_arm.h>
|
||||
|
||||
#include "n1sdp_def.h"
|
||||
#include "n1sdp_private.h"
|
||||
#include <platform_def.h>
|
||||
|
||||
/*
|
||||
|
@ -69,6 +70,8 @@ scmi_channel_plat_info_t *plat_css_get_scmi_info(unsigned int channel_id)
|
|||
|
||||
const plat_psci_ops_t *plat_arm_psci_override_pm_ops(plat_psci_ops_t *ops)
|
||||
{
|
||||
ops->pwr_domain_off = n1sdp_pwr_domain_off;
|
||||
ops->pwr_domain_suspend = n1sdp_pwr_domain_suspend;
|
||||
return css_scmi_override_pm_ops(ops);
|
||||
}
|
||||
|
||||
|
|
29
plat/arm/board/n1sdp/n1sdp_pm.c
Normal file
29
plat/arm/board/n1sdp/n1sdp_pm.c
Normal file
|
@ -0,0 +1,29 @@
|
|||
/*
|
||||
* Copyright (c) 2023, Arm Limited. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#include <lib/psci/psci.h>
|
||||
#include <plat/arm/common/plat_arm.h>
|
||||
#include <plat/arm/css/common/css_pm.h>
|
||||
|
||||
#include "n1sdp_private.h"
|
||||
|
||||
/*******************************************************************************
|
||||
* N1SDP specific functions called when turning off or suspending a power
|
||||
* domain. Both additionally disable the GIC redistributor interface as cores
|
||||
* are disabled to let cluster-PPU state transition to completion when a
|
||||
* cluster is powered down.
|
||||
******************************************************************************/
|
||||
void n1sdp_pwr_domain_off(const psci_power_state_t *target_state)
|
||||
{
|
||||
css_pwr_domain_off(target_state);
|
||||
plat_arm_gic_redistif_off();
|
||||
}
|
||||
|
||||
void n1sdp_pwr_domain_suspend(const psci_power_state_t *target_state)
|
||||
{
|
||||
css_pwr_domain_suspend(target_state);
|
||||
plat_arm_gic_redistif_off();
|
||||
}
|
15
plat/arm/board/n1sdp/n1sdp_private.h
Normal file
15
plat/arm/board/n1sdp/n1sdp_private.h
Normal file
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
* Copyright (c) 2023, Arm Limited. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef N1SDP_PRIVATE_H
|
||||
#define N1SDP_PRIVATE_H
|
||||
|
||||
#include <lib/psci/psci.h>
|
||||
|
||||
void n1sdp_pwr_domain_off(const psci_power_state_t *target_state);
|
||||
void n1sdp_pwr_domain_suspend(const psci_power_state_t *target_state);
|
||||
|
||||
#endif /* N1SDP_PRIVATE_H */
|
|
@ -47,6 +47,7 @@ BL31_SOURCES := ${N1SDP_CPU_SOURCES} \
|
|||
${INTERCONNECT_SOURCES} \
|
||||
${N1SDP_GIC_SOURCES} \
|
||||
${N1SDP_BASE}/n1sdp_bl31_setup.c \
|
||||
${N1SDP_BASE}/n1sdp_pm.c \
|
||||
${N1SDP_BASE}/n1sdp_topology.c \
|
||||
${N1SDP_BASE}/n1sdp_security.c \
|
||||
drivers/arm/css/sds/sds.c
|
||||
|
|
Loading…
Add table
Reference in a new issue