Commit 4260ddfb authored by Christian Marangi's avatar Christian Marangi Committed by Bjorn Andersson
Browse files

dt-bindings: arm: msm: Convert and split kpss-acc driver Documentation to yaml



Convert kpss-acc driver Documentation to yaml.
The original Documentation was wrong all along. Fix it while we are
converting it.
The example was wrong as kpss-acc-v2 should only expose the regs but we
don't have any driver that expose additional clocks. The kpss-acc driver
is only specific to v1. For this exact reason, split the Documentation
to 2 different schema, v1 as clock-controller and v2 for
power-manager as per msm-3.10 specification, the exposed regs handle
power manager.

Signed-off-by: default avatarChristian Marangi <ansuelsmth@gmail.com>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarBjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230116204751.23045-3-ansuelsmth@gmail.com
parent 377c0b46
Loading
Loading
Loading
Loading
+0 −49
Original line number Original line Diff line number Diff line
Krait Processor Sub-system (KPSS) Application Clock Controller (ACC)

The KPSS ACC provides clock, power domain, and reset control to a Krait CPU.
There is one ACC register region per CPU within the KPSS remapped region as
well as an alias register region that remaps accesses to the ACC associated
with the CPU accessing the region.

PROPERTIES

- compatible:
	Usage: required
	Value type: <string>
	Definition: should be one of:
			"qcom,kpss-acc-v1"
			"qcom,kpss-acc-v2"

- reg:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: the first element specifies the base address and size of
		    the register region. An optional second element specifies
		    the base address and size of the alias register region.

- clocks:
        Usage: required
        Value type: <prop-encoded-array>
        Definition: reference to the pll parents.

- clock-names:
        Usage: required
        Value type: <stringlist>
        Definition: must be "pll8_vote", "pxo".

- clock-output-names:
	Usage: optional
	Value type: <string>
	Definition: Name of the output clock. Typically acpuX_aux where X is a
		    CPU number starting at 0.

Example:

	clock-controller@2088000 {
		compatible = "qcom,kpss-acc-v2";
		reg = <0x02088000 0x1000>,
		      <0x02008000 0x1000>;
		clocks = <&gcc PLL8_VOTE>, <&gcc PXO_SRC>;
		clock-names = "pll8_vote", "pxo";
		clock-output-names = "acpu0_aux";
	};
+72 −0
Original line number Original line 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/qcom,kpss-acc-v1.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Krait Processor Sub-system (KPSS) Application Clock Controller (ACC) v1

maintainers:
  - Christian Marangi <ansuelsmth@gmail.com>

description:
  The KPSS ACC provides clock, power domain, and reset control to a Krait CPU.
  There is one ACC register region per CPU within the KPSS remapped region as
  well as an alias register region that remaps accesses to the ACC associated
  with the CPU accessing the region. ACC v1 is currently used as a
  clock-controller for enabling the cpu and hanling the aux clocks.

properties:
  compatible:
    const: qcom,kpss-acc-v1

  reg:
    items:
      - description: Base address and size of the register region
      - description: Optional base address and size of the alias register region
    minItems: 1

  clocks:
    minItems: 2
    maxItems: 2

  clock-names:
    items:
      - const: pll8_vote
      - const: pxo

  clock-output-names:
    description: Name of the aux clock. Krait can have at most 4 cpu.
    enum:
      - acpu0_aux
      - acpu1_aux
      - acpu2_aux
      - acpu3_aux

  '#clock-cells':
    const: 0

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

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/qcom,gcc-ipq806x.h>

    clock-controller@2088000 {
      compatible = "qcom,kpss-acc-v1";
      reg = <0x02088000 0x1000>, <0x02008000 0x1000>;
      clocks = <&gcc PLL8_VOTE>, <&pxo_board>;
      clock-names = "pll8_vote", "pxo";
      clock-output-names = "acpu0_aux";
      #clock-cells = <0>;
    };

...
+42 −0
Original line number Original line Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/power/qcom,kpss-acc-v2.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Krait Processor Sub-system (KPSS) Application Clock Controller (ACC) v2

maintainers:
  - Christian Marangi <ansuelsmth@gmail.com>

description:
  The KPSS ACC provides clock, power manager, and reset control to a Krait CPU.
  There is one ACC register region per CPU within the KPSS remapped region as
  well as an alias register region that remaps accesses to the ACC associated
  with the CPU accessing the region. ACC v2 is currently used as a
  power-manager for enabling the cpu.

properties:
  compatible:
    const: qcom,kpss-acc-v2

  reg:
    items:
      - description: Base address and size of the register region
      - description: Optional base address and size of the alias register region
    minItems: 1

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    power-manager@f9088000 {
      compatible = "qcom,kpss-acc-v2";
      reg = <0xf9088000 0x1000>,
            <0xf9008000 0x1000>;
    };
...