Commit 1f947a86 authored by Krzysztof Kozlowski's avatar Krzysztof Kozlowski Committed by Rob Herring
Browse files

dt-bindings: arm: samsung: Convert Exynos PMU bindings to json-schema



Convert Samsung Exynos Power Management Unit (PMU) bindings to DT schema
format using json-schema.

Signed-off-by: default avatarKrzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: default avatarRob Herring <robh@kernel.org>
parent cd392f15
Loading
Loading
Loading
Loading
+0 −72
Original line number Diff line number Diff line
SAMSUNG Exynos SoC series PMU Registers

Properties:
 - compatible : should contain two values. First value must be one from following list:
		   - "samsung,exynos3250-pmu" - for Exynos3250 SoC,
		   - "samsung,exynos4210-pmu" - for Exynos4210 SoC,
		   - "samsung,exynos4412-pmu" - for Exynos4412 SoC,
		   - "samsung,exynos5250-pmu" - for Exynos5250 SoC,
		   - "samsung,exynos5260-pmu" - for Exynos5260 SoC.
		   - "samsung,exynos5410-pmu" - for Exynos5410 SoC,
		   - "samsung,exynos5420-pmu" - for Exynos5420 SoC.
		   - "samsung,exynos5433-pmu" - for Exynos5433 SoC.
		   - "samsung,exynos7-pmu" - for Exynos7 SoC.
		second value must be always "syscon".

 - reg : offset and length of the register set.

 - #clock-cells : must be <1>, since PMU requires once cell as clock specifier.
		The single specifier cell is used as index to list of clocks
		provided by PMU, which is currently:
			0 : SoC clock output (CLKOUT pin)

 - clock-names : list of clock names for particular CLKOUT mux inputs in
		following format:
			"clkoutN", where N is a decimal number corresponding to
			CLKOUT mux control bits value for given input, e.g.
				"clkout0", "clkout7", "clkout15".

 - clocks : list of phandles and specifiers to all input clocks listed in
		clock-names property.

Optional properties:

Some PMUs are capable of behaving as an interrupt controller (mostly
to wake up a suspended PMU). In which case, they can have the
following properties:

- interrupt-controller: indicate that said PMU is an interrupt controller

- #interrupt-cells: must be identical to the that of the parent interrupt
  controller.


Optional nodes:

- nodes defining the restart and poweroff syscon children


Example :
pmu_system_controller: system-controller@10040000 {
	compatible = "samsung,exynos5250-pmu", "syscon";
	reg = <0x10040000 0x5000>;
	interrupt-controller;
	#interrupt-cells = <3>;
	interrupt-parent = <&gic>;
	#clock-cells = <1>;
	clock-names = "clkout0", "clkout1", "clkout2", "clkout3",
			"clkout4", "clkout8", "clkout9";
	clocks = <&clock CLK_OUT_DMC>, <&clock CLK_OUT_TOP>,
		<&clock CLK_OUT_LEFTBUS>, <&clock CLK_OUT_RIGHTBUS>,
		<&clock CLK_OUT_CPU>, <&clock CLK_XXTI>,
		<&clock CLK_XUSBXTI>;
};

Example of clock consumer :

usb3503: usb3503@8 {
	/* ... */
	clock-names = "refclk";
	clocks = <&pmu_system_controller 0>;
	/* ... */
};
+105 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/samsung/pmu.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Samsung Exynos SoC series Power Management Unit (PMU)

maintainers:
  - Krzysztof Kozlowski <krzk@kernel.org>

# Custom select to avoid matching all nodes with 'syscon'
select:
  properties:
    compatible:
      contains:
        enum:
          - samsung,exynos3250-pmu
          - samsung,exynos4210-pmu
          - samsung,exynos4412-pmu
          - samsung,exynos5250-pmu
          - samsung,exynos5260-pmu
          - samsung,exynos5410-pmu
          - samsung,exynos5420-pmu
          - samsung,exynos5433-pmu
          - samsung,exynos7-pmu
  required:
    - compatible

properties:
  compatible:
    items:
      - enum:
          - samsung,exynos3250-pmu
          - samsung,exynos4210-pmu
          - samsung,exynos4412-pmu
          - samsung,exynos5250-pmu
          - samsung,exynos5260-pmu
          - samsung,exynos5410-pmu
          - samsung,exynos5420-pmu
          - samsung,exynos5433-pmu
          - samsung,exynos7-pmu
      - const: syscon

  reg:
    maxItems: 1

  '#clock-cells':
    const: 1

  clock-names:
    description:
      List of clock names for particular CLKOUT mux inputs
    minItems: 1
    maxItems: 32
    items:
      pattern: '^clkout([0-9]|[12][0-9]|3[0-1])$'

  clocks:
    minItems: 1
    maxItems: 32

  interrupt-controller:
    description:
      Some PMUs are capable of behaving as an interrupt controller (mostly
      to wake up a suspended PMU).

  '#interrupt-cells':
    description:
      Must be identical to the that of the parent interrupt controller.
    const: 3

  syscon-poweroff:
    $ref: "../../power/reset/syscon-poweroff.yaml#"
    type: object
    description:
      Node for power off method

  syscon-reboot:
    $ref: "../../power/reset/syscon-reboot.yaml#"
    type: object
    description:
      Node for reboot method

required:
  - compatible
  - reg
  - '#clock-cells'
  - clock-names
  - clocks

examples:
  - |
    #include <dt-bindings/clock/exynos5250.h>

    pmu_system_controller: system-controller@10040000 {
        compatible = "samsung,exynos5250-pmu", "syscon";
        reg = <0x10040000 0x5000>;
        interrupt-controller;
        #interrupt-cells = <3>;
        interrupt-parent = <&gic>;
        #clock-cells = <1>;
        clock-names = "clkout16";
        clocks = <&clock CLK_FIN_PLL>;
    };