From: Suneel Garapati <suneelglinux@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [RFC PATCH 27/29] drivers: watchdog: add reset support for OcteonTX
Date: Tue, 29 Oct 2019 14:08:19 -0700 [thread overview]
Message-ID: <20191029210821.1954-28-suneelglinux@gmail.com> (raw)
In-Reply-To: <20191029210821.1954-1-suneelglinux@gmail.com>
From: Suneel Garapati <sgarapati@marvell.com>
Adds support for Core 0 poke on OcteonTX and OcteonTX2
platforms.
Signed-off-by: Suneel Garapati <sgarapati@marvell.com>
---
drivers/watchdog/Kconfig | 10 +++++
drivers/watchdog/Makefile | 1 +
drivers/watchdog/octeontx_wdt.c | 76 +++++++++++++++++++++++++++++++++
3 files changed, 87 insertions(+)
create mode 100644 drivers/watchdog/octeontx_wdt.c
diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index 8c16d69d33..61357a7f0a 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -121,6 +121,16 @@ config WDT_MTK
The watchdog timer is stopped when initialized.
It performs full SoC reset.
+config WDT_OCTEONTX
+ bool "OcteonTX core watchdog support"
+ depends on WDT && (ARCH_OCTEONTX || ARCH_OCTEONTX2)
+ default y if WDT && ARCH_OCTEONTX || ARCH_OCTEONTX2
+ imply WATCHDOG
+ help
+ This enables OcteonTX watchdog driver, which can be
+ found on OcteonTX/TX2 chipsets and inline with driver model.
+ Only supports watchdog reset.
+
config WDT_OMAP3
bool "TI OMAP watchdog timer support"
depends on WDT && ARCH_OMAP2PLUS
diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile
index 955caef815..66b20b0e98 100644
--- a/drivers/watchdog/Makefile
+++ b/drivers/watchdog/Makefile
@@ -25,6 +25,7 @@ obj-$(CONFIG_WDT_CDNS) += cdns_wdt.o
obj-$(CONFIG_WDT_MPC8xx) += mpc8xx_wdt.o
obj-$(CONFIG_WDT_MT7621) += mt7621_wdt.o
obj-$(CONFIG_WDT_MTK) += mtk_wdt.o
+obj-$(CONFIG_WDT_OCTEONTX) += octeontx_wdt.o
obj-$(CONFIG_WDT_OMAP3) += omap_wdt.o
obj-$(CONFIG_WDT_SP805) += sp805_wdt.o
obj-$(CONFIG_WDT_STM32MP) += stm32mp_wdt.o
diff --git a/drivers/watchdog/octeontx_wdt.c b/drivers/watchdog/octeontx_wdt.c
new file mode 100644
index 0000000000..9362ad99bf
--- /dev/null
+++ b/drivers/watchdog/octeontx_wdt.c
@@ -0,0 +1,76 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2019 Marvell International Ltd.
+ *
+ * https://spdx.org/licenses
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <wdt.h>
+#include <asm/io.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+#define CORE0_POKE_OFFSET 0x50000
+
+#if CONFIG_IS_ENABLED(ARCH_OCTEONTX)
+#define REG_BASE 0x844000000000
+#elif CONFIG_IS_ENABLED(ARCH_OCTEONTX2)
+#define REG_BASE 0x802000000000
+#endif
+
+struct octeontx_wdt {
+ void __iomem *reg;
+};
+
+static struct udevice *wdt_dev;
+
+static int octeontx_wdt_reset(struct udevice *dev)
+{
+ struct octeontx_wdt *priv;
+ u64 poke_reg;
+
+ if (dev) {
+ priv = dev_get_priv(dev);
+ poke_reg = ((u64)priv->reg & ~0xfffffULL) | CORE0_POKE_OFFSET;
+ } else {
+ poke_reg = REG_BASE + CORE0_POKE_OFFSET;
+ }
+ writeq(~0ULL, poke_reg);
+
+ return 0;
+}
+
+static int octeontx_wdt_probe(struct udevice *dev)
+{
+ struct octeontx_wdt *priv = dev_get_priv(dev);
+ fdt_addr_t addr;
+
+ addr = dev_read_addr_index(dev, 0);
+ if (addr == FDT_ADDR_T_NONE)
+ return -ENODEV;
+
+ priv->reg = (void __iomem *)addr;
+ wdt_dev = dev;
+
+ return 0;
+}
+
+static const struct wdt_ops octeontx_wdt_ops = {
+ .reset = octeontx_wdt_reset,
+};
+
+static const struct udevice_id octeontx_wdt_ids[] = {
+ { .compatible = "arm,sbsa-gwdt" },
+ {}
+};
+
+U_BOOT_DRIVER(wdt_octeontx) = {
+ .name = "wdt_octeontx",
+ .id = UCLASS_WDT,
+ .of_match = octeontx_wdt_ids,
+ .ops = &octeontx_wdt_ops,
+ .priv_auto_alloc_size = sizeof(struct octeontx_wdt),
+ .probe = octeontx_wdt_probe,
+};
--
2.23.0
next prev parent reply other threads:[~2019-10-29 21:08 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-29 21:07 [U-Boot] [RFC PATCH 00/29] arm: Introduce Marvell/Cavium OcteonTX Suneel Garapati
2019-10-29 21:07 ` [U-Boot] [RFC PATCH 01/29] include: pci_ids: add vendor ID for Cavium Suneel Garapati
2019-11-20 3:00 ` Simon Glass
2019-10-29 21:07 ` [U-Boot] [RFC PATCH 02/29] include: pci: Increase max pci region limit Suneel Garapati
2019-11-20 3:00 ` Simon Glass
2019-10-29 21:07 ` [U-Boot] [RFC PATCH 03/29] fdtdec: add API to read pci bus-range property Suneel Garapati
2019-11-20 3:00 ` Simon Glass
2019-10-29 21:07 ` [U-Boot] [RFC PATCH 04/29] drivers: pci-uclass: fix incorrect argument in map_sysmem Suneel Garapati
2019-11-20 3:00 ` Simon Glass
2019-10-29 21:07 ` [U-Boot] [RFC PATCH 05/29] drivers: pci-uclass: make DT subnode parse optional Suneel Garapati
2019-11-20 3:00 ` Simon Glass
2019-10-29 21:07 ` [U-Boot] [RFC PATCH 06/29] drivers: pci-uclass: add multi entry support for pci regions Suneel Garapati
2019-11-20 3:00 ` Simon Glass
2019-10-29 21:07 ` [U-Boot] [RFC PATCH 07/29] drivers: pci-uclass: add support for Enhanced Allocation in Bridges Suneel Garapati
2019-11-20 3:00 ` Simon Glass
2019-10-29 21:08 ` [U-Boot] [RFC PATCH 08/29] drivers: pci-uclass: add support for Single-Root I/O Virtualizaiton Suneel Garapati
2019-11-20 3:00 ` Simon Glass
2019-10-29 21:08 ` [U-Boot] [RFC PATCH 09/29] drivers: pci-uclass: add VF map_bar support for Enhanced Allocation Suneel Garapati
2019-11-20 3:00 ` Simon Glass
2019-10-29 21:08 ` [U-Boot] [RFC PATCH 10/29] drivers: pci-uclass: Add support for Alternate-RoutingID capability Suneel Garapati
2019-11-20 3:00 ` Simon Glass
2019-10-29 21:08 ` [U-Boot] [RFC PATCH 11/29] include: arm: asm: io: add 64bit clrbits and setbits helpers Suneel Garapati
2019-11-20 3:00 ` Simon Glass
2019-10-29 21:08 ` [U-Boot] [RFC PATCH 12/29] drivers: rtc: ds1337: add driver model support Suneel Garapati
2019-11-20 3:00 ` Simon Glass
2019-10-29 21:08 ` [U-Boot] [RFC PATCH 13/29] arch: include: octeontx: add headers for OcteonTX Suneel Garapati
2019-11-20 3:00 ` Simon Glass
2019-11-20 5:47 ` [U-Boot] [EXT] " Aaron Williams
2019-10-29 21:08 ` [U-Boot] [RFC PATCH 14/29] arch: include: octeontx2: add headers for OcteonTX2 Suneel Garapati
2019-11-20 3:00 ` Simon Glass
2019-10-29 21:08 ` [U-Boot] [RFC PATCH 15/29] drivers: ata: ahci: update max id if it is more than available ports Suneel Garapati
2019-11-20 3:00 ` Simon Glass
2019-10-29 21:08 ` [U-Boot] [RFC PATCH 16/29] drivers: ata: ahci: fill upper 32bit buffer address in sg descriptor Suneel Garapati
2019-11-20 3:00 ` Simon Glass
2019-10-29 21:08 ` [U-Boot] [RFC PATCH 17/29] drivers: ata: ahci: add BAR index quirk for OcteonTX Suneel Garapati
2019-11-20 3:00 ` Simon Glass
2019-10-29 21:08 ` [U-Boot] [RFC PATCH 18/29] drivers: pci: add PCI controller driver " Suneel Garapati
2019-11-20 3:00 ` Simon Glass
2019-10-29 21:08 ` [U-Boot] [RFC PATCH 19/29] drivers: gpio: add GPIO " Suneel Garapati
2019-11-20 3:00 ` Simon Glass
2019-10-29 21:08 ` [U-Boot] [RFC PATCH 20/29] drivers: i2c: add I2C " Suneel Garapati
2019-11-20 3:00 ` Simon Glass
2019-10-29 21:08 ` [U-Boot] [RFC PATCH 21/29] drivers: spi: add SPI " Suneel Garapati
2019-10-29 21:08 ` [U-Boot] [RFC PATCH 22/29] drivers: mmc: remove static qualifier on mmc_power_init Suneel Garapati
2019-10-29 21:08 ` [U-Boot] [RFC PATCH 23/29] drivers: mmc: add MMC controller driver for OcteonTX Suneel Garapati
2019-10-29 21:08 ` [U-Boot] [RFC PATCH 24/29] drivers: mtd: nand: add NAND " Suneel Garapati
2019-10-29 21:08 ` [U-Boot] [RFC PATCH 25/29] drivers: net: add NIC " Suneel Garapati
2019-10-29 21:08 ` [U-Boot] [RFC PATCH 26/29] drivers: net: add NIC controller driver for OcteonTX2 Suneel Garapati
2019-10-29 21:08 ` Suneel Garapati [this message]
2019-10-29 21:08 ` [U-Boot] [RFC PATCH 28/29] octeontx: Add support for OcteonTX SoC platforms Suneel Garapati
2019-10-29 21:08 ` [U-Boot] [RFC PATCH 29/29] octeontx2: Add support for OcteonTX2 " Suneel Garapati
2019-10-30 17:06 ` [U-Boot] [RFC PATCH 00/29] arm: Introduce Marvell/Cavium OcteonTX Tim Harvey
2019-10-31 0:04 ` [U-Boot] [EXT] " Aaron Williams
2019-10-31 19:12 ` Tim Harvey
2019-10-31 19:22 ` Chandrakala Chavva
2019-11-05 1:09 ` Aaron Williams
2019-11-05 16:07 ` Tim Harvey
2019-10-31 19:46 ` [U-Boot] " Suneel Garapati
2019-10-31 22:14 ` Tim Harvey
2019-10-31 22:40 ` Suneel Garapati
2019-11-01 16:07 ` Tim Harvey
2019-11-19 18:55 ` Tim Harvey
2019-11-20 3:00 ` Simon Glass
2019-11-20 20:41 ` Tom Rini
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=20191029210821.1954-28-suneelglinux@gmail.com \
--to=suneelglinux@gmail.com \
--cc=u-boot@lists.denx.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox