162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/mfd/canaan,k210-sysctl.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Canaan Kendryte K210 System Controller 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Damien Le Moal <dlemoal@kernel.org> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cidescription: 1362306a36Sopenharmony_ci Canaan Inc. Kendryte K210 SoC system controller which provides a 1462306a36Sopenharmony_ci register map for controlling the clocks, reset signals and pin power 1562306a36Sopenharmony_ci domains of the SoC. 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ciproperties: 1862306a36Sopenharmony_ci compatible: 1962306a36Sopenharmony_ci items: 2062306a36Sopenharmony_ci - const: canaan,k210-sysctl 2162306a36Sopenharmony_ci - const: syscon 2262306a36Sopenharmony_ci - const: simple-mfd 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci clocks: 2562306a36Sopenharmony_ci maxItems: 1 2662306a36Sopenharmony_ci description: 2762306a36Sopenharmony_ci System controller Advanced Power Bus (APB) interface clock source. 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci clock-names: 3062306a36Sopenharmony_ci items: 3162306a36Sopenharmony_ci - const: pclk 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci reg: 3462306a36Sopenharmony_ci maxItems: 1 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci clock-controller: 3762306a36Sopenharmony_ci # Child node 3862306a36Sopenharmony_ci type: object 3962306a36Sopenharmony_ci $ref: ../clock/canaan,k210-clk.yaml 4062306a36Sopenharmony_ci description: 4162306a36Sopenharmony_ci Clock controller for the SoC clocks. This child node definition 4262306a36Sopenharmony_ci should follow the bindings specified in 4362306a36Sopenharmony_ci Documentation/devicetree/bindings/clock/canaan,k210-clk.yaml. 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci reset-controller: 4662306a36Sopenharmony_ci # Child node 4762306a36Sopenharmony_ci type: object 4862306a36Sopenharmony_ci $ref: ../reset/canaan,k210-rst.yaml 4962306a36Sopenharmony_ci description: 5062306a36Sopenharmony_ci Reset controller for the SoC. This child node definition 5162306a36Sopenharmony_ci should follow the bindings specified in 5262306a36Sopenharmony_ci Documentation/devicetree/bindings/reset/canaan,k210-rst.yaml. 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci syscon-reboot: 5562306a36Sopenharmony_ci # Child node 5662306a36Sopenharmony_ci type: object 5762306a36Sopenharmony_ci $ref: ../power/reset/syscon-reboot.yaml 5862306a36Sopenharmony_ci description: 5962306a36Sopenharmony_ci Reboot method for the SoC. This child node definition 6062306a36Sopenharmony_ci should follow the bindings specified in 6162306a36Sopenharmony_ci Documentation/devicetree/bindings/power/reset/syscon-reboot.yaml. 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_cirequired: 6462306a36Sopenharmony_ci - compatible 6562306a36Sopenharmony_ci - clocks 6662306a36Sopenharmony_ci - reg 6762306a36Sopenharmony_ci - clock-controller 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ciadditionalProperties: false 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ciexamples: 7262306a36Sopenharmony_ci - | 7362306a36Sopenharmony_ci #include <dt-bindings/clock/k210-clk.h> 7462306a36Sopenharmony_ci #include <dt-bindings/reset/k210-rst.h> 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ci clocks { 7762306a36Sopenharmony_ci in0: oscllator { 7862306a36Sopenharmony_ci compatible = "fixed-clock"; 7962306a36Sopenharmony_ci #clock-cells = <0>; 8062306a36Sopenharmony_ci clock-frequency = <26000000>; 8162306a36Sopenharmony_ci }; 8262306a36Sopenharmony_ci }; 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ci sysctl: syscon@50440000 { 8562306a36Sopenharmony_ci compatible = "canaan,k210-sysctl", 8662306a36Sopenharmony_ci "syscon", "simple-mfd"; 8762306a36Sopenharmony_ci reg = <0x50440000 0x100>; 8862306a36Sopenharmony_ci clocks = <&sysclk K210_CLK_APB1>; 8962306a36Sopenharmony_ci clock-names = "pclk"; 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ci sysclk: clock-controller { 9262306a36Sopenharmony_ci #clock-cells = <1>; 9362306a36Sopenharmony_ci compatible = "canaan,k210-clk"; 9462306a36Sopenharmony_ci clocks = <&in0>; 9562306a36Sopenharmony_ci }; 9662306a36Sopenharmony_ci 9762306a36Sopenharmony_ci sysrst: reset-controller { 9862306a36Sopenharmony_ci compatible = "canaan,k210-rst"; 9962306a36Sopenharmony_ci #reset-cells = <1>; 10062306a36Sopenharmony_ci }; 10162306a36Sopenharmony_ci 10262306a36Sopenharmony_ci reboot: syscon-reboot { 10362306a36Sopenharmony_ci compatible = "syscon-reboot"; 10462306a36Sopenharmony_ci regmap = <&sysctl>; 10562306a36Sopenharmony_ci offset = <48>; 10662306a36Sopenharmony_ci mask = <1>; 10762306a36Sopenharmony_ci value = <1>; 10862306a36Sopenharmony_ci }; 10962306a36Sopenharmony_ci }; 110