linux/Documentation/devicetree/bindings/mfd/allwinner,sun6i-a31-prcm.yaml
Krzysztof Kozlowski 3555d80d46 dt-bindings: mfd: allwinner,sun6i-a31-prcm: Use hyphens in node names
Underscores should not be used in node names (dtc with W=2 warns about
them), so replace them with hyphens.  This should have no impact on
known users: Linux MFD driver does not care about children node names.
DTS was already adjusted in commit 0f47ef3ff1 ("arm: dts: allwinner: drop
underscore in node names"), so without this change, we observe
dtbs_check warnings:

  sun6i-a31s-colorfly-e708-q1.dtb: prcm@1f01400: 'ahb0-clk', 'apb0-clk', 'apb0-gates-clk', 'apb0-rst', 'ar100-clk', 'ir-clk' do not match any of the regexes: '^.*_(clk|rst)$', 'pinctrl-[0-9]+'

Reported-by: Rob Herring <robh@kernel.org>
Closes: https://lore.kernel.org/all/CAL_JsqJfT-jui5P56CO4Fr37kr5iNN8dpxt8ecKeFmdVGnRYbA@mail.gmail.com/
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://lore.kernel.org/r/20240424045521.31857-1-krzysztof.kozlowski@linaro.org
Signed-off-by: Lee Jones <lee@kernel.org>
2024-05-10 15:39:17 +01:00

223 lines
5.0 KiB
YAML

# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/mfd/allwinner,sun6i-a31-prcm.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Allwinner A31 PRCM
maintainers:
- Chen-Yu Tsai <wens@csie.org>
- Maxime Ripard <mripard@kernel.org>
deprecated: true
properties:
compatible:
const: allwinner,sun6i-a31-prcm
reg:
maxItems: 1
patternProperties:
"^.*-(clk|rst)$":
type: object
unevaluatedProperties: false
properties:
compatible:
enum:
- allwinner,sun4i-a10-mod0-clk
- allwinner,sun6i-a31-apb0-clk
- allwinner,sun6i-a31-apb0-gates-clk
- allwinner,sun6i-a31-ar100-clk
- allwinner,sun6i-a31-clock-reset
- fixed-factor-clock
required:
- compatible
allOf:
- if:
properties:
compatible:
contains:
const: fixed-factor-clock
then:
$ref: /schemas/clock/fixed-factor-clock.yaml#
- if:
properties:
compatible:
contains:
const: allwinner,sun4i-a10-mod0-clk
then:
properties:
"#clock-cells":
const: 0
clocks:
maxItems: 2
clock-output-names:
maxItems: 1
required:
- "#clock-cells"
- clocks
- clock-output-names
- if:
properties:
compatible:
contains:
const: allwinner,sun6i-a31-apb0-clk
then:
properties:
"#clock-cells":
const: 0
clocks:
maxItems: 1
clock-output-names:
maxItems: 1
required:
- "#clock-cells"
- clocks
- clock-output-names
- if:
properties:
compatible:
contains:
const: allwinner,sun6i-a31-apb0-gates-clk
then:
properties:
"#clock-cells":
const: 1
description: >
This additional argument passed to that clock is the
offset of the bit controlling this particular gate in
the register.
clocks:
maxItems: 1
clock-output-names:
minItems: 1
maxItems: 32
required:
- "#clock-cells"
- clocks
- clock-output-names
- if:
properties:
compatible:
contains:
const: allwinner,sun6i-a31-ar100-clk
then:
properties:
"#clock-cells":
const: 0
clocks:
maxItems: 4
description: >
The parent order must match the hardware programming
order.
clock-output-names:
maxItems: 1
required:
- "#clock-cells"
- clocks
- clock-output-names
- if:
properties:
compatible:
contains:
const: allwinner,sun6i-a31-clock-reset
then:
properties:
"#reset-cells":
const: 1
required:
- "#reset-cells"
required:
- compatible
- reg
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/sun6i-a31-ccu.h>
prcm@1f01400 {
compatible = "allwinner,sun6i-a31-prcm";
reg = <0x01f01400 0x200>;
ar100: ar100-clk {
compatible = "allwinner,sun6i-a31-ar100-clk";
#clock-cells = <0>;
clocks = <&rtc 0>, <&osc24M>,
<&ccu CLK_PLL_PERIPH>,
<&ccu CLK_PLL_PERIPH>;
clock-output-names = "ar100";
};
ahb0: ahb0-clk {
compatible = "fixed-factor-clock";
#clock-cells = <0>;
clock-div = <1>;
clock-mult = <1>;
clocks = <&ar100>;
clock-output-names = "ahb0";
};
apb0: apb0-clk {
compatible = "allwinner,sun6i-a31-apb0-clk";
#clock-cells = <0>;
clocks = <&ahb0>;
clock-output-names = "apb0";
};
apb0_gates: apb0-gates-clk {
compatible = "allwinner,sun6i-a31-apb0-gates-clk";
#clock-cells = <1>;
clocks = <&apb0>;
clock-output-names = "apb0_pio", "apb0_ir",
"apb0_timer", "apb0_p2wi",
"apb0_uart", "apb0_1wire",
"apb0_i2c";
};
ir_clk: ir-clk {
#clock-cells = <0>;
compatible = "allwinner,sun4i-a10-mod0-clk";
clocks = <&rtc 0>, <&osc24M>;
clock-output-names = "ir";
};
apb0_rst: apb0-rst {
compatible = "allwinner,sun6i-a31-clock-reset";
#reset-cells = <1>;
};
};
...