]>
Commit | Line | Data |
---|---|---|
23fb08e7 DLM |
1 | # 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 | ||
7 | title: Canaan Kendryte K210 System Controller Device Tree Bindings | |
8 | ||
9 | maintainers: | |
10 | - Damien Le Moal <damien.lemoal@wdc.com> | |
11 | ||
12 | description: | |
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 | ||
17 | properties: | |
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 | ||
63 | required: | |
64 | - compatible | |
65 | - clocks | |
66 | - reg | |
67 | - clock-controller | |
68 | ||
69 | additionalProperties: false | |
70 | ||
71 | examples: | |
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 | }; |