summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAnup Patel <anup.patel@wdc.com>2021-09-15 11:20:40 +0300
committerAnup Patel <anup@brainfault.org>2021-09-26 17:22:18 +0300
commitfa59dd317aaf9c05c6d89a40c27bd98316d8c2df (patch)
treea6f0dff7cc4821e9602dd6e81f33cfd362f1f2a0 /lib
parent9d0ab35ab4e2b9edf022237e2592d999dfe54704 (diff)
downloadopensbi-fa59dd317aaf9c05c6d89a40c27bd98316d8c2df.tar.xz
lib: utils/reset: use sbi_timer_mdelay() in gpio reset driver
We should use sbi_timer_mdelay() instead of custom gpio_mdelay() in the gpio reset driver. Signed-off-by: Anup Patel <anup.patel@wdc.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Xiang W <wxjstz@126.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/utils/reset/fdt_reset_gpio.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/lib/utils/reset/fdt_reset_gpio.c b/lib/utils/reset/fdt_reset_gpio.c
index 77e308a..30127f5 100644
--- a/lib/utils/reset/fdt_reset_gpio.c
+++ b/lib/utils/reset/fdt_reset_gpio.c
@@ -14,6 +14,7 @@
#include <sbi/sbi_ecall_interface.h>
#include <sbi/sbi_hart.h>
#include <sbi/sbi_system.h>
+#include <sbi/sbi_timer.h>
#include <sbi_utils/fdt/fdt_helper.h>
#include <sbi_utils/gpio/fdt_gpio.h>
#include <sbi_utils/reset/fdt_reset.h>
@@ -34,14 +35,6 @@ static struct gpio_reset restart = {
.inactive_delay = 100
};
-/* Custom mdelay function until we have a generic mdelay() API */
-static void gpio_mdelay(unsigned long msecs)
-{
- volatile int i;
- while (msecs--)
- for (i = 0; i < 100000; i++) ;
-}
-
static int gpio_system_reset_check(u32 type, u32 reason)
{
switch (type) {
@@ -76,11 +69,11 @@ static void gpio_system_reset(u32 type, u32 reason)
/* drive it active, also inactive->active edge */
gpio_direction_output(&reset->pin, 1);
- gpio_mdelay(reset->active_delay);
+ sbi_timer_mdelay(reset->active_delay);
/* drive inactive, also active->inactive edge */
gpio_set(&reset->pin, 0);
- gpio_mdelay(reset->inactive_delay);
+ sbi_timer_mdelay(reset->inactive_delay);
/* drive it active, also inactive->active edge */
gpio_set(&reset->pin, 1);