110 lines
2.6 KiB
YAML
110 lines
2.6 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/mfd/canaan,k210-sysctl.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Canaan Kendryte K210 System Controller
|
|
|
|
maintainers:
|
|
- Damien Le Moal <dlemoal@kernel.org>
|
|
|
|
description:
|
|
Canaan Inc. Kendryte K210 SoC system controller which provides a
|
|
register map for controlling the clocks, reset signals and pin power
|
|
domains of the SoC.
|
|
|
|
properties:
|
|
compatible:
|
|
items:
|
|
- const: canaan,k210-sysctl
|
|
- const: syscon
|
|
- const: simple-mfd
|
|
|
|
clocks:
|
|
maxItems: 1
|
|
description:
|
|
System controller Advanced Power Bus (APB) interface clock source.
|
|
|
|
clock-names:
|
|
items:
|
|
- const: pclk
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
clock-controller:
|
|
# Child node
|
|
type: object
|
|
$ref: ../clock/canaan,k210-clk.yaml
|
|
description:
|
|
Clock controller for the SoC clocks. This child node definition
|
|
should follow the bindings specified in
|
|
Documentation/devicetree/bindings/clock/canaan,k210-clk.yaml.
|
|
|
|
reset-controller:
|
|
# Child node
|
|
type: object
|
|
$ref: ../reset/canaan,k210-rst.yaml
|
|
description:
|
|
Reset controller for the SoC. This child node definition
|
|
should follow the bindings specified in
|
|
Documentation/devicetree/bindings/reset/canaan,k210-rst.yaml.
|
|
|
|
syscon-reboot:
|
|
# Child node
|
|
type: object
|
|
$ref: ../power/reset/syscon-reboot.yaml
|
|
description:
|
|
Reboot method for the SoC. This child node definition
|
|
should follow the bindings specified in
|
|
Documentation/devicetree/bindings/power/reset/syscon-reboot.yaml.
|
|
|
|
required:
|
|
- compatible
|
|
- clocks
|
|
- reg
|
|
- clock-controller
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/clock/k210-clk.h>
|
|
#include <dt-bindings/reset/k210-rst.h>
|
|
|
|
clocks {
|
|
in0: oscllator {
|
|
compatible = "fixed-clock";
|
|
#clock-cells = <0>;
|
|
clock-frequency = <26000000>;
|
|
};
|
|
};
|
|
|
|
sysctl: syscon@50440000 {
|
|
compatible = "canaan,k210-sysctl",
|
|
"syscon", "simple-mfd";
|
|
reg = <0x50440000 0x100>;
|
|
clocks = <&sysclk K210_CLK_APB1>;
|
|
clock-names = "pclk";
|
|
|
|
sysclk: clock-controller {
|
|
#clock-cells = <1>;
|
|
compatible = "canaan,k210-clk";
|
|
clocks = <&in0>;
|
|
};
|
|
|
|
sysrst: reset-controller {
|
|
compatible = "canaan,k210-rst";
|
|
#reset-cells = <1>;
|
|
};
|
|
|
|
reboot: syscon-reboot {
|
|
compatible = "syscon-reboot";
|
|
regmap = <&sysctl>;
|
|
offset = <48>;
|
|
mask = <1>;
|
|
value = <1>;
|
|
};
|
|
};
|