From: Guenter Roeck <linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org> To: Hauke Mehrtens <hauke-5/S+JYg5SzeELgA04lAiVw@public.gmane.org> Cc: ralf-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org, linux-mips-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org, linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, linux-watchdog-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org, john-Pj+rj9U5foFAfugRpC6u6w@public.gmane.org, linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, hauke.mehrtens-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org Subject: Re: [04/13] watchdog: lantiq: access boot cause register through regmap Date: Sun, 23 Apr 2017 08:48:12 -0700 [thread overview] Message-ID: <20170423154812.GA20428@roeck-us.net> (raw) In-Reply-To: <20170417192942.32219-5-hauke-5/S+JYg5SzeELgA04lAiVw@public.gmane.org> On Mon, Apr 17, 2017 at 09:29:33PM +0200, Hauke Mehrtens wrote: > This patch avoids accessing the function ltq_reset_cause() and directly > accesses the register given over the syscon interface. The syscon > interface will be implemented for the xway SoCs for the falcon SoCs the > ltq_reset_cause() function never worked, because a wrong offset was used. > > Signed-off-by: Hauke Mehrtens <hauke-5/S+JYg5SzeELgA04lAiVw@public.gmane.org> Acked-by: Guenter Roeck <linux-cYGBoTPqujPR7s880joybQ@public.gmane.org> > --- > drivers/watchdog/lantiq_wdt.c | 47 +++++++++++++++++++++++++++++++++++++++---- > 1 file changed, 43 insertions(+), 4 deletions(-) > > diff --git a/drivers/watchdog/lantiq_wdt.c b/drivers/watchdog/lantiq_wdt.c > index e0823677d8c1..0e349ad03fdf 100644 > --- a/drivers/watchdog/lantiq_wdt.c > +++ b/drivers/watchdog/lantiq_wdt.c > @@ -17,9 +17,14 @@ > #include <linux/uaccess.h> > #include <linux/clk.h> > #include <linux/io.h> > +#include <linux/regmap.h> > +#include <linux/mfd/syscon.h> > > #include <lantiq_soc.h> > > +#define LTQ_RST_CAUSE_WDT_XRX BIT(31) > +#define LTQ_RST_CAUSE_WDT_FALCON 0x02 > + > /* > * Section 3.4 of the datasheet > * The password sequence protects the WDT control register from unintended > @@ -186,6 +191,40 @@ static struct miscdevice ltq_wdt_miscdev = { > .fops = <q_wdt_fops, > }; > > +static void ltq_set_wdt_bootstatus(struct platform_device *pdev) > +{ > + struct device_node *np = pdev->dev.of_node; > + struct regmap *rcu_regmap; > + u32 status_reg_offset; > + u32 val; > + int err; > + > + rcu_regmap = syscon_regmap_lookup_by_phandle(np, > + "lantiq,rcu-syscon"); > + if (IS_ERR_OR_NULL(rcu_regmap)) > + return; > + > + err = of_property_read_u32_index(np, "lantiq,rcu-syscon", 1, > + &status_reg_offset); > + if (err) { > + dev_err(&pdev->dev, "Failed to get RCU reg offset\n"); > + return; > + } > + > + err = regmap_read(rcu_regmap, status_reg_offset, &val); > + if (err) > + return; > + > + /* find out if the watchdog caused the last reboot */ > + if (of_device_is_compatible(np, "lantiq,wdt-xrx100")) { > + if (val & LTQ_RST_CAUSE_WDT_XRX) > + ltq_wdt_bootstatus = WDIOF_CARDRESET; > + } else if (of_device_is_compatible(np, "lantiq,wdt-falcon")) { > + if ((val & 0x7) == LTQ_RST_CAUSE_WDT_FALCON) > + ltq_wdt_bootstatus = WDIOF_CARDRESET; > + } > +} > + > static int > ltq_wdt_probe(struct platform_device *pdev) > { > @@ -205,9 +244,7 @@ ltq_wdt_probe(struct platform_device *pdev) > ltq_io_region_clk_rate = clk_get_rate(clk); > clk_put(clk); > > - /* find out if the watchdog caused the last reboot */ > - if (ltq_reset_cause() == LTQ_RST_CAUSE_WDTRST) > - ltq_wdt_bootstatus = WDIOF_CARDRESET; > + ltq_set_wdt_bootstatus(pdev); > > dev_info(&pdev->dev, "Init done\n"); > return misc_register(<q_wdt_miscdev); > @@ -222,7 +259,9 @@ ltq_wdt_remove(struct platform_device *pdev) > } > > static const struct of_device_id ltq_wdt_match[] = { > - { .compatible = "lantiq,wdt" }, > + { .compatible = "lantiq,wdt"}, > + { .compatible = "lantiq,wdt-xrx100"}, > + { .compatible = "lantiq,wdt-falcon"}, > {}, > }; > MODULE_DEVICE_TABLE(of, ltq_wdt_match); -- To unsubscribe from this list: send the line "unsubscribe linux-spi" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: Guenter Roeck <linux@roeck-us.net> To: Hauke Mehrtens <hauke@hauke-m.de> Cc: ralf@linux-mips.org, linux-mips@linux-mips.org, linux-mtd@lists.infradead.org, linux-watchdog@vger.kernel.org, devicetree@vger.kernel.org, martin.blumenstingl@googlemail.com, john@phrozen.org, linux-spi@vger.kernel.org, hauke.mehrtens@intel.com Subject: Re: [04/13] watchdog: lantiq: access boot cause register through regmap Date: Sun, 23 Apr 2017 08:48:12 -0700 [thread overview] Message-ID: <20170423154812.GA20428@roeck-us.net> (raw) In-Reply-To: <20170417192942.32219-5-hauke@hauke-m.de> On Mon, Apr 17, 2017 at 09:29:33PM +0200, Hauke Mehrtens wrote: > This patch avoids accessing the function ltq_reset_cause() and directly > accesses the register given over the syscon interface. The syscon > interface will be implemented for the xway SoCs for the falcon SoCs the > ltq_reset_cause() function never worked, because a wrong offset was used. > > Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> Acked-by: Guenter Roeck <linux@reck-us.net> > --- > drivers/watchdog/lantiq_wdt.c | 47 +++++++++++++++++++++++++++++++++++++++---- > 1 file changed, 43 insertions(+), 4 deletions(-) > > diff --git a/drivers/watchdog/lantiq_wdt.c b/drivers/watchdog/lantiq_wdt.c > index e0823677d8c1..0e349ad03fdf 100644 > --- a/drivers/watchdog/lantiq_wdt.c > +++ b/drivers/watchdog/lantiq_wdt.c > @@ -17,9 +17,14 @@ > #include <linux/uaccess.h> > #include <linux/clk.h> > #include <linux/io.h> > +#include <linux/regmap.h> > +#include <linux/mfd/syscon.h> > > #include <lantiq_soc.h> > > +#define LTQ_RST_CAUSE_WDT_XRX BIT(31) > +#define LTQ_RST_CAUSE_WDT_FALCON 0x02 > + > /* > * Section 3.4 of the datasheet > * The password sequence protects the WDT control register from unintended > @@ -186,6 +191,40 @@ static struct miscdevice ltq_wdt_miscdev = { > .fops = <q_wdt_fops, > }; > > +static void ltq_set_wdt_bootstatus(struct platform_device *pdev) > +{ > + struct device_node *np = pdev->dev.of_node; > + struct regmap *rcu_regmap; > + u32 status_reg_offset; > + u32 val; > + int err; > + > + rcu_regmap = syscon_regmap_lookup_by_phandle(np, > + "lantiq,rcu-syscon"); > + if (IS_ERR_OR_NULL(rcu_regmap)) > + return; > + > + err = of_property_read_u32_index(np, "lantiq,rcu-syscon", 1, > + &status_reg_offset); > + if (err) { > + dev_err(&pdev->dev, "Failed to get RCU reg offset\n"); > + return; > + } > + > + err = regmap_read(rcu_regmap, status_reg_offset, &val); > + if (err) > + return; > + > + /* find out if the watchdog caused the last reboot */ > + if (of_device_is_compatible(np, "lantiq,wdt-xrx100")) { > + if (val & LTQ_RST_CAUSE_WDT_XRX) > + ltq_wdt_bootstatus = WDIOF_CARDRESET; > + } else if (of_device_is_compatible(np, "lantiq,wdt-falcon")) { > + if ((val & 0x7) == LTQ_RST_CAUSE_WDT_FALCON) > + ltq_wdt_bootstatus = WDIOF_CARDRESET; > + } > +} > + > static int > ltq_wdt_probe(struct platform_device *pdev) > { > @@ -205,9 +244,7 @@ ltq_wdt_probe(struct platform_device *pdev) > ltq_io_region_clk_rate = clk_get_rate(clk); > clk_put(clk); > > - /* find out if the watchdog caused the last reboot */ > - if (ltq_reset_cause() == LTQ_RST_CAUSE_WDTRST) > - ltq_wdt_bootstatus = WDIOF_CARDRESET; > + ltq_set_wdt_bootstatus(pdev); > > dev_info(&pdev->dev, "Init done\n"); > return misc_register(<q_wdt_miscdev); > @@ -222,7 +259,9 @@ ltq_wdt_remove(struct platform_device *pdev) > } > > static const struct of_device_id ltq_wdt_match[] = { > - { .compatible = "lantiq,wdt" }, > + { .compatible = "lantiq,wdt"}, > + { .compatible = "lantiq,wdt-xrx100"}, > + { .compatible = "lantiq,wdt-falcon"}, > {}, > }; > MODULE_DEVICE_TABLE(of, ltq_wdt_match);
next prev parent reply other threads:[~2017-04-23 15:48 UTC|newest] Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-04-17 19:29 [PATCH 00/13] MIPS: lantiq: handle RCU register by separate drivers Hauke Mehrtens 2017-04-17 19:29 ` Hauke Mehrtens [not found] ` <20170417192942.32219-1-hauke-5/S+JYg5SzeELgA04lAiVw@public.gmane.org> 2017-04-17 19:29 ` [PATCH 01/13] MIPS: lantiq: Use of_platform_populate instead of __dt_register_buses Hauke Mehrtens 2017-04-17 19:29 ` Hauke Mehrtens 2017-04-21 18:17 ` Martin Blumenstingl 2017-04-17 19:29 ` [PATCH 02/13] mtd: lantiq-flash: drop check of boot select Hauke Mehrtens 2017-04-17 19:29 ` Hauke Mehrtens [not found] ` <20170417192942.32219-3-hauke-5/S+JYg5SzeELgA04lAiVw@public.gmane.org> 2017-04-20 22:36 ` Brian Norris 2017-04-20 22:36 ` Brian Norris 2017-04-17 19:29 ` [PATCH 03/13] mtd: spi-falcon: " Hauke Mehrtens 2017-04-17 19:29 ` Hauke Mehrtens [not found] ` <20170417192942.32219-4-hauke-5/S+JYg5SzeELgA04lAiVw@public.gmane.org> 2017-09-01 10:47 ` Applied "spi: spi-falcon: drop check of boot select" to the spi tree Mark Brown 2017-09-01 10:47 ` Mark Brown 2017-09-01 10:47 ` Mark Brown 2017-09-01 10:47 ` Mark Brown 2017-09-01 10:47 ` Mark Brown 2017-09-01 14:23 ` Ralf Baechle 2017-09-01 14:23 ` Ralf Baechle [not found] ` <20170901142355.GB31297-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org> 2017-09-01 16:39 ` Mark Brown 2017-09-01 16:39 ` Mark Brown 2017-04-17 19:29 ` [PATCH 04/13] watchdog: lantiq: access boot cause register through regmap Hauke Mehrtens 2017-04-17 19:29 ` Hauke Mehrtens [not found] ` <20170417192942.32219-5-hauke-5/S+JYg5SzeELgA04lAiVw@public.gmane.org> 2017-04-23 15:48 ` Guenter Roeck [this message] 2017-04-23 15:48 ` [04/13] " Guenter Roeck 2017-04-17 19:29 ` [PATCH 05/13] MIPS: lantiq: Enable MFD_SYSCON to be able to use it for the RCU MFD Hauke Mehrtens 2017-04-17 19:29 ` Hauke Mehrtens 2017-04-17 19:29 ` [PATCH 06/13] MIPS: lantiq: Convert the xbar driver to a platform_driver Hauke Mehrtens 2017-04-17 19:29 ` Hauke Mehrtens [not found] ` <20170417192942.32219-7-hauke-5/S+JYg5SzeELgA04lAiVw@public.gmane.org> 2017-04-20 14:48 ` Rob Herring 2017-04-20 14:48 ` Rob Herring 2017-04-25 6:56 ` Hauke Mehrtens 2017-04-25 6:56 ` Hauke Mehrtens [not found] ` <8742e3b3-4dc2-bc74-f607-00d96f74512c-5/S+JYg5SzeELgA04lAiVw@public.gmane.org> 2017-04-25 16:57 ` Rob Herring 2017-04-25 16:57 ` Rob Herring 2017-04-21 18:28 ` Martin Blumenstingl 2017-04-21 18:28 ` Martin Blumenstingl 2017-04-17 19:29 ` [PATCH 07/13] MIPS: lantiq: remove ltq_reset_cause() and ltq_boot_select() Hauke Mehrtens 2017-04-17 19:29 ` Hauke Mehrtens [not found] ` <20170417192942.32219-8-hauke-5/S+JYg5SzeELgA04lAiVw@public.gmane.org> 2017-04-21 18:20 ` Martin Blumenstingl 2017-04-21 18:20 ` Martin Blumenstingl 2017-04-17 19:29 ` [PATCH 08/13] reset: Add a reset controller driver for the Lantiq XWAY based SoCs Hauke Mehrtens 2017-04-17 19:29 ` Hauke Mehrtens [not found] ` <20170417192942.32219-9-hauke-5/S+JYg5SzeELgA04lAiVw@public.gmane.org> 2017-04-17 21:18 ` Martin Blumenstingl 2017-04-17 21:18 ` Martin Blumenstingl 2017-04-20 14:54 ` Rob Herring 2017-04-20 14:54 ` Rob Herring 2017-04-25 7:00 ` Hauke Mehrtens 2017-04-25 7:00 ` Hauke Mehrtens [not found] ` <a9519140-a804-9888-3223-9a1446e25c52-5/S+JYg5SzeELgA04lAiVw@public.gmane.org> 2017-04-25 17:01 ` Rob Herring 2017-04-25 17:01 ` Rob Herring 2017-04-17 19:29 ` [PATCH 09/13] MIPS: lantiq: Add a GPHY driver which uses the RCU syscon-mfd Hauke Mehrtens 2017-04-17 19:29 ` Hauke Mehrtens [not found] ` <20170417192942.32219-10-hauke-5/S+JYg5SzeELgA04lAiVw@public.gmane.org> 2017-04-20 15:27 ` Rob Herring 2017-04-20 15:27 ` Rob Herring 2017-04-25 7:05 ` Hauke Mehrtens 2017-04-25 7:05 ` Hauke Mehrtens 2017-04-17 19:29 ` [PATCH 10/13] MIPS: lantiq: remove old GPHY loader code Hauke Mehrtens 2017-04-17 19:29 ` Hauke Mehrtens 2017-04-17 19:29 ` [PATCH 11/13] phy: Add an USB PHY driver for the Lantiq SoCs using the RCU module Hauke Mehrtens 2017-04-17 19:29 ` Hauke Mehrtens [not found] ` <20170417192942.32219-12-hauke-5/S+JYg5SzeELgA04lAiVw@public.gmane.org> 2017-04-17 21:23 ` Martin Blumenstingl 2017-04-17 21:23 ` Martin Blumenstingl [not found] ` <CAFBinCAB=vaDpzCoMFX8w9j0R04i6Zr4mbjDtteKsQ_LkKAaLg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2017-04-25 6:51 ` Hauke Mehrtens 2017-04-25 6:51 ` Hauke Mehrtens 2017-04-20 15:36 ` Rob Herring 2017-04-20 15:36 ` Rob Herring 2017-04-25 7:06 ` Hauke Mehrtens 2017-04-25 7:06 ` Hauke Mehrtens 2017-04-21 18:41 ` Martin Blumenstingl 2017-04-21 18:41 ` Martin Blumenstingl 2017-04-17 19:29 ` [PATCH 12/13] Documentation: DT: MIPS: lantiq: Add docs for the RCU bindings Hauke Mehrtens 2017-04-17 19:29 ` Hauke Mehrtens [not found] ` <20170417192942.32219-13-hauke-5/S+JYg5SzeELgA04lAiVw@public.gmane.org> 2017-04-20 15:42 ` Rob Herring 2017-04-20 15:42 ` Rob Herring 2017-04-17 19:29 ` [PATCH 13/13] MIPS: lantiq: Remove the arch/mips/lantiq/xway/reset.c implementation Hauke Mehrtens 2017-04-17 19:29 ` Hauke Mehrtens [not found] ` <20170417192942.32219-14-hauke-5/S+JYg5SzeELgA04lAiVw@public.gmane.org> 2017-04-17 21:28 ` Martin Blumenstingl 2017-04-17 21:28 ` Martin Blumenstingl 2017-04-17 21:14 ` [PATCH 00/13] MIPS: lantiq: handle RCU register by separate drivers Martin Blumenstingl 2017-04-17 21:14 ` Martin Blumenstingl
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20170423154812.GA20428@roeck-us.net \ --to=linux-0h96xk9xttrk1umjsbkqmq@public.gmane.org \ --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=hauke-5/S+JYg5SzeELgA04lAiVw@public.gmane.org \ --cc=hauke.mehrtens-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \ --cc=john-Pj+rj9U5foFAfugRpC6u6w@public.gmane.org \ --cc=linux-mips-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org \ --cc=linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \ --cc=linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=linux-watchdog-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org \ --cc=ralf-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.