Loading Documentation/devicetree/bindings/arm/msm/msm_watchdog.txt 0 → 100644 +48 −0 Original line number Original line Diff line number Diff line * Qualcomm MSM Watchdog Watchdog timer is configured with a bark and a bite time. If the watchdog is not "pet" at regular intervals, the system is assumed to have become non responsive and needs to be reset. A warning in the form of a bark timeout leads to a bark interrupt and a kernel panic. If the watchdog timer is still not reset, a bite timeout occurs, which is an interrupt in the secure mode, which leads to a reset of the SOC via the secure watchdog. The driver needs the petting time, and the bark timeout to be programmed into the watchdog, as well as the bark and bite irqs. The device tree parameters for the watchdog are: Required properties: - compatible : "qcom,msm-watchdog" - reg : offset and length of the register set for the watchdog block. - reg-names : names corresponding to each reg property value. "wdt-base" - physical base address of watchdog timer registers "wdt-absent-base" - physical base address of watchdog absent register - interrupts : should contain bark and bite irq numbers - qcom,pet-time : Non zero time interval at which watchdog should be pet in ms. - qcom,bark-time : Non zero timeout value for a watchdog bark in ms. - qcom,userspace-watchdog : (boolean) Allow enabling the userspace-watchdog feature. This feature requires userspace to pet the watchdog every qcom,pet-time interval in addition to the existing kernel-level checks. This feature is supported through device sysfs files. Optional properties: - qcom,ipi-ping : (boolean) send keep alive ping to other cpus if present - qcom,wakeup-enable : (boolean) enable non secure watchdog to freeze / unfreeze automatically across suspend / resume path. Example: qcom,wdt@f9017000 { compatible = "qcom,msm-watchdog"; reg = <0xf9017000 0x1000>; reg-names = "wdt-base"; interrupts = <0 3 0>, <0 4 0>; qcom,bark-time = <11000>; qcom,pet-time = <10000>; qcom,ipi-ping; qcom,wakeup-enable; }; drivers/soc/qcom/Kconfig +8 −0 Original line number Original line Diff line number Diff line Loading @@ -240,4 +240,12 @@ config MSM_CORE_HANG_DETECT for hang. By using sysfs entries core hang detection can be for hang. By using sysfs entries core hang detection can be enabled or disabled dynamically. enabled or disabled dynamically. config QCOM_WATCHDOG_V2 bool "Qualcomm Watchdog Support" depends on ARCH_QCOM help This enables the watchdog module. It causes kernel panic if the watchdog times out. It allows for detection of cpu hangs and deadlocks. It does not run during the bootup process, so it will not catch any early lockups. endmenu endmenu drivers/soc/qcom/Makefile +1 −0 Original line number Original line Diff line number Diff line Loading @@ -33,3 +33,4 @@ ifdef CONFIG_MSM_SUBSYSTEM_RESTART endif endif obj-$(CONFIG_QCOM_EUD) += eud.o obj-$(CONFIG_QCOM_EUD) += eud.o obj-$(CONFIG_SOC_BUS) += socinfo.o obj-$(CONFIG_SOC_BUS) += socinfo.o obj-$(CONFIG_QCOM_WATCHDOG_V2) += watchdog_v2.o Loading
Documentation/devicetree/bindings/arm/msm/msm_watchdog.txt 0 → 100644 +48 −0 Original line number Original line Diff line number Diff line * Qualcomm MSM Watchdog Watchdog timer is configured with a bark and a bite time. If the watchdog is not "pet" at regular intervals, the system is assumed to have become non responsive and needs to be reset. A warning in the form of a bark timeout leads to a bark interrupt and a kernel panic. If the watchdog timer is still not reset, a bite timeout occurs, which is an interrupt in the secure mode, which leads to a reset of the SOC via the secure watchdog. The driver needs the petting time, and the bark timeout to be programmed into the watchdog, as well as the bark and bite irqs. The device tree parameters for the watchdog are: Required properties: - compatible : "qcom,msm-watchdog" - reg : offset and length of the register set for the watchdog block. - reg-names : names corresponding to each reg property value. "wdt-base" - physical base address of watchdog timer registers "wdt-absent-base" - physical base address of watchdog absent register - interrupts : should contain bark and bite irq numbers - qcom,pet-time : Non zero time interval at which watchdog should be pet in ms. - qcom,bark-time : Non zero timeout value for a watchdog bark in ms. - qcom,userspace-watchdog : (boolean) Allow enabling the userspace-watchdog feature. This feature requires userspace to pet the watchdog every qcom,pet-time interval in addition to the existing kernel-level checks. This feature is supported through device sysfs files. Optional properties: - qcom,ipi-ping : (boolean) send keep alive ping to other cpus if present - qcom,wakeup-enable : (boolean) enable non secure watchdog to freeze / unfreeze automatically across suspend / resume path. Example: qcom,wdt@f9017000 { compatible = "qcom,msm-watchdog"; reg = <0xf9017000 0x1000>; reg-names = "wdt-base"; interrupts = <0 3 0>, <0 4 0>; qcom,bark-time = <11000>; qcom,pet-time = <10000>; qcom,ipi-ping; qcom,wakeup-enable; };
drivers/soc/qcom/Kconfig +8 −0 Original line number Original line Diff line number Diff line Loading @@ -240,4 +240,12 @@ config MSM_CORE_HANG_DETECT for hang. By using sysfs entries core hang detection can be for hang. By using sysfs entries core hang detection can be enabled or disabled dynamically. enabled or disabled dynamically. config QCOM_WATCHDOG_V2 bool "Qualcomm Watchdog Support" depends on ARCH_QCOM help This enables the watchdog module. It causes kernel panic if the watchdog times out. It allows for detection of cpu hangs and deadlocks. It does not run during the bootup process, so it will not catch any early lockups. endmenu endmenu
drivers/soc/qcom/Makefile +1 −0 Original line number Original line Diff line number Diff line Loading @@ -33,3 +33,4 @@ ifdef CONFIG_MSM_SUBSYSTEM_RESTART endif endif obj-$(CONFIG_QCOM_EUD) += eud.o obj-$(CONFIG_QCOM_EUD) += eud.o obj-$(CONFIG_SOC_BUS) += socinfo.o obj-$(CONFIG_SOC_BUS) += socinfo.o obj-$(CONFIG_QCOM_WATCHDOG_V2) += watchdog_v2.o