Skip to content

Commit dcd6832

Browse files
committed
Merge tag 'devicetree-for-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
Pull devicetree updates from Rob Herring: - Convert /reserved-memory bindings to schemas - Convert a bunch of NFC bindings to schemas - Convert bindings to schema: Xilinx USB, Freescale DDR controller, Arm CCI-400, UBlox Neo-6M, 1-Wire GPIO, MSI controller, ASpeed LPC, OMAP and Inside-Secure HWRNG, register-bit-led, OV5640, Silead GSL1680, Elan ekth3000, Marvell bluetooth, TI wlcore, TI bluetooth, ESP ESP8089, tlm,trusted-foundations, Microchip cap11xx, Ralink SoCs and boards, and TI sysc - New binding schemas for: msi-ranges, Aspeed UART routing controller, palmbus, Xylon LogiCVC display controller, Mediatek's MT7621 SDRAM memory controller, and Apple M1 PCIe host - Run schema checks for %.dtb targets - Improve build time when using DT_SCHEMA_FILES - Improve error message when dtschema is not found - Various doc reference fixes in MAINTAINERS - Convert architectures to common CPU h/w ID parsing function of_get_cpu_hwid(). - Allow for empty NUMA node IDs which may be hotplugged - Cleanup of __fdt_scan_reserved_mem() - Constify device_node parameters - Update dtc to upstream v1.6.1-19-g0a3a9d3449c8. Adds new checks 'node_name_vs_property_name' and 'interrupt_map'. - Enable dtc 'unit_address_format' warning by default - Fix unittest EXPECT text for gpio hog errors * tag 'devicetree-for-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (97 commits) dt-bindings: net: ti,bluetooth: Document default max-speed dt-bindings: pci: rcar-pci-ep: Document r8a7795 dt-bindings: net: qcom,ipa: IPA does support up to two iommus of/fdt: Remove of_scan_flat_dt() usage for __fdt_scan_reserved_mem() of: unittest: document intentional interrupt-map provider build warning of: unittest: fix EXPECT text for gpio hog errors of/unittest: Disable new dtc node_name_vs_property_name and interrupt_map warnings scripts/dtc: Update to upstream version v1.6.1-19-g0a3a9d3449c8 dt-bindings: arm: firmware: tlm,trusted-foundations: Convert txt bindings to yaml dt-bindings: display: tilcd: Fix endpoint addressing in example dt-bindings: input: microchip,cap11xx: Convert txt bindings to yaml dt-bindings: ufs: exynos-ufs: add exynosautov9 compatible dt-bindings: ufs: exynos-ufs: add io-coherency property dt-bindings: mips: convert Ralink SoCs and boards to schema dt-bindings: display: xilinx: Fix example with psgtr dt-bindings: net: nfc: nxp,pn544: Convert txt bindings to yaml dt-bindings: Add a help message when dtschema tools are missing dt-bindings: bus: ti-sysc: Update to use yaml binding dt-bindings: sram: Allow numbers in sram region node name dt-bindings: display: Document the Xylon LogiCVC display controller ...
2 parents 624ad33 + 4c7a7d5 commit dcd6832

File tree

132 files changed

+4301
-2251
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

132 files changed

+4301
-2251
lines changed

Documentation/admin-guide/ramoops.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ Setting the ramoops parameters can be done in several different manners:
6969
mem=128M ramoops.mem_address=0x8000000 ramoops.ecc=1
7070

7171
B. Use Device Tree bindings, as described in
72-
``Documentation/devicetree/bindings/reserved-memory/ramoops.txt``.
72+
``Documentation/devicetree/bindings/reserved-memory/ramoops.yaml``.
7373
For example::
7474

7575
reserved-memory {

Documentation/devicetree/bindings/Makefile

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@ DT_SCHEMA_MIN_VERSION = 2021.2.1
99

1010
PHONY += check_dtschema_version
1111
check_dtschema_version:
12+
@which $(DT_DOC_CHECKER) >/dev/null || \
13+
{ echo "Error: '$(DT_DOC_CHECKER)' not found!" >&2; \
14+
echo "Ensure dtschema python package is installed and in your PATH." >&2; \
15+
echo "Current PATH is:" >&2; \
16+
echo "$$PATH" >&2; false; }
1217
@{ echo $(DT_SCHEMA_MIN_VERSION); \
1318
$(DT_DOC_CHECKER) --version 2>/dev/null || echo 0; } | sort -Vc >/dev/null || \
1419
{ echo "ERROR: dtschema minimum version is v$(DT_SCHEMA_MIN_VERSION)" >&2; false; }
@@ -22,13 +27,20 @@ $(obj)/%.example.dts: $(src)/%.yaml check_dtschema_version FORCE
2227
# Use full schemas when checking %.example.dts
2328
DT_TMP_SCHEMA := $(obj)/processed-schema-examples.json
2429

25-
find_cmd = find $(srctree)/$(src) \( -name '*.yaml' ! \
30+
find_all_cmd = find $(srctree)/$(src) \( -name '*.yaml' ! \
2631
-name 'processed-schema*' ! \
2732
-name '*.example.dt.yaml' \)
2833

34+
ifeq ($(DT_SCHEMA_FILES),)
35+
find_cmd = $(find_all_cmd)
36+
else
37+
find_cmd = echo $(addprefix $(srctree)/, $(DT_SCHEMA_FILES))
38+
endif
39+
2940
quiet_cmd_yamllint = LINT $(src)
3041
cmd_yamllint = ($(find_cmd) | \
31-
xargs $(DT_SCHEMA_LINT) -f parsable -c $(srctree)/$(src)/.yamllint >&2) || true
42+
xargs -n200 -P$$(nproc) \
43+
$(DT_SCHEMA_LINT) -f parsable -c $(srctree)/$(src)/.yamllint >&2) || true
3244

3345
quiet_cmd_chk_bindings = CHKDT $@
3446
cmd_chk_bindings = ($(find_cmd) | \
@@ -38,7 +50,7 @@ quiet_cmd_mk_schema = SCHEMA $@
3850
cmd_mk_schema = f=$$(mktemp) ; \
3951
$(if $(DT_MK_SCHEMA_FLAGS), \
4052
printf '%s\n' $(real-prereqs), \
41-
$(find_cmd)) > $$f ; \
53+
$(find_all_cmd)) > $$f ; \
4254
$(DT_MK_SCHEMA) -j $(DT_MK_SCHEMA_FLAGS) @$$f > $@ ; \
4355
rm -f $$f
4456

@@ -48,7 +60,7 @@ define rule_chkdt
4860
$(call cmd,mk_schema)
4961
endef
5062

51-
DT_DOCS = $(patsubst $(srctree)/%,%,$(shell $(find_cmd)))
63+
DT_DOCS = $(patsubst $(srctree)/%,%,$(shell $(find_all_cmd)))
5264

5365
override DTC_FLAGS := \
5466
-Wno-avoid_unnecessary_addr_size \
Lines changed: 216 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,216 @@
1+
# SPDX-License-Identifier: GPL-2.0
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/arm/arm,cci-400.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: ARM CCI Cache Coherent Interconnect Device Tree Binding
8+
9+
maintainers:
10+
- Lorenzo Pieralisi <[email protected]>
11+
12+
description: >
13+
ARM multi-cluster systems maintain intra-cluster coherency through a cache
14+
coherent interconnect (CCI) that is capable of monitoring bus transactions
15+
and manage coherency, TLB invalidations and memory barriers.
16+
17+
It allows snooping and distributed virtual memory message broadcast across
18+
clusters, through memory mapped interface, with a global control register
19+
space and multiple sets of interface control registers, one per slave
20+
interface.
21+
22+
properties:
23+
$nodename:
24+
pattern: "^cci(@[0-9a-f]+)?$"
25+
26+
compatible:
27+
enum:
28+
- arm,cci-400
29+
- arm,cci-500
30+
- arm,cci-550
31+
32+
reg:
33+
maxItems: 1
34+
description: >
35+
Specifies base physical address of CCI control registers common to all
36+
interfaces.
37+
38+
"#address-cells": true
39+
"#size-cells": true
40+
ranges: true
41+
42+
patternProperties:
43+
"^slave-if@[0-9a-f]+$":
44+
type: object
45+
46+
properties:
47+
compatible:
48+
const: arm,cci-400-ctrl-if
49+
50+
interface-type:
51+
enum:
52+
- ace
53+
- ace-lite
54+
55+
reg:
56+
maxItems: 1
57+
58+
required:
59+
- compatible
60+
- interface-type
61+
- reg
62+
63+
additionalProperties: false
64+
65+
"^pmu@[0-9a-f]+$":
66+
type: object
67+
68+
properties:
69+
compatible:
70+
oneOf:
71+
- const: arm,cci-400-pmu,r0
72+
- const: arm,cci-400-pmu,r1
73+
- const: arm,cci-400-pmu
74+
deprecated: true
75+
description: >
76+
Permitted only where OS has secure access to CCI registers
77+
- const: arm,cci-500-pmu,r0
78+
- const: arm,cci-550-pmu,r0
79+
80+
interrupts:
81+
minItems: 1
82+
maxItems: 8
83+
description: >
84+
List of counter overflow interrupts, one per counter. The interrupts
85+
must be specified starting with the cycle counter overflow interrupt,
86+
followed by counter0 overflow interrupt, counter1 overflow
87+
interrupt,... ,counterN overflow interrupt.
88+
89+
The CCI PMU has an interrupt signal for each counter. The number of
90+
interrupts must be equal to the number of counters.
91+
92+
reg:
93+
maxItems: 1
94+
95+
required:
96+
- compatible
97+
- interrupts
98+
- reg
99+
100+
additionalProperties: false
101+
102+
required:
103+
- "#address-cells"
104+
- "#size-cells"
105+
- compatible
106+
- ranges
107+
- reg
108+
109+
additionalProperties: false
110+
111+
examples:
112+
- |
113+
/ {
114+
#address-cells = <2>;
115+
#size-cells = <2>;
116+
117+
compatible = "arm,vexpress,v2p-ca15_a7", "arm,vexpress";
118+
model = "V2P-CA15_CA7";
119+
arm,hbi = <0x249>;
120+
interrupt-parent = <&gic>;
121+
122+
/*
123+
* This CCI node corresponds to a CCI component whose control
124+
* registers sits at address 0x000000002c090000.
125+
*
126+
* CCI slave interface @0x000000002c091000 is connected to dma
127+
* controller dma0.
128+
*
129+
* CCI slave interface @0x000000002c094000 is connected to CPUs
130+
* {CPU0, CPU1};
131+
*
132+
* CCI slave interface @0x000000002c095000 is connected to CPUs
133+
* {CPU2, CPU3};
134+
*/
135+
136+
cpus {
137+
#size-cells = <0>;
138+
#address-cells = <1>;
139+
140+
CPU0: cpu@0 {
141+
device_type = "cpu";
142+
compatible = "arm,cortex-a15";
143+
cci-control-port = <&cci_control1>;
144+
reg = <0x0>;
145+
};
146+
147+
CPU1: cpu@1 {
148+
device_type = "cpu";
149+
compatible = "arm,cortex-a15";
150+
cci-control-port = <&cci_control1>;
151+
reg = <0x1>;
152+
};
153+
154+
CPU2: cpu@100 {
155+
device_type = "cpu";
156+
compatible = "arm,cortex-a7";
157+
cci-control-port = <&cci_control2>;
158+
reg = <0x100>;
159+
};
160+
161+
CPU3: cpu@101 {
162+
device_type = "cpu";
163+
compatible = "arm,cortex-a7";
164+
cci-control-port = <&cci_control2>;
165+
reg = <0x101>;
166+
};
167+
};
168+
169+
dma0: dma@3000000 {
170+
/* compatible = "arm,pl330", "arm,primecell"; */
171+
cci-control-port = <&cci_control0>;
172+
reg = <0x0 0x3000000 0x0 0x1000>;
173+
interrupts = <10>;
174+
#dma-cells = <1>;
175+
#dma-channels = <8>;
176+
#dma-requests = <32>;
177+
};
178+
179+
cci@2c090000 {
180+
compatible = "arm,cci-400";
181+
#address-cells = <1>;
182+
#size-cells = <1>;
183+
reg = <0x0 0x2c090000 0 0x1000>;
184+
ranges = <0x0 0x0 0x2c090000 0x10000>;
185+
186+
cci_control0: slave-if@1000 {
187+
compatible = "arm,cci-400-ctrl-if";
188+
interface-type = "ace-lite";
189+
reg = <0x1000 0x1000>;
190+
};
191+
192+
cci_control1: slave-if@4000 {
193+
compatible = "arm,cci-400-ctrl-if";
194+
interface-type = "ace";
195+
reg = <0x4000 0x1000>;
196+
};
197+
198+
cci_control2: slave-if@5000 {
199+
compatible = "arm,cci-400-ctrl-if";
200+
interface-type = "ace";
201+
reg = <0x5000 0x1000>;
202+
};
203+
204+
pmu@9000 {
205+
compatible = "arm,cci-400-pmu";
206+
reg = <0x9000 0x5000>;
207+
interrupts = <0 101 4>,
208+
<0 102 4>,
209+
<0 103 4>,
210+
<0 104 4>,
211+
<0 105 4>;
212+
};
213+
};
214+
};
215+
216+
...

Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml

Lines changed: 27 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -119,22 +119,6 @@ properties:
119119
- const: arm,foundation-aarch64
120120
- const: arm,vexpress
121121

122-
arm,hbi:
123-
$ref: '/schemas/types.yaml#/definitions/uint32'
124-
description: This indicates the ARM HBI (Hardware Board ID), this is
125-
ARM's unique board model ID, visible on the PCB's silkscreen.
126-
127-
arm,vexpress,site:
128-
description: As Versatile Express can be configured in number of physically
129-
different setups, the device tree should describe platform topology.
130-
For this reason the root node and main motherboard node must define this
131-
property, describing the physical location of the children nodes.
132-
0 means motherboard site, while 1 and 2 are daughterboard sites, and
133-
0xf means "sisterboard" which is the site containing the main CPU tile.
134-
$ref: '/schemas/types.yaml#/definitions/uint32'
135-
minimum: 0
136-
maximum: 15
137-
138122
arm,vexpress,position:
139123
description: When daughterboards are stacked on one site, their position
140124
in the stack be be described this attribute.
@@ -154,9 +138,9 @@ patternProperties:
154138
description: Static Memory Bus (SMB) node, if this exists it describes
155139
the connection between the motherboard and any tiles. Sometimes the
156140
compatible is placed directly under this node, sometimes it is placed
157-
in a subnode named "motherboard". Sometimes the compatible includes
141+
in a subnode named "motherboard-bus". Sometimes the compatible includes
158142
"arm,vexpress,v2?-p1" sometimes (on software models) is is just
159-
"simple-bus". If the compatible is placed in the "motherboard" node,
143+
"simple-bus". If the compatible is placed in the "motherboard-bus" node,
160144
it is stricter and always has two compatibles.
161145
type: object
162146
$ref: '/schemas/simple-bus.yaml'
@@ -170,7 +154,9 @@ patternProperties:
170154
- arm,vexpress,v2p-p1
171155
- const: simple-bus
172156
- const: simple-bus
173-
motherboard:
157+
158+
patternProperties:
159+
'^motherboard-bus@':
174160
type: object
175161
description: The motherboard description provides a single "motherboard"
176162
node using 2 address cells corresponding to the Static Memory Bus
@@ -183,6 +169,8 @@ patternProperties:
183169
const: 2
184170
"#size-cells":
185171
const: 1
172+
ranges: true
173+
186174
compatible:
187175
items:
188176
- enum:
@@ -196,8 +184,28 @@ patternProperties:
196184
- rs1
197185
- rs2
198186

187+
arm,hbi:
188+
$ref: '/schemas/types.yaml#/definitions/uint32'
189+
description: This indicates the ARM HBI (Hardware Board ID), this is
190+
ARM's unique board model ID, visible on the PCB's silkscreen.
191+
192+
arm,vexpress,site:
193+
description: As Versatile Express can be configured in number of physically
194+
different setups, the device tree should describe platform topology.
195+
For this reason the root node and main motherboard node must define this
196+
property, describing the physical location of the children nodes.
197+
0 means motherboard site, while 1 and 2 are daughterboard sites, and
198+
0xf means "sisterboard" which is the site containing the main CPU tile.
199+
$ref: '/schemas/types.yaml#/definitions/uint32'
200+
minimum: 0
201+
maximum: 15
202+
199203
required:
200204
- compatible
205+
206+
additionalProperties:
207+
type: object
208+
201209
required:
202210
- compatible
203211

0 commit comments

Comments
 (0)