* [PATCH 1/3] wdog: imx7ulp: Enable wdog int_en bit for watchdog any reset
@ 2023-10-10 8:19 Jacky Bai
2023-10-10 8:19 ` [PATCH 2/3] dt-bindings: watchdog: fsl-imx7ulp-wdt: Add 'fsl,ext-reset-output' Jacky Bai
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Jacky Bai @ 2023-10-10 8:19 UTC (permalink / raw)
To: wim, linux, robh+dt, krzysztof.kozlowski+dt, shawnguo
Cc: s.hauer, kernel, festevam, linux-imx, linux-watchdog, devicetree
The wdog INT_EN bit in CS register should be set to '1' to trigger
WDOG_ANY external reset on i.MX93.
Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
---
drivers/watchdog/imx7ulp_wdt.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/watchdog/imx7ulp_wdt.c b/drivers/watchdog/imx7ulp_wdt.c
index c703586c6e5f..b21d7a74a42d 100644
--- a/drivers/watchdog/imx7ulp_wdt.c
+++ b/drivers/watchdog/imx7ulp_wdt.c
@@ -23,6 +23,7 @@
#define LPO_CLK_SHIFT 8
#define WDOG_CS_CLK (LPO_CLK << LPO_CLK_SHIFT)
#define WDOG_CS_EN BIT(7)
+#define WDOG_CS_INT_EN BIT(6)
#define WDOG_CS_UPDATE BIT(5)
#define WDOG_CS_WAIT BIT(1)
#define WDOG_CS_STOP BIT(0)
@@ -62,6 +63,7 @@ struct imx7ulp_wdt_device {
void __iomem *base;
struct clk *clk;
bool post_rcs_wait;
+ bool ext_reset;
const struct imx_wdt_hw_feature *hw;
};
@@ -285,6 +287,9 @@ static int imx7ulp_wdt_init(struct imx7ulp_wdt_device *wdt, unsigned int timeout
if (wdt->hw->prescaler_enable)
val |= WDOG_CS_PRES;
+ if (wdt->ext_reset)
+ val |= WDOG_CS_INT_EN;
+
do {
ret = _imx7ulp_wdt_init(wdt, timeout, val);
toval = readl(wdt->base + WDOG_TOVAL);
@@ -321,6 +326,9 @@ static int imx7ulp_wdt_probe(struct platform_device *pdev)
return PTR_ERR(imx7ulp_wdt->clk);
}
+ /* The WDOG may need to do external reset through dedicated pin */
+ imx7ulp_wdt->ext_reset = of_property_read_bool(dev->of_node, "fsl,ext-reset-output");
+
imx7ulp_wdt->post_rcs_wait = true;
if (of_device_is_compatible(dev->of_node,
"fsl,imx8ulp-wdt")) {
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/3] dt-bindings: watchdog: fsl-imx7ulp-wdt: Add 'fsl,ext-reset-output'
2023-10-10 8:19 [PATCH 1/3] wdog: imx7ulp: Enable wdog int_en bit for watchdog any reset Jacky Bai
@ 2023-10-10 8:19 ` Jacky Bai
2023-10-10 18:10 ` Rob Herring
2023-10-11 14:52 ` Guenter Roeck
2023-10-10 8:19 ` [PATCH 3/3] arm64: dts: imx93: Add the 'fsl,ext-reset-output' property for wdog3 Jacky Bai
2023-10-11 14:52 ` [PATCH 1/3] wdog: imx7ulp: Enable wdog int_en bit for watchdog any reset Guenter Roeck
2 siblings, 2 replies; 7+ messages in thread
From: Jacky Bai @ 2023-10-10 8:19 UTC (permalink / raw)
To: wim, linux, robh+dt, krzysztof.kozlowski+dt, shawnguo
Cc: s.hauer, kernel, festevam, linux-imx, linux-watchdog, devicetree
The wdog may generate wdog_any external reset if the int_en bit is
configured, so add a property for this purpose in dt-binding doc.
Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
---
.../devicetree/bindings/watchdog/fsl-imx7ulp-wdt.yaml | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/Documentation/devicetree/bindings/watchdog/fsl-imx7ulp-wdt.yaml b/Documentation/devicetree/bindings/watchdog/fsl-imx7ulp-wdt.yaml
index 4b7ed1355701..9c50766bf690 100644
--- a/Documentation/devicetree/bindings/watchdog/fsl-imx7ulp-wdt.yaml
+++ b/Documentation/devicetree/bindings/watchdog/fsl-imx7ulp-wdt.yaml
@@ -30,6 +30,11 @@ properties:
clocks:
maxItems: 1
+ fsl,ext-reset-output:
+ description:
+ When set, wdog can generate external reset from the wdog_any pin.
+ type: boolean
+
required:
- compatible
- interrupts
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/3] arm64: dts: imx93: Add the 'fsl,ext-reset-output' property for wdog3
2023-10-10 8:19 [PATCH 1/3] wdog: imx7ulp: Enable wdog int_en bit for watchdog any reset Jacky Bai
2023-10-10 8:19 ` [PATCH 2/3] dt-bindings: watchdog: fsl-imx7ulp-wdt: Add 'fsl,ext-reset-output' Jacky Bai
@ 2023-10-10 8:19 ` Jacky Bai
2023-11-26 9:11 ` Shawn Guo
2023-10-11 14:52 ` [PATCH 1/3] wdog: imx7ulp: Enable wdog int_en bit for watchdog any reset Guenter Roeck
2 siblings, 1 reply; 7+ messages in thread
From: Jacky Bai @ 2023-10-10 8:19 UTC (permalink / raw)
To: wim, linux, robh+dt, krzysztof.kozlowski+dt, shawnguo
Cc: s.hauer, kernel, festevam, linux-imx, linux-watchdog, devicetree
Add 'fsl,ext-reset-output' property for wdog3 to let it to trigger
external reset through wdog_any pin.
Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
---
arch/arm64/boot/dts/freescale/imx93.dtsi | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/boot/dts/freescale/imx93.dtsi b/arch/arm64/boot/dts/freescale/imx93.dtsi
index f20dd18e0b65..bb40a022601d 100644
--- a/arch/arm64/boot/dts/freescale/imx93.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx93.dtsi
@@ -562,6 +562,7 @@ wdog3: watchdog@42490000 {
interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk IMX93_CLK_WDOG3_GATE>;
timeout-sec = <40>;
+ fsl,ext-reset-output;
status = "disabled";
};
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 2/3] dt-bindings: watchdog: fsl-imx7ulp-wdt: Add 'fsl,ext-reset-output'
2023-10-10 8:19 ` [PATCH 2/3] dt-bindings: watchdog: fsl-imx7ulp-wdt: Add 'fsl,ext-reset-output' Jacky Bai
@ 2023-10-10 18:10 ` Rob Herring
2023-10-11 14:52 ` Guenter Roeck
1 sibling, 0 replies; 7+ messages in thread
From: Rob Herring @ 2023-10-10 18:10 UTC (permalink / raw)
To: Jacky Bai
Cc: devicetree, linux-watchdog, wim, robh+dt, krzysztof.kozlowski+dt,
s.hauer, festevam, kernel, linux-imx, linux, shawnguo
On Tue, 10 Oct 2023 16:19:08 +0800, Jacky Bai wrote:
> The wdog may generate wdog_any external reset if the int_en bit is
> configured, so add a property for this purpose in dt-binding doc.
>
> Signed-off-by: Jacky Bai <ping.bai@nxp.com>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>
> ---
> .../devicetree/bindings/watchdog/fsl-imx7ulp-wdt.yaml | 5 +++++
> 1 file changed, 5 insertions(+)
>
Acked-by: Rob Herring <robh@kernel.org>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] wdog: imx7ulp: Enable wdog int_en bit for watchdog any reset
2023-10-10 8:19 [PATCH 1/3] wdog: imx7ulp: Enable wdog int_en bit for watchdog any reset Jacky Bai
2023-10-10 8:19 ` [PATCH 2/3] dt-bindings: watchdog: fsl-imx7ulp-wdt: Add 'fsl,ext-reset-output' Jacky Bai
2023-10-10 8:19 ` [PATCH 3/3] arm64: dts: imx93: Add the 'fsl,ext-reset-output' property for wdog3 Jacky Bai
@ 2023-10-11 14:52 ` Guenter Roeck
2 siblings, 0 replies; 7+ messages in thread
From: Guenter Roeck @ 2023-10-11 14:52 UTC (permalink / raw)
To: Jacky Bai
Cc: wim, robh+dt, krzysztof.kozlowski+dt, shawnguo, s.hauer, kernel,
festevam, linux-imx, linux-watchdog, devicetree
On Tue, Oct 10, 2023 at 04:19:07PM +0800, Jacky Bai wrote:
> The wdog INT_EN bit in CS register should be set to '1' to trigger
> WDOG_ANY external reset on i.MX93.
>
> Signed-off-by: Jacky Bai <ping.bai@nxp.com>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
> ---
> drivers/watchdog/imx7ulp_wdt.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/drivers/watchdog/imx7ulp_wdt.c b/drivers/watchdog/imx7ulp_wdt.c
> index c703586c6e5f..b21d7a74a42d 100644
> --- a/drivers/watchdog/imx7ulp_wdt.c
> +++ b/drivers/watchdog/imx7ulp_wdt.c
> @@ -23,6 +23,7 @@
> #define LPO_CLK_SHIFT 8
> #define WDOG_CS_CLK (LPO_CLK << LPO_CLK_SHIFT)
> #define WDOG_CS_EN BIT(7)
> +#define WDOG_CS_INT_EN BIT(6)
> #define WDOG_CS_UPDATE BIT(5)
> #define WDOG_CS_WAIT BIT(1)
> #define WDOG_CS_STOP BIT(0)
> @@ -62,6 +63,7 @@ struct imx7ulp_wdt_device {
> void __iomem *base;
> struct clk *clk;
> bool post_rcs_wait;
> + bool ext_reset;
> const struct imx_wdt_hw_feature *hw;
> };
>
> @@ -285,6 +287,9 @@ static int imx7ulp_wdt_init(struct imx7ulp_wdt_device *wdt, unsigned int timeout
> if (wdt->hw->prescaler_enable)
> val |= WDOG_CS_PRES;
>
> + if (wdt->ext_reset)
> + val |= WDOG_CS_INT_EN;
> +
> do {
> ret = _imx7ulp_wdt_init(wdt, timeout, val);
> toval = readl(wdt->base + WDOG_TOVAL);
> @@ -321,6 +326,9 @@ static int imx7ulp_wdt_probe(struct platform_device *pdev)
> return PTR_ERR(imx7ulp_wdt->clk);
> }
>
> + /* The WDOG may need to do external reset through dedicated pin */
> + imx7ulp_wdt->ext_reset = of_property_read_bool(dev->of_node, "fsl,ext-reset-output");
> +
> imx7ulp_wdt->post_rcs_wait = true;
> if (of_device_is_compatible(dev->of_node,
> "fsl,imx8ulp-wdt")) {
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/3] dt-bindings: watchdog: fsl-imx7ulp-wdt: Add 'fsl,ext-reset-output'
2023-10-10 8:19 ` [PATCH 2/3] dt-bindings: watchdog: fsl-imx7ulp-wdt: Add 'fsl,ext-reset-output' Jacky Bai
2023-10-10 18:10 ` Rob Herring
@ 2023-10-11 14:52 ` Guenter Roeck
1 sibling, 0 replies; 7+ messages in thread
From: Guenter Roeck @ 2023-10-11 14:52 UTC (permalink / raw)
To: Jacky Bai
Cc: wim, robh+dt, krzysztof.kozlowski+dt, shawnguo, s.hauer, kernel,
festevam, linux-imx, linux-watchdog, devicetree
On Tue, Oct 10, 2023 at 04:19:08PM +0800, Jacky Bai wrote:
> The wdog may generate wdog_any external reset if the int_en bit is
> configured, so add a property for this purpose in dt-binding doc.
>
> Signed-off-by: Jacky Bai <ping.bai@nxp.com>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
> ---
> .../devicetree/bindings/watchdog/fsl-imx7ulp-wdt.yaml | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/watchdog/fsl-imx7ulp-wdt.yaml b/Documentation/devicetree/bindings/watchdog/fsl-imx7ulp-wdt.yaml
> index 4b7ed1355701..9c50766bf690 100644
> --- a/Documentation/devicetree/bindings/watchdog/fsl-imx7ulp-wdt.yaml
> +++ b/Documentation/devicetree/bindings/watchdog/fsl-imx7ulp-wdt.yaml
> @@ -30,6 +30,11 @@ properties:
> clocks:
> maxItems: 1
>
> + fsl,ext-reset-output:
> + description:
> + When set, wdog can generate external reset from the wdog_any pin.
> + type: boolean
> +
> required:
> - compatible
> - interrupts
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 3/3] arm64: dts: imx93: Add the 'fsl,ext-reset-output' property for wdog3
2023-10-10 8:19 ` [PATCH 3/3] arm64: dts: imx93: Add the 'fsl,ext-reset-output' property for wdog3 Jacky Bai
@ 2023-11-26 9:11 ` Shawn Guo
0 siblings, 0 replies; 7+ messages in thread
From: Shawn Guo @ 2023-11-26 9:11 UTC (permalink / raw)
To: Jacky Bai
Cc: wim, linux, robh+dt, krzysztof.kozlowski+dt, s.hauer, kernel,
festevam, linux-imx, linux-watchdog, devicetree
On Tue, Oct 10, 2023 at 04:19:09PM +0800, Jacky Bai wrote:
> Add 'fsl,ext-reset-output' property for wdog3 to let it to trigger
> external reset through wdog_any pin.
>
> Signed-off-by: Jacky Bai <ping.bai@nxp.com>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>
> ---
> arch/arm64/boot/dts/freescale/imx93.dtsi | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx93.dtsi b/arch/arm64/boot/dts/freescale/imx93.dtsi
> index f20dd18e0b65..bb40a022601d 100644
> --- a/arch/arm64/boot/dts/freescale/imx93.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx93.dtsi
> @@ -562,6 +562,7 @@ wdog3: watchdog@42490000 {
> interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
> clocks = <&clk IMX93_CLK_WDOG3_GATE>;
> timeout-sec = <40>;
> + fsl,ext-reset-output;
Shouldn't this be a board level setting?
Shawn
> status = "disabled";
> };
>
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2023-11-26 9:11 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-10 8:19 [PATCH 1/3] wdog: imx7ulp: Enable wdog int_en bit for watchdog any reset Jacky Bai
2023-10-10 8:19 ` [PATCH 2/3] dt-bindings: watchdog: fsl-imx7ulp-wdt: Add 'fsl,ext-reset-output' Jacky Bai
2023-10-10 18:10 ` Rob Herring
2023-10-11 14:52 ` Guenter Roeck
2023-10-10 8:19 ` [PATCH 3/3] arm64: dts: imx93: Add the 'fsl,ext-reset-output' property for wdog3 Jacky Bai
2023-11-26 9:11 ` Shawn Guo
2023-10-11 14:52 ` [PATCH 1/3] wdog: imx7ulp: Enable wdog int_en bit for watchdog any reset Guenter Roeck
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.