Merge tag 'u-boot-atmel-fixes-2021.01-b' of https://gitlab.denx.de/u-boot/custodians...
[platform/kernel/u-boot.git] / drivers / reset / sti-reset.c
index 024b996..2cca67d 100644 (file)
@@ -1,18 +1,20 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
- * Copyright (c) 2017
- * Patrice Chotard <patrice.chotard@st.com>
- *
- * SPDX-License-Identifier:    GPL-2.0+
+ * Copyright (C) 2017, STMicroelectronics - All Rights Reserved
+ * Author(s): Patrice Chotard, <patrice.chotard@foss.st.com> for STMicroelectronics.
  */
 
 #include <common.h>
 #include <errno.h>
+#include <log.h>
+#include <malloc.h>
 #include <wait_bit.h>
 #include <dm.h>
 #include <reset-uclass.h>
 #include <regmap.h>
 #include <syscon.h>
 #include <dt-bindings/reset/stih407-resets.h>
+#include <linux/bitops.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -218,7 +220,7 @@ phys_addr_t sti_reset_get_regmap(const char *compatible)
                return -ENODEV;
        }
 
-       return regmap->base;
+       return regmap->ranges[0].start;
 }
 
 static int sti_reset_program_hw(struct reset_ctl *reset_ctl, int assert)
@@ -266,8 +268,8 @@ static int sti_reset_program_hw(struct reset_ctl *reset_ctl, int assert)
                return 0;
 
        reg = (void __iomem *)base + ch->ack_offset;
-       if (wait_for_bit(__func__, reg, BIT(ch->ack_bit), ctrl_val,
-                        1000, false)) {
+       if (wait_for_bit_le32(reg, BIT(ch->ack_bit), ctrl_val,
+                             1000, false)) {
                pr_err("Stuck on waiting ack reset_ctl=%p dev=%p id=%lu\n",
                      reset_ctl, reset_ctl->dev, reset_ctl->id);
 
@@ -299,7 +301,7 @@ static int sti_reset_deassert(struct reset_ctl *reset_ctl)
 
 struct reset_ops sti_reset_ops = {
        .request = sti_reset_request,
-       .free = sti_reset_free,
+       .rfree = sti_reset_free,
        .rst_assert = sti_reset_assert,
        .rst_deassert = sti_reset_deassert,
 };