mirror of
https://github.com/Fishwaldo/opensbi.git
synced 2025-06-25 15:48:27 +00:00
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>
This commit is contained in:
parent
9d0ab35ab4
commit
fa59dd317a
1 changed files with 3 additions and 10 deletions
|
@ -14,6 +14,7 @@
|
||||||
#include <sbi/sbi_ecall_interface.h>
|
#include <sbi/sbi_ecall_interface.h>
|
||||||
#include <sbi/sbi_hart.h>
|
#include <sbi/sbi_hart.h>
|
||||||
#include <sbi/sbi_system.h>
|
#include <sbi/sbi_system.h>
|
||||||
|
#include <sbi/sbi_timer.h>
|
||||||
#include <sbi_utils/fdt/fdt_helper.h>
|
#include <sbi_utils/fdt/fdt_helper.h>
|
||||||
#include <sbi_utils/gpio/fdt_gpio.h>
|
#include <sbi_utils/gpio/fdt_gpio.h>
|
||||||
#include <sbi_utils/reset/fdt_reset.h>
|
#include <sbi_utils/reset/fdt_reset.h>
|
||||||
|
@ -34,14 +35,6 @@ static struct gpio_reset restart = {
|
||||||
.inactive_delay = 100
|
.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)
|
static int gpio_system_reset_check(u32 type, u32 reason)
|
||||||
{
|
{
|
||||||
switch (type) {
|
switch (type) {
|
||||||
|
@ -76,11 +69,11 @@ static void gpio_system_reset(u32 type, u32 reason)
|
||||||
|
|
||||||
/* drive it active, also inactive->active edge */
|
/* drive it active, also inactive->active edge */
|
||||||
gpio_direction_output(&reset->pin, 1);
|
gpio_direction_output(&reset->pin, 1);
|
||||||
gpio_mdelay(reset->active_delay);
|
sbi_timer_mdelay(reset->active_delay);
|
||||||
|
|
||||||
/* drive inactive, also active->inactive edge */
|
/* drive inactive, also active->inactive edge */
|
||||||
gpio_set(&reset->pin, 0);
|
gpio_set(&reset->pin, 0);
|
||||||
gpio_mdelay(reset->inactive_delay);
|
sbi_timer_mdelay(reset->inactive_delay);
|
||||||
|
|
||||||
/* drive it active, also inactive->active edge */
|
/* drive it active, also inactive->active edge */
|
||||||
gpio_set(&reset->pin, 1);
|
gpio_set(&reset->pin, 1);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue