mt8xxx-resets.h actually just used to define TOPRGU_SW_RST_NUM. Instead of resubmit the mt8xxx-reset.h for a new IC, get the number of reset bits from dtsi is more easier to maintain. Signed-off-by: Crystal Guo <crystal.guo@xxxxxxxxxxxx> --- drivers/watchdog/mtk_wdt.c | 26 +++++--------------------- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/drivers/watchdog/mtk_wdt.c b/drivers/watchdog/mtk_wdt.c index d6a6393..adc88c2 100644 --- a/drivers/watchdog/mtk_wdt.c +++ b/drivers/watchdog/mtk_wdt.c @@ -9,8 +9,6 @@ * Based on sunxi_wdt.c */ -#include <dt-bindings/reset-controller/mt2712-resets.h> -#include <dt-bindings/reset-controller/mt8183-resets.h> #include <linux/delay.h> #include <linux/err.h> #include <linux/init.h> @@ -64,18 +62,6 @@ struct mtk_wdt_dev { struct reset_controller_dev rcdev; }; -struct mtk_wdt_data { - int toprgu_sw_rst_num; -}; - -static const struct mtk_wdt_data mt2712_data = { - .toprgu_sw_rst_num = MT2712_TOPRGU_SW_RST_NUM, -}; - -static const struct mtk_wdt_data mt8183_data = { - .toprgu_sw_rst_num = MT8183_TOPRGU_SW_RST_NUM, -}; - static int toprgu_reset_update(struct reset_controller_dev *rcdev, unsigned long id, bool assert) { @@ -248,7 +234,7 @@ static int mtk_wdt_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct mtk_wdt_dev *mtk_wdt; - const struct mtk_wdt_data *wdt_data; + u32 toprgu_sw_rst_num; int err; mtk_wdt = devm_kzalloc(dev, sizeof(*mtk_wdt), GFP_KERNEL); @@ -284,10 +270,10 @@ static int mtk_wdt_probe(struct platform_device *pdev) dev_info(dev, "Watchdog enabled (timeout=%d sec, nowayout=%d)\n", mtk_wdt->wdt_dev.timeout, nowayout); - wdt_data = of_device_get_match_data(dev); - if (wdt_data) { - err = toprgu_register_reset_controller(pdev, - wdt_data->toprgu_sw_rst_num); + err = of_property_read_u32(pdev->dev.of_node, "rst-num", + &toprgu_sw_rst_num); + if (!err) { + err = toprgu_register_reset_controller(pdev, toprgu_sw_rst_num); if (err) return err; } @@ -319,9 +305,7 @@ static int mtk_wdt_resume(struct device *dev) #endif static const struct of_device_id mtk_wdt_dt_ids[] = { - { .compatible = "mediatek,mt2712-wdt", .data = &mt2712_data }, { .compatible = "mediatek,mt6589-wdt" }, - { .compatible = "mediatek,mt8183-wdt", .data = &mt8183_data }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, mtk_wdt_dt_ids); -- 1.8.1.1.dirty