# 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 - Baolin Wang - Chunyan Zhang 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>; }; }; ...