aspeed: watchdog: Add status function
Subsystems (2)
PATCH 1/1 aspeed: watchdog: Add status function
Populate the status watchdog operation to return the "timeout status" register of the ASPEED watchdog.
--- drivers/watchdog/aspeed_wdt.c | 9 +++++++++ 1 file changed, 9 insertions(+)
drivers/watchdog/aspeed_wdt.c +9 -0
@@ -55,6 +55,7 @@ struct aspeed_wdt_config {#define WDT_CTRL_WDT_INTR BIT(2)#define WDT_CTRL_RESET_SYSTEM BIT(1)#define WDT_CTRL_ENABLE BIT(0) +#define WDT_TIMEOUT_STATUS 0x10/* * WDT_RESET_WIDTH controls the characteristics of the external pulse (if
@@ -138,6 +139,13 @@ static int aspeed_wdt_ping(struct watchdog_device *wdd)return 0 ; } +static unsigned int aspeed_wdt_status (struct watchdog_device *wdd) +{ +struct aspeed_wdt *wdt =to_aspeed_wdt (wdd); + +return readl (wdt->base +WDT_TIMEOUT_STATUS ); +} +static int aspeed_wdt_set_timeout (struct watchdog_device *wdd,unsigned int timeout) {
@@ -171,6 +179,7 @@ static int aspeed_wdt_restart(struct watchdog_device *wdd, .start = aspeed_wdt_start, .stop = aspeed_wdt_stop, .ping = aspeed_wdt_ping, + .status = aspeed_wdt_status, .set_timeout = aspeed_wdt_set_timeout, .restart = aspeed_wdt_restart, .owner = THIS_MODULE,
Signature · 1 line
1.8.3.1
Guenter Roeck
maintainerQuoted 21 lines · Eddie James
Populate the status watchdog operation to return the "timeout status" register of the ASPEED watchdog.
Signed-off-by Eddie James <[email protected]>--- drivers/watchdog/aspeed_wdt.c | 9 +++++++++ 1 file changed, 9 insertions(+)drivers/watchdog/aspeed_wdt.c +1
-0@@ -55,6 +55,7 @@ struct aspeed_wdt_config {#define WDT_CTRL_WDT_INTR BIT(2)#define WDT_CTRL_RESET_SYSTEM BIT(1)#define WDT_CTRL_ENABLE BIT(0) +#define WDT_TIMEOUT_STATUS 0x10/* * WDT_RESET_WIDTH controls the characteristics of the external pulse (if
drivers/watchdog/aspeed_wdt.c static int aspeed_wdt_ping(struct watchdog_device *wdd) · line 147
Quoted 9 lines
drivers/watchdog/aspeed_wdt.c +6
-0@@ -138,6 +139,13 @@ static int aspeed_wdt_ping(struct watchdog_device *wdd)return 0 ; } +static unsigned int aspeed_wdt_status (struct watchdog_device *wdd) +{ +struct aspeed_wdt *wdt =to_aspeed_wdt (wdd); + +return readl (wdt->base +WDT_TIMEOUT_STATUS ); +}
Does the register report WDIOF_* status flags/bits as defined in the API ? This seems more than unlikely.
Guenter
Quoted 13 lines
drivers/watchdog/aspeed_wdt.c +2
-0+static int aspeed_wdt_set_timeout (struct watchdog_device *wdd,unsigned int timeout) {@@ -171,6 +179,7 @@ static int aspeed_wdt_restart(struct watchdog_device *wdd, .start = aspeed_wdt_start, .stop = aspeed_wdt_stop, .ping = aspeed_wdt_ping, + .status = aspeed_wdt_status, .set_timeout = aspeed_wdt_set_timeout, .restart = aspeed_wdt_restart, .owner = THIS_MODULE,
Quoted 25 lines · Guenter Roeck
Quoted 24 lines · Eddie James
Populate the status watchdog operation to return the "timeout status" register of the ASPEED watchdog.
Signed-off-by Eddie James <[email protected]>---
drivers/watchdog/aspeed_wdt.c| 9 +++++++++1 file changed, 9 insertions(+)drivers/watchdog/aspeed_wdt.c +1
-0@@ -55,6 +55,7 @@ struct aspeed_wdt_config { #define WDT_CTRL_WDT_INTR BIT(2) #define WDT_CTRL_RESET_SYSTEM BIT(1) #define WDT_CTRL_ENABLE BIT(0) +#define WDT_TIMEOUT_STATUS 0x10 /** WDT_RESET_WIDTH controls the characteristics of the external pulse (if @@ -138,6 +139,13 @@ static int aspeed_wdt_ping(struct watchdog_device *wdd) return 0; } +static unsigned int aspeed_wdt_status(struct watchdog_device *wdd)
Quoted 8 lines
drivers/watchdog/aspeed_wdt.c static int aspeed_wdt_ping(struct watchdog_device *wdd) · line 147
Quoted 5 lines
drivers/watchdog/aspeed_wdt.c +5
-0+{ + struct aspeed_wdt *wdt = to_aspeed_wdt(wdd); + + return readl(wdt->base + WDT_TIMEOUT_STATUS); +}Does the register report WDIOF_* status flags/bits as defined in the API ? This seems more than unlikely.
Ah, I see I'm misusing the API. It does not... I will rework.
Thanks,
Eddie
Quoted 18 lines
Guenter
Quoted 14 lines
drivers/watchdog/aspeed_wdt.c +1
-0+ static int aspeed_wdt_set_timeout(struct watchdog_device *wdd, unsigned int timeout){
drivers/watchdog/aspeed_wdt.c +1
-0@@ -171,6 +179,7 @@ static int aspeed_wdt_restart(structwatchdog_device *wdd, .start = aspeed_wdt_start, .stop = aspeed_wdt_stop, .ping = aspeed_wdt_ping, + .status = aspeed_wdt_status, .set_timeout = aspeed_wdt_set_timeout, .restart = aspeed_wdt_restart,.owner =
THIS_MODULE,