blob: 3b3beab9db3f31a597fdff2b2e3135a1d7947de4 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mfd/canaan,k210-sysctl.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Canaan Kendryte K210 System Controller
8
9maintainers:
10 - Damien Le Moal <dlemoal@kernel.org>
11
12description:
13 Canaan Inc. Kendryte K210 SoC system controller which provides a
14 register map for controlling the clocks, reset signals and pin power
15 domains of the SoC.
16
17properties:
18 compatible:
19 items:
20 - const: canaan,k210-sysctl
21 - const: syscon
22 - const: simple-mfd
23
24 clocks:
25 maxItems: 1
26 description:
27 System controller Advanced Power Bus (APB) interface clock source.
28
29 clock-names:
30 items:
31 - const: pclk
32
33 reg:
34 maxItems: 1
35
36 clock-controller:
37 # Child node
38 type: object
39 $ref: ../clock/canaan,k210-clk.yaml
40 description:
41 Clock controller for the SoC clocks. This child node definition
42 should follow the bindings specified in
43 Documentation/devicetree/bindings/clock/canaan,k210-clk.yaml.
44
45 reset-controller:
46 # Child node
47 type: object
48 $ref: ../reset/canaan,k210-rst.yaml
49 description:
50 Reset controller for the SoC. This child node definition
51 should follow the bindings specified in
52 Documentation/devicetree/bindings/reset/canaan,k210-rst.yaml.
53
54 syscon-reboot:
55 # Child node
56 type: object
57 $ref: ../power/reset/syscon-reboot.yaml
58 description:
59 Reboot method for the SoC. This child node definition
60 should follow the bindings specified in
61 Documentation/devicetree/bindings/power/reset/syscon-reboot.yaml.
62
63required:
64 - compatible
65 - clocks
66 - reg
67 - clock-controller
68
69additionalProperties: false
70
71examples:
72 - |
73 #include <dt-bindings/clock/k210-clk.h>
74 #include <dt-bindings/reset/k210-rst.h>
75
76 clocks {
77 in0: oscllator {
78 compatible = "fixed-clock";
79 #clock-cells = <0>;
80 clock-frequency = <26000000>;
81 };
82 };
83
84 sysctl: syscon@50440000 {
85 compatible = "canaan,k210-sysctl",
86 "syscon", "simple-mfd";
87 reg = <0x50440000 0x100>;
88 clocks = <&sysclk K210_CLK_APB1>;
89 clock-names = "pclk";
90
91 sysclk: clock-controller {
92 #clock-cells = <1>;
93 compatible = "canaan,k210-clk";
94 clocks = <&in0>;
95 };
96
97 sysrst: reset-controller {
98 compatible = "canaan,k210-rst";
99 #reset-cells = <1>;
100 };
101
102 reboot: syscon-reboot {
103 compatible = "syscon-reboot";
104 regmap = <&sysctl>;
105 offset = <48>;
106 mask = <1>;
107 value = <1>;
108 };
109 };