diff mbox

watchdog: meson-wdt: add support for the watchdog on Meson8 and Meson8m2

Message ID 20170611095219.22095-1-martin.blumenstingl@googlemail.com (mailing list archive)
State Not Applicable
Headers show

Commit Message

Martin Blumenstingl June 11, 2017, 9:52 a.m. UTC
The watchdog IP block on Meson8 and Meson8m2 is already supported by the
existing meson-wdt driver. Meson8 uses the same register bits as Meson6,
while the newer Meson8m2 SoC uses the same register bits as Meson8b.

Currently watchdog support on Meson8 SoC already works because
meson8.dtsi simply uses the "amlogic,meson6-wdt" compatible. Adding a
separate compatible for Meson8 makes this more explicit though.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
---
 Documentation/devicetree/bindings/watchdog/meson-wdt.txt | 6 +++++-
 drivers/watchdog/meson_wdt.c                             | 2 ++
 2 files changed, 7 insertions(+), 1 deletion(-)

Comments

Neil Armstrong June 12, 2017, 7:38 a.m. UTC | #1
On 06/11/2017 11:52 AM, Martin Blumenstingl wrote:
> The watchdog IP block on Meson8 and Meson8m2 is already supported by the
> existing meson-wdt driver. Meson8 uses the same register bits as Meson6,
> while the newer Meson8m2 SoC uses the same register bits as Meson8b.
> 
> Currently watchdog support on Meson8 SoC already works because
> meson8.dtsi simply uses the "amlogic,meson6-wdt" compatible. Adding a
> separate compatible for Meson8 makes this more explicit though.
> 
> Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
> ---
>  Documentation/devicetree/bindings/watchdog/meson-wdt.txt | 6 +++++-
>  drivers/watchdog/meson_wdt.c                             | 2 ++
>  2 files changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/devicetree/bindings/watchdog/meson-wdt.txt b/Documentation/devicetree/bindings/watchdog/meson-wdt.txt
> index ae70185d96e6..f2fbe1a39d31 100644
> --- a/Documentation/devicetree/bindings/watchdog/meson-wdt.txt
> +++ b/Documentation/devicetree/bindings/watchdog/meson-wdt.txt
> @@ -2,7 +2,11 @@ Meson SoCs Watchdog timer
>  
>  Required properties:
>  
> -- compatible : should be "amlogic,meson6-wdt" or "amlogic,meson8b-wdt"
> +- compatible : depending on the SoC this should be one of:
> +	"amlogic,meson6-wdt"
> +	"amlogic,meson8-wdt"
> +	"amlogic,meson8b-wdt"
> +	"amlogic,meson8m2-wdt"
>  - reg : Specifies base physical address and size of the registers.
>  
>  Example:
> diff --git a/drivers/watchdog/meson_wdt.c b/drivers/watchdog/meson_wdt.c
> index 491b9bf13d84..304274c67735 100644
> --- a/drivers/watchdog/meson_wdt.c
> +++ b/drivers/watchdog/meson_wdt.c
> @@ -155,7 +155,9 @@ static const struct watchdog_ops meson_wdt_ops = {
>  
>  static const struct of_device_id meson_wdt_dt_ids[] = {
>  	{ .compatible = "amlogic,meson6-wdt", .data = &meson6_wdt_data },
> +	{ .compatible = "amlogic,meson8-wdt", .data = &meson6_wdt_data },
>  	{ .compatible = "amlogic,meson8b-wdt", .data = &meson8b_wdt_data },
> +	{ .compatible = "amlogic,meson8m2-wdt", .data = &meson8b_wdt_data },
>  	{ /* sentinel */ }
>  };
>  MODULE_DEVICE_TABLE(of, meson_wdt_dt_ids);
> 

Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
Guenter Roeck June 15, 2017, 5:25 p.m. UTC | #2
On Sun, Jun 11, 2017 at 11:52:19AM +0200, Martin Blumenstingl wrote:
> The watchdog IP block on Meson8 and Meson8m2 is already supported by the
> existing meson-wdt driver. Meson8 uses the same register bits as Meson6,
> while the newer Meson8m2 SoC uses the same register bits as Meson8b.
> 
> Currently watchdog support on Meson8 SoC already works because
> meson8.dtsi simply uses the "amlogic,meson6-wdt" compatible. Adding a
> separate compatible for Meson8 makes this more explicit though.
> 
> Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>

Reviewed-by: Guenter Roeck <linux@roeck-us.net>

In general, changes like this are not necessary, though. The dts file
is supposed to reference both generic and specific compatible strings.

Thanks,
Guenter

> ---
>  Documentation/devicetree/bindings/watchdog/meson-wdt.txt | 6 +++++-
>  drivers/watchdog/meson_wdt.c                             | 2 ++
>  2 files changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/devicetree/bindings/watchdog/meson-wdt.txt b/Documentation/devicetree/bindings/watchdog/meson-wdt.txt
> index ae70185d96e6..f2fbe1a39d31 100644
> --- a/Documentation/devicetree/bindings/watchdog/meson-wdt.txt
> +++ b/Documentation/devicetree/bindings/watchdog/meson-wdt.txt
> @@ -2,7 +2,11 @@ Meson SoCs Watchdog timer
>  
>  Required properties:
>  
> -- compatible : should be "amlogic,meson6-wdt" or "amlogic,meson8b-wdt"
> +- compatible : depending on the SoC this should be one of:
> +	"amlogic,meson6-wdt"
> +	"amlogic,meson8-wdt"
> +	"amlogic,meson8b-wdt"
> +	"amlogic,meson8m2-wdt"
>  - reg : Specifies base physical address and size of the registers.
>  
>  Example:
> diff --git a/drivers/watchdog/meson_wdt.c b/drivers/watchdog/meson_wdt.c
> index 491b9bf13d84..304274c67735 100644
> --- a/drivers/watchdog/meson_wdt.c
> +++ b/drivers/watchdog/meson_wdt.c
> @@ -155,7 +155,9 @@ static const struct watchdog_ops meson_wdt_ops = {
>  
>  static const struct of_device_id meson_wdt_dt_ids[] = {
>  	{ .compatible = "amlogic,meson6-wdt", .data = &meson6_wdt_data },
> +	{ .compatible = "amlogic,meson8-wdt", .data = &meson6_wdt_data },
>  	{ .compatible = "amlogic,meson8b-wdt", .data = &meson8b_wdt_data },
> +	{ .compatible = "amlogic,meson8m2-wdt", .data = &meson8b_wdt_data },
>  	{ /* sentinel */ }
>  };
>  MODULE_DEVICE_TABLE(of, meson_wdt_dt_ids);
> -- 
> 2.13.1
>
Martin Blumenstingl June 15, 2017, 9:13 p.m. UTC | #3
On Thu, Jun 15, 2017 at 7:25 PM, Guenter Roeck <linux@roeck-us.net> wrote:
> On Sun, Jun 11, 2017 at 11:52:19AM +0200, Martin Blumenstingl wrote:
>> The watchdog IP block on Meson8 and Meson8m2 is already supported by the
>> existing meson-wdt driver. Meson8 uses the same register bits as Meson6,
>> while the newer Meson8m2 SoC uses the same register bits as Meson8b.
>>
>> Currently watchdog support on Meson8 SoC already works because
>> meson8.dtsi simply uses the "amlogic,meson6-wdt" compatible. Adding a
>> separate compatible for Meson8 makes this more explicit though.
>>
>> Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
>
> Reviewed-by: Guenter Roeck <linux@roeck-us.net>
thank you!
is there anything holding you up from taking this patch (for example:
are you still missing any specific Signed-off-by / Acked-by)?

> In general, changes like this are not necessary, though. The dts file
> is supposed to reference both generic and specific compatible strings.
I thought about skipping this patch, but I find that it looks strange without.

the hierarchy and the corresponding compatible strings would be:
meson.dtsi / compatible = "amlogic,meson6-wdt";
|- meson8.dtsi / compatible = "amlogic,meson8-wdt", "amlogic,meson6-wdt";
   |- meson8m2.dtsi (upcoming) / compatible = "amlogic,meson8m2-wdt",
"amlogic,meson8b-wdt";
|- meson8b.dtsi / compatible = "amlogic,meson8b-wdt";

instead of this seemingly random mixup of compatible strings I decided
to introduce separate ones for each SoC.

Martin
Guenter Roeck June 15, 2017, 9:22 p.m. UTC | #4
On Thu, Jun 15, 2017 at 11:13:07PM +0200, Martin Blumenstingl wrote:
> On Thu, Jun 15, 2017 at 7:25 PM, Guenter Roeck <linux@roeck-us.net> wrote:
> > On Sun, Jun 11, 2017 at 11:52:19AM +0200, Martin Blumenstingl wrote:
> >> The watchdog IP block on Meson8 and Meson8m2 is already supported by the
> >> existing meson-wdt driver. Meson8 uses the same register bits as Meson6,
> >> while the newer Meson8m2 SoC uses the same register bits as Meson8b.
> >>
> >> Currently watchdog support on Meson8 SoC already works because
> >> meson8.dtsi simply uses the "amlogic,meson6-wdt" compatible. Adding a
> >> separate compatible for Meson8 makes this more explicit though.
> >>
> >> Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
> >
> > Reviewed-by: Guenter Roeck <linux@roeck-us.net>
> thank you!
> is there anything holding you up from taking this patch (for example:
> are you still missing any specific Signed-off-by / Acked-by)?
> 

From Rob.

Guenter

> > In general, changes like this are not necessary, though. The dts file
> > is supposed to reference both generic and specific compatible strings.
> I thought about skipping this patch, but I find that it looks strange without.
> 
> the hierarchy and the corresponding compatible strings would be:
> meson.dtsi / compatible = "amlogic,meson6-wdt";
> |- meson8.dtsi / compatible = "amlogic,meson8-wdt", "amlogic,meson6-wdt";
>    |- meson8m2.dtsi (upcoming) / compatible = "amlogic,meson8m2-wdt",
> "amlogic,meson8b-wdt";
> |- meson8b.dtsi / compatible = "amlogic,meson8b-wdt";
> 
> instead of this seemingly random mixup of compatible strings I decided
> to introduce separate ones for each SoC.
> 
> Martin
Rob Herring (Arm) June 18, 2017, 2:04 p.m. UTC | #5
On Thu, Jun 15, 2017 at 11:13:07PM +0200, Martin Blumenstingl wrote:
> On Thu, Jun 15, 2017 at 7:25 PM, Guenter Roeck <linux@roeck-us.net> wrote:
> > On Sun, Jun 11, 2017 at 11:52:19AM +0200, Martin Blumenstingl wrote:
> >> The watchdog IP block on Meson8 and Meson8m2 is already supported by the
> >> existing meson-wdt driver. Meson8 uses the same register bits as Meson6,
> >> while the newer Meson8m2 SoC uses the same register bits as Meson8b.
> >>
> >> Currently watchdog support on Meson8 SoC already works because
> >> meson8.dtsi simply uses the "amlogic,meson6-wdt" compatible. Adding a
> >> separate compatible for Meson8 makes this more explicit though.
> >>
> >> Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
> >
> > Reviewed-by: Guenter Roeck <linux@roeck-us.net>
> thank you!
> is there anything holding you up from taking this patch (for example:
> are you still missing any specific Signed-off-by / Acked-by)?
> 
> > In general, changes like this are not necessary, though. The dts file
> > is supposed to reference both generic and specific compatible strings.
> I thought about skipping this patch, but I find that it looks strange without.
> 
> the hierarchy and the corresponding compatible strings would be:
> meson.dtsi / compatible = "amlogic,meson6-wdt";
> |- meson8.dtsi / compatible = "amlogic,meson8-wdt", "amlogic,meson6-wdt";
>    |- meson8m2.dtsi (upcoming) / compatible = "amlogic,meson8m2-wdt",
> "amlogic,meson8b-wdt";
> |- meson8b.dtsi / compatible = "amlogic,meson8b-wdt";
> 
> instead of this seemingly random mixup of compatible strings I decided
> to introduce separate ones for each SoC.

But if the block is backwards compatible, you should also provide a 
fallback compatible string.

Rob
Martin Blumenstingl June 19, 2017, 6:50 p.m. UTC | #6
Hi Rob,

On Sun, Jun 18, 2017 at 4:04 PM, Rob Herring <robh@kernel.org> wrote:
> On Thu, Jun 15, 2017 at 11:13:07PM +0200, Martin Blumenstingl wrote:
>> On Thu, Jun 15, 2017 at 7:25 PM, Guenter Roeck <linux@roeck-us.net> wrote:
>> > On Sun, Jun 11, 2017 at 11:52:19AM +0200, Martin Blumenstingl wrote:
>> >> The watchdog IP block on Meson8 and Meson8m2 is already supported by the
>> >> existing meson-wdt driver. Meson8 uses the same register bits as Meson6,
>> >> while the newer Meson8m2 SoC uses the same register bits as Meson8b.
>> >>
>> >> Currently watchdog support on Meson8 SoC already works because
>> >> meson8.dtsi simply uses the "amlogic,meson6-wdt" compatible. Adding a
>> >> separate compatible for Meson8 makes this more explicit though.
>> >>
>> >> Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
>> >
>> > Reviewed-by: Guenter Roeck <linux@roeck-us.net>
>> thank you!
>> is there anything holding you up from taking this patch (for example:
>> are you still missing any specific Signed-off-by / Acked-by)?
>>
>> > In general, changes like this are not necessary, though. The dts file
>> > is supposed to reference both generic and specific compatible strings.
>> I thought about skipping this patch, but I find that it looks strange without.
>>
>> the hierarchy and the corresponding compatible strings would be:
>> meson.dtsi / compatible = "amlogic,meson6-wdt";
>> |- meson8.dtsi / compatible = "amlogic,meson8-wdt", "amlogic,meson6-wdt";
>>    |- meson8m2.dtsi (upcoming) / compatible = "amlogic,meson8m2-wdt",
>> "amlogic,meson8b-wdt";
>> |- meson8b.dtsi / compatible = "amlogic,meson8b-wdt";
>>
>> instead of this seemingly random mixup of compatible strings I decided
>> to introduce separate ones for each SoC.
>
> But if the block is backwards compatible, you should also provide a
> fallback compatible string.
OK, fine with me - do you want me to update the documentation to
reflect this (or is it enough if I take care of it in the .dts files)?
the resulting documentation could look like this:
       "amlogic,meson6-wdt" on Meson6 SoCs
       "amlogic,meson8-wdt" along with "amlogic,meson6-wdt" on Meson8 SoCs
       "amlogic,meson8b-wdt" on Meson8b SoCs
       "amlogic,meson8m2-wdt" along with "amlogic,meson8b-wdt" on Meson8m2 SoCs

Regards,
Martin
Rob Herring (Arm) June 22, 2017, 3:22 a.m. UTC | #7
On Mon, Jun 19, 2017 at 1:50 PM, Martin Blumenstingl
<martin.blumenstingl@googlemail.com> wrote:
> Hi Rob,
>
> On Sun, Jun 18, 2017 at 4:04 PM, Rob Herring <robh@kernel.org> wrote:
>> On Thu, Jun 15, 2017 at 11:13:07PM +0200, Martin Blumenstingl wrote:
>>> On Thu, Jun 15, 2017 at 7:25 PM, Guenter Roeck <linux@roeck-us.net> wrote:
>>> > On Sun, Jun 11, 2017 at 11:52:19AM +0200, Martin Blumenstingl wrote:
>>> >> The watchdog IP block on Meson8 and Meson8m2 is already supported by the
>>> >> existing meson-wdt driver. Meson8 uses the same register bits as Meson6,
>>> >> while the newer Meson8m2 SoC uses the same register bits as Meson8b.
>>> >>
>>> >> Currently watchdog support on Meson8 SoC already works because
>>> >> meson8.dtsi simply uses the "amlogic,meson6-wdt" compatible. Adding a
>>> >> separate compatible for Meson8 makes this more explicit though.
>>> >>
>>> >> Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
>>> >
>>> > Reviewed-by: Guenter Roeck <linux@roeck-us.net>
>>> thank you!
>>> is there anything holding you up from taking this patch (for example:
>>> are you still missing any specific Signed-off-by / Acked-by)?
>>>
>>> > In general, changes like this are not necessary, though. The dts file
>>> > is supposed to reference both generic and specific compatible strings.
>>> I thought about skipping this patch, but I find that it looks strange without.
>>>
>>> the hierarchy and the corresponding compatible strings would be:
>>> meson.dtsi / compatible = "amlogic,meson6-wdt";
>>> |- meson8.dtsi / compatible = "amlogic,meson8-wdt", "amlogic,meson6-wdt";
>>>    |- meson8m2.dtsi (upcoming) / compatible = "amlogic,meson8m2-wdt",
>>> "amlogic,meson8b-wdt";
>>> |- meson8b.dtsi / compatible = "amlogic,meson8b-wdt";
>>>
>>> instead of this seemingly random mixup of compatible strings I decided
>>> to introduce separate ones for each SoC.
>>
>> But if the block is backwards compatible, you should also provide a
>> fallback compatible string.
> OK, fine with me - do you want me to update the documentation to
> reflect this (or is it enough if I take care of it in the .dts files)?
> the resulting documentation could look like this:
>        "amlogic,meson6-wdt" on Meson6 SoCs
>        "amlogic,meson8-wdt" along with "amlogic,meson6-wdt" on Meson8 SoCs
>        "amlogic,meson8b-wdt" on Meson8b SoCs
>        "amlogic,meson8m2-wdt" along with "amlogic,meson8b-wdt" on Meson8m2 SoCs

Yes, like this.

Rob
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/watchdog/meson-wdt.txt b/Documentation/devicetree/bindings/watchdog/meson-wdt.txt
index ae70185d96e6..f2fbe1a39d31 100644
--- a/Documentation/devicetree/bindings/watchdog/meson-wdt.txt
+++ b/Documentation/devicetree/bindings/watchdog/meson-wdt.txt
@@ -2,7 +2,11 @@  Meson SoCs Watchdog timer
 
 Required properties:
 
-- compatible : should be "amlogic,meson6-wdt" or "amlogic,meson8b-wdt"
+- compatible : depending on the SoC this should be one of:
+	"amlogic,meson6-wdt"
+	"amlogic,meson8-wdt"
+	"amlogic,meson8b-wdt"
+	"amlogic,meson8m2-wdt"
 - reg : Specifies base physical address and size of the registers.
 
 Example:
diff --git a/drivers/watchdog/meson_wdt.c b/drivers/watchdog/meson_wdt.c
index 491b9bf13d84..304274c67735 100644
--- a/drivers/watchdog/meson_wdt.c
+++ b/drivers/watchdog/meson_wdt.c
@@ -155,7 +155,9 @@  static const struct watchdog_ops meson_wdt_ops = {
 
 static const struct of_device_id meson_wdt_dt_ids[] = {
 	{ .compatible = "amlogic,meson6-wdt", .data = &meson6_wdt_data },
+	{ .compatible = "amlogic,meson8-wdt", .data = &meson6_wdt_data },
 	{ .compatible = "amlogic,meson8b-wdt", .data = &meson8b_wdt_data },
+	{ .compatible = "amlogic,meson8m2-wdt", .data = &meson8b_wdt_data },
 	{ /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(of, meson_wdt_dt_ids);