* [PATCH v4 0/2] watchdog: at91sam9_wdt: add device tree support @ 2012-09-25 10:25 Fabio Porcedda 2012-09-25 10:25 ` [PATCH v4 1/2] " Fabio Porcedda 2012-09-25 10:25 ` [PATCH v4 2/2] ARM: at91: add at91sam9_wdt driver to at91sam926x, at91sam9g45 Fabio Porcedda 0 siblings, 2 replies; 9+ messages in thread From: Fabio Porcedda @ 2012-09-25 10:25 UTC (permalink / raw) To: linux-arm-kernel Hi all, This set of patches is for adding device tree support to the at91sam_wdt driver. I've tested it on an at91sam9260 board (evk-pro3). Changes: v4: - use "atmel,at91sam9260-wdt" as compatible v3: - add heartbeat option - default disabled for all the soc, enable only for evk-pro3 board - add at91sam9263 and at91sam9g45 soc v2: - add missing to and cc addresses Fabio Porcedda (2): watchdog: at91sam9_wdt: add device tree support ARM: at91: add at91sam9_wdt driver to at91sam926x, at91sam9g45 .../devicetree/bindings/watchdog/atmel-wdt.txt | 19 +++++++++++++++++++ arch/arm/boot/dts/at91sam9260.dtsi | 6 ++++++ arch/arm/boot/dts/at91sam9263.dtsi | 6 ++++++ arch/arm/boot/dts/at91sam9g45.dtsi | 6 ++++++ arch/arm/boot/dts/evk-pro3.dts | 4 ++++ drivers/watchdog/at91sam9_wdt.c | 21 +++++++++++++++++++++ 6 files changed, 62 insertions(+) create mode 100644 Documentation/devicetree/bindings/watchdog/atmel-wdt.txt -- 1.7.11.3 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v4 1/2] watchdog: at91sam9_wdt: add device tree support 2012-09-25 10:25 [PATCH v4 0/2] watchdog: at91sam9_wdt: add device tree support Fabio Porcedda @ 2012-09-25 10:25 ` Fabio Porcedda 2012-09-27 5:56 ` Jean-Christophe PLAGNIOL-VILLARD 2012-09-25 10:25 ` [PATCH v4 2/2] ARM: at91: add at91sam9_wdt driver to at91sam926x, at91sam9g45 Fabio Porcedda 1 sibling, 1 reply; 9+ messages in thread From: Fabio Porcedda @ 2012-09-25 10:25 UTC (permalink / raw) To: linux-arm-kernel Tested on an at91sam9260 board (evk-pro3) Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com> --- .../devicetree/bindings/watchdog/atmel-wdt.txt | 19 +++++++++++++++++++ drivers/watchdog/at91sam9_wdt.c | 21 +++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 Documentation/devicetree/bindings/watchdog/atmel-wdt.txt diff --git a/Documentation/devicetree/bindings/watchdog/atmel-wdt.txt b/Documentation/devicetree/bindings/watchdog/atmel-wdt.txt new file mode 100644 index 0000000..5947929 --- /dev/null +++ b/Documentation/devicetree/bindings/watchdog/atmel-wdt.txt @@ -0,0 +1,19 @@ +* Atmel Watchdog Timers + +** at91sam9-wdt + +Required properties: +- compatible: must be "atmel,at91sam9260-wdt". +- reg: physical base address of the controller and length of memory mapped + region. + +Optional properties: +- heartbeat: contains the watchdog heartbeats in seconds. + +Example: + + watchdog at fffffd40 { + compatible = "atmel,at91sam9260-wdt"; + reg = <0xfffffd40 0x10>; + heartbeat = <10>; + }; diff --git a/drivers/watchdog/at91sam9_wdt.c b/drivers/watchdog/at91sam9_wdt.c index 05e1be8..84658d7 100644 --- a/drivers/watchdog/at91sam9_wdt.c +++ b/drivers/watchdog/at91sam9_wdt.c @@ -32,6 +32,7 @@ #include <linux/timer.h> #include <linux/bitops.h> #include <linux/uaccess.h> +#include <linux/of.h> #include "at91sam9_wdt.h" @@ -254,6 +255,14 @@ static struct miscdevice at91wdt_miscdev = { .fops = &at91wdt_fops, }; +static inline void __init at91wdt_probe_dt(struct device_node *node) +{ + if (!node) + return; + + of_property_read_u32(node, "heartbeat", &heartbeat); +} + static int __init at91wdt_probe(struct platform_device *pdev) { struct resource *r; @@ -272,6 +281,8 @@ static int __init at91wdt_probe(struct platform_device *pdev) return -ENOMEM; } + at91wdt_probe_dt(pdev->dev.of_node); + /* Set watchdog */ res = at91_wdt_settimeout(ms_to_ticks(WDT_HW_TIMEOUT * 1000)); if (res) @@ -302,11 +313,21 @@ static int __exit at91wdt_remove(struct platform_device *pdev) return res; } +#if defined(CONFIG_OF) +static const struct of_device_id at91_wdt_dt_ids[] = { + { .compatible = "atmel,at91sam9260-wdt" }, + { /* sentinel */ } +}; + +MODULE_DEVICE_TABLE(of, at91_wdt_dt_ids); +#endif + static struct platform_driver at91wdt_driver = { .remove = __exit_p(at91wdt_remove), .driver = { .name = "at91_wdt", .owner = THIS_MODULE, + .of_match_table = of_match_ptr(at91_wdt_dt_ids), }, }; -- 1.7.11.3 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v4 1/2] watchdog: at91sam9_wdt: add device tree support 2012-09-25 10:25 ` [PATCH v4 1/2] " Fabio Porcedda @ 2012-09-27 5:56 ` Jean-Christophe PLAGNIOL-VILLARD 2012-09-27 14:59 ` Fabio Porcedda 0 siblings, 1 reply; 9+ messages in thread From: Jean-Christophe PLAGNIOL-VILLARD @ 2012-09-27 5:56 UTC (permalink / raw) To: linux-arm-kernel On 12:25 Tue 25 Sep , Fabio Porcedda wrote: > Tested on an at91sam9260 board (evk-pro3) > > Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com> > --- > .../devicetree/bindings/watchdog/atmel-wdt.txt | 19 +++++++++++++++++++ > drivers/watchdog/at91sam9_wdt.c | 21 +++++++++++++++++++++ > 2 files changed, 40 insertions(+) > create mode 100644 Documentation/devicetree/bindings/watchdog/atmel-wdt.txt > > diff --git a/Documentation/devicetree/bindings/watchdog/atmel-wdt.txt b/Documentation/devicetree/bindings/watchdog/atmel-wdt.txt > new file mode 100644 > index 0000000..5947929 > --- /dev/null > +++ b/Documentation/devicetree/bindings/watchdog/atmel-wdt.txt > @@ -0,0 +1,19 @@ > +* Atmel Watchdog Timers > + > +** at91sam9-wdt > + > +Required properties: > +- compatible: must be "atmel,at91sam9260-wdt". > +- reg: physical base address of the controller and length of memory mapped > + region. > + > +Optional properties: > +- heartbeat: contains the watchdog heartbeats in seconds. more I read this binding more it's seems wrong Today we do not use yet the watchdog framework which we will so we need to use the same binding as the watchdog framework So when we switch the DT will not change Best Regards, J. ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v4 1/2] watchdog: at91sam9_wdt: add device tree support 2012-09-27 5:56 ` Jean-Christophe PLAGNIOL-VILLARD @ 2012-09-27 14:59 ` Fabio Porcedda 2012-09-27 17:19 ` Jean-Christophe PLAGNIOL-VILLARD 0 siblings, 1 reply; 9+ messages in thread From: Fabio Porcedda @ 2012-09-27 14:59 UTC (permalink / raw) To: linux-arm-kernel On Thu, Sep 27, 2012 at 7:56 AM, Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> wrote: > On 12:25 Tue 25 Sep , Fabio Porcedda wrote: >> Tested on an at91sam9260 board (evk-pro3) >> >> Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com> >> --- >> .../devicetree/bindings/watchdog/atmel-wdt.txt | 19 +++++++++++++++++++ >> drivers/watchdog/at91sam9_wdt.c | 21 +++++++++++++++++++++ >> 2 files changed, 40 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/watchdog/atmel-wdt.txt >> >> diff --git a/Documentation/devicetree/bindings/watchdog/atmel-wdt.txt b/Documentation/devicetree/bindings/watchdog/atmel-wdt.txt >> new file mode 100644 >> index 0000000..5947929 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/watchdog/atmel-wdt.txt >> @@ -0,0 +1,19 @@ >> +* Atmel Watchdog Timers >> + >> +** at91sam9-wdt >> + >> +Required properties: >> +- compatible: must be "atmel,at91sam9260-wdt". >> +- reg: physical base address of the controller and length of memory mapped >> + region. >> + >> +Optional properties: >> +- heartbeat: contains the watchdog heartbeats in seconds. > more I read this binding more it's seems wrong > > Today we do not use yet the watchdog framework which we will so we need to > use the same binding as the watchdog framework What is the binding of the heartbeat value in the watchdog framework? I didn't found any binding of the heartbeat in other dt enabled drivers. > So when we switch the DT will not change Best regards -- Fabio Porcedda ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v4 1/2] watchdog: at91sam9_wdt: add device tree support 2012-09-27 14:59 ` Fabio Porcedda @ 2012-09-27 17:19 ` Jean-Christophe PLAGNIOL-VILLARD 2012-09-28 16:20 ` Fabio Porcedda 0 siblings, 1 reply; 9+ messages in thread From: Jean-Christophe PLAGNIOL-VILLARD @ 2012-09-27 17:19 UTC (permalink / raw) To: linux-arm-kernel On 16:59 Thu 27 Sep , Fabio Porcedda wrote: > On Thu, Sep 27, 2012 at 7:56 AM, Jean-Christophe PLAGNIOL-VILLARD > <plagnioj@jcrosoft.com> wrote: > > On 12:25 Tue 25 Sep , Fabio Porcedda wrote: > >> Tested on an at91sam9260 board (evk-pro3) > >> > >> Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com> > >> --- > >> .../devicetree/bindings/watchdog/atmel-wdt.txt | 19 +++++++++++++++++++ > >> drivers/watchdog/at91sam9_wdt.c | 21 +++++++++++++++++++++ > >> 2 files changed, 40 insertions(+) > >> create mode 100644 Documentation/devicetree/bindings/watchdog/atmel-wdt.txt > >> > >> diff --git a/Documentation/devicetree/bindings/watchdog/atmel-wdt.txt b/Documentation/devicetree/bindings/watchdog/atmel-wdt.txt > >> new file mode 100644 > >> index 0000000..5947929 > >> --- /dev/null > >> +++ b/Documentation/devicetree/bindings/watchdog/atmel-wdt.txt > >> @@ -0,0 +1,19 @@ > >> +* Atmel Watchdog Timers > >> + > >> +** at91sam9-wdt > >> + > >> +Required properties: > >> +- compatible: must be "atmel,at91sam9260-wdt". > >> +- reg: physical base address of the controller and length of memory mapped > >> + region. > >> + > >> +Optional properties: > >> +- heartbeat: contains the watchdog heartbeats in seconds. > > more I read this binding more it's seems wrong > > > > Today we do not use yet the watchdog framework which we will so we need to > > use the same binding as the watchdog framework > > What is the binding of the heartbeat value in the watchdog framework? > I didn't found any binding of the heartbeat in other dt enabled drivers. when you read the new watchdog framework cf watchdog_dev.c and watchdog_core.c you will see that we can set a timeout which have the same meaning as heartbeat the key point here is you try to solve the DT the wrong way -> drivers specific the binding need to be framwork specific os here we need to do the binding of the watchdog framework first and then use it in the at91sam9 driver evenif we do not switch yet. Because in the DT we describe the hw not a drvier implementation Best Regards, J. ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v4 1/2] watchdog: at91sam9_wdt: add device tree support 2012-09-27 17:19 ` Jean-Christophe PLAGNIOL-VILLARD @ 2012-09-28 16:20 ` Fabio Porcedda 0 siblings, 0 replies; 9+ messages in thread From: Fabio Porcedda @ 2012-09-28 16:20 UTC (permalink / raw) To: linux-arm-kernel On Thu, Sep 27, 2012 at 7:19 PM, Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> wrote: > On 16:59 Thu 27 Sep , Fabio Porcedda wrote: >> On Thu, Sep 27, 2012 at 7:56 AM, Jean-Christophe PLAGNIOL-VILLARD >> <plagnioj@jcrosoft.com> wrote: >> > On 12:25 Tue 25 Sep , Fabio Porcedda wrote: >> >> Tested on an at91sam9260 board (evk-pro3) >> >> >> >> Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com> >> >> --- >> >> .../devicetree/bindings/watchdog/atmel-wdt.txt | 19 +++++++++++++++++++ >> >> drivers/watchdog/at91sam9_wdt.c | 21 +++++++++++++++++++++ >> >> 2 files changed, 40 insertions(+) >> >> create mode 100644 Documentation/devicetree/bindings/watchdog/atmel-wdt.txt >> >> >> >> diff --git a/Documentation/devicetree/bindings/watchdog/atmel-wdt.txt b/Documentation/devicetree/bindings/watchdog/atmel-wdt.txt >> >> new file mode 100644 >> >> index 0000000..5947929 >> >> --- /dev/null >> >> +++ b/Documentation/devicetree/bindings/watchdog/atmel-wdt.txt >> >> @@ -0,0 +1,19 @@ >> >> +* Atmel Watchdog Timers >> >> + >> >> +** at91sam9-wdt >> >> + >> >> +Required properties: >> >> +- compatible: must be "atmel,at91sam9260-wdt". >> >> +- reg: physical base address of the controller and length of memory mapped >> >> + region. >> >> + >> >> +Optional properties: >> >> +- heartbeat: contains the watchdog heartbeats in seconds. >> > more I read this binding more it's seems wrong >> > >> > Today we do not use yet the watchdog framework which we will so we need to >> > use the same binding as the watchdog framework >> >> What is the binding of the heartbeat value in the watchdog framework? >> I didn't found any binding of the heartbeat in other dt enabled drivers. > when you read the new watchdog framework cf watchdog_dev.c and watchdog_core.c > > you will see that we can set a timeout which have the same meaning as > heartbeat > > the key point here is you try to solve the DT the wrong way -> drivers > specific > > the binding need to be framwork specific os here we need to do the binding of > the watchdog framework first and then use it in the at91sam9 driver evenif we > do not switch yet. Because in the DT we describe the hw not a drvier > implementation Ok i will try to send an updated patch following your advice. > Best Regards, > J. Best regards -- Fabio Porcedda ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v4 2/2] ARM: at91: add at91sam9_wdt driver to at91sam926x, at91sam9g45 2012-09-25 10:25 [PATCH v4 0/2] watchdog: at91sam9_wdt: add device tree support Fabio Porcedda 2012-09-25 10:25 ` [PATCH v4 1/2] " Fabio Porcedda @ 2012-09-25 10:25 ` Fabio Porcedda 2012-09-27 5:50 ` Jean-Christophe PLAGNIOL-VILLARD 1 sibling, 1 reply; 9+ messages in thread From: Fabio Porcedda @ 2012-09-25 10:25 UTC (permalink / raw) To: linux-arm-kernel Enable the driver for the evk-pro3 board. Tested on an at91sam9260 board (evk-pro3). Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com> --- arch/arm/boot/dts/at91sam9260.dtsi | 6 ++++++ arch/arm/boot/dts/at91sam9263.dtsi | 6 ++++++ arch/arm/boot/dts/at91sam9g45.dtsi | 6 ++++++ arch/arm/boot/dts/evk-pro3.dts | 4 ++++ 4 files changed, 22 insertions(+) diff --git a/arch/arm/boot/dts/at91sam9260.dtsi b/arch/arm/boot/dts/at91sam9260.dtsi index 7c95f76..7612193 100644 --- a/arch/arm/boot/dts/at91sam9260.dtsi +++ b/arch/arm/boot/dts/at91sam9260.dtsi @@ -236,6 +236,12 @@ trigger-external; }; }; + + watchdog at fffffd40 { + compatible = "atmel,at91sam9260-wdt"; + reg = <0xfffffd40 0x10>; + status = "disabled"; + }; }; nand0: nand at 40000000 { diff --git a/arch/arm/boot/dts/at91sam9263.dtsi b/arch/arm/boot/dts/at91sam9263.dtsi index 195019b..d822240 100644 --- a/arch/arm/boot/dts/at91sam9263.dtsi +++ b/arch/arm/boot/dts/at91sam9263.dtsi @@ -185,6 +185,12 @@ interrupts = <24 4 2>; status = "disabled"; }; + + watchdog at fffffd40 { + compatible = "atmel,at91sam9260-wdt"; + reg = <0xfffffd40 0x10>; + status = "disabled"; + }; }; nand0: nand at 40000000 { diff --git a/arch/arm/boot/dts/at91sam9g45.dtsi b/arch/arm/boot/dts/at91sam9g45.dtsi index 63751b1..df998ab 100644 --- a/arch/arm/boot/dts/at91sam9g45.dtsi +++ b/arch/arm/boot/dts/at91sam9g45.dtsi @@ -242,6 +242,12 @@ trigger-value = <0x6>; }; }; + + watchdog at fffffd40 { + compatible = "atmel,at91sam9260-wdt"; + reg = <0xfffffd40 0x10>; + status = "disabled"; + }; }; nand0: nand at 40000000 { diff --git a/arch/arm/boot/dts/evk-pro3.dts b/arch/arm/boot/dts/evk-pro3.dts index b7354e6..ce959ee 100644 --- a/arch/arm/boot/dts/evk-pro3.dts +++ b/arch/arm/boot/dts/evk-pro3.dts @@ -26,6 +26,10 @@ atmel,vbus-gpio = <&pioC 5 0>; status = "okay"; }; + + watchdog at fffffd40 { + status = "okay"; + }; }; usb0: ohci at 00500000 { -- 1.7.11.3 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v4 2/2] ARM: at91: add at91sam9_wdt driver to at91sam926x, at91sam9g45 2012-09-25 10:25 ` [PATCH v4 2/2] ARM: at91: add at91sam9_wdt driver to at91sam926x, at91sam9g45 Fabio Porcedda @ 2012-09-27 5:50 ` Jean-Christophe PLAGNIOL-VILLARD 2012-09-27 15:00 ` Fabio Porcedda 0 siblings, 1 reply; 9+ messages in thread From: Jean-Christophe PLAGNIOL-VILLARD @ 2012-09-27 5:50 UTC (permalink / raw) To: linux-arm-kernel On 12:25 Tue 25 Sep , Fabio Porcedda wrote: > Enable the driver for the evk-pro3 board. > > Tested on an at91sam9260 board (evk-pro3). > > Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com> > --- > arch/arm/boot/dts/at91sam9260.dtsi | 6 ++++++ > arch/arm/boot/dts/at91sam9263.dtsi | 6 ++++++ > arch/arm/boot/dts/at91sam9g45.dtsi | 6 ++++++ > arch/arm/boot/dts/evk-pro3.dts | 4 ++++ split board and soc Best Regards, J. ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v4 2/2] ARM: at91: add at91sam9_wdt driver to at91sam926x, at91sam9g45 2012-09-27 5:50 ` Jean-Christophe PLAGNIOL-VILLARD @ 2012-09-27 15:00 ` Fabio Porcedda 0 siblings, 0 replies; 9+ messages in thread From: Fabio Porcedda @ 2012-09-27 15:00 UTC (permalink / raw) To: linux-arm-kernel On Thu, Sep 27, 2012 at 7:50 AM, Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> wrote: > On 12:25 Tue 25 Sep , Fabio Porcedda wrote: >> Enable the driver for the evk-pro3 board. >> >> Tested on an at91sam9260 board (evk-pro3). >> >> Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com> >> --- >> arch/arm/boot/dts/at91sam9260.dtsi | 6 ++++++ >> arch/arm/boot/dts/at91sam9263.dtsi | 6 ++++++ >> arch/arm/boot/dts/at91sam9g45.dtsi | 6 ++++++ >> arch/arm/boot/dts/evk-pro3.dts | 4 ++++ > split board and soc Ok, i will send an updated patch. > Best Regards, > J. Best regards -- Fabio Porcedda ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2012-09-28 16:20 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-09-25 10:25 [PATCH v4 0/2] watchdog: at91sam9_wdt: add device tree support Fabio Porcedda 2012-09-25 10:25 ` [PATCH v4 1/2] " Fabio Porcedda 2012-09-27 5:56 ` Jean-Christophe PLAGNIOL-VILLARD 2012-09-27 14:59 ` Fabio Porcedda 2012-09-27 17:19 ` Jean-Christophe PLAGNIOL-VILLARD 2012-09-28 16:20 ` Fabio Porcedda 2012-09-25 10:25 ` [PATCH v4 2/2] ARM: at91: add at91sam9_wdt driver to at91sam926x, at91sam9g45 Fabio Porcedda 2012-09-27 5:50 ` Jean-Christophe PLAGNIOL-VILLARD 2012-09-27 15:00 ` Fabio Porcedda
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).