mirror of
https://github.com/torvalds/linux.git
synced 2026-04-24 01:25:49 -04:00
Exynos850 SoC has two CPU clusters: - cluster 0: contains CPUs #0, #1, #2, #3 - cluster 1: contains CPUs #4, #5, #6, #7 Each cluster has its own dedicated watchdog timer. Those WDT instances are controlled using different bits in PMU registers, new "samsung,index" property is added to tell the driver which bits to use for defined watchdog node. Also on Exynos850 the peripheral clock and the source clock are two different clocks. Provide a way to specify two clocks in watchdog device tree node. Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> Reviewed-by: Rob Herring <robh@kernel.org> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Link: https://lore.kernel.org/r/20211107202943.8859-3-semen.protsenko@linaro.org Signed-off-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
115 lines
2.8 KiB
YAML
115 lines
2.8 KiB
YAML
# SPDX-License-Identifier: GPL-2.0
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/watchdog/samsung-wdt.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Samsung SoC Watchdog Timer Controller
|
|
|
|
maintainers:
|
|
- Krzysztof Kozlowski <krzk@kernel.org>
|
|
|
|
description: |+
|
|
The Samsung's Watchdog controller is used for resuming system operation
|
|
after a preset amount of time during which the WDT reset event has not
|
|
occurred.
|
|
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- samsung,s3c2410-wdt # for S3C2410
|
|
- samsung,s3c6410-wdt # for S3C6410, S5PV210 and Exynos4
|
|
- samsung,exynos5250-wdt # for Exynos5250
|
|
- samsung,exynos5420-wdt # for Exynos5420
|
|
- samsung,exynos7-wdt # for Exynos7
|
|
- samsung,exynos850-wdt # for Exynos850
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
clocks:
|
|
minItems: 1
|
|
maxItems: 2
|
|
|
|
clock-names:
|
|
minItems: 1
|
|
maxItems: 2
|
|
|
|
interrupts:
|
|
maxItems: 1
|
|
|
|
samsung,cluster-index:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
description:
|
|
Index of CPU cluster on which watchdog is running (in case of Exynos850)
|
|
|
|
samsung,syscon-phandle:
|
|
$ref: /schemas/types.yaml#/definitions/phandle
|
|
description:
|
|
Phandle to the PMU system controller node (in case of Exynos5250,
|
|
Exynos5420, Exynos7 and Exynos850).
|
|
|
|
required:
|
|
- compatible
|
|
- clocks
|
|
- clock-names
|
|
- interrupts
|
|
- reg
|
|
|
|
allOf:
|
|
- $ref: watchdog.yaml#
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- samsung,exynos5250-wdt
|
|
- samsung,exynos5420-wdt
|
|
- samsung,exynos7-wdt
|
|
- samsung,exynos850-wdt
|
|
then:
|
|
required:
|
|
- samsung,syscon-phandle
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- samsung,exynos850-wdt
|
|
then:
|
|
properties:
|
|
clocks:
|
|
items:
|
|
- description: Bus clock, used for register interface
|
|
- description: Source clock (driving watchdog counter)
|
|
clock-names:
|
|
items:
|
|
- const: watchdog
|
|
- const: watchdog_src
|
|
samsung,cluster-index:
|
|
enum: [0, 1]
|
|
required:
|
|
- samsung,cluster-index
|
|
else:
|
|
properties:
|
|
clocks:
|
|
items:
|
|
- description: Bus clock, which is also a source clock
|
|
clock-names:
|
|
items:
|
|
- const: watchdog
|
|
samsung,cluster-index: false
|
|
|
|
unevaluatedProperties: false
|
|
|
|
examples:
|
|
- |
|
|
watchdog@101d0000 {
|
|
compatible = "samsung,exynos5250-wdt";
|
|
reg = <0x101D0000 0x100>;
|
|
interrupts = <0 42 0>;
|
|
clocks = <&clock 336>;
|
|
clock-names = "watchdog";
|
|
samsung,syscon-phandle = <&pmu_syscon>;
|
|
};
|