Axi Watchdog

Introduction

This page describes the AXI WDT/Window watchdog driver which is available in mainline and Xilinx Linux distribution as
drivers/watchdog/of_xilinx_wdt.c

HW IP Features

  • Connects as a 32-bit slave on a AXI4-Lite interface
  • Watchdog timer with selectable timeout period and interrupt
  • Configurable WDT enable: enable-once or enable-repeatedly
  • One 32-bit free-running timebase counter with rollover interrupt-dual control register
  • Generic watchdog timer feature implemented.

Known Issues and Limitations

  • The current driver does not support the Axi Window watchdog feature.

Kernel Configuration

The following config options should be enabled in order to build the xilinx watchdog driver:
CONFIG_XILINX_WATCHDOG
CONFIG_WATCHDOG
¦ Symbol: XILINX_WATCHDOG [=y] ¦
¦ Type : tristate ¦
¦ Prompt: Xilinx Watchdog timer ¦
¦ Location: ¦
¦ -> Device Drivers ¦
¦ (4) -> Watchdog Timer Support (WATCHDOG [=y]) ¦
¦ Defined at drivers/watchdog/Kconfig:171 ¦
¦ Depends on: WATCHDOG [=y] && HAS_IOMEM [=y] ¦
¦ Selects: WATCHDOG_CORE [=y]

Devicetree

For more details, please refer
Documentation/devicetree/bindings/watchdog/of-xilinx-wdt.txt
Example:
watchdog {
 
        compatible = "xlnx,xps-timebase-wdt-1.0.a";
        reg = <0x42600000 0x1000>;
        xlnx-wdt-enable-once = <0>;
        xlnx-wdt-interval = <0x1b>;
};


Test procedure

Change the parameters using IOCTLs and see if reported values is correct.
# /bin/wdt_app /dev/watchdog1
Last boot is caused by : Power-On-Reset
The timeout was is 42 seconds
root@uart:~#

Mainline Status

  • This driver is currently in sync with the mainline kernel.

Change Log

  • 2024.1
    • Summary
      • watchdog: of_xilinx_wdt: Remove unnecessary clock disable call in the remove path
    • Commits
  •  2023.2
    • Summary
      • watchdog: of_xilinx_wdt: Revert Versal WWDT support
      • watchdog: of_xilinx_wdt: Use devm_clk_get_enabled() helper
      • watchdog: of_xilinx_wdt: Remove unnecessary clock disable call in the remove path
    • Commits
  •  2023.1
    • Summary
      • watchdog: of_xilinx_wdt: Update maximum timeout value based on ref clock 
    • Commits
  •  2022.2
    • None
  • 2022.1
    • None
  • 2021.2
    • None
  • 2021.1
    • None
  • 2020.2
    • Summary
      • watchdog: of_xilinx_wdt: Initialize watchdog via data structure
      • watchdog: of_xilinx_wdt: Introduce wdttype enum for identification
      • watchdog: of_xilinx_wdt: Add Versal support
      • watchdog: of_xilinx_wdt: Wire setting up timeout via module parameter/DT
      • watchdog: of_xilinx_wdt: Add Versal Window watchdog support
    • Commits


  • 2020.1
    • None
  • 2019.2
    • Summary
      • watchdog: of_xilinx_wdt: Fix Typo mistake in macro
      • watchdog: of_xilinx_wdt: Changed dev_err to dev_warn
    • Commits
      • dc9c7a11 watchdog: of_xilinx_wdt: Fix Typo mistake in macro
      • 2291066b watchdog: of_xilinx_wdt: Changed dev_err to dev_warn
  • 2019.1
    • Summary
      • watchdog: of_xilinx_wdt: Add comment to spinlock
      • watchdog: of_xilinx_wdt: Used BIT macro
      • watchdog: of_xilinx_wdt: Used dev_dbg()
      • watchdog: of_xilinx_wdt: Initialize watchdog via data structure
      • watchdog: of_xilinx_wdt: Introduce wdttype enum for identification
      • watchdog: of_xilinx_wdt: Wire setting up timeout via module parameter/DT
    • Commits
      • 685a0c8 watchdog: of_xilinx_wdt: Add comment to spinlock 
      • 7c8ad55 watchdog: of_xilinx_wdt: Used BIT macro
      • fa1a0ce watchdog: of_xilinx_wdt: Fix Typo mistake in macro
      • f15a615 watchdog: of_xilinx_wdt: Used dev_dbg()
      • abd20c4 watchdog: of_xilinx_wdt: Initialize watchdog via data structure
      • d00b686 watchdog: of_xilinx_wdt: Introduce wdttype enum for identification
      • 594a62d watchdog: of_xilinx_wdt: Wire setting up timeout via module parameter/DT
  • 2018.1
    • Summary
      • watchdog: of_xilinx_wdt: Add support for reading freq via CCF
      • watchdog: of_xilinx_wdt: Add suspend/resume support
    • Commits
      • b6bc416 watchdog: of_xilinx_wdt: Add support for reading freq via CCF
      • 6f671c6 watchdog: of_xilinx_wdt: Add suspend/resume support
  • 2018.2
    • None
  • 2018.3
    • None
  • 2017.4
    • None
  • 2017.3
    • None
  • 2017.2
    • None
  • 2017.1
    • Summary
      • watchdog: xilinx: Add clock support.
      • watchdog: of_xilinx_wdt: Add clock adaptation support.

    • Commits
      • 9d6b4ef watchdog: xilinx: Add clock support.
      • 7f6adda watchdog: of_xilinx_wdt: Add clock adaptation support.
  • 2016.4
    • None
  • 2016.3
    • None

Related Links

© Copyright 2019 - 2022 Xilinx Inc. Privacy Policy