From: Guenter Roeck <linux@roeck-us.net>
To: Chanho Park <chanho61.park@samsung.com>
Cc: Wim Van Sebroeck <wim@linux-watchdog.org>,
Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>,
Rob Herring <robh+dt@kernel.org>,
Sam Protsenko <semen.protsenko@linaro.org>,
linux-watchdog@vger.kernel.org,
linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH 2/4] watchdog: s3c2410_wdt: support exynosautov9 watchdog
Date: Sun, 25 Sep 2022 10:05:00 -0700 [thread overview]
Message-ID: <20220925170500.GA1761695@roeck-us.net> (raw)
In-Reply-To: <20220520121750.71473-3-chanho61.park@samsung.com>
On Fri, May 20, 2022 at 09:17:48PM +0900, Chanho Park wrote:
> Like exynos850, exynosautov9 SoC also has two cpu watchdogs.
> Unfortunately, some configurations are slightly different so we need to
> add samsung,exynosautov9-wdt and separate drv data for those watchdogs.
>
> Signed-off-by: Chanho Park <chanho61.park@samsung.com>
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
> ---
> drivers/watchdog/s3c2410_wdt.c | 41 ++++++++++++++++++++++++++++++----
> 1 file changed, 37 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/watchdog/s3c2410_wdt.c b/drivers/watchdog/s3c2410_wdt.c
> index 6db22f2e3a4f..0dbb3ec9c29c 100644
> --- a/drivers/watchdog/s3c2410_wdt.c
> +++ b/drivers/watchdog/s3c2410_wdt.c
> @@ -60,9 +60,13 @@
> #define EXYNOS850_CLUSTER0_NONCPU_INT_EN 0x1244
> #define EXYNOS850_CLUSTER1_NONCPU_OUT 0x1620
> #define EXYNOS850_CLUSTER1_NONCPU_INT_EN 0x1644
> +#define EXYNOSAUTOV9_CLUSTER1_NONCPU_OUT 0x1520
> +#define EXYNOSAUTOV9_CLUSTER1_NONCPU_INT_EN 0x1544
>
> #define EXYNOS850_CLUSTER0_WDTRESET_BIT 24
> #define EXYNOS850_CLUSTER1_WDTRESET_BIT 23
> +#define EXYNOSAUTOV9_CLUSTER0_WDTRESET_BIT 25
> +#define EXYNOSAUTOV9_CLUSTER1_WDTRESET_BIT 24
>
> /**
> * DOC: Quirk flags for different Samsung watchdog IP-cores
> @@ -236,6 +240,30 @@ static const struct s3c2410_wdt_variant drv_data_exynos850_cl1 = {
> QUIRK_HAS_PMU_RST_STAT | QUIRK_HAS_PMU_CNT_EN,
> };
>
> +static const struct s3c2410_wdt_variant drv_data_exynosautov9_cl0 = {
> + .mask_reset_reg = EXYNOS850_CLUSTER0_NONCPU_INT_EN,
> + .mask_bit = 2,
> + .mask_reset_inv = true,
> + .rst_stat_reg = EXYNOS5_RST_STAT_REG_OFFSET,
> + .rst_stat_bit = EXYNOSAUTOV9_CLUSTER0_WDTRESET_BIT,
> + .cnt_en_reg = EXYNOS850_CLUSTER0_NONCPU_OUT,
> + .cnt_en_bit = 7,
> + .quirks = QUIRK_HAS_WTCLRINT_REG | QUIRK_HAS_PMU_MASK_RESET |
> + QUIRK_HAS_PMU_RST_STAT | QUIRK_HAS_PMU_CNT_EN,
> +};
> +
> +static const struct s3c2410_wdt_variant drv_data_exynosautov9_cl1 = {
> + .mask_reset_reg = EXYNOSAUTOV9_CLUSTER1_NONCPU_INT_EN,
> + .mask_bit = 2,
> + .mask_reset_inv = true,
> + .rst_stat_reg = EXYNOS5_RST_STAT_REG_OFFSET,
> + .rst_stat_bit = EXYNOSAUTOV9_CLUSTER1_WDTRESET_BIT,
> + .cnt_en_reg = EXYNOSAUTOV9_CLUSTER1_NONCPU_OUT,
> + .cnt_en_bit = 7,
> + .quirks = QUIRK_HAS_WTCLRINT_REG | QUIRK_HAS_PMU_MASK_RESET |
> + QUIRK_HAS_PMU_RST_STAT | QUIRK_HAS_PMU_CNT_EN,
> +};
> +
> static const struct of_device_id s3c2410_wdt_match[] = {
> { .compatible = "samsung,s3c2410-wdt",
> .data = &drv_data_s3c2410 },
> @@ -249,6 +277,8 @@ static const struct of_device_id s3c2410_wdt_match[] = {
> .data = &drv_data_exynos7 },
> { .compatible = "samsung,exynos850-wdt",
> .data = &drv_data_exynos850_cl0 },
> + { .compatible = "samsung,exynosautov9-wdt",
> + .data = &drv_data_exynosautov9_cl0 },
> {},
> };
> MODULE_DEVICE_TABLE(of, s3c2410_wdt_match);
> @@ -630,8 +660,9 @@ s3c2410_get_wdt_drv_data(struct platform_device *pdev)
> }
>
> #ifdef CONFIG_OF
> - /* Choose Exynos850 driver data w.r.t. cluster index */
> - if (variant == &drv_data_exynos850_cl0) {
> + /* Choose Exynos850/ExynosAutov9 driver data w.r.t. cluster index */
> + if (variant == &drv_data_exynos850_cl0 ||
> + variant == &drv_data_exynosautov9_cl0) {
> u32 index;
> int err;
>
> @@ -644,9 +675,11 @@ s3c2410_get_wdt_drv_data(struct platform_device *pdev)
>
> switch (index) {
> case 0:
> - return &drv_data_exynos850_cl0;
> + return variant;
> case 1:
> - return &drv_data_exynos850_cl1;
> + return (variant == &drv_data_exynos850_cl0) ?
> + &drv_data_exynos850_cl1 :
> + &drv_data_exynosautov9_cl1;
> default:
> dev_err(dev, "wrong cluster index: %u\n", index);
> return NULL;
next prev parent reply other threads:[~2022-09-25 17:05 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20220520121722epcas2p371cb5e1300674a2aee017f857b60226c@epcas2p3.samsung.com>
2022-05-20 12:17 ` [PATCH 0/4] support watchdog for exynosautov9 Chanho Park
[not found] ` <CGME20220520121722epcas2p359f331c9276eeac5d027b0fe068296f1@epcas2p3.samsung.com>
2022-05-20 12:17 ` [PATCH 1/4] dt-bindings: watchdog: add exynosautov9 compatible Chanho Park
2022-05-20 12:52 ` Krzysztof Kozlowski
2022-09-25 17:04 ` Guenter Roeck
[not found] ` <CGME20220520121722epcas2p25b1d7b12db6030b490f191c2ae3e9f9d@epcas2p2.samsung.com>
2022-05-20 12:17 ` [PATCH 2/4] watchdog: s3c2410_wdt: support exynosautov9 watchdog Chanho Park
2022-05-20 13:01 ` Krzysztof Kozlowski
2022-09-25 17:05 ` Guenter Roeck [this message]
[not found] ` <CGME20220520121722epcas2p169b2669f367e7461fa41663f3e90d303@epcas2p1.samsung.com>
2022-05-20 12:17 ` [PATCH 3/4] arm64: dts: exynosautov9: add watchdog DT nodes Chanho Park
2022-05-20 12:58 ` Krzysztof Kozlowski
2022-05-23 11:30 ` Chanho Park
[not found] ` <CGME20220520121722epcas2p460fce9626fe2b4a857925704e2ea5ba1@epcas2p4.samsung.com>
2022-05-20 12:17 ` [PATCH 4/4] arm64: dts: exynosautov9-sadk: enable watchdog devices Chanho Park
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=20220925170500.GA1761695@roeck-us.net \
--to=linux@roeck-us.net \
--cc=chanho61.park@samsung.com \
--cc=devicetree@vger.kernel.org \
--cc=krzysztof.kozlowski@linaro.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=linux-watchdog@vger.kernel.org \
--cc=robh+dt@kernel.org \
--cc=semen.protsenko@linaro.org \
--cc=wim@linux-watchdog.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: link
Be 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.