aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorAditya Angadi <aditya.angadi@arm.com>2019-12-31 10:14:32 +0530
committerVijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>2020-02-07 19:24:17 +0530
commitf893160690725fe79c8eb63fd90a945cc0374d90 (patch)
tree2050b9e1b2a95c078fbf350aee943e0c6263a3ec /drivers
parent80151c27bda3b39ccfc17dc1d25d4a18ab2840c5 (diff)
downloadplatform_external_arm-trusted-firmware-f893160690725fe79c8eb63fd90a945cc0374d90.tar.gz
platform_external_arm-trusted-firmware-f893160690725fe79c8eb63fd90a945cc0374d90.tar.bz2
platform_external_arm-trusted-firmware-f893160690725fe79c8eb63fd90a945cc0374d90.zip
drivers/mhu: derive doorbell base address
In order to allow the MHUv2 driver to be usable with multiple MHUv2 controllers, use the base address of the controller from the platform information instead of the MHUV2_BASE_ADDR macro. Change-Id: I4dbab87b929fb0568935e6c8b339ce67937f8cd1 Signed-off-by: Aditya Angadi <aditya.angadi@arm.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/arm/css/mhu/css_mhu_doorbell.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/arm/css/mhu/css_mhu_doorbell.c b/drivers/arm/css/mhu/css_mhu_doorbell.c
index 885874272..c51f3b1d7 100644
--- a/drivers/arm/css/mhu/css_mhu_doorbell.c
+++ b/drivers/arm/css/mhu/css_mhu_doorbell.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014-2019, ARM Limited and Contributors. All rights reserved.
+ * Copyright (c) 2014-2020, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
@@ -20,11 +20,13 @@ void mhu_ring_doorbell(struct scmi_channel_plat_info *plat_info)
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_ADDR);
+ MHU_V2_ACCESS_REQUEST(mhuv2_base);
/* wait for receiver to acknowledge its ready */
- while (MHU_V2_IS_ACCESS_READY(MHUV2_BASE_ADDR) == 0)
+ while (MHU_V2_IS_ACCESS_READY(mhuv2_base) == 0)
;
MHU_RING_DOORBELL(plat_info->db_reg_addr,
@@ -32,7 +34,7 @@ void mhuv2_ring_doorbell(struct scmi_channel_plat_info *plat_info)
plat_info->db_preserve_mask);
/* clear the access request for the receiver */
- MHU_V2_CLEAR_REQUEST(MHUV2_BASE_ADDR);
+ MHU_V2_CLEAR_REQUEST(mhuv2_base);
return;
}