summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Zhou <jason.zhou@starfivetech.com>2022-07-21 13:40:44 +0300
committerJason Zhou <jason.zhou@starfivetech.com>2022-07-21 13:40:44 +0300
commita03172890bed9cc2793f36fcb0b40ca831cc9c20 (patch)
treed54f09645962464ac269973063e06fde98d38dd8
parentafa9b7d3b9fdf7e165bb23de0f8950f4ae5ac79c (diff)
parent90bf7fcc1ebef012271393beffffa7f85fc642c5 (diff)
downloadlinux-a03172890bed9cc2793f36fcb0b40ca831cc9c20.tar.xz
Merge branch 'CR_1661_Watchdog_api_Xingyu.Wu' into 'jh7110-5.15.y-devel'
CR_1661 watchdog:starfive:Update reset api See merge request sdk/linux!308
-rwxr-xr-xdrivers/watchdog/starfive-wdt.c20
1 files changed, 7 insertions, 13 deletions
diff --git a/drivers/watchdog/starfive-wdt.c b/drivers/watchdog/starfive-wdt.c
index abe41eed44c0..6db31d3bd234 100755
--- a/drivers/watchdog/starfive-wdt.c
+++ b/drivers/watchdog/starfive-wdt.c
@@ -134,8 +134,7 @@ struct starfive_wdt {
struct watchdog_device wdt_device;
struct clk *core_clk;
struct clk *apb_clk;
- struct reset_control *rst_apb;
- struct reset_control *rst_core;
+ struct reset_control *rsts;
const struct starfive_wdt_variant *drv_data;
u32 count; /*count of timeout*/
u32 reload; /*restore the count*/
@@ -252,18 +251,13 @@ static int starfive_wdt_reset_init(struct starfive_wdt *wdt)
{
int err = 0;
- wdt->rst_apb = devm_reset_control_get_exclusive(wdt->dev, "rst_apb");
- if (!IS_ERR(wdt->rst_apb)) {
- err = reset_control_deassert(wdt->rst_apb);
+ wdt->rsts = devm_reset_control_array_get_exclusive(wdt->dev);
+ if (!IS_ERR(wdt->rsts)) {
+ err = reset_control_deassert(wdt->rsts);
if (err)
- dev_warn(wdt->dev, "deassert apb_rst error.\n");
- }
- wdt->rst_core = devm_reset_control_get_exclusive(wdt->dev, "rst_core");
- if (!IS_ERR(wdt->rst_core)) {
- err = reset_control_deassert(wdt->rst_core);
- if (err)
- dev_warn(wdt->dev, "deassert core_rst error.\n");
- }
+ dev_err(wdt->dev, "deassert rsts error.\n");
+ } else
+ err = PTR_ERR(wdt->rsts);
return err;
}