diff options
author | Anup Patel <anup.patel@wdc.com> | 2021-09-15 13:50:40 +0530 |
---|---|---|
committer | Anup Patel <anup@brainfault.org> | 2021-09-26 19:52:18 +0530 |
commit | fa59dd317aaf9c05c6d89a40c27bd98316d8c2df (patch) | |
tree | a6f0dff7cc4821e9602dd6e81f33cfd362f1f2a0 | |
parent | 9d0ab35ab4e2b9edf022237e2592d999dfe54704 (diff) |
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>
-rw-r--r-- | lib/utils/reset/fdt_reset_gpio.c | 13 |
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); |