From: Peter Griffin <peter.griffin@linaro.org> To: robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, mturquette@baylibre.com, conor+dt@kernel.org, sboyd@kernel.org, tomasz.figa@gmail.com, s.nawrocki@samsung.com, linus.walleij@linaro.org, wim@linux-watchdog.org, linux@roeck-us.net, catalin.marinas@arm.com, will@kernel.org, arnd@arndb.de, olof@lixom.net, gregkh@linuxfoundation.org, jirislaby@kernel.org, cw00.choi@samsung.com, alim.akhtar@samsung.com Cc: peter.griffin@linaro.org, tudor.ambarus@linaro.org, andre.draszik@linaro.org, semen.protsenko@linaro.org, saravanak@google.com, willmcvicker@google.com, soc@kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-gpio@vger.kernel.org, linux-watchdog@vger.kernel.org, kernel-team@android.com, linux-serial@vger.kernel.org Subject: [PATCH v7 12/16] watchdog: s3c2410_wdt: Add support for Google gs101 SoC Date: Mon, 11 Dec 2023 16:23:27 +0000 [thread overview] Message-ID: <20231211162331.435900-13-peter.griffin@linaro.org> (raw) In-Reply-To: <20231211162331.435900-1-peter.griffin@linaro.org> This patch adds the compatibles and drvdata for the Google gs101 SoC found in Pixel 6, Pixel 6a & Pixel 6 pro phones. Similar to Exynos850 it has two watchdog instances, one for each cluster and has some control bits in PMU registers. gs101 also has the dbgack_mask bit in wtcon register, so we also enable QUIRK_HAS_DBGACK_BIT. Tested-by: Will McVicker <willmcvicker@google.com> Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org> Signed-off-by: Peter Griffin <peter.griffin@linaro.org> --- drivers/watchdog/s3c2410_wdt.c | 49 ++++++++++++++++++++++++++++++---- 1 file changed, 44 insertions(+), 5 deletions(-) diff --git a/drivers/watchdog/s3c2410_wdt.c b/drivers/watchdog/s3c2410_wdt.c index b7a03668f743..c3046610ab5d 100644 --- a/drivers/watchdog/s3c2410_wdt.c +++ b/drivers/watchdog/s3c2410_wdt.c @@ -69,6 +69,13 @@ #define EXYNOSAUTOV9_CLUSTER0_WDTRESET_BIT 25 #define EXYNOSAUTOV9_CLUSTER1_WDTRESET_BIT 24 +#define GS_CLUSTER0_NONCPU_OUT 0x1220 +#define GS_CLUSTER1_NONCPU_OUT 0x1420 +#define GS_CLUSTER0_NONCPU_INT_EN 0x1244 +#define GS_CLUSTER1_NONCPU_INT_EN 0x1444 +#define GS_CLUSTER2_NONCPU_INT_EN 0x1644 +#define GS_RST_STAT_REG_OFFSET 0x3B44 + /** * DOC: Quirk flags for different Samsung watchdog IP-cores * @@ -270,7 +277,35 @@ static const struct s3c2410_wdt_variant drv_data_exynosautov9_cl1 = { QUIRK_HAS_PMU_RST_STAT | QUIRK_HAS_PMU_CNT_EN, }; +static const struct s3c2410_wdt_variant drv_data_gs101_cl0 = { + .mask_reset_reg = GS_CLUSTER0_NONCPU_INT_EN, + .mask_bit = 2, + .mask_reset_inv = true, + .rst_stat_reg = GS_RST_STAT_REG_OFFSET, + .rst_stat_bit = 0, + .cnt_en_reg = GS_CLUSTER0_NONCPU_OUT, + .cnt_en_bit = 8, + .quirks = QUIRK_HAS_PMU_RST_STAT | QUIRK_HAS_PMU_MASK_RESET | + QUIRK_HAS_PMU_CNT_EN | QUIRK_HAS_WTCLRINT_REG | + QUIRK_HAS_DBGACK_BIT, +}; + +static const struct s3c2410_wdt_variant drv_data_gs101_cl1 = { + .mask_reset_reg = GS_CLUSTER1_NONCPU_INT_EN, + .mask_bit = 2, + .mask_reset_inv = true, + .rst_stat_reg = GS_RST_STAT_REG_OFFSET, + .rst_stat_bit = 1, + .cnt_en_reg = GS_CLUSTER1_NONCPU_OUT, + .cnt_en_bit = 7, + .quirks = QUIRK_HAS_PMU_RST_STAT | QUIRK_HAS_PMU_MASK_RESET | + QUIRK_HAS_PMU_CNT_EN | QUIRK_HAS_WTCLRINT_REG | + QUIRK_HAS_DBGACK_BIT, +}; + static const struct of_device_id s3c2410_wdt_match[] = { + { .compatible = "google,gs101-wdt", + .data = &drv_data_gs101_cl0 }, { .compatible = "samsung,s3c2410-wdt", .data = &drv_data_s3c2410 }, { .compatible = "samsung,s3c6410-wdt", @@ -605,9 +640,10 @@ s3c2410_get_wdt_drv_data(struct platform_device *pdev, struct s3c2410_wdt *wdt) } #ifdef CONFIG_OF - /* Choose Exynos850/ExynosAutov9 driver data w.r.t. cluster index */ + /* Choose Exynos9 SoC family driver data w.r.t. cluster index */ if (variant == &drv_data_exynos850_cl0 || - variant == &drv_data_exynosautov9_cl0) { + variant == &drv_data_exynosautov9_cl0 || + variant == &drv_data_gs101_cl0) { u32 index; int err; @@ -620,9 +656,12 @@ s3c2410_get_wdt_drv_data(struct platform_device *pdev, struct s3c2410_wdt *wdt) case 0: break; case 1: - variant = (variant == &drv_data_exynos850_cl0) ? - &drv_data_exynos850_cl1 : - &drv_data_exynosautov9_cl1; + if (variant == &drv_data_exynos850_cl0) + variant = &drv_data_exynos850_cl1; + else if (variant == &drv_data_exynosautov9_cl0) + variant = &drv_data_exynosautov9_cl1; + else if (variant == &drv_data_gs101_cl0) + variant = &drv_data_gs101_cl1; break; default: return dev_err_probe(dev, -EINVAL, "wrong cluster index: %u\n", index); -- 2.43.0.472.g3155946c3a-goog
WARNING: multiple messages have this Message-ID (diff)
From: Peter Griffin <peter.griffin@linaro.org> To: robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, mturquette@baylibre.com, conor+dt@kernel.org, sboyd@kernel.org, tomasz.figa@gmail.com, s.nawrocki@samsung.com, linus.walleij@linaro.org, wim@linux-watchdog.org, linux@roeck-us.net, catalin.marinas@arm.com, will@kernel.org, arnd@arndb.de, olof@lixom.net, gregkh@linuxfoundation.org, jirislaby@kernel.org, cw00.choi@samsung.com, alim.akhtar@samsung.com Cc: peter.griffin@linaro.org, tudor.ambarus@linaro.org, andre.draszik@linaro.org, semen.protsenko@linaro.org, saravanak@google.com, willmcvicker@google.com, soc@kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-gpio@vger.kernel.org, linux-watchdog@vger.kernel.org, kernel-team@android.com, linux-serial@vger.kernel.org Subject: [PATCH v7 12/16] watchdog: s3c2410_wdt: Add support for Google gs101 SoC Date: Mon, 11 Dec 2023 16:23:27 +0000 [thread overview] Message-ID: <20231211162331.435900-13-peter.griffin@linaro.org> (raw) In-Reply-To: <20231211162331.435900-1-peter.griffin@linaro.org> This patch adds the compatibles and drvdata for the Google gs101 SoC found in Pixel 6, Pixel 6a & Pixel 6 pro phones. Similar to Exynos850 it has two watchdog instances, one for each cluster and has some control bits in PMU registers. gs101 also has the dbgack_mask bit in wtcon register, so we also enable QUIRK_HAS_DBGACK_BIT. Tested-by: Will McVicker <willmcvicker@google.com> Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org> Signed-off-by: Peter Griffin <peter.griffin@linaro.org> --- drivers/watchdog/s3c2410_wdt.c | 49 ++++++++++++++++++++++++++++++---- 1 file changed, 44 insertions(+), 5 deletions(-) diff --git a/drivers/watchdog/s3c2410_wdt.c b/drivers/watchdog/s3c2410_wdt.c index b7a03668f743..c3046610ab5d 100644 --- a/drivers/watchdog/s3c2410_wdt.c +++ b/drivers/watchdog/s3c2410_wdt.c @@ -69,6 +69,13 @@ #define EXYNOSAUTOV9_CLUSTER0_WDTRESET_BIT 25 #define EXYNOSAUTOV9_CLUSTER1_WDTRESET_BIT 24 +#define GS_CLUSTER0_NONCPU_OUT 0x1220 +#define GS_CLUSTER1_NONCPU_OUT 0x1420 +#define GS_CLUSTER0_NONCPU_INT_EN 0x1244 +#define GS_CLUSTER1_NONCPU_INT_EN 0x1444 +#define GS_CLUSTER2_NONCPU_INT_EN 0x1644 +#define GS_RST_STAT_REG_OFFSET 0x3B44 + /** * DOC: Quirk flags for different Samsung watchdog IP-cores * @@ -270,7 +277,35 @@ static const struct s3c2410_wdt_variant drv_data_exynosautov9_cl1 = { QUIRK_HAS_PMU_RST_STAT | QUIRK_HAS_PMU_CNT_EN, }; +static const struct s3c2410_wdt_variant drv_data_gs101_cl0 = { + .mask_reset_reg = GS_CLUSTER0_NONCPU_INT_EN, + .mask_bit = 2, + .mask_reset_inv = true, + .rst_stat_reg = GS_RST_STAT_REG_OFFSET, + .rst_stat_bit = 0, + .cnt_en_reg = GS_CLUSTER0_NONCPU_OUT, + .cnt_en_bit = 8, + .quirks = QUIRK_HAS_PMU_RST_STAT | QUIRK_HAS_PMU_MASK_RESET | + QUIRK_HAS_PMU_CNT_EN | QUIRK_HAS_WTCLRINT_REG | + QUIRK_HAS_DBGACK_BIT, +}; + +static const struct s3c2410_wdt_variant drv_data_gs101_cl1 = { + .mask_reset_reg = GS_CLUSTER1_NONCPU_INT_EN, + .mask_bit = 2, + .mask_reset_inv = true, + .rst_stat_reg = GS_RST_STAT_REG_OFFSET, + .rst_stat_bit = 1, + .cnt_en_reg = GS_CLUSTER1_NONCPU_OUT, + .cnt_en_bit = 7, + .quirks = QUIRK_HAS_PMU_RST_STAT | QUIRK_HAS_PMU_MASK_RESET | + QUIRK_HAS_PMU_CNT_EN | QUIRK_HAS_WTCLRINT_REG | + QUIRK_HAS_DBGACK_BIT, +}; + static const struct of_device_id s3c2410_wdt_match[] = { + { .compatible = "google,gs101-wdt", + .data = &drv_data_gs101_cl0 }, { .compatible = "samsung,s3c2410-wdt", .data = &drv_data_s3c2410 }, { .compatible = "samsung,s3c6410-wdt", @@ -605,9 +640,10 @@ s3c2410_get_wdt_drv_data(struct platform_device *pdev, struct s3c2410_wdt *wdt) } #ifdef CONFIG_OF - /* Choose Exynos850/ExynosAutov9 driver data w.r.t. cluster index */ + /* Choose Exynos9 SoC family driver data w.r.t. cluster index */ if (variant == &drv_data_exynos850_cl0 || - variant == &drv_data_exynosautov9_cl0) { + variant == &drv_data_exynosautov9_cl0 || + variant == &drv_data_gs101_cl0) { u32 index; int err; @@ -620,9 +656,12 @@ s3c2410_get_wdt_drv_data(struct platform_device *pdev, struct s3c2410_wdt *wdt) case 0: break; case 1: - variant = (variant == &drv_data_exynos850_cl0) ? - &drv_data_exynos850_cl1 : - &drv_data_exynosautov9_cl1; + if (variant == &drv_data_exynos850_cl0) + variant = &drv_data_exynos850_cl1; + else if (variant == &drv_data_exynosautov9_cl0) + variant = &drv_data_exynosautov9_cl1; + else if (variant == &drv_data_gs101_cl0) + variant = &drv_data_gs101_cl1; break; default: return dev_err_probe(dev, -EINVAL, "wrong cluster index: %u\n", index); -- 2.43.0.472.g3155946c3a-goog _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-12-11 16:24 UTC|newest] Thread overview: 109+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-12-11 16:23 [PATCH v7 00/16] Add minimal Tensor/GS101 SoC support and Oriole/Pixel6 board Peter Griffin 2023-12-11 16:23 ` Peter Griffin 2023-12-11 16:23 ` [PATCH v7 01/16] dt-bindings: watchdog: Document Google gs101 watchdog bindings Peter Griffin 2023-12-11 16:23 ` Peter Griffin 2023-12-12 19:39 ` (subset) " Krzysztof Kozlowski 2023-12-12 19:39 ` Krzysztof Kozlowski 2023-12-11 16:23 ` [PATCH v7 02/16] dt-bindings: arm: google: Add bindings for Google ARM platforms Peter Griffin 2023-12-11 16:23 ` Peter Griffin 2023-12-13 14:32 ` Rob Herring 2023-12-13 14:32 ` Rob Herring 2023-12-13 14:34 ` Peter Griffin 2023-12-13 14:34 ` Peter Griffin 2023-12-13 19:16 ` (subset) " Krzysztof Kozlowski 2023-12-13 19:16 ` Krzysztof Kozlowski 2023-12-11 16:23 ` [PATCH v7 03/16] dt-bindings: serial: samsung: Add google-gs101-uart compatible Peter Griffin 2023-12-11 16:23 ` Peter Griffin 2023-12-12 19:39 ` (subset) " Krzysztof Kozlowski 2023-12-12 19:39 ` Krzysztof Kozlowski 2023-12-11 16:23 ` [PATCH v7 04/16] dt-bindings: serial: samsung: Make samsung,uart-fifosize a required property Peter Griffin 2023-12-11 16:23 ` Peter Griffin 2023-12-12 19:39 ` (subset) " Krzysztof Kozlowski 2023-12-12 19:39 ` Krzysztof Kozlowski 2023-12-11 16:23 ` [PATCH v7 05/16] dt-bindings: soc: samsung: usi: add google,gs101-usi compatible Peter Griffin 2023-12-11 16:23 ` Peter Griffin 2023-12-12 19:39 ` (subset) " Krzysztof Kozlowski 2023-12-12 19:39 ` Krzysztof Kozlowski 2023-12-11 16:23 ` [PATCH v7 06/16] dt-bindings: clock: google,gs101: fix incorrect numbering and DGB suffix Peter Griffin 2023-12-11 16:23 ` Peter Griffin 2023-12-11 16:36 ` André Draszik 2023-12-11 16:36 ` André Draszik 2023-12-11 22:38 ` Sam Protsenko 2023-12-11 22:38 ` Sam Protsenko 2023-12-11 23:57 ` Chanwoo Choi 2023-12-11 23:57 ` Chanwoo Choi 2023-12-12 19:39 ` (subset) " Krzysztof Kozlowski 2023-12-12 19:39 ` Krzysztof Kozlowski 2023-12-11 16:23 ` [PATCH v7 07/16] clk: samsung: clk-pll: Add support for pll_{0516,0517,518} Peter Griffin 2023-12-11 16:23 ` Peter Griffin 2023-12-12 19:39 ` (subset) " Krzysztof Kozlowski 2023-12-12 19:39 ` Krzysztof Kozlowski 2023-12-11 16:23 ` [PATCH v7 08/16] clk: samsung: clk-gs101: Add cmu_top, cmu_misc and cmu_apm support Peter Griffin 2023-12-11 16:42 ` Rob Herring 2023-12-11 16:42 ` Rob Herring 2023-12-11 19:46 ` Peter Griffin 2023-12-11 19:46 ` Peter Griffin 2023-12-12 19:38 ` Krzysztof Kozlowski 2023-12-12 19:38 ` Krzysztof Kozlowski 2023-12-12 19:43 ` Peter Griffin 2023-12-12 19:43 ` Peter Griffin 2023-12-12 19:39 ` (subset) " Krzysztof Kozlowski 2023-12-12 19:39 ` Krzysztof Kozlowski 2023-12-11 16:23 ` [PATCH v7 09/16] pinctrl: samsung: Add gs101 SoC pinctrl configuration Peter Griffin 2023-12-11 16:23 ` Peter Griffin 2023-12-11 21:02 ` Linus Walleij 2023-12-11 21:02 ` Linus Walleij 2023-12-12 19:17 ` (subset) " Krzysztof Kozlowski 2023-12-12 19:17 ` Krzysztof Kozlowski 2023-12-13 16:24 ` Alim Akhtar 2023-12-13 16:24 ` Alim Akhtar 2023-12-11 16:23 ` [PATCH v7 10/16] watchdog: s3c2410_wdt: Add support for WTCON register DBGACK_MASK bit Peter Griffin 2023-12-11 16:23 ` Peter Griffin 2023-12-13 16:32 ` Alim Akhtar 2023-12-13 16:32 ` Alim Akhtar 2023-12-13 19:16 ` (subset) " Krzysztof Kozlowski 2023-12-13 19:16 ` Krzysztof Kozlowski 2023-12-11 16:23 ` [PATCH v7 11/16] watchdog: s3c2410_wdt: Update QUIRK macros to use BIT macro Peter Griffin 2023-12-11 16:23 ` Peter Griffin 2023-12-13 16:34 ` Alim Akhtar 2023-12-13 16:34 ` Alim Akhtar 2023-12-13 19:13 ` Peter Griffin 2023-12-13 19:13 ` Peter Griffin 2023-12-13 19:19 ` Krzysztof Kozlowski 2023-12-13 19:19 ` Krzysztof Kozlowski 2023-12-13 19:16 ` (subset) " Krzysztof Kozlowski 2023-12-13 19:16 ` Krzysztof Kozlowski 2023-12-11 16:23 ` Peter Griffin [this message] 2023-12-11 16:23 ` [PATCH v7 12/16] watchdog: s3c2410_wdt: Add support for Google gs101 SoC Peter Griffin 2023-12-12 21:18 ` Guenter Roeck 2023-12-12 21:18 ` Guenter Roeck 2023-12-13 16:42 ` Alim Akhtar 2023-12-13 16:42 ` Alim Akhtar 2023-12-13 19:14 ` Krzysztof Kozlowski 2023-12-13 19:14 ` Krzysztof Kozlowski 2023-12-13 19:16 ` (subset) " Krzysztof Kozlowski 2023-12-13 19:16 ` Krzysztof Kozlowski 2023-12-11 16:23 ` [PATCH v7 13/16] tty: serial: samsung: Add gs101 compatible and common fifoszdt_serial_drv_data Peter Griffin 2023-12-11 16:23 ` Peter Griffin 2023-12-12 19:39 ` (subset) " Krzysztof Kozlowski 2023-12-12 19:39 ` Krzysztof Kozlowski 2023-12-13 16:44 ` Alim Akhtar 2023-12-13 16:44 ` Alim Akhtar 2023-12-11 16:23 ` [PATCH v7 14/16] arm64: dts: exynos: google: Add initial Google gs101 SoC support Peter Griffin 2023-12-11 16:23 ` Peter Griffin 2023-12-13 19:16 ` (subset) " Krzysztof Kozlowski 2023-12-13 19:16 ` Krzysztof Kozlowski 2023-12-11 16:23 ` [PATCH v7 15/16] arm64: dts: exynos: google: Add initial Oriole/pixel 6 board support Peter Griffin 2023-12-11 16:23 ` Peter Griffin 2023-12-13 16:59 ` Alim Akhtar 2023-12-13 16:59 ` Alim Akhtar 2023-12-13 19:16 ` (subset) " Krzysztof Kozlowski 2023-12-13 19:16 ` Krzysztof Kozlowski 2023-12-11 16:23 ` [PATCH v7 16/16] MAINTAINERS: add entry for Google Tensor SoC Peter Griffin 2023-12-11 16:23 ` Peter Griffin 2023-12-13 17:00 ` Alim Akhtar 2023-12-13 17:00 ` Alim Akhtar 2023-12-13 19:16 ` (subset) " Krzysztof Kozlowski 2023-12-13 19:16 ` Krzysztof Kozlowski 2023-12-21 17:41 ` [PATCH v7 00/16] Add minimal Tensor/GS101 SoC support and Oriole/Pixel6 board patchwork-bot+linux-soc 2023-12-22 12:01 ` patchwork-bot+linux-soc
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=20231211162331.435900-13-peter.griffin@linaro.org \ --to=peter.griffin@linaro.org \ --cc=alim.akhtar@samsung.com \ --cc=andre.draszik@linaro.org \ --cc=arnd@arndb.de \ --cc=catalin.marinas@arm.com \ --cc=conor+dt@kernel.org \ --cc=cw00.choi@samsung.com \ --cc=devicetree@vger.kernel.org \ --cc=gregkh@linuxfoundation.org \ --cc=jirislaby@kernel.org \ --cc=kernel-team@android.com \ --cc=krzysztof.kozlowski+dt@linaro.org \ --cc=linus.walleij@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-clk@vger.kernel.org \ --cc=linux-gpio@vger.kernel.org \ --cc=linux-samsung-soc@vger.kernel.org \ --cc=linux-serial@vger.kernel.org \ --cc=linux-watchdog@vger.kernel.org \ --cc=linux@roeck-us.net \ --cc=mturquette@baylibre.com \ --cc=olof@lixom.net \ --cc=robh+dt@kernel.org \ --cc=s.nawrocki@samsung.com \ --cc=saravanak@google.com \ --cc=sboyd@kernel.org \ --cc=semen.protsenko@linaro.org \ --cc=soc@kernel.org \ --cc=tomasz.figa@gmail.com \ --cc=tudor.ambarus@linaro.org \ --cc=will@kernel.org \ --cc=willmcvicker@google.com \ --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: 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.