提交 67bf8766 编写于 作者: M Michal Simek

microblaze: Support both levels for reset

Till this patch reset always perform writen to 1.
Now we can use negative logic and perform reset write to 0.

It is opposite level than is currently read from that pin
Signed-off-by: NMichal Simek <monstr@monstr.eu>
上级 75375830
......@@ -17,6 +17,7 @@
#include <linux/of_gpio.h>
static int handle; /* reset pin handle */
static unsigned int reset_val;
static int of_reset_gpio_handle(void)
{
......@@ -75,9 +76,9 @@ void of_platform_reset_gpio_probe(void)
}
/* get current setup value */
ret = gpio_get_value(handle);
reset_val = gpio_get_value(handle);
/* FIXME maybe worth to perform any action */
pr_debug("Reset: Gpio output state: 0x%x\n", ret);
pr_debug("Reset: Gpio output state: 0x%x\n", reset_val);
/* Setup GPIO as output */
ret = gpio_direction_output(handle, 0);
......@@ -87,7 +88,8 @@ void of_platform_reset_gpio_probe(void)
/* Setup output direction */
gpio_set_value(handle, 0);
printk(KERN_INFO "RESET: Registered gpio device: %d\n", handle);
printk(KERN_INFO "RESET: Registered gpio device: %d, current val: %d\n",
handle, reset_val);
return;
err:
gpio_free(handle);
......@@ -97,7 +99,7 @@ void of_platform_reset_gpio_probe(void)
static void gpio_system_reset(void)
{
gpio_set_value(handle, 1);
gpio_set_value(handle, 1 - reset_val);
}
#else
#define gpio_system_reset() do {} while (0)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册