Skip to content

Commit f97b043

Browse files
krzklag-linaro
authored andcommitted
dt-bindings: mfd: syscon: Split and enforce documenting MFD children
Simple syscon nodes can be documented in common syscon.yaml, however devices with simple-mfd compatible, thus with some children, should have their own schema listing these children. Such listing makes the binding specific, allows better validation (so the incorrect child would not appear in the simple-mfd node) and actually enforces repeated rule for simple-mfd devices: "simple-mfd" is only for simple devices, where the children do not depend on the parent. Currently the syscon+simple-mfd binding is quite broad and allows any child or property, thus above rule cannot be enforced. Split the syscon.yaml binding into: 1. Common syscon properties, used potentially by many bindings. 2. Simple syscon devices (NO simple-mfd!). Signed-off-by: Krzysztof Kozlowski <[email protected]> Reviewed-by: Conor Dooley <[email protected]> Reviewed-by: Rob Herring (Arm) <[email protected]> Reviewed-by: AngeloGioacchino Del Regno <[email protected]> Link: https://lore.kernel.org/r/20240627-dt-bindings-mfd-syscon-split-v4-6-dc6699a9f3e4@linaro.org Signed-off-by: Lee Jones <[email protected]>
1 parent f111213 commit f97b043

File tree

2 files changed

+252
-116
lines changed

2 files changed

+252
-116
lines changed
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# SPDX-License-Identifier: GPL-2.0
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/mfd/syscon-common.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: System Controller Registers R/W Common Properties
8+
9+
description:
10+
System controller node represents a register region containing a set
11+
of miscellaneous registers. The registers are not cohesive enough to
12+
represent as any specific type of device. The typical use-case is
13+
for some other node's driver, or platform-specific code, to acquire
14+
a reference to the syscon node (e.g. by phandle, node path, or
15+
search using a specific compatible value), interrogate the node (or
16+
associated OS driver) to determine the location of the registers,
17+
and access the registers directly.
18+
19+
maintainers:
20+
- Lee Jones <[email protected]>
21+
22+
select:
23+
properties:
24+
compatible:
25+
contains:
26+
const: syscon
27+
28+
required:
29+
- compatible
30+
31+
properties:
32+
compatible:
33+
contains:
34+
const: syscon
35+
minItems: 2
36+
maxItems: 5 # Should be enough
37+
38+
reg:
39+
maxItems: 1
40+
41+
reg-io-width:
42+
description:
43+
The size (in bytes) of the IO accesses that should be performed
44+
on the device.
45+
enum: [1, 2, 4, 8]
46+
47+
required:
48+
- compatible
49+
- reg
50+
51+
allOf:
52+
- if:
53+
properties:
54+
compatible:
55+
contains:
56+
const: simple-mfd
57+
then:
58+
properties:
59+
compatible:
60+
minItems: 3
61+
maxItems: 5
62+
63+
additionalProperties: true
64+
65+
examples:
66+
- |
67+
syscon: syscon@1c00000 {
68+
compatible = "allwinner,sun8i-h3-system-controller", "syscon";
69+
reg = <0x01c00000 0x1000>;
70+
};
71+
...

0 commit comments

Comments
 (0)