Merge pull request #1872 from Yann-lms/ocr_voltage
mmc: stm32_sdmmc2: fill ocr_voltage
diff --git a/lib/cpus/aarch32/cpu_helpers.S b/lib/cpus/aarch32/cpu_helpers.S
index f37a33d..9b5d787 100644
--- a/lib/cpus/aarch32/cpu_helpers.S
+++ b/lib/cpus/aarch32/cpu_helpers.S
@@ -22,9 +22,9 @@
*/
.globl reset_handler
func reset_handler
- mov r10, lr
+ mov r8, lr
- /* The plat_reset_handler can clobber r0 - r9 */
+ /* The plat_reset_handler can clobber r0 - r7 */
bl plat_reset_handler
/* Get the matching cpu_ops pointer (clobbers: r0 - r5) */
@@ -38,7 +38,7 @@
/* Get the cpu_ops reset handler */
ldr r1, [r0, #CPU_RESET_FUNC]
cmp r1, #0
- mov lr, r10
+ mov lr, r8
bxne r1
bx lr
endfunc reset_handler
diff --git a/plat/allwinner/sun50i_a64/sunxi_power.c b/plat/allwinner/sun50i_a64/sunxi_power.c
index b4d16a0..07a3716 100644
--- a/plat/allwinner/sun50i_a64/sunxi_power.c
+++ b/plat/allwinner/sun50i_a64/sunxi_power.c
@@ -229,8 +229,8 @@
/* locate the PMIC DT node, bail out if not found */
node = fdt_node_offset_by_compatible(fdt, -1, "x-powers,axp803");
- if (node == -FDT_ERR_NOTFOUND) {
- WARN("BL31: PMIC: No AXP803 DT node, skipping initial setup.\n");
+ if (node < 0) {
+ WARN("BL31: PMIC: Cannot find AXP803 DT node, skipping initial setup.\n");
return;
}
@@ -241,11 +241,15 @@
}
/* descend into the "regulators" subnode */
- node = fdt_first_subnode(fdt, node);
+ node = fdt_subnode_offset(fdt, node, "regulators");
+ if (node < 0) {
+ WARN("BL31: PMIC: Cannot find regulators subnode, skipping initial setup.\n");
+ return;
+ }
/* iterate over all regulators to find used ones */
for (node = fdt_first_subnode(fdt, node);
- node != -FDT_ERR_NOTFOUND;
+ node >= 0;
node = fdt_next_subnode(fdt, node)) {
const struct axp_regulator *reg;
const char *name;
diff --git a/plat/xilinx/zynqmp/pm_service/pm_api_sys.c b/plat/xilinx/zynqmp/pm_service/pm_api_sys.c
index f651880..e0b9816 100644
--- a/plat/xilinx/zynqmp/pm_service/pm_api_sys.c
+++ b/plat/xilinx/zynqmp/pm_service/pm_api_sys.c
@@ -356,7 +356,10 @@
*/
enum pm_ret_status pm_set_configuration(unsigned int phys_addr)
{
- return PM_RET_ERROR_NOTSUPPORTED;
+ uint32_t payload[PAYLOAD_ARG_CNT];
+
+ PM_PACK_PAYLOAD2(payload, PM_SET_CONFIGURATION, phys_addr);
+ return pm_ipi_send_sync(primary_proc, payload, NULL, 0);
}
/**