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