Re: [PATCH 1/3] watchdog: mtk_wdt: remove mt8xxx-resets.h

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 28/07/2020 12:42, Crystal Guo wrote:
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.


We want to have all the reset numbers in one header file. It makes no sense to pass the reset number in one driver via DTS and in the rest through the header file.

Sorry but from my side this is NACK.

Regards,
Matthias

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);




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux