Commit db469084 authored by Stanislav Jakubek's avatar Stanislav Jakubek Committed by Stephen Boyd
Browse files

dt-bindings: clock: sprd,sc9860-clk: convert to YAML



Convert the Spreadtrum SC9860 clock bindings to DT schema.

Signed-off-by: default avatarStanislav Jakubek <stano.jakubek@gmail.com>
Link: https://lore.kernel.org/r/ZobghvwZAyMjl4eB@standask-GA-A55M-S2HP


Reviewed-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: default avatarStephen Boyd <sboyd@kernel.org>
parent 0d796569
Loading
Loading
Loading
Loading
+0 −63
Original line number Diff line number Diff line
Spreadtrum SC9860 Clock Binding
------------------------

Required properties:
- compatible: should contain the following compatible strings:
	- "sprd,sc9860-pmu-gate"
	- "sprd,sc9860-pll"
	- "sprd,sc9860-ap-clk"
	- "sprd,sc9860-aon-prediv"
	- "sprd,sc9860-apahb-gate"
	- "sprd,sc9860-aon-gate"
	- "sprd,sc9860-aonsecure-clk"
	- "sprd,sc9860-agcp-gate"
	- "sprd,sc9860-gpu-clk"
	- "sprd,sc9860-vsp-clk"
	- "sprd,sc9860-vsp-gate"
	- "sprd,sc9860-cam-clk"
	- "sprd,sc9860-cam-gate"
	- "sprd,sc9860-disp-clk"
	- "sprd,sc9860-disp-gate"
	- "sprd,sc9860-apapb-gate"

- #clock-cells: must be 1

- clocks : Should be the input parent clock(s) phandle for the clock, this
	   property here just simply shows which clock group the clocks'
	   parents are in, since each clk node would represent many clocks
	   which are defined in the driver.  The detailed dependency
	   relationship (i.e. how many parents and which are the parents)
	   are implemented in driver code.

Optional properties:

- reg:	Contain the registers base address and length. It must be configured
	only if no 'sprd,syscon' under the node.

- sprd,syscon: phandle to the syscon which is in the same address area with
	       the clock, and so we can get regmap for the clocks from the
	       syscon device.

Example:

	pmu_gate: pmu-gate {
		compatible = "sprd,sc9860-pmu-gate";
		sprd,syscon = <&pmu_regs>;
		clocks = <&ext_26m>;
		#clock-cells = <1>;
	};

	pll: pll {
		compatible = "sprd,sc9860-pll";
		sprd,syscon = <&ana_regs>;
		clocks = <&pmu_gate 0>;
		#clock-cells = <1>;
	};

	ap_clk: clock-controller@20000000 {
		compatible = "sprd,sc9860-ap-clk";
		reg = <0 0x20000000 0 0x400>;
		clocks = <&ext_26m>, <&pll 0>,
			 <&pmu_gate 0>;
		#clock-cells = <1>;
	};
+159 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/sprd,sc9860-clk.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Spreadtrum SC9860 clock

maintainers:
  - Orson Zhai <orsonzhai@gmail.com>
  - Baolin Wang <baolin.wang7@gmail.com>
  - Chunyan Zhang <zhang.lyra@gmail.com>

properties:
  compatible:
    enum:
      - sprd,sc9860-agcp-gate
      - sprd,sc9860-aonsecure-clk
      - sprd,sc9860-aon-gate
      - sprd,sc9860-aon-prediv
      - sprd,sc9860-apahb-gate
      - sprd,sc9860-apapb-gate
      - sprd,sc9860-ap-clk
      - sprd,sc9860-cam-clk
      - sprd,sc9860-cam-gate
      - sprd,sc9860-disp-clk
      - sprd,sc9860-disp-gate
      - sprd,sc9860-gpu-clk
      - sprd,sc9860-pll
      - sprd,sc9860-pmu-gate
      - sprd,sc9860-vsp-clk
      - sprd,sc9860-vsp-gate

  reg:
    maxItems: 1

  clocks:
    minItems: 1
    maxItems: 3

  '#clock-cells':
    const: 1

  sprd,syscon:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      phandle to the syscon which is in the same address area with the
      clock, and so we can get regmap for the clocks from the syscon device

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

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - sprd,sc9860-agcp-gate
              - sprd,sc9860-aon-gate
              - sprd,sc9860-apahb-gate
              - sprd,sc9860-apapb-gate
              - sprd,sc9860-cam-gate
              - sprd,sc9860-disp-gate
              - sprd,sc9860-gpu-clk
              - sprd,sc9860-pll
              - sprd,sc9860-pmu-gate
              - sprd,sc9860-vsp-gate
    then:
      properties:
        clocks:
          maxItems: 1
  - if:
      properties:
        compatible:
          contains:
            enum:
              - sprd,sc9860-aonsecure-clk
              - sprd,sc9860-cam-clk
              - sprd,sc9860-disp-clk
              - sprd,sc9860-vsp-clk
    then:
      properties:
        clocks:
          minItems: 2
          maxItems: 2
  - if:
      properties:
        compatible:
          contains:
            enum:
              - sprd,sc9860-aon-prediv
              - sprd,sc9860-ap-clk
    then:
      properties:
        clocks:
          minItems: 3
  - if:
      properties:
        compatible:
          contains:
            enum:
              - sprd,sc9860-aonsecure-clk
              - sprd,sc9860-aon-prediv
              - sprd,sc9860-ap-clk
              - sprd,sc9860-cam-clk
              - sprd,sc9860-disp-clk
              - sprd,sc9860-gpu-clk
              - sprd,sc9860-vsp-clk
    then:
      required:
        - reg
      properties:
        sprd,syscon: false
  - if:
      properties:
        compatible:
          contains:
            enum:
              - sprd,sc9860-agcp-gate
              - sprd,sc9860-aon-gate
              - sprd,sc9860-apahb-gate
              - sprd,sc9860-apapb-gate
              - sprd,sc9860-cam-gate
              - sprd,sc9860-disp-gate
              - sprd,sc9860-pll
              - sprd,sc9860-pmu-gate
              - sprd,sc9860-vsp-gate
    then:
      required:
        - sprd,syscon
      properties:
        reg: false

additionalProperties: false

examples:
  - |
    soc {
      #address-cells = <2>;
      #size-cells = <2>;

      pmu-gate {
        compatible = "sprd,sc9860-pmu-gate";
        clocks = <&ext_26m>;
        #clock-cells = <1>;
        sprd,syscon = <&pmu_regs>;
      };

      clock-controller@20000000 {
        compatible = "sprd,sc9860-ap-clk";
        reg = <0 0x20000000 0 0x400>;
        clocks = <&ext_26m>, <&pll 0>, <&pmu_gate 0>;
        #clock-cells = <1>;
      };
    };
...