Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'devicetree-for-6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux

Pull devicetree updates from Rob Herring:
"DT core:

- Update dtc to upstream version v1.7.2-35-g52f07dcca47c

- Add stub for of_get_next_child_with_prefix()

- Convert of_msi_map_id() callers to of_msi_xlate()

DT bindings:

- Convert multiple text board bindings to DT schema format

- Add bindings for synaptics,synaptics_i2c touchscreen controller,
innolux,n133hse-ea1 and nlt,nl12880bc20-spwg-24 displays, and NXP
vf610 reboot controller

- Add new Arm Cortex-A320/A520AE/A720AE and C1-Nano/Pro/Premium/Ultra
CPUs. Add missing Applied Micro CPU compatibles. Add pu-supply and
fsl,soc-operating-points properties for CPU nodes.

- Add QCom Glymur PDC and tegra264-agic interrupt controllers

- Add samsung,exynos8890-mali GPU to Arm Mali Midgard

- Drop Samsung S3C2410 display related bindings

- Allow separate DP lane and AUX connections in dp-connector

- Add some missing, undocumented vendor prefixes

- Add missing '#address-cells' properties in interrupt controller
bindings which dtc now warns about

- Drop duplicate socfpga-sdram-edac.txt, moxa,moxart-watchdog.txt,
fsl/mpic.txt, ti,opa362.txt, and cavium-thunder2.txt legacy text
bindings which are already covered by existing schemas.

- Various binding fixes for Mediatek platforms in mailbox, regulator,
pinctrl, timer, and display

- Drop work-around for yamllint quoting of values containing ','

- Various spelling, typo, grammar, and duplicated words fixes in DT
bindings and docs

- Add binding guidelines for defining properties at top level of
schemas, lack of node name ABI, and usage of simple-mfd"

* tag 'devicetree-for-6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (81 commits)
dt-bindings: arm: altera: Drop socfpga-sdram-edac.txt
dt-bindings: gpu: Convert nvidia,gk20a to DT schema
dt-bindings: rng: sparc_sun_oracle_rng: convert to DT schema
dt-bindings: vendor-prefixes: update regex for properties without a prefix
dt-bindings: display: bridge: convert megachips-stdpxxxx-ge-b850v3-fw.txt to yaml
scripts: dt_to_config: fix grammar and a typo in --help text
dt-bindings: fix spelling, typos, grammar, duplicated words
docs: dt: fix grammar and spelling
of: base: Add of_get_next_child_with_prefix() stub
dt-bindings: trivial-devices: Add compatible string synaptics,synaptics_i2c
dt-bindings: soc: mediatek: pwrap: Add power-domains property
dt-bindings: pinctrl: mt65xx: Allow gpio-line-names
dt-bindings: media: Convert MediaTek mt8173-vpu bindings to DT schema
dt-bindings: arm: mediatek: Support mt8183-audiosys variant
dt-bindings: mailbox: mediatek,gce-mailbox: Make clock-names optional
dt-bindings: regulator: mediatek,mt6331: Add missing compatible
dt-bindings: regulator: mediatek,mt6331: Fix various regulator names
dt-bindings: regulator: mediatek,mt6332-regulator: Add missing compatible
dt-bindings: pinctrl: mediatek,mt7622-pinctrl: Add missing base reg
dt-bindings: pinctrl: mediatek,mt7622-pinctrl: Add missing pwm_ch7_2
...

+2880 -1927
+1 -1
Documentation/devicetree/bindings/.yamllint
··· 4 4 quoted-strings: 5 5 required: only-when-needed 6 6 extra-allowed: 7 - - '[$^,[]' 7 + - '[$^[]' 8 8 - '^/$' 9 9 line-length: 10 10 # 80 chars should be enough, but don't fail if a line is longer
-15
Documentation/devicetree/bindings/arm/altera/socfpga-sdram-edac.txt
··· 1 - Altera SOCFPGA SDRAM Error Detection & Correction [EDAC] 2 - The EDAC accesses a range of registers in the SDRAM controller. 3 - 4 - Required properties: 5 - - compatible : should contain "altr,sdram-edac" or "altr,sdram-edac-a10" 6 - - altr,sdr-syscon : phandle of the sdr module 7 - - interrupts : Should contain the SDRAM ECC IRQ in the 8 - appropriate format for the IRQ controller. 9 - 10 - Example: 11 - sdramedac { 12 - compatible = "altr,sdram-edac"; 13 - altr,sdr-syscon = <&sdr>; 14 - interrupts = <0 39 4>; 15 - };
+4 -3
Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml
··· 103 103 - const: arm,juno-r2 104 104 - const: arm,juno 105 105 - const: arm,vexpress 106 - - description: Arm AEMv8a Versatile Express Real-Time System Model 107 - (VE RTSM) is a programmers view of the Versatile Express with Arm 106 + - description: Arm AEMv8a (Architecture Envelope Model) 107 + Versatile Express Real-Time System Model (VE RTSM) 108 + is a programmers view of the Versatile Express with Arm 108 109 v8A hardware. See ARM DUI 0575D. 109 110 items: 110 111 - const: arm,rtsm_ve,aemv8a ··· 140 139 the connection between the motherboard and any tiles. Sometimes the 141 140 compatible is placed directly under this node, sometimes it is placed 142 141 in a subnode named "motherboard-bus". Sometimes the compatible includes 143 - "arm,vexpress,v2?-p1" sometimes (on software models) is is just 142 + "arm,vexpress,v2?-p1" sometimes (on software models) it is just 144 143 "simple-bus". If the compatible is placed in the "motherboard-bus" node, 145 144 it is stricter and always has two compatibles. 146 145 type: object
+19
Documentation/devicetree/bindings/arm/cavium,thunder-88xx.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/arm/cavium,thunder-88xx.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Cavium Thunder 88xx SoC 8 + 9 + maintainers: 10 + - Robert Richter <rric@kernel.org> 11 + 12 + properties: 13 + $nodename: 14 + const: '/' 15 + compatible: 16 + items: 17 + - const: cavium,thunder-88xx 18 + 19 + additionalProperties: true
-10
Documentation/devicetree/bindings/arm/cavium-thunder.txt
··· 1 - Cavium Thunder platform device tree bindings 2 - -------------------------------------------- 3 - 4 - Boards with Cavium's Thunder SoC shall have following properties. 5 - 6 - Root Node 7 - --------- 8 - Required root node properties: 9 - 10 - - compatible = "cavium,thunder-88xx";
-8
Documentation/devicetree/bindings/arm/cavium-thunder2.txt
··· 1 - Cavium ThunderX2 CN99XX platform tree bindings 2 - ---------------------------------------------- 3 - 4 - Boards with Cavium ThunderX2 CN99XX SoC shall have the root property: 5 - compatible = "cavium,thunderx2-cn9900", "brcm,vulcan-soc"; 6 - 7 - These SoC uses the "cavium,thunder2" core which will be compatible 8 - with "brcm,vulcan".
+26
Documentation/devicetree/bindings/arm/cpus.yaml
··· 80 80 81 81 compatible: 82 82 enum: 83 + - apm,potenza 84 + - apm,strega 83 85 - apple,avalanche 84 86 - apple,blizzard 85 87 - apple,cyclone ··· 123 121 - arm,arm1176jzf-s 124 122 - arm,arm11mpcore 125 123 - arm,armv8 # Only for s/w models 124 + - arm,c1-nano 125 + - arm,c1-premium 126 + - arm,c1-pro 127 + - arm,c1-ultra 126 128 - arm,cortex-a5 127 129 - arm,cortex-a7 128 130 - arm,cortex-a8 ··· 149 143 - arm,cortex-a78 150 144 - arm,cortex-a78ae 151 145 - arm,cortex-a78c 146 + - arm,cortex-a320 152 147 - arm,cortex-a510 153 148 - arm,cortex-a520 149 + - arm,cortex-a520ae 154 150 - arm,cortex-a710 155 151 - arm,cortex-a715 156 152 - arm,cortex-a720 153 + - arm,cortex-a720ae 157 154 - arm,cortex-a725 158 155 - arm,cortex-m0 159 156 - arm,cortex-m0+ ··· 354 345 deprecated: true 355 346 description: Use 'cpu-supply' instead 356 347 348 + pu-supply: 349 + deprecated: true 350 + description: Only for i.MX6Q/DL/SL SoCs. 351 + 352 + soc-supply: 353 + deprecated: true 354 + description: Only for i.MX6/7 Soc. 355 + 357 356 sram-supply: 358 357 deprecated: true 359 358 description: Use 'mem-supply' instead 359 + 360 + fsl,soc-operating-points: 361 + $ref: /schemas/types.yaml#/definitions/uint32-matrix 362 + description: FSL i.MX6 Soc operation-points when change cpu frequency 363 + deprecated: true 364 + items: 365 + items: 366 + - description: Frequency in kHz 367 + - description: Voltage for OPP in uV 360 368 361 369 mediatek,cci: 362 370 $ref: /schemas/types.yaml#/definitions/phandle
+45
Documentation/devicetree/bindings/arm/marvell,berlin.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/arm/marvell,berlin.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Synaptics/Marvell Berlin SoC 8 + 9 + maintainers: 10 + - Jisheng Zhang <jszhang@kernel.org> 11 + 12 + description: 13 + According to https://www.synaptics.com/company/news/conexant-marvell 14 + Synaptics has acquired the Multimedia Solutions Business of Marvell, so 15 + Berlin SoCs are now Synaptics' SoCs. 16 + 17 + properties: 18 + $nodename: 19 + const: '/' 20 + compatible: 21 + oneOf: 22 + - items: 23 + - enum: 24 + - sony,nsz-gs7 25 + - const: marvell,berlin2 26 + - const: marvell,berlin 27 + - items: 28 + - enum: 29 + - google,chromecast 30 + - valve,steamlink 31 + - const: marvell,berlin2cd 32 + - const: marvell,berlin 33 + - items: 34 + - enum: 35 + - marvell,berlin2q-dmp 36 + - const: marvell,berlin2q 37 + - const: marvell,berlin 38 + - items: 39 + - enum: 40 + - marvell,berlin4ct-dmp 41 + - marvell,berlin4ct-stb 42 + - const: marvell,berlin4ct 43 + - const: marvell,berlin 44 + 45 + additionalProperties: true
-23
Documentation/devicetree/bindings/arm/marvell/98dx3236.txt
··· 1 - Marvell 98DX3236, 98DX3336 and 98DX4251 Platforms Device Tree Bindings 2 - ---------------------------------------------------------------------- 3 - 4 - Boards with a SoC of the Marvell 98DX3236, 98DX3336 and 98DX4251 families 5 - shall have the following property: 6 - 7 - Required root node property: 8 - 9 - compatible: must contain "marvell,armadaxp-98dx3236" 10 - 11 - In addition, boards using the Marvell 98DX3336 SoC shall have the 12 - following property: 13 - 14 - Required root node property: 15 - 16 - compatible: must contain "marvell,armadaxp-98dx3336" 17 - 18 - In addition, boards using the Marvell 98DX4251 SoC shall have the 19 - following property: 20 - 21 - Required root node property: 22 - 23 - compatible: must contain "marvell,armadaxp-98dx4251"
-39
Documentation/devicetree/bindings/arm/marvell/ap80x-system-controller.txt
··· 115 115 SYSTEM CONTROLLER 1 116 116 =================== 117 117 118 - Thermal: 119 - -------- 120 - 121 - For common binding part and usage, refer to 122 - Documentation/devicetree/bindings/thermal/thermal*.yaml 123 - 124 - The thermal IP can probe the temperature all around the processor. It 125 - may feature several channels, each of them wired to one sensor. 126 - 127 - It is possible to setup an overheat interrupt by giving at least one 128 - critical point to any subnode of the thermal-zone node. 129 - 130 - Required properties: 131 - - compatible: must be one of: 132 - * marvell,armada-ap806-thermal 133 - - reg: register range associated with the thermal functions. 134 - 135 - Optional properties: 136 - - interrupts: overheat interrupt handle. Should point to line 18 of the 137 - SEI irqchip. See interrupt-controller/interrupts.txt 138 - - #thermal-sensor-cells: shall be <1> when thermal-zones subnodes refer 139 - to this IP and represents the channel ID. There is one sensor per 140 - channel. O refers to the thermal IP internal channel, while positive 141 - IDs refer to each CPU. 142 - 143 - Example: 144 - ap_syscon1: system-controller@6f8000 { 145 - compatible = "syscon", "simple-mfd"; 146 - reg = <0x6f8000 0x1000>; 147 - 148 - ap_thermal: thermal-sensor@80 { 149 - compatible = "marvell,armada-ap806-thermal"; 150 - reg = <0x80 0x10>; 151 - interrupt-parent = <&sei>; 152 - interrupts = <18>; 153 - #thermal-sensor-cells = <1>; 154 - }; 155 - }; 156 - 157 118 Cluster clocks: 158 119 --------------- 159 120
-24
Documentation/devicetree/bindings/arm/marvell/armada-370-xp.txt
··· 1 - Marvell Armada 370 and Armada XP Platforms Device Tree Bindings 2 - --------------------------------------------------------------- 3 - 4 - Boards with a SoC of the Marvell Armada 370 and Armada XP families 5 - shall have the following property: 6 - 7 - Required root node property: 8 - 9 - compatible: must contain "marvell,armada-370-xp" 10 - 11 - In addition, boards using the Marvell Armada 370 SoC shall have the 12 - following property: 13 - 14 - Required root node property: 15 - 16 - compatible: must contain "marvell,armada370" 17 - 18 - In addition, boards using the Marvell Armada XP SoC shall have the 19 - following property: 20 - 21 - Required root node property: 22 - 23 - compatible: must contain "marvell,armadaxp" 24 -
-9
Documentation/devicetree/bindings/arm/marvell/armada-375.txt
··· 1 - Marvell Armada 375 Platforms Device Tree Bindings 2 - ------------------------------------------------- 3 - 4 - Boards with a SoC of the Marvell Armada 375 family shall have the 5 - following property: 6 - 7 - Required root node property: 8 - 9 - compatible: must contain "marvell,armada375"
-31
Documentation/devicetree/bindings/arm/marvell/armada-39x.txt
··· 1 - Marvell Armada 39x Platforms Device Tree Bindings 2 - ------------------------------------------------- 3 - 4 - Boards with a SoC of the Marvell Armada 39x family shall have the 5 - following property: 6 - 7 - Required root node property: 8 - 9 - - compatible: must contain "marvell,armada390" 10 - 11 - In addition, boards using the Marvell Armada 395 SoC shall have the 12 - following property before the common "marvell,armada390" one: 13 - 14 - Required root node property: 15 - 16 - compatible: must contain "marvell,armada395" 17 - 18 - Example: 19 - 20 - compatible = "marvell,a395-gp", "marvell,armada395", "marvell,armada390"; 21 - 22 - Boards using the Marvell Armada 398 SoC shall have the following 23 - property before the common "marvell,armada390" one: 24 - 25 - Required root node property: 26 - 27 - compatible: must contain "marvell,armada398" 28 - 29 - Example: 30 - 31 - compatible = "marvell,a398-db", "marvell,armada398", "marvell,armada390";
-43
Documentation/devicetree/bindings/arm/marvell/cp110-system-controller.txt
··· 189 189 }; 190 190 191 191 }; 192 - 193 - SYSTEM CONTROLLER 1 194 - =================== 195 - 196 - Thermal: 197 - -------- 198 - 199 - The thermal IP can probe the temperature all around the processor. It 200 - may feature several channels, each of them wired to one sensor. 201 - 202 - It is possible to setup an overheat interrupt by giving at least one 203 - critical point to any subnode of the thermal-zone node. 204 - 205 - For common binding part and usage, refer to 206 - Documentation/devicetree/bindings/thermal/thermal*.yaml 207 - 208 - Required properties: 209 - - compatible: must be one of: 210 - * marvell,armada-cp110-thermal 211 - - reg: register range associated with the thermal functions. 212 - 213 - Optional properties: 214 - - interrupts-extended: overheat interrupt handle. Should point to 215 - a line of the ICU-SEI irqchip (116 is what is usually used by the 216 - firmware). The ICU-SEI will redirect towards interrupt line #37 of the 217 - AP SEI which is shared across all CPs. 218 - See interrupt-controller/interrupts.txt 219 - - #thermal-sensor-cells: shall be <1> when thermal-zones subnodes refer 220 - to this IP and represents the channel ID. There is one sensor per 221 - channel. O refers to the thermal IP internal channel. 222 - 223 - Example: 224 - CP110_LABEL(syscon1): system-controller@6f8000 { 225 - compatible = "syscon", "simple-mfd"; 226 - reg = <0x6f8000 0x1000>; 227 - 228 - CP110_LABEL(thermal): thermal-sensor@70 { 229 - compatible = "marvell,armada-cp110-thermal"; 230 - reg = <0x70 0x10>; 231 - interrupts-extended = <&CP110_LABEL(icu_sei) 116 IRQ_TYPE_LEVEL_HIGH>; 232 - #thermal-sensor-cells = <1>; 233 - }; 234 - };
-27
Documentation/devicetree/bindings/arm/marvell/kirkwood.txt
··· 1 - Marvell Kirkwood Platforms Device Tree Bindings 2 - ----------------------------------------------- 3 - 4 - Boards with a SoC of the Marvell Kirkwood 5 - shall have the following property: 6 - 7 - Required root node property: 8 - 9 - compatible: must contain "marvell,kirkwood"; 10 - 11 - In order to support the kirkwood cpufreq driver, there must be a node 12 - cpus/cpu@0 with three clocks, "cpu_clk", "ddrclk" and "powersave", 13 - where the "powersave" clock is a gating clock used to switch the CPU 14 - between the "cpu_clk" and the "ddrclk". 15 - 16 - Example: 17 - 18 - cpus { 19 - #address-cells = <1>; 20 - #size-cells = <0>; 21 - 22 - cpu@0 { 23 - device_type = "cpu"; 24 - compatible = "marvell,sheeva-88SV131"; 25 - clocks = <&core_clk 1>, <&core_clk 3>, <&gate_clk 11>; 26 - clock-names = "cpu_clk", "ddrclk", "powersave"; 27 - };
+78
Documentation/devicetree/bindings/arm/marvell/marvell,armada-370-xp.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + --- 3 + $id: http://devicetree.org/schemas/arm/marvell/marvell,armada-370-xp.yaml# 4 + $schema: http://devicetree.org/meta-schemas/core.yaml# 5 + 6 + title: Marvell Armada 370 and Armada XP platforms 7 + 8 + maintainers: 9 + - Andrew Lunn <andrew@lunn.ch> 10 + - Gregory Clement <gregory.clement@bootlin.com> 11 + 12 + properties: 13 + $nodename: 14 + const: '/' 15 + compatible: 16 + oneOf: 17 + - items: 18 + - enum: 19 + - ctera,c200-v2 20 + - dlink,dns327l 21 + - globalscale,mirabox 22 + - netgear,readynas-102 23 + - netgear,readynas-104 24 + - marvell,a370-db 25 + - marvell,a370-rd 26 + - seagate,dart-2 27 + - seagate,dart-4 28 + - seagate,cumulus-max 29 + - seagate,cumulus 30 + - synology,ds213j 31 + - const: marvell,armada370 32 + - const: marvell,armada-370-xp 33 + 34 + - items: 35 + - enum: 36 + - mikrotik,crs305-1g-4s 37 + - mikrotik,crs326-24g-2s 38 + - mikrotik,crs328-4c-20s-4s 39 + - const: marvell,armadaxp-98dx3236 40 + - const: marvell,armada-370-xp 41 + 42 + - items: 43 + - const: marvell,db-xc3-24g4xg 44 + - const: marvell,armadaxp-98dx3336 45 + - const: marvell,armada-370-xp 46 + 47 + - items: 48 + - const: marvell,db-dxbc2 49 + - const: marvell,armadaxp-98dx4251 50 + - const: marvell,armada-370-xp 51 + 52 + - items: 53 + - enum: 54 + - lenovo,ix4-300d 55 + - linksys,mamba 56 + - marvell,rd-axpwifiap 57 + - netgear,readynas-2120 58 + - synology,ds414 59 + - const: marvell,armadaxp-mv78230 60 + - const: marvell,armadaxp 61 + - const: marvell,armada-370-xp 62 + 63 + - items: 64 + - const: plathome,openblocks-ax3-4 65 + - const: marvell,armadaxp-mv78260 66 + - const: marvell,armadaxp 67 + - const: marvell,armada-370-xp 68 + 69 + - items: 70 + - enum: 71 + - marvell,axp-db 72 + - marvell,axp-gp 73 + - marvell,axp-matrix 74 + - const: marvell,armadaxp-mv78460 75 + - const: marvell,armadaxp 76 + - const: marvell,armada-370-xp 77 + 78 + additionalProperties: true
+21
Documentation/devicetree/bindings/arm/marvell/marvell,armada375.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/arm/marvell/marvell,armada375.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Marvell Armada 375 Platform 8 + 9 + maintainers: 10 + - Andrew Lunn <andrew@lunn.ch> 11 + - Gregory Clement <gregory.clement@bootlin.com> 12 + 13 + properties: 14 + $nodename: 15 + const: '/' 16 + compatible: 17 + items: 18 + - const: marvell,a375-db 19 + - const: marvell,armada375 20 + 21 + additionalProperties: true
+32
Documentation/devicetree/bindings/arm/marvell/marvell,armada390.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/arm/marvell/marvell,armada390.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Marvell Armada 39x Platforms 8 + 9 + maintainers: 10 + - Andrew Lunn <andrew@lunn.ch> 11 + - Gregory Clement <gregory.clement@bootlin.com> 12 + 13 + properties: 14 + $nodename: 15 + const: '/' 16 + compatible: 17 + oneOf: 18 + - items: 19 + - const: marvell,a390-db 20 + - const: marvell,armada390 21 + - items: 22 + - enum: 23 + - marvell,a398-db 24 + - const: marvell,armada398 25 + - const: marvell,armada390 26 + - items: 27 + - enum: 28 + - marvell,a395-gp 29 + - const: marvell,armada395 30 + - const: marvell,armada390 31 + 32 + additionalProperties: true
-7
Documentation/devicetree/bindings/arm/marvell/marvell,dove.txt
··· 1 - Marvell Dove Platforms Device Tree Bindings 2 - ----------------------------------------------- 3 - 4 - Boards with a Marvell Dove SoC shall have the following properties: 5 - 6 - Required root node property: 7 - - compatible: must contain "marvell,dove";
+35
Documentation/devicetree/bindings/arm/marvell/marvell,dove.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/arm/marvell/marvell,dove.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Marvell Dove SoC 8 + 9 + maintainers: 10 + - Andrew Lunn <andrew@lunn.ch> 11 + - Gregory Clement <gregory.clement@bootlin.com> 12 + 13 + properties: 14 + $nodename: 15 + const: '/' 16 + compatible: 17 + oneOf: 18 + - items: 19 + - enum: 20 + - compulab,cm-a510 21 + - solidrun,cubox 22 + - globalscale,d2plug 23 + - globalscale,d3plug 24 + - marvell,dove-db 25 + - const: marvell,dove 26 + - items: 27 + - const: solidrun,cubox-es 28 + - const: solidrun,cubox 29 + - const: marvell,dove 30 + - items: 31 + - const: compulab,sbc-a510 32 + - const: compulab,cm-a510 33 + - const: marvell,dove 34 + 35 + additionalProperties: true
-105
Documentation/devicetree/bindings/arm/marvell/marvell,kirkwood.txt
··· 1 - Marvell Kirkwood SoC Family Device Tree Bindings 2 - ------------------------------------------------ 3 - 4 - Boards with a SoC of the Marvell Kirkwook family, eg 88f6281 5 - 6 - * Required root node properties: 7 - compatible: must contain "marvell,kirkwood" 8 - 9 - In addition, the above compatible shall be extended with the specific 10 - SoC. Currently known SoC compatibles are: 11 - 12 - "marvell,kirkwood-88f6192" 13 - "marvell,kirkwood-88f6281" 14 - "marvell,kirkwood-88f6282" 15 - "marvell,kirkwood-88f6283" 16 - "marvell,kirkwood-88f6702" 17 - "marvell,kirkwood-98DX4122" 18 - 19 - And in addition, the compatible shall be extended with the specific 20 - board. Currently known boards are: 21 - 22 - "buffalo,linkstation-lsqvl" 23 - "buffalo,linkstation-lsvl" 24 - "buffalo,linkstation-lswsxl" 25 - "buffalo,linkstation-lswxl" 26 - "buffalo,linkstation-lswvl" 27 - "buffalo,lschlv2" 28 - "buffalo,lsxhl" 29 - "buffalo,lsxl" 30 - "cloudengines,pogo02" 31 - "cloudengines,pogoplugv4" 32 - "dlink,dns-320" 33 - "dlink,dns-320-a1" 34 - "dlink,dns-325" 35 - "dlink,dns-325-a1" 36 - "dlink,dns-kirkwood" 37 - "excito,b3" 38 - "globalscale,dreamplug-003-ds2001" 39 - "globalscale,guruplug" 40 - "globalscale,guruplug-server-plus" 41 - "globalscale,sheevaplug" 42 - "globalscale,sheevaplug" 43 - "globalscale,sheevaplug-esata" 44 - "globalscale,sheevaplug-esata-rev13" 45 - "iom,iconnect" 46 - "iom,iconnect-1.1" 47 - "iom,ix2-200" 48 - "keymile,km_kirkwood" 49 - "lacie,cloudbox" 50 - "lacie,inetspace_v2" 51 - "lacie,laplug" 52 - "lacie,nas2big" 53 - "lacie,netspace_lite_v2" 54 - "lacie,netspace_max_v2" 55 - "lacie,netspace_mini_v2" 56 - "lacie,netspace_v2" 57 - "marvell,db-88f6281-bp" 58 - "marvell,db-88f6282-bp" 59 - "marvell,mv88f6281gtw-ge" 60 - "marvell,rd88f6281" 61 - "marvell,rd88f6281" 62 - "marvell,rd88f6281-a0" 63 - "marvell,rd88f6281-a1" 64 - "mpl,cec4" 65 - "mpl,cec4-10" 66 - "netgear,readynas" 67 - "netgear,readynas" 68 - "netgear,readynas-duo-v2" 69 - "netgear,readynas-nv+-v2" 70 - "plathome,openblocks-a6" 71 - "plathome,openblocks-a7" 72 - "raidsonic,ib-nas6210" 73 - "raidsonic,ib-nas6210-b" 74 - "raidsonic,ib-nas6220" 75 - "raidsonic,ib-nas6220-b" 76 - "raidsonic,ib-nas62x0" 77 - "seagate,dockstar" 78 - "seagate,goflexnet" 79 - "synology,ds109" 80 - "synology,ds110jv10" 81 - "synology,ds110jv20" 82 - "synology,ds110jv30" 83 - "synology,ds111" 84 - "synology,ds209" 85 - "synology,ds210jv10" 86 - "synology,ds210jv20" 87 - "synology,ds212" 88 - "synology,ds212jv10" 89 - "synology,ds212jv20" 90 - "synology,ds212pv10" 91 - "synology,ds409" 92 - "synology,ds409slim" 93 - "synology,ds410j" 94 - "synology,ds411" 95 - "synology,ds411j" 96 - "synology,ds411slim" 97 - "synology,ds413jv10" 98 - "synology,rs212" 99 - "synology,rs409" 100 - "synology,rs411" 101 - "synology,rs812" 102 - "usi,topkick" 103 - "usi,topkick-1281P2" 104 - "zyxel,nsa310" 105 - "zyxel,nsa310a"
+266
Documentation/devicetree/bindings/arm/marvell/marvell,kirkwood.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/arm/marvell/marvell,kirkwood.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Marvell Kirkwood SoC Family 8 + 9 + maintainers: 10 + - Andrew Lunn <andrew@lunn.ch> 11 + - Gregory Clement <gregory.clement@bootlin.com> 12 + 13 + properties: 14 + $nodename: 15 + const: '/' 16 + compatible: 17 + oneOf: 18 + - items: 19 + - enum: 20 + - qnap,ts219 21 + - qnap,ts419 22 + - synology,ds110 23 + - synology,ds111 24 + - synology,ds209 25 + - synology,ds409slim 26 + - synology,ds411j 27 + - synology,ds411slim 28 + - synology,rs212 29 + - synology,rs409 30 + - const: marvell,kirkwood 31 + 32 + - items: 33 + - const: synology,ds109 34 + - const: synology,ds110jv20 35 + - const: synology,ds110 36 + - const: marvell,kirkwood 37 + 38 + - items: 39 + - const: synology,ds110jv10 40 + - const: synology,ds110jv30 41 + - const: marvell,kirkwood 42 + 43 + - items: 44 + - const: synology,ds210jv10 45 + - const: synology,ds210jv20 46 + - const: synology,ds210jv30 47 + - const: synology,ds211j 48 + - const: marvell,kirkwood 49 + 50 + - items: 51 + - const: synology,ds212jv10 52 + - const: synology,ds212jv20 53 + - const: marvell,kirkwood 54 + 55 + - items: 56 + - const: synology,ds212 57 + - const: synology,ds212pv10 58 + - const: synology,ds212pv10 59 + - const: synology,ds212pv20 60 + - const: synology,ds213airv10 61 + - const: synology,ds213v10 62 + - const: marvell,kirkwood 63 + 64 + - items: 65 + - const: synology,ds409 66 + - const: synology,ds410j 67 + - const: marvell,kirkwood 68 + 69 + - items: 70 + - const: synology,ds411 71 + - const: synology,ds413jv10 72 + - const: marvell,kirkwood 73 + 74 + - items: 75 + - const: synology,rs411 76 + - const: synology,rs812 77 + - const: marvell,kirkwood 78 + 79 + - items: 80 + - enum: 81 + - cloudengines,pogoplugv4 82 + - lacie,laplug 83 + - lacie,netspace_lite_v2 84 + - lacie,netspace_mini_v2 85 + - marvell,rd88f6192 86 + - seagate,blackarmor-nas220 87 + - enum: 88 + - marvell,kirkwood-88f6192 89 + - const: marvell,kirkwood 90 + 91 + - items: 92 + - enum: 93 + - buffalo,lswsxl 94 + - buffalo,lswxl 95 + - checkpoint,l-50 96 + - cloudengines,pogoe02 97 + - ctera,c200-v1 98 + - dlink,dir-665 99 + - endian,4i-edge-200 100 + - excito,b3 101 + - globalscale,sheevaplug 102 + - hp,t5325 103 + - iom,ix2-200 104 + - lacie,inetspace_v2 105 + - lacie,netspace_v2 106 + - lacie,netspace_max_v2 107 + - marvell,db-88f6281-bp 108 + - marvell,mv88f6281gtw-ge 109 + - seagate,dockstar 110 + - seagate,goflexnet 111 + - zyxel,nsa310 112 + - zyxel,nsa320 113 + - const: marvell,kirkwood-88f6281 114 + - const: marvell,kirkwood 115 + 116 + - items: 117 + - enum: 118 + - buffalo,lschlv2 119 + - buffalo,lsxhl 120 + - const: buffalo,lsxl 121 + - const: marvell,kirkwood-88f6281 122 + - const: marvell,kirkwood 123 + 124 + - items: 125 + - const: dlink,dns-320-a1 126 + - const: dlink,dns-320 127 + - const: dlink,dns-kirkwood 128 + - const: marvell,kirkwood-88f6281 129 + - const: marvell,kirkwood 130 + 131 + - items: 132 + - const: dlink,dns-325-a1 133 + - const: dlink,dns-325 134 + - const: dlink,dns-kirkwood 135 + - const: marvell,kirkwood-88f6281 136 + - const: marvell,kirkwood 137 + 138 + - items: 139 + - const: globalscale,dreamplug-003-ds2001 140 + - const: globalscale,dreamplug 141 + - const: marvell,kirkwood-88f6281 142 + - const: marvell,kirkwood 143 + 144 + - items: 145 + - const: globalscale,guruplug-server-plus 146 + - const: globalscale,guruplug 147 + - const: marvell,kirkwood-88f6281 148 + - const: marvell,kirkwood 149 + 150 + - items: 151 + - const: globalscale,sheevaplug-esata-rev13 152 + - const: globalscale,sheevaplug-esata 153 + - const: globalscale,sheevaplug 154 + - const: marvell,kirkwood-88f6281 155 + - const: marvell,kirkwood 156 + 157 + - items: 158 + - const: iom,iconnect-1.1 159 + - const: iom,iconnect 160 + - const: marvell,kirkwood-88f6281 161 + - const: marvell,kirkwood 162 + 163 + - items: 164 + - const: lacie,d2net_v2 165 + - const: lacie,netxbig 166 + - const: marvell,kirkwood-88f6281 167 + - const: marvell,kirkwood 168 + - items: 169 + - enum: 170 + - lacie,net2big_v2 171 + - lacie,net5big_v2 172 + - const: lacie,netxbig 173 + - const: marvell,kirkwood-88f6281 174 + - const: marvell,kirkwood 175 + 176 + - items: 177 + - enum: 178 + - marvell,openrd-base 179 + - marvell,openrd-client 180 + - marvell,openrd-ultimate 181 + - const: marvell,openrd 182 + - const: marvell,kirkwood-88f6281 183 + - const: marvell,kirkwood 184 + 185 + - items: 186 + - enum: 187 + - marvell,rd88f6281-a 188 + - marvell,rd88f6281-z0 189 + - const: marvell,rd88f6281 190 + - const: marvell,kirkwood-88f6281 191 + - const: marvell,kirkwood 192 + 193 + - items: 194 + - const: mpl,cec4-10 195 + - const: mpl,cec4 196 + - const: marvell,kirkwood-88f6281 197 + - const: marvell,kirkwood 198 + 199 + - items: 200 + - const: raidsonic,ib-nas6210-b 201 + - const: raidsonic,ib-nas6220-b 202 + - const: raidsonic,ib-nas6210 203 + - const: raidsonic,ib-nas6220 204 + - const: raidsonic,ib-nas62x0 205 + - const: marvell,kirkwood-88f6281 206 + - const: marvell,kirkwood 207 + 208 + - items: 209 + - const: zyxel,nsa310a 210 + - const: zyxel,nsa310 211 + - const: marvell,kirkwood-88f6281 212 + - const: marvell,kirkwood 213 + 214 + - items: 215 + - enum: 216 + - buffalo,lsqvl 217 + - buffalo,lsvl 218 + - buffalo,lswvl 219 + - linksys,viper 220 + - marvell,db-88f6282-bp 221 + - zyxel,nsa325 222 + - const: marvell,kirkwood-88f6282 223 + - const: marvell,kirkwood 224 + 225 + - items: 226 + - const: lacie,nas2big 227 + - const: lacie,netxbig 228 + - const: marvell,kirkwood-88f6282 229 + - const: marvell,kirkwood 230 + 231 + - items: 232 + - enum: 233 + - netgear,readynas-duo-v2 234 + - netgear,readynas-nv+-v2 235 + - const: netgear,readynas 236 + - const: marvell,kirkwood-88f6282 237 + - const: marvell,kirkwood 238 + 239 + - items: 240 + - const: usi,topkick-1281P2 241 + - const: usi,topkick 242 + - const: marvell,kirkwood-88f6282 243 + - const: marvell,kirkwood 244 + 245 + - items: 246 + - enum: 247 + - plathome,openblocks-a6 248 + - plathome,openblocks-a7 249 + - const: marvell,kirkwood-88f6283 250 + - const: marvell,kirkwood 251 + 252 + - items: 253 + - enum: 254 + - lacie,cloudbox 255 + - zyxel,nsa310s 256 + - const: marvell,kirkwood-88f6702 257 + - const: marvell,kirkwood 258 + 259 + - items: 260 + - enum: 261 + - keymile,km_fixedeth 262 + - keymile,km_kirkwood 263 + - const: marvell,kirkwood-98DX4122 264 + - const: marvell,kirkwood 265 + 266 + additionalProperties: true
-25
Documentation/devicetree/bindings/arm/marvell/marvell,orion5x.txt
··· 1 - Marvell Orion SoC Family Device Tree Bindings 2 - --------------------------------------------- 3 - 4 - Boards with a SoC of the Marvell Orion family, eg 88f5181 5 - 6 - * Required root node properties: 7 - compatible: must contain "marvell,orion5x" 8 - 9 - In addition, the above compatible shall be extended with the specific 10 - SoC. Currently known SoC compatibles are: 11 - 12 - "marvell,orion5x-88f5181" 13 - "marvell,orion5x-88f5182" 14 - 15 - And in addition, the compatible shall be extended with the specific 16 - board. Currently known boards are: 17 - 18 - "buffalo,lsgl" 19 - "buffalo,lswsgl" 20 - "buffalo,lswtgl" 21 - "lacie,ethernet-disk-mini-v2" 22 - "lacie,d2-network" 23 - "marvell,rd-88f5182-nas" 24 - "maxtor,shared-storage-2" 25 - "netgear,wnr854t"
+37
Documentation/devicetree/bindings/arm/marvell/marvell,orion5x.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/arm/marvell/marvell,orion5x.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Marvell Orion5x SoC Family 8 + 9 + maintainers: 10 + - Andrew Lunn <andrew@lunn.ch> 11 + - Gregory Clement <gregory.clement@bootlin.com> 12 + 13 + properties: 14 + $nodename: 15 + const: '/' 16 + compatible: 17 + oneOf: 18 + - items: 19 + - enum: 20 + - netgear,wnr854t 21 + - const: marvell,orion5x-88f5181 22 + - const: marvell,orion5x 23 + - items: 24 + - enum: 25 + - buffalo,kurobox-pro 26 + - buffalo,lschl 27 + - buffalo,lsgl 28 + - buffalo,lswsgl 29 + - buffalo,lswtgl 30 + - lacie,ethernet-disk-mini-v2 31 + - lacie,d2-network 32 + - marvell,rd-88f5182-nas 33 + - maxtor,shared-storage-2 34 + - const: marvell,orion5x-88f5182 35 + - const: marvell,orion5x 36 + 37 + additionalProperties: true
+15 -1
Documentation/devicetree/bindings/arm/mediatek/mediatek,audsys.yaml
··· 23 23 - mediatek,mt7622-audsys 24 24 - mediatek,mt8167-audsys 25 25 - mediatek,mt8173-audsys 26 + - mediatek,mt8183-audiosys 26 27 - mediatek,mt8183-audsys 27 28 - mediatek,mt8186-audsys 28 29 - mediatek,mt8192-audsys ··· 42 41 const: 1 43 42 44 43 audio-controller: 45 - $ref: /schemas/sound/mediatek,mt2701-audio.yaml# 46 44 type: object 47 45 48 46 required: 49 47 - compatible 50 48 - '#clock-cells' 49 + 50 + if: 51 + properties: 52 + compatible: 53 + contains: 54 + const: mediatek,mt8183-audiosys 55 + then: 56 + properties: 57 + audio-controller: 58 + $ref: /schemas/sound/mediatek,mt8183-audio.yaml# 59 + else: 60 + properties: 61 + audio-controller: 62 + $ref: /schemas/sound/mediatek,mt2701-audio.yaml# 51 63 52 64 additionalProperties: false 53 65
+7
Documentation/devicetree/bindings/arm/pmu.yaml
··· 28 28 - arm,arm1136-pmu 29 29 - arm,arm1176-pmu 30 30 - arm,arm11mpcore-pmu 31 + - arm,c1-nano-pmu 32 + - arm,c1-premium-pmu 33 + - arm,c1-pro-pmu 34 + - arm,c1-ultra-pmu 31 35 - arm,cortex-a5-pmu 32 36 - arm,cortex-a7-pmu 33 37 - arm,cortex-a8-pmu ··· 52 48 - arm,cortex-a76-pmu 53 49 - arm,cortex-a77-pmu 54 50 - arm,cortex-a78-pmu 51 + - arm,cortex-a320-pmu 55 52 - arm,cortex-a510-pmu 56 53 - arm,cortex-a520-pmu 54 + - arm,cortex-a520ae-pmu 57 55 - arm,cortex-a710-pmu 58 56 - arm,cortex-a715-pmu 59 57 - arm,cortex-a720-pmu 58 + - arm,cortex-a720ae-pmu 60 59 - arm,cortex-a725-pmu 61 60 - arm,cortex-x1-pmu 62 61 - arm,cortex-x2-pmu
-89
Documentation/devicetree/bindings/arm/syna.txt
··· 1 - Synaptics SoC Device Tree Bindings 2 - 3 - According to https://www.synaptics.com/company/news/conexant-marvell 4 - Synaptics has acquired the Multimedia Solutions Business of Marvell, so 5 - berlin SoCs are now Synaptics' SoCs now. 6 - 7 - --------------------------------------------------------------- 8 - 9 - Boards with a SoC of the Marvell Berlin family, e.g. Armada 1500 10 - shall have the following properties: 11 - 12 - * Required root node properties: 13 - compatible: must contain "marvell,berlin" 14 - 15 - In addition, the above compatible shall be extended with the specific 16 - SoC and board used. Currently known SoC compatibles are: 17 - "marvell,berlin2" for Marvell Armada 1500 (BG2, 88DE3100), 18 - "marvell,berlin2cd" for Marvell Armada 1500-mini (BG2CD, 88DE3005) 19 - "marvell,berlin2ct" for Marvell Armada ? (BG2CT, 88DE????) 20 - "marvell,berlin2q" for Marvell Armada 1500-pro (BG2Q, 88DE3114) 21 - "marvell,berlin3" for Marvell Armada ? (BG3, 88DE????) 22 - 23 - * Example: 24 - 25 - / { 26 - model = "Sony NSZ-GS7"; 27 - compatible = "sony,nsz-gs7", "marvell,berlin2", "marvell,berlin"; 28 - 29 - ... 30 - } 31 - 32 - * Marvell Berlin CPU control bindings 33 - 34 - CPU control register allows various operations on CPUs, like resetting them 35 - independently. 36 - 37 - Required properties: 38 - - compatible: should be "marvell,berlin-cpu-ctrl" 39 - - reg: address and length of the register set 40 - 41 - Example: 42 - 43 - cpu-ctrl@f7dd0000 { 44 - compatible = "marvell,berlin-cpu-ctrl"; 45 - reg = <0xf7dd0000 0x10000>; 46 - }; 47 - 48 - * Marvell Berlin2 chip control binding 49 - 50 - Marvell Berlin SoCs have a chip control register set providing several 51 - individual registers dealing with pinmux, padmux, clock, reset, and secondary 52 - CPU boot address. Unfortunately, the individual registers are spread among the 53 - chip control registers, so there should be a single DT node only providing the 54 - different functions which are described below. 55 - 56 - Required properties: 57 - - compatible: 58 - * the first and second values must be: 59 - "simple-mfd", "syscon" 60 - - reg: address and length of following register sets for 61 - BG2/BG2CD: chip control register set 62 - BG2Q: chip control register set and cpu pll registers 63 - 64 - * Marvell Berlin2 system control binding 65 - 66 - Marvell Berlin SoCs have a system control register set providing several 67 - individual registers dealing with pinmux, padmux, and reset. 68 - 69 - Required properties: 70 - - compatible: 71 - * the first and second values must be: 72 - "simple-mfd", "syscon" 73 - - reg: address and length of the system control register set 74 - 75 - Example: 76 - 77 - chip: chip-control@ea0000 { 78 - compatible = "simple-mfd", "syscon"; 79 - reg = <0xea0000 0x400>; 80 - 81 - /* sub-device nodes */ 82 - }; 83 - 84 - sysctrl: system-controller@d000 { 85 - compatible = "simple-mfd", "syscon"; 86 - reg = <0xd000 0x100>; 87 - 88 - /* sub-device nodes */ 89 - };
+3
Documentation/devicetree/bindings/display/bridge/ingenic,jz4780-hdmi.yaml
··· 26 26 clocks: 27 27 maxItems: 2 28 28 29 + clock-names: 30 + maxItems: 2 31 + 29 32 ports: 30 33 $ref: /schemas/graph.yaml#/properties/ports 31 34
+1
Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml
··· 28 28 29 29 allOf: 30 30 - $ref: /schemas/display/lvds-dual-ports.yaml# 31 + - $ref: /schemas/sound/dai-common.yaml# 31 32 32 33 properties: 33 34 compatible:
+4 -1
Documentation/devicetree/bindings/display/bridge/ite,it66121.yaml
··· 84 84 - interrupts 85 85 - ports 86 86 87 - additionalProperties: false 87 + allOf: 88 + - $ref: /schemas/sound/dai-common.yaml# 89 + 90 + unevaluatedProperties: false 88 91 89 92 examples: 90 93 - |
+4 -1
Documentation/devicetree/bindings/display/bridge/lontium,lt9611.yaml
··· 69 69 - vcc-supply 70 70 - ports 71 71 72 - additionalProperties: false 72 + allOf: 73 + - $ref: /schemas/sound/dai-common.yaml# 74 + 75 + unevaluatedProperties: false 73 76 74 77 examples: 75 78 - |
+111
Documentation/devicetree/bindings/display/bridge/megachips,stdp2690-ge-b850v3-fw.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/display/bridge/megachips,stdp2690-ge-b850v3-fw.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: GE B850v3 video bridge 8 + 9 + maintainers: 10 + - Frank Li <Frank.Li@nxp.com> 11 + 12 + description: | 13 + STDP4028-ge-b850v3-fw bridges (LVDS-DP) 14 + STDP2690-ge-b850v3-fw bridges (DP-DP++) 15 + 16 + The video processing pipeline on the second output on the GE B850v3: 17 + 18 + Host -> LVDS|--(STDP4028)--|DP -> DP|--(STDP2690)--|DP++ -> Video output 19 + 20 + Each bridge has a dedicated flash containing firmware for supporting the custom 21 + design. The result is that, in this design, neither the STDP4028 nor the 22 + STDP2690 behave as the stock bridges would. The compatible strings include the 23 + suffix "-ge-b850v3-fw" to make it clear that the driver is for the bridges with 24 + the firmware specific for the GE B850v3. 25 + 26 + The hardware do not provide control over the video processing pipeline, as the 27 + two bridges behaves as a single one. The only interfaces exposed by the 28 + hardware are EDID, HPD, and interrupts. 29 + 30 + properties: 31 + compatible: 32 + enum: 33 + - megachips,stdp4028-ge-b850v3-fw 34 + - megachips,stdp2690-ge-b850v3-fw 35 + 36 + reg: 37 + maxItems: 1 38 + 39 + interrupts: 40 + maxItems: 1 41 + 42 + ports: 43 + $ref: /schemas/graph.yaml#/properties/ports 44 + properties: 45 + port@0: 46 + description: sink port 47 + $ref: /schemas/graph.yaml#/properties/port 48 + 49 + port@1: 50 + description: source port 51 + $ref: /schemas/graph.yaml#/properties/port 52 + 53 + required: 54 + - port@0 55 + - port@1 56 + 57 + required: 58 + - compatible 59 + - reg 60 + - ports 61 + 62 + allOf: 63 + - if: 64 + properties: 65 + compatible: 66 + contains: 67 + const: megachips,stdp4028-ge-b850v3-fw 68 + then: 69 + required: 70 + - interrupts 71 + 72 + additionalProperties: false 73 + 74 + examples: 75 + - | 76 + #include <dt-bindings/interrupt-controller/irq.h> 77 + 78 + i2c { 79 + #address-cells = <1>; 80 + #size-cells = <0>; 81 + 82 + bridge@73 { 83 + compatible = "megachips,stdp4028-ge-b850v3-fw"; 84 + reg = <0x73>; 85 + interrupt-parent = <&gpio2>; 86 + interrupts = <0 IRQ_TYPE_LEVEL_HIGH>; 87 + 88 + ports { 89 + #address-cells = <1>; 90 + #size-cells = <0>; 91 + 92 + port@0 { 93 + reg = <0>; 94 + 95 + endpoint { 96 + remote-endpoint = <&lvds0_out>; 97 + }; 98 + 99 + }; 100 + 101 + port@1 { 102 + reg = <1>; 103 + 104 + endpoint { 105 + remote-endpoint = <&stdp2690_in>; 106 + }; 107 + }; 108 + }; 109 + }; 110 + }; 111 +
-91
Documentation/devicetree/bindings/display/bridge/megachips-stdpxxxx-ge-b850v3-fw.txt
··· 1 - Drivers for the second video output of the GE B850v3: 2 - STDP4028-ge-b850v3-fw bridges (LVDS-DP) 3 - STDP2690-ge-b850v3-fw bridges (DP-DP++) 4 - 5 - The video processing pipeline on the second output on the GE B850v3: 6 - 7 - Host -> LVDS|--(STDP4028)--|DP -> DP|--(STDP2690)--|DP++ -> Video output 8 - 9 - Each bridge has a dedicated flash containing firmware for supporting the custom 10 - design. The result is that, in this design, neither the STDP4028 nor the 11 - STDP2690 behave as the stock bridges would. The compatible strings include the 12 - suffix "-ge-b850v3-fw" to make it clear that the driver is for the bridges with 13 - the firmware specific for the GE B850v3. 14 - 15 - The hardware do not provide control over the video processing pipeline, as the 16 - two bridges behaves as a single one. The only interfaces exposed by the 17 - hardware are EDID, HPD, and interrupts. 18 - 19 - stdp4028-ge-b850v3-fw required properties: 20 - - compatible : "megachips,stdp4028-ge-b850v3-fw" 21 - - reg : I2C bus address 22 - - interrupts : one interrupt should be described here, as in 23 - <0 IRQ_TYPE_LEVEL_HIGH> 24 - - ports : One input port(reg = <0>) and one output port(reg = <1>) 25 - 26 - stdp2690-ge-b850v3-fw required properties: 27 - compatible : "megachips,stdp2690-ge-b850v3-fw" 28 - - reg : I2C bus address 29 - - ports : One input port(reg = <0>) and one output port(reg = <1>) 30 - 31 - Example: 32 - 33 - &mux2_i2c2 { 34 - clock-frequency = <100000>; 35 - 36 - stdp4028@73 { 37 - compatible = "megachips,stdp4028-ge-b850v3-fw"; 38 - #address-cells = <1>; 39 - #size-cells = <0>; 40 - 41 - reg = <0x73>; 42 - 43 - interrupt-parent = <&gpio2>; 44 - interrupts = <0 IRQ_TYPE_LEVEL_HIGH>; 45 - 46 - ports { 47 - #address-cells = <1>; 48 - #size-cells = <0>; 49 - 50 - port@0 { 51 - reg = <0>; 52 - stdp4028_in: endpoint { 53 - remote-endpoint = <&lvds0_out>; 54 - }; 55 - }; 56 - port@1 { 57 - reg = <1>; 58 - stdp4028_out: endpoint { 59 - remote-endpoint = <&stdp2690_in>; 60 - }; 61 - }; 62 - }; 63 - }; 64 - 65 - stdp2690@72 { 66 - compatible = "megachips,stdp2690-ge-b850v3-fw"; 67 - #address-cells = <1>; 68 - #size-cells = <0>; 69 - 70 - reg = <0x72>; 71 - 72 - ports { 73 - #address-cells = <1>; 74 - #size-cells = <0>; 75 - 76 - port@0 { 77 - reg = <0>; 78 - stdp2690_in: endpoint { 79 - remote-endpoint = <&stdp4028_out>; 80 - }; 81 - }; 82 - 83 - port@1 { 84 - reg = <1>; 85 - stdp2690_out: endpoint { 86 - /* Connector for external display */ 87 - }; 88 - }; 89 - }; 90 - }; 91 - };
+4 -1
Documentation/devicetree/bindings/display/bridge/nxp,tda998x.yaml
··· 81 81 - required: 82 82 - ports 83 83 84 - additionalProperties: false 84 + allOf: 85 + - $ref: /schemas/sound/dai-common.yaml# 86 + 87 + unevaluatedProperties: false 85 88 86 89 examples: 87 90 - |
+4 -1
Documentation/devicetree/bindings/display/bridge/sil,sii9022.yaml
··· 109 109 - compatible 110 110 - reg 111 111 112 - additionalProperties: false 112 + allOf: 113 + - $ref: /schemas/sound/dai-common.yaml# 114 + 115 + unevaluatedProperties: false 113 116 114 117 examples: 115 118 - |
+1
Documentation/devicetree/bindings/display/bridge/ti,tdp158.yaml
··· 17 17 # The reg property is required if and only if the device is connected 18 18 # to an I2C bus. In pin strap mode, reg must not be specified. 19 19 reg: 20 + maxItems: 1 20 21 description: I2C address of the device 21 22 22 23 # Pin 36 = Operation Enable / Reset Pin
+51 -1
Documentation/devicetree/bindings/display/connector/dp-connector.yaml
··· 31 31 $ref: /schemas/graph.yaml#/properties/port 32 32 description: Connection to controller providing DP signals 33 33 34 + ports: 35 + $ref: /schemas/graph.yaml#/properties/ports 36 + description: OF graph representation of signales routed to DP connector 37 + 38 + properties: 39 + port@0: 40 + $ref: /schemas/graph.yaml#/properties/port 41 + description: Connection to controller providing DP signals 42 + 43 + port@1: 44 + $ref: /schemas/graph.yaml#/properties/port 45 + description: Connection to controller providing AUX signals 46 + 47 + required: 48 + - port@0 49 + - port@1 50 + 34 51 required: 35 52 - compatible 36 53 - type 37 - - port 54 + 55 + oneOf: 56 + - required: 57 + - port 58 + - required: 59 + - ports 38 60 39 61 additionalProperties: false 40 62 ··· 74 52 }; 75 53 }; 76 54 55 + - | 56 + /* DP connecttor being driven by the USB+DP combo PHY */ 57 + connector { 58 + compatible = "dp-connector"; 59 + label = "dp0"; 60 + type = "full-size"; 61 + 62 + ports { 63 + #address-cells = <1>; 64 + #size-cells = <0>; 65 + 66 + port@0 { 67 + reg = <0>; 68 + 69 + endpoint { 70 + remote-endpoint = <&phy_ss_out>; 71 + }; 72 + }; 73 + 74 + port@1 { 75 + reg = <1>; 76 + 77 + endpoint { 78 + remote-endpoint = <&phy_sbu_out>; 79 + }; 80 + }; 81 + }; 82 + }; 77 83 ...
+1 -1
Documentation/devicetree/bindings/display/dsi-controller.yaml
··· 46 46 const: 0 47 47 48 48 patternProperties: 49 - "^panel@[0-3]$": 49 + "^(panel|bridge)@[0-3]$": 50 50 description: Panels connected to the DSI link 51 51 type: object 52 52
+7
Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.yaml
··· 102 102 - port@0 103 103 - port@1 104 104 105 + resets: 106 + maxItems: 1 107 + 108 + reset-names: 109 + items: 110 + - const: dpi 111 + 105 112 required: 106 113 - compatible 107 114 - reg
+14
Documentation/devicetree/bindings/display/mediatek/mediatek,od.yaml
··· 60 60 - port@0 61 61 - port@1 62 62 63 + mediatek,gce-client-reg: 64 + $ref: /schemas/types.yaml#/definitions/phandle-array 65 + description: describes how to locate the GCE client register 66 + items: 67 + - items: 68 + - description: Phandle reference to a Mediatek GCE Mailbox 69 + - description: 70 + GCE subsys id mapping to a client defined in header 71 + include/dt-bindings/gce/<chip>-gce.h. 72 + - description: offset for the GCE register offset 73 + - description: size of the GCE register offset 74 + 63 75 required: 64 76 - compatible 65 77 - reg ··· 82 70 examples: 83 71 - | 84 72 #include <dt-bindings/clock/mt8173-clk.h> 73 + #include <dt-bindings/gce/mt8173-gce.h> 85 74 86 75 soc { 87 76 #address-cells = <2>; ··· 92 79 compatible = "mediatek,mt8173-disp-od"; 93 80 reg = <0 0x14023000 0 0x1000>; 94 81 clocks = <&mmsys CLK_MM_DISP_OD>; 82 + mediatek,gce-client-reg = <&gce SUBSYS_1402XXXX 0x3000 0x1000>; 95 83 }; 96 84 };
+15
Documentation/devicetree/bindings/display/mediatek/mediatek,ufoe.yaml
··· 64 64 - port@0 65 65 - port@1 66 66 67 + mediatek,gce-client-reg: 68 + $ref: /schemas/types.yaml#/definitions/phandle-array 69 + description: describes how to locate the GCE client register 70 + items: 71 + - items: 72 + - description: Phandle reference to a Mediatek GCE Mailbox 73 + - description: 74 + GCE subsys id mapping to a client defined in header 75 + include/dt-bindings/gce/<chip>-gce.h. 76 + - description: offset for the GCE register offset 77 + - description: size of the GCE register offset 78 + 67 79 required: 68 80 - compatible 69 81 - reg ··· 89 77 - | 90 78 #include <dt-bindings/interrupt-controller/arm-gic.h> 91 79 #include <dt-bindings/clock/mt8173-clk.h> 80 + #include <dt-bindings/gce/mt8173-gce.h> 92 81 #include <dt-bindings/power/mt8173-power.h> 82 + 93 83 soc { 94 84 #address-cells = <2>; 95 85 #size-cells = <2>; ··· 102 88 interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_LOW>; 103 89 power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; 104 90 clocks = <&mmsys CLK_MM_DISP_UFOE>; 91 + mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0xa000 0x1000>; 105 92 }; 106 93 };
+4
Documentation/devicetree/bindings/display/panel/panel-simple.yaml
··· 178 178 - innolux,g121xce-l01 179 179 # InnoLux 15.6" FHD (1920x1080) TFT LCD panel 180 180 - innolux,g156hce-l01 181 + # InnoLux 13.3" FHD (1920x1080) TFT LCD panel 182 + - innolux,n133hse-ea1 181 183 # InnoLux 15.6" WXGA TFT LCD panel 182 184 - innolux,n156bge-l21 183 185 # Innolux Corporation 7.0" WSVGA (1024x600) TFT LCD panel ··· 230 228 - netron-dy,e231732 231 229 # Newhaven Display International 480 x 272 TFT LCD panel 232 230 - newhaven,nhd-4.3-480272ef-atxl 231 + # NLT Technologies, Ltd. 12.1" WXGA (1280 x 800) LVDS TFT LCD panel 232 + - nlt,nl12880bc20-spwg-24 233 233 # NLT Technologies, Ltd. 15.6" WXGA (1366×768) LVDS TFT LCD panel 234 234 - nlt,nl13676bc25-03f 235 235 # New Vision Display 7.0" 800 RGB x 480 TFT LCD panel
+2
Documentation/devicetree/bindings/display/rockchip/rockchip,dw-mipi-dsi.yaml
··· 97 97 then: 98 98 properties: 99 99 clocks: 100 + minItems: 2 100 101 maxItems: 2 101 102 102 103 clock-names: 104 + minItems: 2 103 105 maxItems: 2 104 106 105 107 - if:
-1
Documentation/devicetree/bindings/display/samsung/samsung,fimd.yaml
··· 15 15 properties: 16 16 compatible: 17 17 enum: 18 - - samsung,s3c2443-fimd 19 18 - samsung,s3c6400-fimd 20 19 - samsung,s5pv210-fimd 21 20 - samsung,exynos3250-fimd
-38
Documentation/devicetree/bindings/display/ti/ti,opa362.txt
··· 1 - OPA362 analog video amplifier 2 - 3 - Required properties: 4 - - compatible: "ti,opa362" 5 - - enable-gpios: enable/disable output gpio 6 - 7 - Required node: 8 - - Video port 0 for opa362 input 9 - - Video port 1 for opa362 output 10 - 11 - Example: 12 - 13 - tv_amp: opa362 { 14 - compatible = "ti,opa362"; 15 - enable-gpios = <&gpio1 23 0>; /* GPIO to enable video out amplifier */ 16 - 17 - ports { 18 - #address-cells = <1>; 19 - #size-cells = <0>; 20 - 21 - port@0 { 22 - reg = <0>; 23 - opa_in: endpoint@0 { 24 - remote-endpoint = <&venc_out>; 25 - }; 26 - }; 27 - 28 - port@1 { 29 - reg = <1>; 30 - opa_out: endpoint@0 { 31 - remote-endpoint = <&tv_connector_in>; 32 - }; 33 - }; 34 - }; 35 - }; 36 - 37 - 38 -
+1
Documentation/devicetree/bindings/edac/altr,socfpga-ecc-manager.yaml
··· 53 53 properties: 54 54 compatible: 55 55 enum: 56 + - altr,sdram-edac 56 57 - altr,sdram-edac-a10 57 58 - altr,sdram-edac-s10 58 59
+203
Documentation/devicetree/bindings/edac/apm,xgene-edac.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/edac/apm,xgene-edac.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: APM X-Gene SoC EDAC 8 + 9 + maintainers: 10 + - Khuong Dinh <khuong@os.amperecomputing.com> 11 + 12 + description: > 13 + EDAC node is defined to describe on-chip error detection and correction. 14 + 15 + The following error types are supported: 16 + 17 + memory controller - Memory controller 18 + PMD (L1/L2) - Processor module unit (PMD) L1/L2 cache 19 + L3 - L3 cache controller 20 + SoC - SoC IPs such as Ethernet, SATA, etc 21 + 22 + properties: 23 + compatible: 24 + const: apm,xgene-edac 25 + 26 + reg: 27 + items: 28 + - description: CPU bus (PCP) resource 29 + 30 + '#address-cells': 31 + const: 2 32 + 33 + '#size-cells': 34 + const: 2 35 + 36 + ranges: true 37 + 38 + interrupts: 39 + description: Interrupt-specifier for MCU, PMD, L3, or SoC error IRQ(s). 40 + items: 41 + - description: MCU error IRQ 42 + - description: PMD error IRQ 43 + - description: L3 error IRQ 44 + - description: SoC error IRQ 45 + minItems: 1 46 + 47 + regmap-csw: 48 + description: Regmap of the CPU switch fabric (CSW) resource. 49 + $ref: /schemas/types.yaml#/definitions/phandle 50 + 51 + regmap-mcba: 52 + description: Regmap of the MCB-A (memory bridge) resource. 53 + $ref: /schemas/types.yaml#/definitions/phandle 54 + 55 + regmap-mcbb: 56 + description: Regmap of the MCB-B (memory bridge) resource. 57 + $ref: /schemas/types.yaml#/definitions/phandle 58 + 59 + regmap-efuse: 60 + description: Regmap of the PMD efuse resource. 61 + $ref: /schemas/types.yaml#/definitions/phandle 62 + 63 + regmap-rb: 64 + description: Regmap of the register bus resource (optional for compatibility). 65 + $ref: /schemas/types.yaml#/definitions/phandle 66 + 67 + required: 68 + - compatible 69 + - regmap-csw 70 + - regmap-mcba 71 + - regmap-mcbb 72 + - regmap-efuse 73 + - reg 74 + - interrupts 75 + 76 + # Child-node bindings 77 + patternProperties: 78 + '^edacmc@': 79 + description: Memory controller subnode 80 + type: object 81 + additionalProperties: false 82 + 83 + properties: 84 + compatible: 85 + const: apm,xgene-edac-mc 86 + 87 + reg: 88 + maxItems: 1 89 + 90 + memory-controller: 91 + description: Instance number of the memory controller. 92 + $ref: /schemas/types.yaml#/definitions/uint32 93 + maximum: 3 94 + 95 + required: 96 + - compatible 97 + - reg 98 + - memory-controller 99 + 100 + 101 + '^edacpmd@': 102 + description: PMD subnode 103 + type: object 104 + additionalProperties: false 105 + 106 + properties: 107 + compatible: 108 + const: apm,xgene-edac-pmd 109 + 110 + reg: 111 + maxItems: 1 112 + 113 + pmd-controller: 114 + description: Instance number of the PMD controller. 115 + $ref: /schemas/types.yaml#/definitions/uint32 116 + maximum: 3 117 + 118 + required: 119 + - compatible 120 + - reg 121 + - pmd-controller 122 + 123 + '^edacl3@': 124 + description: L3 subnode 125 + type: object 126 + additionalProperties: false 127 + 128 + properties: 129 + compatible: 130 + enum: 131 + - apm,xgene-edac-l3 132 + - apm,xgene-edac-l3-v2 133 + 134 + reg: 135 + maxItems: 1 136 + 137 + required: 138 + - compatible 139 + - reg 140 + 141 + '^edacsoc@': 142 + description: SoC subnode 143 + type: object 144 + additionalProperties: false 145 + 146 + properties: 147 + compatible: 148 + enum: 149 + - apm,xgene-edac-soc 150 + - apm,xgene-edac-soc-v1 151 + 152 + reg: 153 + maxItems: 1 154 + 155 + required: 156 + - compatible 157 + - reg 158 + 159 + additionalProperties: false 160 + 161 + examples: 162 + - | 163 + bus { 164 + #address-cells = <2>; 165 + #size-cells = <2>; 166 + 167 + edac@78800000 { 168 + compatible = "apm,xgene-edac"; 169 + reg = <0x0 0x78800000 0x0 0x100>; 170 + #address-cells = <2>; 171 + #size-cells = <2>; 172 + ranges; 173 + interrupts = <0x0 0x20 0x4>, <0x0 0x21 0x4>, <0x0 0x27 0x4>; 174 + 175 + regmap-csw = <&csw>; 176 + regmap-mcba = <&mcba>; 177 + regmap-mcbb = <&mcbb>; 178 + regmap-efuse = <&efuse>; 179 + regmap-rb = <&rb>; 180 + 181 + edacmc@7e800000 { 182 + compatible = "apm,xgene-edac-mc"; 183 + reg = <0x0 0x7e800000 0x0 0x1000>; 184 + memory-controller = <0>; 185 + }; 186 + 187 + edacpmd@7c000000 { 188 + compatible = "apm,xgene-edac-pmd"; 189 + reg = <0x0 0x7c000000 0x0 0x200000>; 190 + pmd-controller = <0>; 191 + }; 192 + 193 + edacl3@7e600000 { 194 + compatible = "apm,xgene-edac-l3"; 195 + reg = <0x0 0x7e600000 0x0 0x1000>; 196 + }; 197 + 198 + edacsoc@7e930000 { 199 + compatible = "apm,xgene-edac-soc-v1"; 200 + reg = <0x0 0x7e930000 0x0 0x1000>; 201 + }; 202 + }; 203 + };
-112
Documentation/devicetree/bindings/edac/apm-xgene-edac.txt
··· 1 - * APM X-Gene SoC EDAC node 2 - 3 - EDAC node is defined to describe on-chip error detection and correction. 4 - The follow error types are supported: 5 - 6 - memory controller - Memory controller 7 - PMD (L1/L2) - Processor module unit (PMD) L1/L2 cache 8 - L3 - L3 cache controller 9 - SoC - SoC IP's such as Ethernet, SATA, and etc 10 - 11 - The following section describes the EDAC DT node binding. 12 - 13 - Required properties: 14 - - compatible : Shall be "apm,xgene-edac". 15 - - regmap-csw : Regmap of the CPU switch fabric (CSW) resource. 16 - - regmap-mcba : Regmap of the MCB-A (memory bridge) resource. 17 - - regmap-mcbb : Regmap of the MCB-B (memory bridge) resource. 18 - - regmap-efuse : Regmap of the PMD efuse resource. 19 - - regmap-rb : Regmap of the register bus resource. This property 20 - is optional only for compatibility. If the RB 21 - error conditions are not cleared, it will 22 - continuously generate interrupt. 23 - - reg : First resource shall be the CPU bus (PCP) resource. 24 - - interrupts : Interrupt-specifier for MCU, PMD, L3, or SoC error 25 - IRQ(s). 26 - 27 - Required properties for memory controller subnode: 28 - - compatible : Shall be "apm,xgene-edac-mc". 29 - - reg : First resource shall be the memory controller unit 30 - (MCU) resource. 31 - - memory-controller : Instance number of the memory controller. 32 - 33 - Required properties for PMD subnode: 34 - - compatible : Shall be "apm,xgene-edac-pmd" or 35 - "apm,xgene-edac-pmd-v2". 36 - - reg : First resource shall be the PMD resource. 37 - - pmd-controller : Instance number of the PMD controller. 38 - 39 - Required properties for L3 subnode: 40 - - compatible : Shall be "apm,xgene-edac-l3" or 41 - "apm,xgene-edac-l3-v2". 42 - - reg : First resource shall be the L3 EDAC resource. 43 - 44 - Required properties for SoC subnode: 45 - - compatible : Shall be "apm,xgene-edac-soc-v1" for revision 1 or 46 - "apm,xgene-edac-l3-soc" for general value reporting 47 - only. 48 - - reg : First resource shall be the SoC EDAC resource. 49 - 50 - Example: 51 - csw: csw@7e200000 { 52 - compatible = "apm,xgene-csw", "syscon"; 53 - reg = <0x0 0x7e200000 0x0 0x1000>; 54 - }; 55 - 56 - mcba: mcba@7e700000 { 57 - compatible = "apm,xgene-mcb", "syscon"; 58 - reg = <0x0 0x7e700000 0x0 0x1000>; 59 - }; 60 - 61 - mcbb: mcbb@7e720000 { 62 - compatible = "apm,xgene-mcb", "syscon"; 63 - reg = <0x0 0x7e720000 0x0 0x1000>; 64 - }; 65 - 66 - efuse: efuse@1054a000 { 67 - compatible = "apm,xgene-efuse", "syscon"; 68 - reg = <0x0 0x1054a000 0x0 0x20>; 69 - }; 70 - 71 - rb: rb@7e000000 { 72 - compatible = "apm,xgene-rb", "syscon"; 73 - reg = <0x0 0x7e000000 0x0 0x10>; 74 - }; 75 - 76 - edac@78800000 { 77 - compatible = "apm,xgene-edac"; 78 - #address-cells = <2>; 79 - #size-cells = <2>; 80 - ranges; 81 - regmap-csw = <&csw>; 82 - regmap-mcba = <&mcba>; 83 - regmap-mcbb = <&mcbb>; 84 - regmap-efuse = <&efuse>; 85 - regmap-rb = <&rb>; 86 - reg = <0x0 0x78800000 0x0 0x100>; 87 - interrupts = <0x0 0x20 0x4>, 88 - <0x0 0x21 0x4>, 89 - <0x0 0x27 0x4>; 90 - 91 - edacmc@7e800000 { 92 - compatible = "apm,xgene-edac-mc"; 93 - reg = <0x0 0x7e800000 0x0 0x1000>; 94 - memory-controller = <0>; 95 - }; 96 - 97 - edacpmd@7c000000 { 98 - compatible = "apm,xgene-edac-pmd"; 99 - reg = <0x0 0x7c000000 0x0 0x200000>; 100 - pmd-controller = <0>; 101 - }; 102 - 103 - edacl3@7e600000 { 104 - compatible = "apm,xgene-edac-l3"; 105 - reg = <0x0 0x7e600000 0x0 0x1000>; 106 - }; 107 - 108 - edacsoc@7e930000 { 109 - compatible = "apm,xgene-edac-soc-v1"; 110 - reg = <0x0 0x7e930000 0x0 0x1000>; 111 - }; 112 - };
+48
Documentation/devicetree/bindings/edac/aspeed,ast2400-sdram-edac.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/edac/aspeed,ast2400-sdram-edac.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Aspeed BMC SoC SDRAM EDAC controller 8 + 9 + maintainers: 10 + - Stefan Schaeckeler <sschaeck@cisco.com> 11 + 12 + description: > 13 + The Aspeed BMC SoC supports DDR3 and DDR4 memory with and without ECC (error 14 + correction check). 15 + 16 + The memory controller supports SECDED (single bit error correction, double bit 17 + error detection) and single bit error auto scrubbing by reserving 8 bits for 18 + every 64 bit word (effectively reducing available memory to 8/9). 19 + 20 + Note, the bootloader must configure ECC mode in the memory controller. 21 + 22 + properties: 23 + compatible: 24 + enum: 25 + - aspeed,ast2400-sdram-edac 26 + - aspeed,ast2500-sdram-edac 27 + - aspeed,ast2600-sdram-edac 28 + 29 + reg: 30 + maxItems: 1 31 + 32 + interrupts: 33 + maxItems: 1 34 + 35 + required: 36 + - compatible 37 + - reg 38 + - interrupts 39 + 40 + additionalProperties: false 41 + 42 + examples: 43 + - | 44 + sdram@1e6e0000 { 45 + compatible = "aspeed,ast2500-sdram-edac"; 46 + reg = <0x1e6e0000 0x174>; 47 + interrupts = <0>; 48 + };
-28
Documentation/devicetree/bindings/edac/aspeed-sdram-edac.txt
··· 1 - Aspeed BMC SoC EDAC node 2 - 3 - The Aspeed BMC SoC supports DDR3 and DDR4 memory with and without ECC (error 4 - correction check). 5 - 6 - The memory controller supports SECDED (single bit error correction, double bit 7 - error detection) and single bit error auto scrubbing by reserving 8 bits for 8 - every 64 bit word (effectively reducing available memory to 8/9). 9 - 10 - Note, the bootloader must configure ECC mode in the memory controller. 11 - 12 - 13 - Required properties: 14 - - compatible: should be one of 15 - - "aspeed,ast2400-sdram-edac" 16 - - "aspeed,ast2500-sdram-edac" 17 - - "aspeed,ast2600-sdram-edac" 18 - - reg: sdram controller register set should be <0x1e6e0000 0x174> 19 - - interrupts: should be AVIC interrupt #0 20 - 21 - 22 - Example: 23 - 24 - edac: sdram@1e6e0000 { 25 - compatible = "aspeed,ast2500-sdram-edac"; 26 - reg = <0x1e6e0000 0x174>; 27 - interrupts = <0>; 28 - };
+1 -1
Documentation/devicetree/bindings/example-schema.yaml
··· 223 223 # 224 224 # For multiple 'if' schema, group them under an 'allOf'. 225 225 # 226 - # If the conditionals become too unweldy, then it may be better to just split 226 + # If the conditionals become too unwieldy, then it may be better to just split 227 227 # the binding into separate schema documents. 228 228 allOf: 229 229 - if:
+81
Documentation/devicetree/bindings/fsi/aspeed,ast2400-cf-fsi-master.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/fsi/aspeed,ast2400-cf-fsi-master.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: ASpeed ColdFire offloaded GPIO-based FSI master 8 + 9 + maintainers: 10 + - Eddie James <eajames@linux.ibm.com> 11 + 12 + allOf: 13 + - $ref: /schemas/fsi/fsi-controller.yaml# 14 + 15 + properties: 16 + compatible: 17 + enum: 18 + - aspeed,ast2400-cf-fsi-master 19 + - aspeed,ast2500-cf-fsi-master 20 + 21 + clock-gpios: 22 + maxItems: 1 23 + description: GPIO for FSI clock 24 + 25 + data-gpios: 26 + maxItems: 1 27 + description: GPIO for FSI data signal 28 + 29 + enable-gpios: 30 + maxItems: 1 31 + description: GPIO for enable signal 32 + 33 + trans-gpios: 34 + maxItems: 1 35 + description: GPIO for voltage translator enable 36 + 37 + mux-gpios: 38 + maxItems: 1 39 + description: 40 + GPIO for pin multiplexing with other functions (eg, external FSI masters) 41 + 42 + memory-region: 43 + maxItems: 1 44 + description: 45 + Reference to the reserved memory for the ColdFire. Must be 2M aligned on 46 + AST2400 and 1M aligned on AST2500. 47 + 48 + aspeed,cvic: 49 + description: Reference to the CVIC node. 50 + $ref: /schemas/types.yaml#/definitions/phandle 51 + 52 + aspeed,sram: 53 + description: Reference to the SRAM node. 54 + $ref: /schemas/types.yaml#/definitions/phandle 55 + 56 + required: 57 + - compatible 58 + - clock-gpios 59 + - data-gpios 60 + - enable-gpios 61 + - trans-gpios 62 + - mux-gpios 63 + - memory-region 64 + - aspeed,cvic 65 + - aspeed,sram 66 + 67 + unevaluatedProperties: false 68 + 69 + examples: 70 + - | 71 + fsi-master { 72 + compatible = "aspeed,ast2500-cf-fsi-master"; 73 + clock-gpios = <&gpio 0>; 74 + data-gpios = <&gpio 1>; 75 + enable-gpios = <&gpio 2>; 76 + trans-gpios = <&gpio 3>; 77 + mux-gpios = <&gpio 4>; 78 + memory-region = <&coldfire_memory>; 79 + aspeed,cvic = <&cvic>; 80 + aspeed,sram = <&sram>; 81 + };
-36
Documentation/devicetree/bindings/fsi/fsi-master-ast-cf.txt
··· 1 - Device-tree bindings for ColdFire offloaded gpio-based FSI master driver 2 - ------------------------------------------------------------------------ 3 - 4 - Required properties: 5 - - compatible = 6 - "aspeed,ast2400-cf-fsi-master" for an AST2400 based system 7 - or 8 - "aspeed,ast2500-cf-fsi-master" for an AST2500 based system 9 - 10 - - clock-gpios = <gpio-descriptor>; : GPIO for FSI clock 11 - - data-gpios = <gpio-descriptor>; : GPIO for FSI data signal 12 - - enable-gpios = <gpio-descriptor>; : GPIO for enable signal 13 - - trans-gpios = <gpio-descriptor>; : GPIO for voltage translator enable 14 - - mux-gpios = <gpio-descriptor>; : GPIO for pin multiplexing with other 15 - functions (eg, external FSI masters) 16 - - memory-region = <phandle>; : Reference to the reserved memory for 17 - the ColdFire. Must be 2M aligned on 18 - AST2400 and 1M aligned on AST2500 19 - - aspeed,sram = <phandle>; : Reference to the SRAM node. 20 - - aspeed,cvic = <phandle>; : Reference to the CVIC node. 21 - 22 - Examples: 23 - 24 - fsi-master { 25 - compatible = "aspeed,ast2500-cf-fsi-master", "fsi-master"; 26 - 27 - clock-gpios = <&gpio 0>; 28 - data-gpios = <&gpio 1>; 29 - enable-gpios = <&gpio 2>; 30 - trans-gpios = <&gpio 3>; 31 - mux-gpios = <&gpio 4>; 32 - 33 - memory-region = <&coldfire_memory>; 34 - aspeed,sram = <&sram>; 35 - aspeed,cvic = <&cvic>; 36 - }
-28
Documentation/devicetree/bindings/fsi/fsi-master-gpio.txt
··· 1 - Device-tree bindings for gpio-based FSI master driver 2 - ----------------------------------------------------- 3 - 4 - Required properties: 5 - - compatible = "fsi-master-gpio"; 6 - - clock-gpios = <gpio-descriptor>; : GPIO for FSI clock 7 - - data-gpios = <gpio-descriptor>; : GPIO for FSI data signal 8 - 9 - Optional properties: 10 - - enable-gpios = <gpio-descriptor>; : GPIO for enable signal 11 - - trans-gpios = <gpio-descriptor>; : GPIO for voltage translator enable 12 - - mux-gpios = <gpio-descriptor>; : GPIO for pin multiplexing with other 13 - functions (eg, external FSI masters) 14 - - no-gpio-delays; : Don't add extra delays between GPIO 15 - accesses. This is useful when the HW 16 - GPIO block is running at a low enough 17 - frequency. 18 - 19 - Examples: 20 - 21 - fsi-master { 22 - compatible = "fsi-master-gpio", "fsi-master"; 23 - clock-gpios = <&gpio 0>; 24 - data-gpios = <&gpio 1>; 25 - enable-gpios = <&gpio 2>; 26 - trans-gpios = <&gpio 3>; 27 - mux-gpios = <&gpio 4>; 28 - }
+63
Documentation/devicetree/bindings/fsi/fsi-master-gpio.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/fsi/fsi-master-gpio.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: fsi-master-gpio 8 + 9 + maintainers: 10 + - Eddie James <eajames@linux.ibm.com> 11 + 12 + allOf: 13 + - $ref: /schemas/fsi/fsi-controller.yaml 14 + 15 + properties: 16 + compatible: 17 + items: 18 + - const: fsi-master-gpio 19 + 20 + clock-gpios: 21 + description: GPIO for FSI clock 22 + maxItems: 1 23 + 24 + data-gpios: 25 + description: GPIO for FSI data signal 26 + maxItems: 1 27 + 28 + enable-gpios: 29 + description: GPIO for enable signal 30 + maxItems: 1 31 + 32 + trans-gpios: 33 + description: GPIO for voltage translator enable 34 + maxItems: 1 35 + 36 + mux-gpios: 37 + description: GPIO for pin multiplexing with other functions (eg, external 38 + FSI masters) 39 + maxItems: 1 40 + 41 + no-gpio-delays: 42 + description: 43 + Don't add extra delays between GPIO accesses. This is useful when the HW 44 + GPIO block is running at a low enough frequency. 45 + type: boolean 46 + 47 + required: 48 + - compatible 49 + - clock-gpios 50 + - data-gpios 51 + 52 + unevaluatedProperties: false 53 + 54 + examples: 55 + - | 56 + fsi-master { 57 + compatible = "fsi-master-gpio"; 58 + clock-gpios = <&gpio 0>; 59 + data-gpios = <&gpio 1>; 60 + enable-gpios = <&gpio 2>; 61 + trans-gpios = <&gpio 3>; 62 + mux-gpios = <&gpio 4>; 63 + };
+1 -1
Documentation/devicetree/bindings/goldfish/pipe.txt
··· 1 1 Android Goldfish QEMU Pipe 2 2 3 - Andorid pipe virtual device generated by android emulator. 3 + Android pipe virtual device generated by android emulator. 4 4 5 5 Required properties: 6 6
+6 -6
Documentation/devicetree/bindings/gpio/gpio.txt
··· 35 35 <&gpio1 15 0>; 36 36 37 37 In the above example, &gpio1 uses 2 cells to specify a gpio. The first cell is 38 - a local offset to the GPIO line and the second cell represent consumer flags, 39 - such as if the consumer desire the line to be active low (inverted) or open 38 + a local offset to the GPIO line and the second cell represents consumer flags, 39 + such as if the consumer desires the line to be active low (inverted) or open 40 40 drain. This is the recommended practice. 41 41 42 42 The exact meaning of each specifier cell is controller specific, and must be ··· 59 59 Optional standard bitfield specifiers for the last cell: 60 60 61 61 - Bit 0: 0 means active high, 1 means active low 62 - - Bit 1: 0 mean push-pull wiring, see: 62 + - Bit 1: 0 means push-pull wiring, see: 63 63 https://en.wikipedia.org/wiki/Push-pull_output 64 64 1 means single-ended wiring, see: 65 65 https://en.wikipedia.org/wiki/Single-ended_triode ··· 176 176 177 177 In either case placeholders are discouraged: rather use the "" (blank 178 178 string) if the use of the GPIO line is undefined in your design. Ideally, 179 - try to add comments to the dts file describing the naming the convention 179 + try to add comments to the dts file describing the naming convention 180 180 you have chosen, and specifying from where the names are derived. 181 181 182 182 The names are assigned starting from line offset 0, from left to right, ··· 304 304 It is also possible to use pin groups for gpio ranges when pin groups are the 305 305 easiest and most convenient mapping. 306 306 307 - Both both <pinctrl-base> and <count> must set to 0 when using named pin groups 307 + Both <pinctrl-base> and <count> must be set to 0 when using named pin groups 308 308 names. 309 309 310 310 The property gpio-ranges-group-names must contain exactly one string for each ··· 313 313 Elements of gpio-ranges-group-names must contain the name of a pin group 314 314 defined in the respective pin controller. The number of pins/GPIO lines in the 315 315 range is the number of pins in that pin group. The number of pins of that 316 - group is defined int the implementation and not in the device tree. 316 + group is defined in the implementation and not in the device tree. 317 317 318 318 If numerical and named pin groups are mixed, the string corresponding to a 319 319 numerical pin range in gpio-ranges-group-names must be empty.
+4 -2
Documentation/devicetree/bindings/gpu/arm,mali-midgard.yaml
··· 53 53 - enum: 54 54 - rockchip,rk3399-mali 55 55 - const: arm,mali-t860 56 - 57 - # "arm,mali-t880" 56 + - items: 57 + - enum: 58 + - samsung,exynos8890-mali 59 + - const: arm,mali-t880 58 60 59 61 reg: 60 62 maxItems: 1
+63
Documentation/devicetree/bindings/gpu/aspeed,ast2400-gfx.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/gpu/aspeed,ast2400-gfx.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: ASPEED GFX Display Controller 8 + 9 + maintainers: 10 + - Joel Stanley <joel@jms.id.au> 11 + 12 + properties: 13 + compatible: 14 + items: 15 + - enum: 16 + - aspeed,ast2400-gfx 17 + - aspeed,ast2500-gfx 18 + - aspeed,ast2600-gfx 19 + - const: syscon 20 + 21 + reg: 22 + maxItems: 1 23 + 24 + clocks: 25 + maxItems: 1 26 + 27 + resets: 28 + maxItems: 1 29 + 30 + interrupts: 31 + maxItems: 1 32 + 33 + memory-region: 34 + maxItems: 1 35 + description: 36 + a reserved-memory region to use for the framebuffer. 37 + 38 + syscon: 39 + $ref: /schemas/types.yaml#/definitions/phandle 40 + description: Phandle to SCU 41 + 42 + required: 43 + - compatible 44 + - reg 45 + - interrupts 46 + - clocks 47 + - resets 48 + - memory-region 49 + 50 + additionalProperties: false 51 + 52 + examples: 53 + - | 54 + #include <dt-bindings/clock/aspeed-clock.h> 55 + 56 + display@1e6e6000 { 57 + compatible = "aspeed,ast2500-gfx", "syscon"; 58 + reg = <0x1e6e6000 0x1000>; 59 + clocks = <&syscon ASPEED_CLK_GATE_D1CLK>; 60 + resets = <&syscon ASPEED_RESET_CRT1>; 61 + interrupts = <0x19>; 62 + memory-region = <&gfx_memory>; 63 + };
-41
Documentation/devicetree/bindings/gpu/aspeed-gfx.txt
··· 1 - Device tree configuration for the GFX display device on the ASPEED SoCs 2 - 3 - Required properties: 4 - - compatible 5 - * Must be one of the following: 6 - + aspeed,ast2500-gfx 7 - + aspeed,ast2400-gfx 8 - * In addition, the ASPEED pinctrl bindings require the 'syscon' property to 9 - be present 10 - 11 - - reg: Physical base address and length of the GFX registers 12 - 13 - - interrupts: interrupt number for the GFX device 14 - 15 - - clocks: clock number used to generate the pixel clock 16 - 17 - - resets: reset line that must be released to use the GFX device 18 - 19 - - memory-region: 20 - Phandle to a memory region to allocate from, as defined in 21 - Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt 22 - 23 - 24 - Example: 25 - 26 - gfx: display@1e6e6000 { 27 - compatible = "aspeed,ast2500-gfx", "syscon"; 28 - reg = <0x1e6e6000 0x1000>; 29 - reg-io-width = <4>; 30 - clocks = <&syscon ASPEED_CLK_GATE_D1CLK>; 31 - resets = <&syscon ASPEED_RESET_CRT1>; 32 - interrupts = <0x19>; 33 - memory-region = <&gfx_memory>; 34 - }; 35 - 36 - gfx_memory: framebuffer { 37 - size = <0x01000000>; 38 - alignment = <0x01000000>; 39 - compatible = "shared-dma-pool"; 40 - reusable; 41 - };
-115
Documentation/devicetree/bindings/gpu/nvidia,gk20a.txt
··· 1 - NVIDIA Tegra Graphics Processing Units 2 - 3 - Required properties: 4 - - compatible: "nvidia,<gpu>" 5 - Currently recognized values: 6 - - nvidia,gk20a 7 - - nvidia,gm20b 8 - - nvidia,gp10b 9 - - nvidia,gv11b 10 - - reg: Physical base address and length of the controller's registers. 11 - Must contain two entries: 12 - - first entry for bar0 13 - - second entry for bar1 14 - - interrupts: Must contain an entry for each entry in interrupt-names. 15 - See ../interrupt-controller/interrupts.txt for details. 16 - - interrupt-names: Must include the following entries: 17 - - stall 18 - - nonstall 19 - - vdd-supply: regulator for supply voltage. Only required for GPUs not using 20 - power domains. 21 - - clocks: Must contain an entry for each entry in clock-names. 22 - See ../clocks/clock-bindings.txt for details. 23 - - clock-names: Must include the following entries: 24 - - gpu 25 - - pwr 26 - If the compatible string is "nvidia,gm20b", then the following clock 27 - is also required: 28 - - ref 29 - If the compatible string is "nvidia,gv11b", then the following clock is also 30 - required: 31 - - fuse 32 - - resets: Must contain an entry for each entry in reset-names. 33 - See ../reset/reset.txt for details. 34 - - reset-names: Must include the following entries: 35 - - gpu 36 - - power-domains: GPUs that make use of power domains can define this property 37 - instead of vdd-supply. Currently "nvidia,gp10b" makes use of this. 38 - 39 - Optional properties: 40 - - iommus: A reference to the IOMMU. See ../iommu/iommu.txt for details. 41 - 42 - Example for GK20A: 43 - 44 - gpu@57000000 { 45 - compatible = "nvidia,gk20a"; 46 - reg = <0x0 0x57000000 0x0 0x01000000>, 47 - <0x0 0x58000000 0x0 0x01000000>; 48 - interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>, 49 - <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>; 50 - interrupt-names = "stall", "nonstall"; 51 - vdd-supply = <&vdd_gpu>; 52 - clocks = <&tegra_car TEGRA124_CLK_GPU>, 53 - <&tegra_car TEGRA124_CLK_PLL_P_OUT5>; 54 - clock-names = "gpu", "pwr"; 55 - resets = <&tegra_car 184>; 56 - reset-names = "gpu"; 57 - iommus = <&mc TEGRA_SWGROUP_GPU>; 58 - }; 59 - 60 - Example for GM20B: 61 - 62 - gpu@57000000 { 63 - compatible = "nvidia,gm20b"; 64 - reg = <0x0 0x57000000 0x0 0x01000000>, 65 - <0x0 0x58000000 0x0 0x01000000>; 66 - interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>, 67 - <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>; 68 - interrupt-names = "stall", "nonstall"; 69 - clocks = <&tegra_car TEGRA210_CLK_GPU>, 70 - <&tegra_car TEGRA210_CLK_PLL_P_OUT5>, 71 - <&tegra_car TEGRA210_CLK_PLL_G_REF>; 72 - clock-names = "gpu", "pwr", "ref"; 73 - resets = <&tegra_car 184>; 74 - reset-names = "gpu"; 75 - iommus = <&mc TEGRA_SWGROUP_GPU>; 76 - }; 77 - 78 - Example for GP10B: 79 - 80 - gpu@17000000 { 81 - compatible = "nvidia,gp10b"; 82 - reg = <0x0 0x17000000 0x0 0x1000000>, 83 - <0x0 0x18000000 0x0 0x1000000>; 84 - interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH 85 - GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 86 - interrupt-names = "stall", "nonstall"; 87 - clocks = <&bpmp TEGRA186_CLK_GPCCLK>, 88 - <&bpmp TEGRA186_CLK_GPU>; 89 - clock-names = "gpu", "pwr"; 90 - resets = <&bpmp TEGRA186_RESET_GPU>; 91 - reset-names = "gpu"; 92 - power-domains = <&bpmp TEGRA186_POWER_DOMAIN_GPU>; 93 - iommus = <&smmu TEGRA186_SID_GPU>; 94 - }; 95 - 96 - Example for GV11B: 97 - 98 - gpu@17000000 { 99 - compatible = "nvidia,gv11b"; 100 - reg = <0x17000000 0x1000000>, 101 - <0x18000000 0x1000000>; 102 - interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>, 103 - <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 104 - interrupt-names = "stall", "nonstall"; 105 - clocks = <&bpmp TEGRA194_CLK_GPCCLK>, 106 - <&bpmp TEGRA194_CLK_GPU_PWR>, 107 - <&bpmp TEGRA194_CLK_FUSE>; 108 - clock-names = "gpu", "pwr", "fuse"; 109 - resets = <&bpmp TEGRA194_RESET_GPU>; 110 - reset-names = "gpu"; 111 - dma-coherent; 112 - 113 - power-domains = <&bpmp TEGRA194_POWER_DOMAIN_GPU>; 114 - iommus = <&smmu TEGRA194_SID_GPU>; 115 - };
+171
Documentation/devicetree/bindings/gpu/nvidia,gk20a.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/gpu/nvidia,gk20a.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: NVIDIA Tegra Graphics Processing Units 8 + 9 + maintainers: 10 + - Alexandre Courbot <acourbot@nvidia.com> 11 + - Jon Hunter <jonathanh@nvidia.com> 12 + - Thierry Reding <treding@nvidia.com> 13 + 14 + properties: 15 + compatible: 16 + enum: 17 + - nvidia,gk20a 18 + - nvidia,gm20b 19 + - nvidia,gp10b 20 + - nvidia,gv11b 21 + 22 + reg: 23 + items: 24 + - description: Bar0 register window 25 + - description: Bar1 register window 26 + 27 + interrupts: 28 + items: 29 + - description: Stall interrupt 30 + - description: Nonstall interrupt 31 + 32 + interrupt-names: 33 + items: 34 + - const: stall 35 + - const: nonstall 36 + 37 + vdd-supply: 38 + description: 39 + Regulator for GPU supply voltage 40 + 41 + clocks: 42 + minItems: 2 43 + items: 44 + - description: GPU clock 45 + - description: Power clock 46 + - description: Reference or fuse clock 47 + 48 + clock-names: 49 + minItems: 2 50 + items: 51 + - const: gpu 52 + - const: pwr 53 + - enum: [ ref, fuse ] 54 + 55 + resets: 56 + maxItems: 1 57 + 58 + reset-names: 59 + items: 60 + - const: gpu 61 + 62 + power-domains: 63 + maxItems: 1 64 + 65 + interconnects: 66 + minItems: 4 67 + maxItems: 12 68 + 69 + interconnect-names: 70 + minItems: 4 71 + maxItems: 12 72 + 73 + iommus: 74 + maxItems: 1 75 + 76 + dma-coherent: true 77 + 78 + required: 79 + - compatible 80 + - reg 81 + - interrupts 82 + - interrupt-names 83 + - clocks 84 + - clock-names 85 + - resets 86 + - reset-names 87 + 88 + allOf: 89 + - if: 90 + properties: 91 + compatible: 92 + contains: 93 + enum: 94 + - nvidia,gp10b 95 + - nvidia,gv11b 96 + then: 97 + required: 98 + - power-domains 99 + else: 100 + properties: 101 + interconnects: false 102 + interconnect-names: false 103 + 104 + required: 105 + - vdd-supply 106 + - if: 107 + properties: 108 + compatible: 109 + contains: 110 + enum: 111 + - nvidia,gp10b 112 + then: 113 + properties: 114 + interconnects: 115 + maxItems: 4 116 + 117 + interconnect-names: 118 + items: 119 + - const: dma-mem 120 + - const: write-0 121 + - const: read-1 122 + - const: write-1 123 + - if: 124 + properties: 125 + compatible: 126 + contains: 127 + enum: 128 + - nvidia,gv11b 129 + then: 130 + properties: 131 + interconnects: 132 + minItems: 12 133 + 134 + interconnect-names: 135 + items: 136 + - const: dma-mem 137 + - const: read-0-hp 138 + - const: write-0 139 + - const: read-1 140 + - const: read-1-hp 141 + - const: write-1 142 + - const: read-2 143 + - const: read-2-hp 144 + - const: write-2 145 + - const: read-3 146 + - const: read-3-hp 147 + - const: write-3 148 + 149 + additionalProperties: false 150 + 151 + examples: 152 + - | 153 + #include <dt-bindings/interrupt-controller/arm-gic.h> 154 + #include <dt-bindings/clock/tegra124-car-common.h> 155 + #include <dt-bindings/memory/tegra124-mc.h> 156 + 157 + gpu@57000000 { 158 + compatible = "nvidia,gk20a"; 159 + reg = <0x57000000 0x01000000>, 160 + <0x58000000 0x01000000>; 161 + interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>, 162 + <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>; 163 + interrupt-names = "stall", "nonstall"; 164 + vdd-supply = <&vdd_gpu>; 165 + clocks = <&tegra_car TEGRA124_CLK_GPU>, 166 + <&tegra_car TEGRA124_CLK_PLL_P_OUT5>; 167 + clock-names = "gpu", "pwr"; 168 + resets = <&tegra_car 184>; 169 + reset-names = "gpu"; 170 + iommus = <&mc TEGRA_SWGROUP_GPU>; 171 + };
+1
Documentation/devicetree/bindings/interrupt-controller/arm,gic.yaml
··· 59 59 - nvidia,tegra186-agic 60 60 - nvidia,tegra194-agic 61 61 - nvidia,tegra234-agic 62 + - nvidia,tegra264-agic 62 63 - const: nvidia,tegra210-agic 63 64 64 65 interrupt-controller: true
+16 -1
Documentation/devicetree/bindings/interrupt-controller/chrp,open-pic.yaml
··· 36 36 const: 0 37 37 38 38 '#interrupt-cells': 39 - const: 2 39 + description: 40 + A value of 4 means that interrupt specifiers contain the interrupt-type or 41 + type-specific information cells. 42 + enum: [ 2, 4 ] 40 43 41 44 pic-no-reset: 42 45 description: Indicates the PIC shall not be reset during runtime initialization. 43 46 type: boolean 47 + 48 + single-cpu-affinity: 49 + description: 50 + If present, non-IPI interrupts will be routed to a single CPU at a time. 51 + type: boolean 52 + 53 + last-interrupt-source: 54 + description: 55 + Some MPICs do not correctly report the number of hardware sources in the 56 + global feature registers. This value, if specified, overrides the value 57 + read from MPIC_GREG_FEATURE_LAST_SRC. 58 + $ref: /schemas/types.yaml#/definitions/uint32 44 59 45 60 required: 46 61 - compatible
-84
Documentation/devicetree/bindings/interrupt-controller/hisilicon,mbigen-v2.txt
··· 1 - Hisilicon mbigen device tree bindings. 2 - ======================================= 3 - 4 - Mbigen means: message based interrupt generator. 5 - 6 - MBI is kind of msi interrupt only used on Non-PCI devices. 7 - 8 - To reduce the wired interrupt number connected to GIC, 9 - Hisilicon designed mbigen to collect and generate interrupt. 10 - 11 - 12 - Non-pci devices can connect to mbigen and generate the 13 - interrupt by writing ITS register. 14 - 15 - The mbigen chip and devices connect to mbigen have the following properties: 16 - 17 - Mbigen main node required properties: 18 - ------------------------------------------- 19 - - compatible: Should be "hisilicon,mbigen-v2" 20 - 21 - - reg: Specifies the base physical address and size of the Mbigen 22 - registers. 23 - 24 - Mbigen sub node required properties: 25 - ------------------------------------------ 26 - - interrupt controller: Identifies the node as an interrupt controller 27 - 28 - - msi-parent: Specifies the MSI controller this mbigen use. 29 - For more detail information,please refer to the generic msi-parent binding in 30 - Documentation/devicetree/bindings/interrupt-controller/msi.txt. 31 - 32 - - num-pins: the total number of pins implemented in this Mbigen 33 - instance. 34 - 35 - - #interrupt-cells : Specifies the number of cells needed to encode an 36 - interrupt source. The value must be 2. 37 - 38 - The 1st cell is hardware pin number of the interrupt.This number is local to 39 - each mbigen chip and in the range from 0 to the maximum interrupts number 40 - of the mbigen. 41 - 42 - The 2nd cell is the interrupt trigger type. 43 - The value of this cell should be: 44 - 1: rising edge triggered 45 - or 46 - 4: high level triggered 47 - 48 - Examples: 49 - 50 - mbigen_chip_dsa { 51 - compatible = "hisilicon,mbigen-v2"; 52 - reg = <0x0 0xc0080000 0x0 0x10000>; 53 - 54 - mbigen_gmac:intc_gmac { 55 - interrupt-controller; 56 - msi-parent = <&its_dsa 0x40b1c>; 57 - num-pins = <9>; 58 - #interrupt-cells = <2>; 59 - }; 60 - 61 - mbigen_i2c:intc_i2c { 62 - interrupt-controller; 63 - msi-parent = <&its_dsa 0x40b0e>; 64 - num-pins = <2>; 65 - #interrupt-cells = <2>; 66 - }; 67 - }; 68 - 69 - Devices connect to mbigen required properties: 70 - ---------------------------------------------------- 71 - -interrupts:Specifies the interrupt source. 72 - For the specific information of each cell in this property,please refer to 73 - the "interrupt-cells" description mentioned above. 74 - 75 - Examples: 76 - gmac0: ethernet@c2080000 { 77 - #address-cells = <1>; 78 - #size-cells = <0>; 79 - reg = <0 0xc2080000 0 0x20000>, 80 - <0 0xc0000000 0 0x1000>; 81 - interrupt-parent = <&mbigen_device_gmac>; 82 - interrupts = <656 1>, 83 - <657 1>; 84 - };
+76
Documentation/devicetree/bindings/interrupt-controller/hisilicon,mbigen-v2.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/interrupt-controller/hisilicon,mbigen-v2.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Hisilicon mbigen v2 8 + 9 + maintainers: 10 + - Wei Xu <xuwei5@hisilicon.com> 11 + 12 + description: > 13 + Mbigen means: message based interrupt generator. 14 + 15 + MBI is kind of msi interrupt only used on Non-PCI devices. 16 + 17 + To reduce the wired interrupt number connected to GIC, Hisilicon designed 18 + mbigen to collect and generate interrupt. 19 + 20 + Non-pci devices can connect to mbigen and generate the interrupt by writing 21 + ITS register. 22 + 23 + properties: 24 + compatible: 25 + const: hisilicon,mbigen-v2 26 + 27 + reg: 28 + maxItems: 1 29 + 30 + required: 31 + - compatible 32 + - reg 33 + 34 + additionalProperties: 35 + type: object 36 + additionalProperties: false 37 + 38 + properties: 39 + interrupt-controller: true 40 + 41 + '#interrupt-cells': 42 + const: 2 43 + 44 + msi-parent: 45 + maxItems: 1 46 + 47 + num-pins: 48 + description: The total number of pins implemented in this Mbigen instance. 49 + $ref: /schemas/types.yaml#/definitions/uint32 50 + 51 + required: 52 + - interrupt-controller 53 + - "#interrupt-cells" 54 + - msi-parent 55 + - num-pins 56 + 57 + examples: 58 + - | 59 + mbigen@c0080000 { 60 + compatible = "hisilicon,mbigen-v2"; 61 + reg = <0xc0080000 0x10000>; 62 + 63 + mbigen_gmac: intc_gmac { 64 + interrupt-controller; 65 + #interrupt-cells = <2>; 66 + msi-parent = <&its_dsa 0x40b1c>; 67 + num-pins = <9>; 68 + }; 69 + 70 + mbigen_i2c: intc_i2c { 71 + interrupt-controller; 72 + #interrupt-cells = <2>; 73 + msi-parent = <&its_dsa 0x40b0e>; 74 + num-pins = <2>; 75 + }; 76 + };
+3
Documentation/devicetree/bindings/interrupt-controller/marvell,cp110-icu.yaml
··· 49 49 reg: 50 50 maxItems: 1 51 51 52 + '#address-cells': 53 + const: 0 54 + 52 55 '#interrupt-cells': 53 56 const: 2 54 57
+1
Documentation/devicetree/bindings/interrupt-controller/qcom,pdc.yaml
··· 26 26 compatible: 27 27 items: 28 28 - enum: 29 + - qcom,glymur-pdc 29 30 - qcom,qcs615-pdc 30 31 - qcom,qcs8300-pdc 31 32 - qcom,qdu1000-pdc
+1 -1
Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml
··· 52 52 As above, The Multimedia HW will go through SMI and M4U while it 53 53 access EMI. SMI is a bridge between m4u and the Multimedia HW. It contain 54 54 smi local arbiter and smi common. It will control whether the Multimedia 55 - HW should go though the m4u for translation or bypass it and talk 55 + HW should go through the m4u for translation or bypass it and talk 56 56 directly with EMI. And also SMI help control the power domain and clocks for 57 57 each local arbiter. 58 58
+1 -1
Documentation/devicetree/bindings/leds/common.yaml
··· 62 62 default-state: 63 63 description: 64 64 The initial state of the LED. If the LED is already on or off and the 65 - default-state property is set the to same value, then no glitch should be 65 + default-state property is set to the same value, then no glitch should be 66 66 produced where the LED momentarily turns off (or on). The "keep" setting 67 67 will keep the LED at whatever its current state is, without producing a 68 68 glitch.
-59
Documentation/devicetree/bindings/mailbox/brcm,iproc-flexrm-mbox.txt
··· 1 - Broadcom FlexRM Ring Manager 2 - ============================ 3 - The Broadcom FlexRM ring manager provides a set of rings which can be 4 - used to submit work to offload engines. An SoC may have multiple FlexRM 5 - hardware blocks. There is one device tree entry per FlexRM block. The 6 - FlexRM driver will create a mailbox-controller instance for given FlexRM 7 - hardware block where each mailbox channel is a separate FlexRM ring. 8 - 9 - Required properties: 10 - -------------------- 11 - - compatible: Should be "brcm,iproc-flexrm-mbox" 12 - - reg: Specifies base physical address and size of the FlexRM 13 - ring registers 14 - - msi-parent: Phandles (and potential Device IDs) to MSI controllers 15 - The FlexRM engine will send MSIs (instead of wired 16 - interrupts) to CPU. There is one MSI for each FlexRM ring. 17 - Refer devicetree/bindings/interrupt-controller/msi.txt 18 - - #mbox-cells: Specifies the number of cells needed to encode a mailbox 19 - channel. This should be 3. 20 - 21 - The 1st cell is the mailbox channel number. 22 - 23 - The 2nd cell contains MSI completion threshold. This is the 24 - number of completion messages for which FlexRM will inject 25 - one MSI interrupt to CPU. 26 - 27 - The 3rd cell contains MSI timer value representing time for 28 - which FlexRM will wait to accumulate N completion messages 29 - where N is the value specified by 2nd cell above. If FlexRM 30 - does not get required number of completion messages in time 31 - specified by this cell then it will inject one MSI interrupt 32 - to CPU provided at least one completion message is available. 33 - 34 - Optional properties: 35 - -------------------- 36 - - dma-coherent: Present if DMA operations made by the FlexRM engine (such 37 - as DMA descriptor access, access to buffers pointed by DMA 38 - descriptors and read/write pointer updates to DDR) are 39 - cache coherent with the CPU. 40 - 41 - Example: 42 - -------- 43 - crypto_mbox: mbox@67000000 { 44 - compatible = "brcm,iproc-flexrm-mbox"; 45 - reg = <0x67000000 0x200000>; 46 - msi-parent = <&gic_its 0x7f00>; 47 - #mbox-cells = <3>; 48 - }; 49 - 50 - crypto@672c0000 { 51 - compatible = "brcm,spu2-v2-crypto"; 52 - reg = <0x672c0000 0x1000>; 53 - mboxes = <&crypto_mbox 0 0x1 0xffff>, 54 - <&crypto_mbox 1 0x1 0xffff>, 55 - <&crypto_mbox 16 0x1 0xffff>, 56 - <&crypto_mbox 17 0x1 0xffff>, 57 - <&crypto_mbox 30 0x1 0xffff>, 58 - <&crypto_mbox 31 0x1 0xffff>; 59 - };
+63
Documentation/devicetree/bindings/mailbox/brcm,iproc-flexrm-mbox.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/mailbox/brcm,iproc-flexrm-mbox.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Broadcom FlexRM Ring Manager 8 + 9 + maintainers: 10 + - Ray Jui <rjui@broadcom.com> 11 + - Scott Branden <sbranden@broadcom.com> 12 + 13 + description: 14 + The Broadcom FlexRM ring manager provides a set of rings which can be used to 15 + submit work to offload engines. An SoC may have multiple FlexRM hardware 16 + blocks. There is one device tree entry per FlexRM block. The FlexRM driver 17 + will create a mailbox-controller instance for given FlexRM hardware block 18 + where each mailbox channel is a separate FlexRM ring. 19 + 20 + properties: 21 + compatible: 22 + const: brcm,iproc-flexrm-mbox 23 + 24 + reg: 25 + maxItems: 1 26 + 27 + msi-parent: 28 + maxItems: 1 29 + 30 + '#mbox-cells': 31 + description: > 32 + The 1st cell is the mailbox channel number. 33 + 34 + The 2nd cell contains MSI completion threshold. This is the number of 35 + completion messages for which FlexRM will inject one MSI interrupt to CPU. 36 + 37 + The 3rd cell contains MSI timer value representing time for which FlexRM 38 + will wait to accumulate N completion messages where N is the value 39 + specified by 2nd cell above. If FlexRM does not get required number of 40 + completion messages in time specified by this cell then it will inject one 41 + MSI interrupt to CPU provided at least one completion message is 42 + available. 43 + const: 3 44 + 45 + dma-coherent: true 46 + 47 + required: 48 + - compatible 49 + - reg 50 + - msi-parent 51 + - '#mbox-cells' 52 + 53 + additionalProperties: false 54 + 55 + examples: 56 + - | 57 + mailbox@67000000 { 58 + compatible = "brcm,iproc-flexrm-mbox"; 59 + reg = <0x67000000 0x200000>; 60 + msi-parent = <&gic_its 0x7f00>; 61 + #mbox-cells = <3>; 62 + dma-coherent; 63 + };
-25
Documentation/devicetree/bindings/mailbox/brcm,iproc-pdc-mbox.txt
··· 1 - The PDC driver manages data transfer to and from various offload engines 2 - on some Broadcom SoCs. An SoC may have multiple PDC hardware blocks. There is 3 - one device tree entry per block. On some chips, the PDC functionality is 4 - handled by the FA2 (Northstar Plus). 5 - 6 - Required properties: 7 - - compatible : Should be "brcm,iproc-pdc-mbox" or "brcm,iproc-fa2-mbox" for 8 - FA2/Northstar Plus. 9 - - reg: Should contain PDC registers location and length. 10 - - interrupts: Should contain the IRQ line for the PDC. 11 - - #mbox-cells: 1 12 - - brcm,rx-status-len: Length of metadata preceding received frames, in bytes. 13 - 14 - Optional properties: 15 - - brcm,use-bcm-hdr: present if a BCM header precedes each frame. 16 - 17 - Example: 18 - pdc0: iproc-pdc0@612c0000 { 19 - compatible = "brcm,iproc-pdc-mbox"; 20 - reg = <0 0x612c0000 0 0x445>; /* PDC FS0 regs */ 21 - interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>; 22 - #mbox-cells = <1>; /* one cell per mailbox channel */ 23 - brcm,rx-status-len = <32>; 24 - brcm,use-bcm-hdr; 25 - };
+66
Documentation/devicetree/bindings/mailbox/brcm,iproc-pdc-mbox.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/mailbox/brcm,iproc-pdc-mbox.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Broadcom iProc PDC mailbox 8 + 9 + maintainers: 10 + - Ray Jui <rjui@broadcom.com> 11 + - Scott Branden <sbranden@broadcom.com> 12 + 13 + description: 14 + The PDC driver manages data transfer to and from various offload engines on 15 + some Broadcom SoCs. An SoC may have multiple PDC hardware blocks. There is one 16 + device tree entry per block. On some chips, the PDC functionality is handled 17 + by the FA2 (Northstar Plus). 18 + 19 + properties: 20 + compatible: 21 + enum: 22 + - brcm,iproc-pdc-mbox 23 + - brcm,iproc-fa2-mbox 24 + 25 + reg: 26 + maxItems: 1 27 + 28 + dma-coherent: true 29 + 30 + interrupts: 31 + maxItems: 1 32 + 33 + '#mbox-cells': 34 + const: 1 35 + 36 + brcm,rx-status-len: 37 + description: 38 + Length of metadata preceding received frames, in bytes. 39 + $ref: /schemas/types.yaml#/definitions/uint32 40 + 41 + brcm,use-bcm-hdr: 42 + type: boolean 43 + description: 44 + Present if a BCM header precedes each frame. 45 + 46 + required: 47 + - compatible 48 + - reg 49 + - interrupts 50 + - '#mbox-cells' 51 + - brcm,rx-status-len 52 + 53 + additionalProperties: false 54 + 55 + examples: 56 + - | 57 + #include <dt-bindings/interrupt-controller/arm-gic.h> 58 + 59 + mailbox0@612c0000 { 60 + compatible = "brcm,iproc-pdc-mbox"; 61 + reg = <0x612c0000 0x445>; 62 + interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>; 63 + #mbox-cells = <1>; 64 + brcm,rx-status-len = <32>; 65 + brcm,use-bcm-hdr; 66 + };
-16
Documentation/devicetree/bindings/mailbox/marvell,armada-3700-rwtm-mailbox.txt
··· 1 - * rWTM BIU Mailbox driver for Armada 37xx 2 - 3 - Required properties: 4 - - compatible: must be "marvell,armada-3700-rwtm-mailbox" 5 - - reg: physical base address of the mailbox and length of memory mapped 6 - region 7 - - interrupts: the IRQ line for the mailbox 8 - - #mbox-cells: must be 1 9 - 10 - Example: 11 - rwtm: mailbox@b0000 { 12 - compatible = "marvell,armada-3700-rwtm-mailbox"; 13 - reg = <0xb0000 0x100>; 14 - interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; 15 - #mbox-cells = <1>; 16 - };
+42
Documentation/devicetree/bindings/mailbox/marvell,armada-3700-rwtm-mailbox.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/mailbox/marvell,armada-3700-rwtm-mailbox.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Marvell Armada 3700 rWTM Mailbox 8 + 9 + maintainers: 10 + - Marek Behún <kabel@kernel.org> 11 + 12 + properties: 13 + compatible: 14 + const: marvell,armada-3700-rwtm-mailbox 15 + 16 + reg: 17 + maxItems: 1 18 + 19 + interrupts: 20 + maxItems: 1 21 + 22 + '#mbox-cells': 23 + const: 1 24 + 25 + required: 26 + - compatible 27 + - reg 28 + - interrupts 29 + - '#mbox-cells' 30 + 31 + additionalProperties: false 32 + 33 + examples: 34 + - | 35 + #include <dt-bindings/interrupt-controller/arm-gic.h> 36 + 37 + mailbox@b0000 { 38 + compatible = "marvell,armada-3700-rwtm-mailbox"; 39 + reg = <0xb0000 0x100>; 40 + interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; 41 + #mbox-cells = <1>; 42 + };
-11
Documentation/devicetree/bindings/mailbox/mediatek,gce-mailbox.yaml
··· 60 60 - interrupts 61 61 - clocks 62 62 63 - allOf: 64 - - if: 65 - not: 66 - properties: 67 - compatible: 68 - contains: 69 - const: mediatek,mt8195-gce 70 - then: 71 - required: 72 - - clock-names 73 - 74 63 additionalProperties: false 75 64 76 65 examples:
+56
Documentation/devicetree/bindings/mailbox/rockchip,rk3368-mailbox.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/mailbox/rockchip,rk3368-mailbox.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Rockchip RK3368 Mailbox Controller 8 + 9 + maintainers: 10 + - Heiko Stuebner <heiko@sntech.de> 11 + 12 + description: 13 + The Rockchip mailbox is used by the Rockchip CPU cores to communicate 14 + requests to MCU processor. 15 + 16 + properties: 17 + compatible: 18 + const: rockchip,rk3368-mailbox 19 + 20 + reg: 21 + maxItems: 1 22 + 23 + clocks: 24 + maxItems: 1 25 + 26 + clock-names: 27 + const: pclk_mailbox 28 + 29 + interrupts: 30 + description: One interrupt for each channel 31 + maxItems: 4 32 + 33 + '#mbox-cells': 34 + const: 1 35 + 36 + required: 37 + - compatible 38 + - reg 39 + - interrupts 40 + - '#mbox-cells' 41 + 42 + additionalProperties: false 43 + 44 + examples: 45 + - | 46 + #include <dt-bindings/interrupt-controller/arm-gic.h> 47 + 48 + mailbox@ff6b0000 { 49 + compatible = "rockchip,rk3368-mailbox"; 50 + reg = <0xff6b0000 0x1000>; 51 + interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>, 52 + <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>, 53 + <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>, 54 + <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>; 55 + #mbox-cells = <1>; 56 + };
-32
Documentation/devicetree/bindings/mailbox/rockchip-mailbox.txt
··· 1 - Rockchip mailbox 2 - 3 - The Rockchip mailbox is used by the Rockchip CPU cores to communicate 4 - requests to MCU processor. 5 - 6 - Refer to ./mailbox.txt for generic information about mailbox device-tree 7 - bindings. 8 - 9 - Required properties: 10 - 11 - - compatible: should be one of the following. 12 - - "rockchip,rk3368-mbox" for rk3368 13 - - reg: physical base address of the controller and length of memory mapped 14 - region. 15 - - interrupts: The interrupt number to the cpu. The interrupt specifier format 16 - depends on the interrupt controller. 17 - - #mbox-cells: Common mailbox binding property to identify the number 18 - of cells required for the mailbox specifier. Should be 1 19 - 20 - Example: 21 - -------- 22 - 23 - /* RK3368 */ 24 - mbox: mbox@ff6b0000 { 25 - compatible = "rockchip,rk3368-mailbox"; 26 - reg = <0x0 0xff6b0000 0x0 0x1000>, 27 - interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>, 28 - <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>, 29 - <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>, 30 - <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>; 31 - #mbox-cells = <1>; 32 - };
+74
Documentation/devicetree/bindings/media/mediatek,mt8173-vpu.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/media/mediatek,mt8173-vpu.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Mediatek MT8173 Video Processor Unit 8 + 9 + maintainers: 10 + - Ariel D'Alessandro <ariel.dalessandro@collabora.com> 11 + 12 + description: 13 + Video Processor Unit is a HW video controller. It controls HW Codec including 14 + H.264/VP8/VP9 Decode, H.264/VP8 Encode and Image Processor (scale/rotate/color 15 + convert). 16 + 17 + properties: 18 + compatible: 19 + const: mediatek,mt8173-vpu 20 + 21 + reg: 22 + maxItems: 2 23 + 24 + reg-names: 25 + items: 26 + - const: tcm 27 + - const: cfg_reg 28 + 29 + interrupts: 30 + maxItems: 1 31 + 32 + clocks: 33 + maxItems: 1 34 + 35 + clock-names: 36 + items: 37 + - const: main 38 + 39 + memory-region: 40 + maxItems: 1 41 + 42 + required: 43 + - compatible 44 + - reg 45 + - reg-names 46 + - interrupts 47 + - clocks 48 + - clock-names 49 + - memory-region 50 + 51 + additionalProperties: false 52 + 53 + examples: 54 + - | 55 + #include <dt-bindings/clock/mt8173-clk.h> 56 + #include <dt-bindings/interrupt-controller/arm-gic.h> 57 + 58 + soc { 59 + #address-cells = <2>; 60 + #size-cells = <2>; 61 + 62 + vpu: vpu@10020000 { 63 + compatible = "mediatek,mt8173-vpu"; 64 + reg = <0 0x10020000 0 0x30000>, 65 + <0 0x10050000 0 0x100>; 66 + reg-names = "tcm", "cfg_reg"; 67 + interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>; 68 + clocks = <&topckgen CLK_TOP_SCP_SEL>; 69 + clock-names = "main"; 70 + memory-region = <&vpu_dma_reserved>; 71 + }; 72 + }; 73 + 74 + ...
+2 -1
Documentation/devicetree/bindings/media/mediatek-mdp.txt
··· 5 5 Required properties (controller node): 6 6 - compatible: "mediatek,mt8173-mdp" 7 7 - mediatek,vpu: the node of video processor unit, see 8 - Documentation/devicetree/bindings/media/mediatek-vpu.txt for details. 8 + Documentation/devicetree/bindings/media/mediatek,mt8173-vpu.yaml for 9 + details. 9 10 10 11 Required properties (all function blocks, child node): 11 12 - compatible: Should be one of
-31
Documentation/devicetree/bindings/media/mediatek-vpu.txt
··· 1 - * Mediatek Video Processor Unit 2 - 3 - Video Processor Unit is a HW video controller. It controls HW Codec including 4 - H.264/VP8/VP9 Decode, H.264/VP8 Encode and Image Processor (scale/rotate/color convert). 5 - 6 - Required properties: 7 - - compatible: "mediatek,mt8173-vpu" 8 - - reg: Must contain an entry for each entry in reg-names. 9 - - reg-names: Must include the following entries: 10 - "tcm": tcm base 11 - "cfg_reg": Main configuration registers base 12 - - interrupts: interrupt number to the cpu. 13 - - clocks : clock name from clock manager 14 - - clock-names: must be main. It is the main clock of VPU 15 - 16 - Optional properties: 17 - - memory-region: phandle to a node describing memory (see 18 - Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt) 19 - to be used for VPU extended memory; if not present, VPU may be located 20 - anywhere in the memory 21 - 22 - Example: 23 - vpu: vpu@10020000 { 24 - compatible = "mediatek,mt8173-vpu"; 25 - reg = <0 0x10020000 0 0x30000>, 26 - <0 0x10050000 0 0x100>; 27 - reg-names = "tcm", "cfg_reg"; 28 - interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>; 29 - clocks = <&topckgen TOP_SCP_SEL>; 30 - clock-names = "main"; 31 - };
-17
Documentation/devicetree/bindings/mfd/aspeed-gfx.txt
··· 1 - * Device tree bindings for Aspeed SoC Display Controller (GFX) 2 - 3 - The Aspeed SoC Display Controller primarily does as its name suggests, but also 4 - participates in pinmux requests on the g5 SoCs. It is therefore considered a 5 - syscon device. 6 - 7 - Required properties: 8 - - compatible: "aspeed,ast2500-gfx", "syscon" 9 - - reg: contains offset/length value of the GFX memory 10 - region. 11 - 12 - Example: 13 - 14 - gfx: display@1e6e6000 { 15 - compatible = "aspeed,ast2500-gfx", "syscon"; 16 - reg = <0x1e6e6000 0x1000>; 17 - };
+1 -1
Documentation/devicetree/bindings/mfd/ti,lp87524-q1.yaml
··· 26 26 '#gpio-cells': 27 27 description: 28 28 The first cell is the pin number. 29 - The second cell is is used to specify flags. 29 + The second cell is used to specify flags. 30 30 See ../gpio/gpio.txt for more information. 31 31 const: 2 32 32
+1 -1
Documentation/devicetree/bindings/mfd/ti,lp87561-q1.yaml
··· 26 26 '#gpio-cells': 27 27 description: 28 28 The first cell is the pin number. 29 - The second cell is is used to specify flags. 29 + The second cell is used to specify flags. 30 30 See ../gpio/gpio.txt for more information. 31 31 const: 2 32 32
+1 -1
Documentation/devicetree/bindings/mfd/ti,lp87565-q1.yaml
··· 28 28 '#gpio-cells': 29 29 description: 30 30 The first cell is the pin number. 31 - The second cell is is used to specify flags. 31 + The second cell is used to specify flags. 32 32 See ../gpio/gpio.txt for more information. 33 33 const: 2 34 34
+2 -2
Documentation/devicetree/bindings/mmc/mmc-controller-common.yaml
··· 57 57 # latter case. We choose to use the XOR logic for GPIO CD and WP 58 58 # lines. This means, the two properties are "superimposed," for 59 59 # example leaving the GPIO_ACTIVE_LOW flag clear and specifying the 60 - # respective *-inverted property property results in a 60 + # respective *-inverted property results in a 61 61 # double-inversion and actually means the "normal" line polarity is 62 62 # in effect. 63 63 wp-inverted: ··· 272 272 mmc-pwrseq-simple.yaml. But now it\'s reused as a tunable delay 273 273 waiting for I/O signalling and card power supply to be stable, 274 274 regardless of whether pwrseq-simple is used. Default to 10ms if 275 - no available. 275 + not available. 276 276 default: 10 277 277 278 278 supports-cqe:
+1 -1
Documentation/devicetree/bindings/net/amlogic,meson-dwmac.yaml
··· 149 149 - description: 150 150 The first register range should be the one of the DWMAC controller 151 151 - description: 152 - The second range is is for the Amlogic specific configuration 152 + The second range is for the Amlogic specific configuration 153 153 (for example the PRG_ETHERNET register range on Meson8b and newer) 154 154 155 155 interrupts:
+1 -1
Documentation/devicetree/bindings/net/ethernet-controller.yaml
··· 222 222 reg: 223 223 maxItems: 1 224 224 description: 225 - This define the LED index in the PHY or the MAC. It's really 225 + This defines the LED index in the PHY or the MAC. It's really 226 226 driver dependent and required for ports that define multiple 227 227 LED for the same port. 228 228
+1 -1
Documentation/devicetree/bindings/net/ethernet-phy.yaml
··· 266 266 reg: 267 267 maxItems: 1 268 268 description: 269 - This define the LED index in the PHY or the MAC. It's really 269 + This defines the LED index in the PHY or the MAC. It's really 270 270 driver dependent and required for ports that define multiple 271 271 LED for the same port. 272 272
+2 -2
Documentation/devicetree/bindings/net/micrel-ksz90x1.txt
··· 13 13 14 14 All skew control options are specified in picoseconds. The minimum 15 15 value is 0, the maximum value is 3000, and it can be specified in 200ps 16 - steps, *but* these values are in not fact what you get because this chip's 16 + steps, *but* these values are in no way what you get because this chip's 17 17 skew values actually increase in 120ps steps, starting from -840ps. The 18 18 incorrect values came from an error in the original KSZ9021 datasheet 19 19 before it was corrected in revision 1.2 (Feb 2014), but it is too late to ··· 153 153 - micrel,force-master: 154 154 Boolean, force phy to master mode. Only set this option if the phy 155 155 reference clock provided at CLK125_NDO pin is used as MAC reference 156 - clock because the clock jitter in slave mode is to high (errata#2). 156 + clock because the clock jitter in slave mode is too high (errata#2). 157 157 Attention: The link partner must be configurable as slave otherwise 158 158 no link will be established. 159 159
+1 -1
Documentation/devicetree/bindings/net/micrel.txt
··· 26 26 Setting the RMII Reference Clock Select bit enables 25 MHz rather 27 27 than 50 MHz clock mode. 28 28 29 - Note that this option in only needed for certain PHY revisions with a 29 + Note that this option is only needed for certain PHY revisions with a 30 30 non-standard, inverted function of this configuration bit. 31 31 Specifically, a clock reference ("rmii-ref" below) is always needed to 32 32 actually select a mode.
+1
Documentation/devicetree/bindings/pci/brcm,iproc-pcie.yaml
··· 108 108 #include <dt-bindings/interrupt-controller/arm-gic.h> 109 109 110 110 gic: interrupt-controller { 111 + #address-cells = <0>; 111 112 interrupt-controller; 112 113 #interrupt-cells = <3>; 113 114 };
+4
Documentation/devicetree/bindings/pci/marvell,armada-3700-pcie.yaml
··· 42 42 additionalProperties: false 43 43 44 44 properties: 45 + '#address-cells': 46 + const: 0 47 + 45 48 interrupt-controller: true 46 49 47 50 '#interrupt-cells': ··· 95 92 reset-gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; 96 93 97 94 pcie_intc: interrupt-controller { 95 + #address-cells = <0>; 98 96 interrupt-controller; 99 97 #interrupt-cells = <1>; 100 98 };
+3
Documentation/devicetree/bindings/pci/marvell,kirkwood-pcie.yaml
··· 101 101 additionalProperties: false 102 102 103 103 properties: 104 + '#address-cells': 105 + const: 0 106 + 104 107 interrupt-controller: true 105 108 106 109 '#interrupt-cells':
+4
Documentation/devicetree/bindings/pci/socionext,uniphier-pcie.yaml
··· 56 56 additionalProperties: false 57 57 58 58 properties: 59 + '#address-cells': 60 + const: 0 61 + 59 62 interrupt-controller: true 60 63 61 64 '#interrupt-cells': ··· 112 109 <0 0 0 4 &pcie_intc 3>; 113 110 114 111 pcie_intc: interrupt-controller { 112 + #address-cells = <0>; 115 113 interrupt-controller; 116 114 #interrupt-cells = <1>; 117 115 interrupt-parent = <&gic>;
+3
Documentation/devicetree/bindings/pci/ti,j721e-pci-host.yaml
··· 99 99 additionalProperties: false 100 100 101 101 properties: 102 + '#address-cells': 103 + const: 0 104 + 102 105 interrupt-controller: true 103 106 104 107 '#interrupt-cells':
+142
Documentation/devicetree/bindings/perf/apm,xgene-pmu.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/perf/apm,xgene-pmu.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: APM X-Gene SoC PMU 8 + 9 + maintainers: 10 + - Khuong Dinh <khuong@os.amperecomputing.com> 11 + 12 + description: | 13 + This is APM X-Gene SoC PMU (Performance Monitoring Unit) module. 14 + The following PMU devices are supported: 15 + 16 + L3C - L3 cache controller 17 + IOB - IO bridge 18 + MCB - Memory controller bridge 19 + MC - Memory controller 20 + 21 + properties: 22 + compatible: 23 + enum: 24 + - apm,xgene-pmu 25 + - apm,xgene-pmu-v2 26 + 27 + "#address-cells": 28 + const: 2 29 + 30 + "#size-cells": 31 + const: 2 32 + 33 + ranges: true 34 + 35 + reg: 36 + maxItems: 1 37 + 38 + interrupts: 39 + maxItems: 1 40 + 41 + regmap-csw: 42 + $ref: /schemas/types.yaml#/definitions/phandle 43 + 44 + regmap-mcba: 45 + $ref: /schemas/types.yaml#/definitions/phandle 46 + 47 + regmap-mcbb: 48 + $ref: /schemas/types.yaml#/definitions/phandle 49 + 50 + required: 51 + - compatible 52 + - regmap-csw 53 + - regmap-mcba 54 + - regmap-mcbb 55 + - reg 56 + - interrupts 57 + 58 + additionalProperties: 59 + type: object 60 + additionalProperties: false 61 + 62 + properties: 63 + compatible: 64 + enum: 65 + - apm,xgene-pmu-l3c 66 + - apm,xgene-pmu-iob 67 + - apm,xgene-pmu-mcb 68 + - apm,xgene-pmu-mc 69 + 70 + reg: 71 + maxItems: 1 72 + 73 + enable-bit-index: 74 + description: 75 + Specifies which bit enables the associated resource in MCB or MC subnodes. 76 + $ref: /schemas/types.yaml#/definitions/uint32 77 + maximum: 31 78 + 79 + examples: 80 + - | 81 + bus { 82 + #address-cells = <2>; 83 + #size-cells = <2>; 84 + 85 + pmu@78810000 { 86 + compatible = "apm,xgene-pmu-v2"; 87 + reg = <0x0 0x78810000 0x0 0x1000>; 88 + #address-cells = <2>; 89 + #size-cells = <2>; 90 + ranges; 91 + regmap-csw = <&csw>; 92 + regmap-mcba = <&mcba>; 93 + regmap-mcbb = <&mcbb>; 94 + interrupts = <0x0 0x22 0x4>; 95 + 96 + pmul3c@7e610000 { 97 + compatible = "apm,xgene-pmu-l3c"; 98 + reg = <0x0 0x7e610000 0x0 0x1000>; 99 + }; 100 + 101 + pmuiob@7e940000 { 102 + compatible = "apm,xgene-pmu-iob"; 103 + reg = <0x0 0x7e940000 0x0 0x1000>; 104 + }; 105 + 106 + pmucmcb@7e710000 { 107 + compatible = "apm,xgene-pmu-mcb"; 108 + reg = <0x0 0x7e710000 0x0 0x1000>; 109 + enable-bit-index = <0>; 110 + }; 111 + 112 + pmucmcb@7e730000 { 113 + compatible = "apm,xgene-pmu-mcb"; 114 + reg = <0x0 0x7e730000 0x0 0x1000>; 115 + enable-bit-index = <1>; 116 + }; 117 + 118 + pmucmc@7e810000 { 119 + compatible = "apm,xgene-pmu-mc"; 120 + reg = <0x0 0x7e810000 0x0 0x1000>; 121 + enable-bit-index = <0>; 122 + }; 123 + 124 + pmucmc@7e850000 { 125 + compatible = "apm,xgene-pmu-mc"; 126 + reg = <0x0 0x7e850000 0x0 0x1000>; 127 + enable-bit-index = <1>; 128 + }; 129 + 130 + pmucmc@7e890000 { 131 + compatible = "apm,xgene-pmu-mc"; 132 + reg = <0x0 0x7e890000 0x0 0x1000>; 133 + enable-bit-index = <2>; 134 + }; 135 + 136 + pmucmc@7e8d0000 { 137 + compatible = "apm,xgene-pmu-mc"; 138 + reg = <0x0 0x7e8d0000 0x0 0x1000>; 139 + enable-bit-index = <3>; 140 + }; 141 + }; 142 + };
-112
Documentation/devicetree/bindings/perf/apm-xgene-pmu.txt
··· 1 - * APM X-Gene SoC PMU bindings 2 - 3 - This is APM X-Gene SoC PMU (Performance Monitoring Unit) module. 4 - The following PMU devices are supported: 5 - 6 - L3C - L3 cache controller 7 - IOB - IO bridge 8 - MCB - Memory controller bridge 9 - MC - Memory controller 10 - 11 - The following section describes the SoC PMU DT node binding. 12 - 13 - Required properties: 14 - - compatible : Shall be "apm,xgene-pmu" for revision 1 or 15 - "apm,xgene-pmu-v2" for revision 2. 16 - - regmap-csw : Regmap of the CPU switch fabric (CSW) resource. 17 - - regmap-mcba : Regmap of the MCB-A (memory bridge) resource. 18 - - regmap-mcbb : Regmap of the MCB-B (memory bridge) resource. 19 - - reg : First resource shall be the CPU bus PMU resource. 20 - - interrupts : Interrupt-specifier for PMU IRQ. 21 - 22 - Required properties for L3C subnode: 23 - - compatible : Shall be "apm,xgene-pmu-l3c". 24 - - reg : First resource shall be the L3C PMU resource. 25 - 26 - Required properties for IOB subnode: 27 - - compatible : Shall be "apm,xgene-pmu-iob". 28 - - reg : First resource shall be the IOB PMU resource. 29 - 30 - Required properties for MCB subnode: 31 - - compatible : Shall be "apm,xgene-pmu-mcb". 32 - - reg : First resource shall be the MCB PMU resource. 33 - - enable-bit-index : The bit indicates if the according MCB is enabled. 34 - 35 - Required properties for MC subnode: 36 - - compatible : Shall be "apm,xgene-pmu-mc". 37 - - reg : First resource shall be the MC PMU resource. 38 - - enable-bit-index : The bit indicates if the according MC is enabled. 39 - 40 - Example: 41 - csw: csw@7e200000 { 42 - compatible = "apm,xgene-csw", "syscon"; 43 - reg = <0x0 0x7e200000 0x0 0x1000>; 44 - }; 45 - 46 - mcba: mcba@7e700000 { 47 - compatible = "apm,xgene-mcb", "syscon"; 48 - reg = <0x0 0x7e700000 0x0 0x1000>; 49 - }; 50 - 51 - mcbb: mcbb@7e720000 { 52 - compatible = "apm,xgene-mcb", "syscon"; 53 - reg = <0x0 0x7e720000 0x0 0x1000>; 54 - }; 55 - 56 - pmu: pmu@78810000 { 57 - compatible = "apm,xgene-pmu-v2"; 58 - #address-cells = <2>; 59 - #size-cells = <2>; 60 - ranges; 61 - regmap-csw = <&csw>; 62 - regmap-mcba = <&mcba>; 63 - regmap-mcbb = <&mcbb>; 64 - reg = <0x0 0x78810000 0x0 0x1000>; 65 - interrupts = <0x0 0x22 0x4>; 66 - 67 - pmul3c@7e610000 { 68 - compatible = "apm,xgene-pmu-l3c"; 69 - reg = <0x0 0x7e610000 0x0 0x1000>; 70 - }; 71 - 72 - pmuiob@7e940000 { 73 - compatible = "apm,xgene-pmu-iob"; 74 - reg = <0x0 0x7e940000 0x0 0x1000>; 75 - }; 76 - 77 - pmucmcb@7e710000 { 78 - compatible = "apm,xgene-pmu-mcb"; 79 - reg = <0x0 0x7e710000 0x0 0x1000>; 80 - enable-bit-index = <0>; 81 - }; 82 - 83 - pmucmcb@7e730000 { 84 - compatible = "apm,xgene-pmu-mcb"; 85 - reg = <0x0 0x7e730000 0x0 0x1000>; 86 - enable-bit-index = <1>; 87 - }; 88 - 89 - pmucmc@7e810000 { 90 - compatible = "apm,xgene-pmu-mc"; 91 - reg = <0x0 0x7e810000 0x0 0x1000>; 92 - enable-bit-index = <0>; 93 - }; 94 - 95 - pmucmc@7e850000 { 96 - compatible = "apm,xgene-pmu-mc"; 97 - reg = <0x0 0x7e850000 0x0 0x1000>; 98 - enable-bit-index = <1>; 99 - }; 100 - 101 - pmucmc@7e890000 { 102 - compatible = "apm,xgene-pmu-mc"; 103 - reg = <0x0 0x7e890000 0x0 0x1000>; 104 - enable-bit-index = <2>; 105 - }; 106 - 107 - pmucmc@7e8d0000 { 108 - compatible = "apm,xgene-pmu-mc"; 109 - reg = <0x0 0x7e8d0000 0x0 0x1000>; 110 - enable-bit-index = <3>; 111 - }; 112 - };
+2
Documentation/devicetree/bindings/pinctrl/mediatek,mt65xx-pinctrl.yaml
··· 43 43 the amount of cells must be specified as 2. See the below mentioned gpio 44 44 binding representation for description of particular cells. 45 45 46 + gpio-line-names: true 47 + 46 48 mediatek,pctl-regmap: 47 49 $ref: /schemas/types.yaml#/definitions/phandle-array 48 50 items:
+5 -3
Documentation/devicetree/bindings/pinctrl/mediatek,mt7622-pinctrl.yaml
··· 19 19 - mediatek,mt7629-pinctrl 20 20 21 21 reg: 22 - maxItems: 1 22 + maxItems: 2 23 23 24 24 reg-names: 25 25 items: 26 + - const: base 26 27 - const: eint 27 28 28 29 gpio-controller: true ··· 205 204 pwm_ch2_2, pwm_ch3_0, pwm_ch3_1, pwm_ch3_2, pwm_ch4_0, 206 205 pwm_ch4_1, pwm_ch4_2, pwm_ch4_3, pwm_ch5_0, pwm_ch5_1, 207 206 pwm_ch5_2, pwm_ch6_0, pwm_ch6_1, pwm_ch6_2, pwm_ch6_3, 208 - pwm_ch7_0, pwm_0, pwm_1] 207 + pwm_ch7_0, pwm_ch7_2, pwm_0, pwm_1] 209 208 - if: 210 209 properties: 211 210 function: ··· 368 367 369 368 pio: pinctrl@10211000 { 370 369 compatible = "mediatek,mt7622-pinctrl"; 371 - reg = <0 0x10211000 0 0x1000>; 370 + reg = <0 0x10211000 0 0x1000>, 371 + <0 0x10005000 0 0x1000>; 372 372 gpio-controller; 373 373 #gpio-cells = <2>; 374 374
-231
Documentation/devicetree/bindings/powerpc/fsl/mpic.txt
··· 1 - ===================================================================== 2 - Freescale MPIC Interrupt Controller Node 3 - Copyright (C) 2010,2011 Freescale Semiconductor Inc. 4 - ===================================================================== 5 - 6 - The Freescale MPIC interrupt controller is found on all PowerQUICC 7 - and QorIQ processors and is compatible with the Open PIC. The 8 - notable difference from Open PIC binding is the addition of 2 9 - additional cells in the interrupt specifier defining interrupt type 10 - information. 11 - 12 - PROPERTIES 13 - 14 - - compatible 15 - Usage: required 16 - Value type: <string> 17 - Definition: Shall include "fsl,mpic". Freescale MPIC 18 - controllers compatible with this binding have Block 19 - Revision Registers BRR1 and BRR2 at offset 0x0 and 20 - 0x10 in the MPIC. 21 - 22 - - reg 23 - Usage: required 24 - Value type: <prop-encoded-array> 25 - Definition: A standard property. Specifies the physical 26 - offset and length of the device's registers within the 27 - CCSR address space. 28 - 29 - - interrupt-controller 30 - Usage: required 31 - Value type: <empty> 32 - Definition: Specifies that this node is an interrupt 33 - controller 34 - 35 - - #interrupt-cells 36 - Usage: required 37 - Value type: <u32> 38 - Definition: Shall be 2 or 4. A value of 2 means that interrupt 39 - specifiers do not contain the interrupt-type or type-specific 40 - information cells. 41 - 42 - - #address-cells 43 - Usage: required 44 - Value type: <u32> 45 - Definition: Shall be 0. 46 - 47 - - pic-no-reset 48 - Usage: optional 49 - Value type: <empty> 50 - Definition: The presence of this property specifies that the 51 - MPIC must not be reset by the client program, and that 52 - the boot program has initialized all interrupt source 53 - configuration registers to a sane state-- masked or 54 - directed at other cores. This ensures that the client 55 - program will not receive interrupts for sources not belonging 56 - to the client. The presence of this property also mandates 57 - that any initialization related to interrupt sources shall 58 - be limited to sources explicitly referenced in the device tree. 59 - 60 - - big-endian 61 - Usage: optional 62 - Value type: <empty> 63 - If present the MPIC will be assumed to be big-endian. Some 64 - device-trees omit this property on MPIC nodes even when the MPIC is 65 - in fact big-endian, so certain boards override this property. 66 - 67 - - single-cpu-affinity 68 - Usage: optional 69 - Value type: <empty> 70 - If present the MPIC will be assumed to only be able to route 71 - non-IPI interrupts to a single CPU at a time (EG: Freescale MPIC). 72 - 73 - - last-interrupt-source 74 - Usage: optional 75 - Value type: <u32> 76 - Some MPICs do not correctly report the number of hardware sources 77 - in the global feature registers. If specified, this field will 78 - override the value read from MPIC_GREG_FEATURE_LAST_SRC. 79 - 80 - INTERRUPT SPECIFIER DEFINITION 81 - 82 - Interrupt specifiers consists of 4 cells encoded as 83 - follows: 84 - 85 - <1st-cell> interrupt-number 86 - 87 - Identifies the interrupt source. The meaning 88 - depends on the type of interrupt. 89 - 90 - Note: If the interrupt-type cell is undefined 91 - (i.e. #interrupt-cells = 2), this cell 92 - should be interpreted the same as for 93 - interrupt-type 0-- i.e. an external or 94 - normal SoC device interrupt. 95 - 96 - <2nd-cell> level-sense information, encoded as follows: 97 - 0 = low-to-high edge triggered 98 - 1 = active low level-sensitive 99 - 2 = active high level-sensitive 100 - 3 = high-to-low edge triggered 101 - 102 - <3rd-cell> interrupt-type 103 - 104 - The following types are supported: 105 - 106 - 0 = external or normal SoC device interrupt 107 - 108 - The interrupt-number cell contains 109 - the SoC device interrupt number. The 110 - type-specific cell is undefined. The 111 - interrupt-number is derived from the 112 - MPIC a block of registers referred to as 113 - the "Interrupt Source Configuration Registers". 114 - Each source has 32-bytes of registers 115 - (vector/priority and destination) in this 116 - region. So interrupt 0 is at offset 0x0, 117 - interrupt 1 is at offset 0x20, and so on. 118 - 119 - 1 = error interrupt 120 - 121 - The interrupt-number cell contains 122 - the SoC device interrupt number for 123 - the error interrupt. The type-specific 124 - cell identifies the specific error 125 - interrupt number. 126 - 127 - 2 = MPIC inter-processor interrupt (IPI) 128 - 129 - The interrupt-number cell identifies 130 - the MPIC IPI number. The type-specific 131 - cell is undefined. 132 - 133 - 3 = MPIC timer interrupt 134 - 135 - The interrupt-number cell identifies 136 - the MPIC timer number. The type-specific 137 - cell is undefined. 138 - 139 - <4th-cell> type-specific information 140 - 141 - The type-specific cell is encoded as follows: 142 - 143 - - For interrupt-type 1 (error interrupt), 144 - the type-specific cell contains the 145 - bit number of the error interrupt in the 146 - Error Interrupt Summary Register. 147 - 148 - EXAMPLE 1 149 - /* 150 - * mpic interrupt controller with 4 cells per specifier 151 - */ 152 - mpic: pic@40000 { 153 - compatible = "fsl,mpic"; 154 - interrupt-controller; 155 - #interrupt-cells = <4>; 156 - #address-cells = <0>; 157 - reg = <0x40000 0x40000>; 158 - }; 159 - 160 - EXAMPLE 2 161 - /* 162 - * The MPC8544 I2C controller node has an internal 163 - * interrupt number of 27. As per the reference manual 164 - * this corresponds to interrupt source configuration 165 - * registers at 0x5_0560. 166 - * 167 - * The interrupt source configuration registers begin 168 - * at 0x5_0000. 169 - * 170 - * To compute the interrupt specifier interrupt number 171 - * 172 - * 0x560 >> 5 = 43 173 - * 174 - * The interrupt source configuration registers begin 175 - * at 0x5_0000, and so the i2c vector/priority registers 176 - * are at 0x5_0560. 177 - */ 178 - i2c@3000 { 179 - #address-cells = <1>; 180 - #size-cells = <0>; 181 - cell-index = <0>; 182 - compatible = "fsl-i2c"; 183 - reg = <0x3000 0x100>; 184 - interrupts = <43 2>; 185 - interrupt-parent = <&mpic>; 186 - dfsrr; 187 - }; 188 - 189 - 190 - EXAMPLE 3 191 - /* 192 - * Definition of a node defining the 4 193 - * MPIC IPI interrupts. Note the interrupt 194 - * type of 2. 195 - */ 196 - ipi@410a0 { 197 - compatible = "fsl,mpic-ipi"; 198 - reg = <0x40040 0x10>; 199 - interrupts = <0 0 2 0 200 - 1 0 2 0 201 - 2 0 2 0 202 - 3 0 2 0>; 203 - }; 204 - 205 - EXAMPLE 4 206 - /* 207 - * Definition of a node defining the MPIC 208 - * global timers. Note the interrupt 209 - * type of 3. 210 - */ 211 - timer0: timer@41100 { 212 - compatible = "fsl,mpic-global-timer"; 213 - reg = <0x41100 0x100 0x41300 4>; 214 - interrupts = <0 0 3 0 215 - 1 0 3 0 216 - 2 0 3 0 217 - 3 0 3 0>; 218 - }; 219 - 220 - EXAMPLE 5 221 - /* 222 - * Definition of an error interrupt (interrupt type 1). 223 - * SoC interrupt number is 16 and the specific error 224 - * interrupt bit in the error interrupt summary register 225 - * is 23. 226 - */ 227 - memory-controller@8000 { 228 - compatible = "fsl,p4080-memory-controller"; 229 - reg = <0x8000 0x1000>; 230 - interrupts = <16 2 1 23>; 231 - };
+13 -6
Documentation/devicetree/bindings/regulator/mediatek,mt6331-regulator.yaml
··· 15 15 buck-<name> and ldo-<name>. 16 16 MT6331 regulators node should be sub node of the MT6397 MFD node. 17 17 18 + properties: 19 + compatible: 20 + const: mediatek,mt6331-regulator 21 + 18 22 patternProperties: 19 23 "^buck-v(core2|io18|dvfs11|dvfs12|dvfs13|dvfs14)$": 20 24 type: object ··· 30 26 31 27 unevaluatedProperties: false 32 28 33 - "^ldo-v(avdd32aud|auxa32)$": 29 + "^ldo-(avdd32aud|vauxa32)$": 34 30 type: object 35 31 $ref: regulator.yaml# 36 32 37 33 properties: 38 34 regulator-name: 39 - pattern: "^v(avdd32aud|auxa32)$" 35 + pattern: "^(avdd32_aud|vauxa32)$" 40 36 41 37 unevaluatedProperties: false 42 38 43 - "^ldo-v(dig18|emc33|ibr|mc|mch|mipi|rtc|sram|usb10)$": 39 + "^ldo-v(dig18|emc33|ibr|mc|mch|mipi|rtc|sim1|sim2|sram|usb10)$": 44 40 type: object 45 41 $ref: regulator.yaml# 46 42 47 43 properties: 48 44 regulator-name: 49 - pattern: "^v(dig18|emc33|ibr|mc|mch|mipi|rtc|sram|usb10)$" 45 + pattern: "^v(dig18|emc33|ibr|mc|mch|mipi|rtc|sim1|sim2|sram|usb)$" 50 46 51 47 unevaluatedProperties: false 52 48 ··· 56 52 57 53 properties: 58 54 regulator-name: 59 - pattern: "^vcam(a|af|d|io)$" 55 + pattern: "^vcam(a|_af|d|io)$" 60 56 61 57 unevaluatedProperties: false 62 58 ··· 79 75 80 76 properties: 81 77 regulator-name: 82 - pattern: "^vgp[12]$" 78 + pattern: "^vgp[1234]$" 83 79 84 80 required: 85 81 - regulator-name 86 82 87 83 unevaluatedProperties: false 84 + 85 + required: 86 + - compatible 88 87 89 88 additionalProperties: false 90 89
+7
Documentation/devicetree/bindings/regulator/mediatek,mt6332-regulator.yaml
··· 15 15 buck-<name> and ldo-<name>. 16 16 MT6332 regulators node should be sub node of the MT6397 MFD node. 17 17 18 + properties: 19 + compatible: 20 + const: mediatek,mt6332-regulator 21 + 18 22 patternProperties: 19 23 "^buck-v(dram|dvfs2|pa|rf18a|rf18b|sbst)$": 20 24 type: object ··· 39 35 pattern: "^v(bif28|dig18|sram|usb33)$" 40 36 41 37 unevaluatedProperties: false 38 + 39 + required: 40 + - compatible 42 41 43 42 additionalProperties: false 44 43
+50
Documentation/devicetree/bindings/rng/SUNW,n2-rng.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/rng/SUNW,n2-rng.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: SUN UltraSPARC HWRNG 8 + 9 + maintainers: 10 + - David S. Miller <davem@davemloft.net> 11 + 12 + properties: 13 + compatible: 14 + enum: 15 + - SUNW,n2-rng # for Niagara 2 Platform (SUN UltraSPARC T2 CPU) 16 + - SUNW,vf-rng # for Victoria Falls Platform (SUN UltraSPARC T2 Plus CPU) 17 + # for Rainbow/Yosemite Falls Platform (SUN SPARC T3/T4), 18 + # (UltraSPARC KT/Niagara 3 - development names) 19 + # more recent systems (after Oracle acquisition of SUN) 20 + - SUNW,kt-rng 21 + - ORCL,m4-rng # for SPARC T5/M5 22 + - ORCL,m7-rng # for SPARC T7/M7 23 + 24 + reg: 25 + maxItems: 1 26 + 27 + "rng-#units": 28 + description: Number of RNG units 29 + $ref: /schemas/types.yaml#/definitions/uint32 30 + minimum: 1 31 + 32 + required: 33 + - compatible 34 + - reg 35 + 36 + additionalProperties: false 37 + 38 + # PS: see as well prtconfs.git by DaveM 39 + examples: 40 + - | 41 + bus { 42 + #address-cells = <1>; 43 + #size-cells = <0>; 44 + 45 + rng@e { 46 + compatible = "ORCL,m4-rng"; 47 + reg = <0xe>; 48 + rng-#units = <2>; 49 + }; 50 + };
-30
Documentation/devicetree/bindings/rng/sparc_sun_oracle_rng.txt
··· 1 - HWRNG support for the n2_rng driver 2 - 3 - Required properties: 4 - - reg : base address to sample from 5 - - compatible : should contain one of the following 6 - RNG versions: 7 - - 'SUNW,n2-rng' for Niagara 2 Platform (SUN UltraSPARC T2 CPU) 8 - - 'SUNW,vf-rng' for Victoria Falls Platform (SUN UltraSPARC T2 Plus CPU) 9 - - 'SUNW,kt-rng' for Rainbow/Yosemite Falls Platform (SUN SPARC T3/T4), (UltraSPARC KT/Niagara 3 - development names) 10 - more recent systems (after Oracle acquisition of SUN) 11 - - 'ORCL,m4-rng' for SPARC T5/M5 12 - - 'ORCL,m7-rng' for SPARC T7/M7 13 - 14 - Examples: 15 - /* linux LDOM on SPARC T5-2 */ 16 - Node 0xf029a4f4 17 - .node: f029a4f4 18 - rng-#units: 00000002 19 - compatible: 'ORCL,m4-rng' 20 - reg: 0000000e 21 - name: 'random-number-generator' 22 - 23 - /* solaris on SPARC M7-8 */ 24 - Node 0xf028c08c 25 - rng-#units: 00000003 26 - compatible: 'ORCL,m7-rng' 27 - reg: 0000000e 28 - name: 'random-number-generator' 29 - 30 - PS: see as well prtconfs.git by DaveM
-19
Documentation/devicetree/bindings/siox/eckelmann,siox-gpio.txt
··· 1 - Eckelmann SIOX GPIO bus 2 - 3 - Required properties: 4 - - compatible : "eckelmann,siox-gpio" 5 - - din-gpios, dout-gpios, dclk-gpios, dld-gpios: references gpios for the 6 - corresponding bus signals. 7 - 8 - Examples: 9 - 10 - siox { 11 - compatible = "eckelmann,siox-gpio"; 12 - pinctrl-names = "default"; 13 - pinctrl-0 = <&pinctrl_siox>; 14 - 15 - din-gpios = <&gpio6 11 0>; 16 - dout-gpios = <&gpio6 8 0>; 17 - dclk-gpios = <&gpio6 9 0>; 18 - dld-gpios = <&gpio6 10 0>; 19 - };
+48
Documentation/devicetree/bindings/siox/eckelmann,siox-gpio.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/siox/eckelmann,siox-gpio.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Eckelmann SIOX GPIO bus 8 + 9 + maintainers: 10 + - Frank Li <Frank.Li@nxp.com> 11 + 12 + properties: 13 + compatible: 14 + const: eckelmann,siox-gpio 15 + 16 + din-gpios: 17 + maxItems: 1 18 + 19 + dout-gpios: 20 + maxItems: 1 21 + 22 + dclk-gpios: 23 + maxItems: 1 24 + 25 + dld-gpios: 26 + maxItems: 1 27 + 28 + required: 29 + - compatible 30 + - din-gpios 31 + - dout-gpios 32 + - dclk-gpios 33 + - dld-gpios 34 + 35 + additionalProperties: false 36 + 37 + examples: 38 + - | 39 + siox { 40 + compatible = "eckelmann,siox-gpio"; 41 + pinctrl-names = "default"; 42 + pinctrl-0 = <&pinctrl_siox>; 43 + 44 + din-gpios = <&gpio6 11 0>; 45 + dout-gpios = <&gpio6 8 0>; 46 + dclk-gpios = <&gpio6 9 0>; 47 + dld-gpios = <&gpio6 10 0>; 48 + };
+47
Documentation/devicetree/bindings/soc/fsl/fsl,vf610-src.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/soc/fsl/fsl,vf610-src.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Freescale vf610 System Reset Controller (SRC) 8 + 9 + maintainers: 10 + - Frank Li <Frank.Li@nxp.com> 11 + 12 + description: 13 + IC reference manual calls it as SRC, but it is not module as reset 14 + controller, which used to reset individual device. SRC works as reboot 15 + controller, which reboots whole system. It provides a syscon interface to 16 + syscon-reboot. 17 + 18 + properties: 19 + compatible: 20 + items: 21 + - enum: 22 + - fsl,vf610-src 23 + - const: syscon 24 + 25 + reg: 26 + maxItems: 1 27 + 28 + interrupts: 29 + maxItems: 1 30 + 31 + required: 32 + - compatible 33 + - reg 34 + - interrupts 35 + 36 + additionalProperties: false 37 + 38 + examples: 39 + - | 40 + #include <dt-bindings/interrupt-controller/irq.h> 41 + 42 + syscon@4006e000 { 43 + compatible = "fsl,vf610-src", "syscon"; 44 + reg = <0x4006e000 0x1000>; 45 + interrupts = <96 IRQ_TYPE_LEVEL_HIGH>; 46 + }; 47 +
+15
Documentation/devicetree/bindings/soc/mediatek/mediatek,pwrap.yaml
··· 98 98 - const: pwrap 99 99 - const: pwrap-bridge 100 100 101 + power-domains: 102 + maxItems: 1 103 + 101 104 pmic: 102 105 type: object 103 106 ··· 128 125 129 126 clock-names: 130 127 minItems: 4 128 + 129 + - if: 130 + properties: 131 + compatible: 132 + contains: 133 + const: mediatek,mt8173-pwrap 134 + then: 135 + properties: 136 + power-domains: true 137 + else: 138 + properties: 139 + power-domains: false 131 140 132 141 additionalProperties: false 133 142
+1 -1
Documentation/devicetree/bindings/submitting-patches.rst
··· 95 95 For subsystem bindings (anything affecting more than a single device), 96 96 getting a devicetree maintainer to review it is required. 97 97 98 - 3) For a series going though multiple trees, the binding patch should be 98 + 3) For a series going through multiple trees, the binding patch should be 99 99 kept with the driver using the binding. 100 100 101 101 4) The DTS files should however never be applied via driver subsystem tree,
-42
Documentation/devicetree/bindings/thermal/armada-thermal.txt
··· 1 - * Marvell Armada 370/375/380/XP thermal management 2 - 3 - Required properties: 4 - 5 - - compatible: Should be set to one of the following: 6 - * marvell,armada370-thermal 7 - * marvell,armada375-thermal 8 - * marvell,armada380-thermal 9 - * marvell,armadaxp-thermal 10 - * marvell,armada-ap806-thermal 11 - * marvell,armada-ap807-thermal 12 - * marvell,armada-cp110-thermal 13 - 14 - Note: these bindings are deprecated for AP806/CP110 and should instead 15 - follow the rules described in: 16 - Documentation/devicetree/bindings/arm/marvell/ap80x-system-controller.txt 17 - Documentation/devicetree/bindings/arm/marvell/cp110-system-controller.txt 18 - 19 - - reg: Device's register space. 20 - Two entries are expected, see the examples below. The first one points 21 - to the status register (4B). The second one points to the control 22 - registers (8B). 23 - Note: The compatibles marvell,armada370-thermal, 24 - marvell,armada380-thermal, and marvell,armadaxp-thermal must point to 25 - "control MSB/control 1", with size of 4 (deprecated binding), or point 26 - to "control LSB/control 0" with size of 8 (current binding). All other 27 - compatibles must point to "control LSB/control 0" with size of 8. 28 - 29 - Examples: 30 - 31 - /* Legacy bindings */ 32 - thermal@d0018300 { 33 - compatible = "marvell,armada370-thermal"; 34 - reg = <0xd0018300 0x4 35 - 0xd0018304 0x4>; 36 - }; 37 - 38 - ap_thermal: thermal@6f8084 { 39 - compatible = "marvell,armada-ap806-thermal"; 40 - reg = <0x6f808C 0x4>, 41 - <0x6f8084 0x8>; 42 - };
+46
Documentation/devicetree/bindings/thermal/marvell,armada-ap806-thermal.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/thermal/marvell,armada-ap806-thermal.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Marvell Armada AP80x/CP110 thermal management 8 + 9 + maintainers: 10 + - Miquel Raynal <miquel.raynal@bootlin.com> 11 + 12 + properties: 13 + compatible: 14 + enum: 15 + - marvell,armada-ap806-thermal 16 + - marvell,armada-ap807-thermal 17 + - marvell,armada-cp110-thermal 18 + 19 + reg: 20 + maxItems: 1 21 + 22 + interrupts: 23 + description: 24 + Overheat interrupt. The interrupt is connected thru a System Error 25 + Interrupt (SEI) controller. 26 + maxItems: 1 27 + 28 + '#thermal-sensor-cells': 29 + description: Cell represents the channel ID. There is one sensor per 30 + channel. O refers to the thermal IP internal channel. 31 + const: 1 32 + 33 + required: 34 + - compatible 35 + - reg 36 + 37 + additionalProperties: false 38 + 39 + examples: 40 + - | 41 + thermal-sensor@80 { 42 + compatible = "marvell,armada-ap806-thermal"; 43 + reg = <0x80 0x10>; 44 + interrupts = <18>; 45 + #thermal-sensor-cells = <1>; 46 + };
+37
Documentation/devicetree/bindings/thermal/marvell,armada370-thermal.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/thermal/marvell,armada370-thermal.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Marvell Armada 3xx/XP thermal management 8 + 9 + maintainers: 10 + - Miquel Raynal <miquel.raynal@bootlin.com> 11 + 12 + properties: 13 + compatible: 14 + enum: 15 + - marvell,armada370-thermal 16 + - marvell,armada375-thermal 17 + - marvell,armada380-thermal 18 + - marvell,armadaxp-thermal 19 + 20 + reg: 21 + items: 22 + - description: status register (4B) 23 + - description: control register (8B) 24 + 25 + required: 26 + - compatible 27 + - reg 28 + 29 + additionalProperties: false 30 + 31 + examples: 32 + - | 33 + thermal@d0018300 { 34 + compatible = "marvell,armada370-thermal"; 35 + reg = <0xd0018300 0x4>, 36 + <0xd0018304 0x8>; 37 + };
+1
Documentation/devicetree/bindings/timer/mediatek,timer.yaml
··· 30 30 - mediatek,mt6580-timer 31 31 - mediatek,mt6582-timer 32 32 - mediatek,mt6589-timer 33 + - mediatek,mt6795-timer 33 34 - mediatek,mt7623-timer 34 35 - mediatek,mt8127-timer 35 36 - mediatek,mt8135-timer
+2
Documentation/devicetree/bindings/trivial-devices.yaml
··· 410 410 - sparkfun,qwiic-joystick 411 411 # Sierra Wireless mangOH Green SPI IoT interface 412 412 - swir,mangoh-iotport-spi 413 + # Synaptics I2C touchpad 414 + - synaptics,synaptics_i2c 413 415 # Ambient Light Sensor with SMBUS/Two Wire Serial Interface 414 416 - taos,tsl2550 415 417 # Digital PWM System Controller PMBus
+54 -1
Documentation/devicetree/bindings/vendor-prefixes.yaml
··· 86 86 description: Allegro DVT 87 87 "^allegromicro,.*": 88 88 description: Allegro MicroSystems, Inc. 89 + "^alliedtelesis,.*": 90 + description: Allied Telesis, Inc. 89 91 "^alliedvision,.*": 90 92 description: Allied Vision Technologies GmbH 91 93 "^allo,.*": ··· 231 229 description: Bitmain Technologies 232 230 "^blaize,.*": 233 231 description: Blaize, Inc. 232 + "^bluegiga,.*": 233 + description: Bluegiga Technologies Ltd. 234 234 "^blutek,.*": 235 235 description: BluTek Power 236 236 "^boe,.*": ··· 251 247 description: Bticino International 252 248 "^buffalo,.*": 253 249 description: Buffalo, Inc. 250 + "^buglabs,.*": 251 + description: Bug Labs, Inc. 254 252 "^bur,.*": 255 253 description: B&R Industrial Automation GmbH 256 254 "^bytedance,.*": ··· 331 325 description: Conexant Systems, Inc. 332 326 "^colorfly,.*": 333 327 description: Colorful GRP, Shenzhen Xueyushi Technology Ltd. 328 + "^compal,.*": 329 + description: Compal Electronics, Inc. 334 330 "^compulab,.*": 335 331 description: CompuLab Ltd. 336 332 "^comvetia,.*": ··· 361 353 description: Guangzhou China Star Optoelectronics Technology Co., Ltd 362 354 "^csq,.*": 363 355 description: Shenzen Chuangsiqi Technology Co.,Ltd. 356 + "^csr,.*": 357 + description: Cambridge Silicon Radio 364 358 "^ctera,.*": 365 359 description: CTERA Networks Intl. 366 360 "^ctu,.*": ··· 465 455 description: Emtop Embedded Solutions 466 456 "^eeti,.*": 467 457 description: eGalax_eMPIA Technology Inc 458 + "^egnite,.*": 459 + description: egnite GmbH 468 460 "^einfochips,.*": 469 461 description: Einfochips 470 462 "^eink,.*": ··· 497 485 description: Empire Electronix 498 486 "^emtrion,.*": 499 487 description: emtrion GmbH 488 + "^enbw,.*": 489 + description: Energie Baden-Württemberg AG 500 490 "^enclustra,.*": 501 491 description: Enclustra GmbH 492 + "^endian,.*": 493 + description: Endian SRL 502 494 "^endless,.*": 503 495 description: Endless Mobile, Inc. 504 496 "^ene,.*": ··· 570 554 description: FocalTech Systems Co.,Ltd 571 555 "^forlinx,.*": 572 556 description: Baoding Forlinx Embedded Technology Co., Ltd. 557 + "^foxlink,.*": 558 + description: Foxlink Group 573 559 "^freebox,.*": 574 560 description: Freebox SAS 575 561 "^freecom,.*": ··· 660 642 description: Haoyu Microelectronic Co. Ltd. 661 643 "^hardkernel,.*": 662 644 description: Hardkernel Co., Ltd 645 + "^hce,.*": 646 + description: HCE Engineering SRL 647 + "^headacoustics,.*": 648 + description: HEAD acoustics 663 649 "^hechuang,.*": 664 650 description: Shenzhen Hechuang Intelligent Co. 665 651 "^hideep,.*": ··· 747 725 description: Shenzhen INANBO Electronic Technology Co., Ltd. 748 726 "^incircuit,.*": 749 727 description: In-Circuit GmbH 728 + "^incostartec,.*": 729 + description: INCOstartec GmbH 750 730 "^indiedroid,.*": 751 731 description: Indiedroid 752 732 "^inet-tek,.*": ··· 957 933 description: Maxim Integrated Products 958 934 "^maxlinear,.*": 959 935 description: MaxLinear Inc. 936 + "^maxtor,.*": 937 + description: Maxtor Corporation 960 938 "^mbvl,.*": 961 939 description: Mobiveil Inc. 962 940 "^mcube,.*": ··· 1122 1096 description: Nordic Semiconductor 1123 1097 "^nothing,.*": 1124 1098 description: Nothing Technology Limited 1099 + "^novatech,.*": 1100 + description: NovaTech Automation 1125 1101 "^novatek,.*": 1126 1102 description: Novatek 1127 1103 "^novtech,.*": ··· 1219 1191 description: Pervasive Displays, Inc. 1220 1192 "^phicomm,.*": 1221 1193 description: PHICOMM Co., Ltd. 1194 + "^phontech,.*": 1195 + description: Phontech 1222 1196 "^phytec,.*": 1223 1197 description: PHYTEC Messtechnik GmbH 1224 1198 "^picochip,.*": ··· 1305 1275 description: Ramtron International 1306 1276 "^raspberrypi,.*": 1307 1277 description: Raspberry Pi Foundation 1278 + "^raumfeld,.*": 1279 + description: Raumfeld GmbH 1308 1280 "^raydium,.*": 1309 1281 description: Raydium Semiconductor Corp. 1310 1282 "^rda,.*": ··· 1345 1313 description: ROHM Semiconductor Co., Ltd 1346 1314 "^ronbo,.*": 1347 1315 description: Ronbo Electronics 1316 + "^ronetix,.*": 1317 + description: Ronetix GmbH 1348 1318 "^roofull,.*": 1349 1319 description: Shenzhen Roofull Technology Co, Ltd 1350 1320 "^roseapplepi,.*": ··· 1373 1339 description: Schindler 1374 1340 "^schneider,.*": 1375 1341 description: Schneider Electric 1342 + "^schulercontrol,.*": 1343 + description: Schuler Group 1376 1344 "^sciosense,.*": 1377 1345 description: ScioSense B.V. 1346 + "^sdmc,.*": 1347 + description: SDMC Technology Co., Ltd 1378 1348 "^seagate,.*": 1379 1349 description: Seagate Technology PLC 1380 1350 "^seeed,.*": ··· 1417 1379 description: Si-En Technology Ltd. 1418 1380 "^si-linux,.*": 1419 1381 description: Silicon Linux Corporation 1382 + "^sielaff,.*": 1383 + description: Sielaff GmbH & Co. 1420 1384 "^siemens,.*": 1421 1385 description: Siemens AG 1422 1386 "^sifive,.*": ··· 1487 1447 description: SolidRun 1488 1448 "^solomon,.*": 1489 1449 description: Solomon Systech Limited 1450 + "^somfy,.*": 1451 + description: Somfy Systems Inc. 1490 1452 "^sony,.*": 1491 1453 description: Sony Corporation 1492 1454 "^sophgo,.*": ··· 1554 1512 description: Sierra Wireless 1555 1513 "^syna,.*": 1556 1514 description: Synaptics Inc. 1515 + "^synaptics,.*": 1516 + description: Synaptics Inc. 1517 + deprecated: true 1557 1518 "^synology,.*": 1558 1519 description: Synology, Inc. 1559 1520 "^synopsys,.*": 1560 1521 description: Synopsys, Inc. (deprecated, use snps) 1561 1522 deprecated: true 1523 + "^taos,.*": 1524 + description: Texas Advanced Optoelectronic Solutions Inc. 1562 1525 "^tbs,.*": 1563 1526 description: TBS Technologies 1564 1527 "^tbs-biometrics,.*": ··· 1594 1547 description: Teltonika Networks 1595 1548 "^tempo,.*": 1596 1549 description: Tempo Semiconductor 1550 + "^tenda,.*": 1551 + description: Shenzhen Tenda Technology Co., Ltd. 1597 1552 "^terasic,.*": 1598 1553 description: Terasic Inc. 1599 1554 "^tesla,.*": ··· 1699 1650 description: V3 Semiconductor 1700 1651 "^vaisala,.*": 1701 1652 description: Vaisala 1653 + "^valve,.*": 1654 + description: Valve Corporation 1702 1655 "^vamrs,.*": 1703 1656 description: Vamrs Ltd. 1704 1657 "^variscite,.*": ··· 1801 1750 description: Extreme Engineering Solutions (X-ES) 1802 1751 "^xiaomi,.*": 1803 1752 description: Xiaomi Technology Co., Ltd. 1753 + "^xicor,.*": 1754 + description: Xicor Inc. 1804 1755 "^xillybus,.*": 1805 1756 description: Xillybus Ltd. 1806 1757 "^xingbangda,.*": ··· 1864 1811 1865 1812 # Normal property name match without a comma 1866 1813 # These should catch all node/property names without a prefix 1867 - "^[a-zA-Z0-9#_][a-zA-Z0-9+\\-._@]{0,63}$": true 1814 + "^[a-zA-Z0-9#_][a-zA-Z0-9#+\\-._@]{0,63}$": true 1868 1815 "^[a-zA-Z0-9+\\-._]*@[0-9a-zA-Z,]*$": true 1869 1816 "^#.*": true 1870 1817
-23
Documentation/devicetree/bindings/watchdog/armada-37xx-wdt.txt
··· 1 - * Armada 37xx CPU Watchdog Timer Controller 2 - 3 - Required properties: 4 - - compatible : must be "marvell,armada-3700-wdt" 5 - - reg : base physical address of the controller and length of memory mapped 6 - region. 7 - - clocks : the clock feeding the watchdog timer. See clock-bindings.txt 8 - - marvell,system-controller : reference to syscon node for the CPU Miscellaneous 9 - Registers 10 - 11 - Example: 12 - 13 - cpu_misc: system-controller@d000 { 14 - compatible = "marvell,armada-3700-cpu-misc", "syscon"; 15 - reg = <0xd000 0x1000>; 16 - }; 17 - 18 - wdt: watchdog@8300 { 19 - compatible = "marvell,armada-3700-wdt"; 20 - reg = <0x8300 0x40>; 21 - marvell,system-controller = <&cpu_misc>; 22 - clocks = <&xtalclk>; 23 - };
+41
Documentation/devicetree/bindings/watchdog/marvell,armada-3700-wdt.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/watchdog/marvell,armada-3700-wdt.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Armada 37xx CPU Watchdog Timer Controller 8 + 9 + maintainers: 10 + - Marek Behún <kabel@kernel.org> 11 + 12 + properties: 13 + compatible: 14 + const: marvell,armada-3700-wdt 15 + 16 + reg: 17 + maxItems: 1 18 + 19 + clocks: 20 + maxItems: 1 21 + 22 + marvell,system-controller: 23 + description: Reference to syscon node for the CPU Miscellaneous Registers 24 + $ref: /schemas/types.yaml#/definitions/phandle 25 + 26 + required: 27 + - compatible 28 + - reg 29 + - clocks 30 + - marvell,system-controller 31 + 32 + additionalProperties: false 33 + 34 + examples: 35 + - | 36 + watchdog@8300 { 37 + compatible = "marvell,armada-3700-wdt"; 38 + reg = <0x8300 0x40>; 39 + marvell,system-controller = <&cpu_misc>; 40 + clocks = <&xtalclk>; 41 + };
-15
Documentation/devicetree/bindings/watchdog/moxa,moxart-watchdog.txt
··· 1 - MOXA ART Watchdog timer 2 - 3 - Required properties: 4 - 5 - - compatible : Must be "moxa,moxart-watchdog" 6 - - reg : Should contain registers location and length 7 - - clocks : Should contain phandle for the clock that drives the counter 8 - 9 - Example: 10 - 11 - watchdog: watchdog@98500000 { 12 - compatible = "moxa,moxart-watchdog"; 13 - reg = <0x98500000 0x10>; 14 - clocks = <&coreclk>; 15 - };
-30
Documentation/devicetree/bindings/watchdog/nuvoton,npcm-wdt.txt
··· 1 - Nuvoton NPCM Watchdog 2 - 3 - Nuvoton NPCM timer module provides five 24-bit timer counters, and a watchdog. 4 - The watchdog supports a pre-timeout interrupt that fires 10ms before the 5 - expiry. 6 - 7 - Required properties: 8 - - compatible : "nuvoton,npcm750-wdt" for NPCM750 (Poleg), or 9 - "nuvoton,wpcm450-wdt" for WPCM450 (Hermon), or 10 - "nuvoton,npcm845-wdt" for NPCM845 (Arbel). 11 - - reg : Offset and length of the register set for the device. 12 - - interrupts : Contain the timer interrupt with flags for 13 - falling edge. 14 - 15 - Required clocking property, have to be one of: 16 - - clocks : phandle of timer reference clock. 17 - - clock-frequency : The frequency in Hz of the clock that drives the NPCM7xx 18 - timer (usually 25000000). 19 - 20 - Optional properties: 21 - - timeout-sec : Contains the watchdog timeout in seconds 22 - 23 - Example: 24 - 25 - timer@f000801c { 26 - compatible = "nuvoton,npcm750-wdt"; 27 - interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 28 - reg = <0xf000801c 0x4>; 29 - clocks = <&clk NPCM7XX_CLK_TIMER>; 30 - };
+60
Documentation/devicetree/bindings/watchdog/nuvoton,npcm750-wdt.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/watchdog/nuvoton,npcm750-wdt.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Nuvoton NPCM Watchdog 8 + 9 + maintainers: 10 + - Joel Stanley <joel@jms.id.au> 11 + 12 + description: 13 + Nuvoton NPCM timer module provides five 24-bit timer counters, and a watchdog. 14 + The watchdog supports a pre-timeout interrupt that fires 10ms before the 15 + expiry. 16 + 17 + allOf: 18 + - $ref: watchdog.yaml# 19 + 20 + properties: 21 + compatible: 22 + oneOf: 23 + - enum: 24 + - nuvoton,npcm750-wdt 25 + - nuvoton,wpcm450-wdt 26 + - items: 27 + - enum: 28 + - nuvoton,npcm845-wdt 29 + - const: nuvoton,npcm750-wdt 30 + 31 + reg: 32 + maxItems: 1 33 + 34 + interrupts: 35 + maxItems: 1 36 + 37 + clocks: 38 + maxItems: 1 39 + 40 + clock-frequency: 41 + description: Frequency in Hz of the clock that drives the NPCM timer. 42 + 43 + required: 44 + - compatible 45 + - reg 46 + - interrupts 47 + 48 + unevaluatedProperties: false 49 + 50 + examples: 51 + - | 52 + #include <dt-bindings/interrupt-controller/arm-gic.h> 53 + #include <dt-bindings/clock/nuvoton,npcm7xx-clock.h> 54 + 55 + watchdog@f000801c { 56 + compatible = "nuvoton,npcm750-wdt"; 57 + interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 58 + reg = <0xf000801c 0x4>; 59 + clocks = <&clk NPCM7XX_CLK_TIMER>; 60 + };
+9
Documentation/devicetree/bindings/writing-bindings.rst
··· 31 31 devices only need child nodes when the child nodes have their own DT 32 32 resources. A single node can be multiple providers (e.g. clocks and resets). 33 33 34 + - DON'T treat device node names as a stable ABI, but instead use phandles or 35 + compatibles to find sibling devices. Exception: sub-nodes of given device 36 + could be treated as ABI, if explicitly documented in the bindings. 37 + 34 38 - DON'T use 'syscon' alone without a specific compatible string. A 'syscon' 35 39 hardware block should have a compatible string unique enough to infer the 36 40 register layout of the entire block (at a minimum). 41 + 42 + - DON'T use 'simple-mfd' compatible for non-trivial devices, where children 43 + depend on some resources from the parent. Similarly, 'simple-bus' should not 44 + be used for complex buses and even 'regs' property means device is not 45 + a simple bus. 37 46 38 47 39 48 Properties
+9 -1
Documentation/devicetree/bindings/writing-schema.rst
··· 53 53 The default without any indicators is flowed, plain scalar style where single 54 54 line breaks and leading whitespace are stripped. Paragraphs are delimited by 55 55 blank lines (i.e. double line break). This style cannot contain ": " in it as 56 - it will be interpretted as a key. Any " #" sequence will be interpretted as 56 + it will be interpreted as a key. Any " #" sequence will be interpreted as 57 57 a comment. There's other restrictions on characters as well. Most 58 58 restrictions are on what the first character can be. 59 59 ··· 164 164 The YAML Devicetree format also makes all string values an array and scalar 165 165 values a matrix (in order to define groupings) even when only a single value 166 166 is present. Single entries in schemas are fixed up to match this encoding. 167 + 168 + When bindings cover multiple similar devices that differ in some properties, 169 + those properties should be constrained for each device. This usually means: 170 + 171 + * In top level 'properties' define the property with the broadest constraints. 172 + * In 'if:then:' blocks, further narrow the constraints for those properties. 173 + * Do not define the properties within an 'if:then:' block (note that 174 + 'additionalItems' also won't allow that). 167 175 168 176 Coding style 169 177 ------------
+2 -2
Documentation/devicetree/of_unittest.rst
··· 56 56 57 57 for the Device Tree Source Include files (.dtsi) included in testcases.dts. 58 58 59 - When the kernel is build with CONFIG_OF_UNITTEST enabled, then the following make 59 + When the kernel is built with CONFIG_OF_UNITTEST enabled, then the following make 60 60 rule:: 61 61 62 62 $(obj)/%.dtb: $(src)/%.dts FORCE ··· 133 133 __dtb_testcases_end - address marking the end of test data blob 134 134 135 135 Secondly, it calls of_fdt_unflatten_tree() to unflatten the flattened 136 - blob. And finally, if the machine's device tree (i.e live tree) is present, 136 + blob. And finally, if the machine's device tree (i.e. live tree) is present, 137 137 then it attaches the unflattened test data tree to the live tree, else it 138 138 attaches itself as a live device tree. 139 139
+3 -3
Documentation/devicetree/overlay-notes.rst
··· 14 14 A Devicetree's overlay purpose is to modify the kernel's live tree, and 15 15 have the modification affecting the state of the kernel in a way that 16 16 is reflecting the changes. 17 - Since the kernel mainly deals with devices, any new device node that result 17 + Since the kernel mainly deals with devices, any new device node that results 18 18 in an active device should have it created while if the device node is either 19 19 disabled or removed all together, the affected device should be deregistered. 20 20 21 - Lets take an example where we have a foo board with the following base tree:: 21 + Let's take an example where we have a foo board with the following base tree:: 22 22 23 23 ---- foo.dts --------------------------------------------------------------- 24 24 /* FOO platform */ ··· 111 111 1) Call of_overlay_fdt_apply() to create and apply an overlay changeset. The 112 112 return value is an error or a cookie identifying this overlay. 113 113 114 - 2) Call of_overlay_remove() to remove and cleanup the overlay changeset 114 + 2) Call of_overlay_remove() to remove and clean up the overlay changeset 115 115 previously created via the call to of_overlay_fdt_apply(). Removal of an 116 116 overlay changeset that is stacked by another will not be permitted. 117 117
+3 -3
Documentation/devicetree/usage-model.rst
··· 46 46 communication method for passing data from Open Firmware to a client 47 47 program (like to an operating system). An operating system used the 48 48 Device Tree to discover the topology of the hardware at runtime, and 49 - thereby support a majority of available hardware without hard coded 49 + thereby supported a majority of available hardware without hard coded 50 50 information (assuming drivers were available for all devices). 51 51 52 52 Since Open Firmware is commonly used on PowerPC and SPARC platforms, ··· 128 128 compatible = "ti,omap3-beagleboard-xm", "ti,omap3450", "ti,omap3"; 129 129 130 130 Where "ti,omap3-beagleboard-xm" specifies the exact model, it also 131 - claims that it compatible with the OMAP 3450 SoC, and the omap3 family 131 + claims that it is compatible with the OMAP 3450 SoC, and the omap3 family 132 132 of SoCs in general. You'll notice that the list is sorted from most 133 133 specific (exact board) to least specific (SoC family). 134 134 ··· 205 205 206 206 During early boot, the architecture setup code calls of_scan_flat_dt() 207 207 several times with different helper callbacks to parse device tree 208 - data before paging is setup. The of_scan_flat_dt() code scans through 208 + data before paging is set up. The of_scan_flat_dt() code scans through 209 209 the device tree and uses the helpers to extract information required 210 210 during early boot. Typically the early_init_dt_scan_chosen() helper 211 211 is used to parse the chosen node including kernel parameters,
+10 -9
MAINTAINERS
··· 1881 1881 APPLIED MICRO (APM) X-GENE SOC EDAC 1882 1882 M: Khuong Dinh <khuong@os.amperecomputing.com> 1883 1883 S: Supported 1884 - F: Documentation/devicetree/bindings/edac/apm-xgene-edac.txt 1884 + F: Documentation/devicetree/bindings/edac/apm,xgene-edac.yaml 1885 1885 F: drivers/edac/xgene_edac.c 1886 1886 1887 1887 APPLIED MICRO (APM) X-GENE SOC ETHERNET (V2) DRIVER ··· 1904 1904 M: Khuong Dinh <khuong@os.amperecomputing.com> 1905 1905 S: Supported 1906 1906 F: Documentation/admin-guide/perf/xgene-pmu.rst 1907 - F: Documentation/devicetree/bindings/perf/apm-xgene-pmu.txt 1907 + F: Documentation/devicetree/bindings/perf/apm,xgene-pmu.yaml 1908 1908 F: drivers/perf/xgene_pmu.c 1909 1909 1910 1910 APPLIED MICRO QT2025 PHY DRIVER ··· 2632 2632 F: Documentation/devicetree/bindings/firmware/cznic,turris-omnia-mcu.yaml 2633 2633 F: Documentation/devicetree/bindings/interrupt-controller/marvell,mpic.yaml 2634 2634 F: Documentation/devicetree/bindings/leds/cznic,turris-omnia-leds.yaml 2635 - F: Documentation/devicetree/bindings/watchdog/armada-37xx-wdt.txt 2635 + F: Documentation/devicetree/bindings/watchdog/marvell,armada-3700-wdt.yaml 2636 2636 F: drivers/bus/moxtet.c 2637 2637 F: drivers/firmware/turris-mox-rwtm.c 2638 2638 F: drivers/gpio/gpio-moxtet.c ··· 2840 2840 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 2841 2841 S: Maintained 2842 2842 T: git git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu.git 2843 - F: Documentation/devicetree/bindings/arm/marvell/marvell,dove.txt 2844 - F: Documentation/devicetree/bindings/arm/marvell/marvell,orion5x.txt 2843 + F: Documentation/devicetree/bindings/arm/marvell/marvell,dove.yaml 2844 + F: Documentation/devicetree/bindings/arm/marvell/marvell,orion5x.yaml 2845 2845 F: Documentation/devicetree/bindings/soc/dove/ 2846 2846 F: arch/arm/boot/dts/marvell/dove* 2847 2847 F: arch/arm/boot/dts/marvell/orion5x* ··· 5556 5556 M: Robert Richter <rric@kernel.org> 5557 5557 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 5558 5558 S: Odd Fixes 5559 - F: Documentation/devicetree/bindings/arm/cavium-thunder2.txt 5559 + F: Documentation/devicetree/bindings/arm/bcm/brcm,vulcan-soc.yaml 5560 5560 F: arch/arm64/boot/dts/cavium/thunder2-99xx* 5561 5561 5562 5562 CBS/ETF/TAPRIO QDISCS ··· 7579 7579 L: linux-aspeed@lists.ozlabs.org (moderated for non-subscribers) 7580 7580 S: Supported 7581 7581 T: git https://gitlab.freedesktop.org/drm/misc/kernel.git 7582 - F: Documentation/devicetree/bindings/gpu/aspeed-gfx.txt 7582 + F: Documentation/devicetree/bindings/gpu/aspeed,ast2400-gfx.yaml 7583 7583 F: drivers/gpu/drm/aspeed/ 7584 7584 7585 7585 DRM DRIVER FOR AST SERVER GRAPHICS CHIPS ··· 8751 8751 EDAC-AST2500 8752 8752 M: Stefan Schaeckeler <sschaeck@cisco.com> 8753 8753 S: Supported 8754 - F: Documentation/devicetree/bindings/edac/aspeed-sdram-edac.txt 8754 + F: Documentation/devicetree/bindings/edac/aspeed,ast2400-sdram-edac.yaml 8755 8755 F: drivers/edac/aspeed_edac.c 8756 8756 8757 8757 EDAC-BLUEFIELD ··· 10025 10025 L: linux-fsi@lists.ozlabs.org 10026 10026 S: Supported 10027 10027 Q: http://patchwork.ozlabs.org/project/linux-fsi/list/ 10028 + F: Documentation/devicetree/bindings/fsi/ 10028 10029 F: drivers/fsi/ 10029 10030 F: include/linux/fsi*.h 10030 10031 F: include/trace/events/fsi*.h ··· 15651 15650 M: Yunfei Dong <yunfei.dong@mediatek.com> 15652 15651 S: Supported 15653 15652 F: Documentation/devicetree/bindings/media/mediatek,vcodec*.yaml 15654 - F: Documentation/devicetree/bindings/media/mediatek-vpu.txt 15653 + F: Documentation/devicetree/bindings/media/mediatek,mt8173-vpu.yaml 15655 15654 F: drivers/media/platform/mediatek/vcodec/ 15656 15655 F: drivers/media/platform/mediatek/vpu/ 15657 15656
+1 -1
drivers/irqchip/irq-gic-v3-its-fsl-mc-msi.c
··· 30 30 u32 out_id; 31 31 32 32 of_node = irq_domain_get_of_node(domain); 33 - out_id = of_node ? of_msi_map_id(&mc_dev->dev, of_node, mc_dev->icid) : 33 + out_id = of_node ? of_msi_xlate(&mc_dev->dev, &of_node, mc_dev->icid) : 34 34 iort_msi_map_id(&mc_dev->dev, mc_dev->icid); 35 35 36 36 return out_id;
+5 -20
drivers/of/irq.c
··· 674 674 /** 675 675 * of_msi_xlate - map a MSI ID and find relevant MSI controller node 676 676 * @dev: device for which the mapping is to be done. 677 - * @msi_np: Pointer to store the MSI controller node 677 + * @msi_np: Pointer to target MSI controller node 678 678 * @id_in: Device ID. 679 679 * 680 680 * Walk up the device hierarchy looking for devices with a "msi-map" 681 - * property. If found, apply the mapping to @id_in. @msi_np pointed 682 - * value must be NULL on entry, if an MSI controller is found @msi_np is 683 - * initialized to the MSI controller node with a reference held. 681 + * property. If found, apply the mapping to @id_in. 682 + * If @msi_np points to a non-NULL device node pointer, only entries targeting 683 + * that node will be matched; if it points to a NULL value, it will receive the 684 + * device node of the first matching target phandle, with a reference held. 684 685 * 685 686 * Returns: The mapped MSI id. 686 687 */ ··· 699 698 "msi-map-mask", msi_np, &id_out)) 700 699 break; 701 700 return id_out; 702 - } 703 - 704 - /** 705 - * of_msi_map_id - Map a MSI ID for a device. 706 - * @dev: device for which the mapping is to be done. 707 - * @msi_np: device node of the expected msi controller. 708 - * @id_in: unmapped MSI ID for the device. 709 - * 710 - * Walk up the device hierarchy looking for devices with a "msi-map" 711 - * property. If found, apply the mapping to @id_in. 712 - * 713 - * Return: The mapped MSI ID. 714 - */ 715 - u32 of_msi_map_id(struct device *dev, struct device_node *msi_np, u32 id_in) 716 - { 717 - return of_msi_xlate(dev, &msi_np, id_in); 718 701 } 719 702 720 703 /**
+1 -1
drivers/pci/msi/irqdomain.c
··· 459 459 pci_for_each_dma_alias(pdev, get_msi_id_cb, &rid); 460 460 461 461 of_node = irq_domain_get_of_node(domain); 462 - rid = of_node ? of_msi_map_id(&pdev->dev, of_node, rid) : 462 + rid = of_node ? of_msi_xlate(&pdev->dev, &of_node, rid) : 463 463 iort_msi_map_id(&pdev->dev, rid); 464 464 465 465 return rid;
+7
include/linux/of.h
··· 550 550 return NULL; 551 551 } 552 552 553 + static inline struct device_node *of_get_next_child_with_prefix( 554 + const struct device_node *node, struct device_node *prev, 555 + const char *prefix) 556 + { 557 + return NULL; 558 + } 559 + 553 560 static inline struct device_node *of_get_next_available_child( 554 561 const struct device_node *node, struct device_node *prev) 555 562 {
-6
include/linux/of_irq.h
··· 55 55 u32 bus_token); 56 56 extern void of_msi_configure(struct device *dev, const struct device_node *np); 57 57 extern u32 of_msi_xlate(struct device *dev, struct device_node **msi_np, u32 id_in); 58 - u32 of_msi_map_id(struct device *dev, struct device_node *msi_np, u32 id_in); 59 58 #else 60 59 static inline void of_irq_init(const struct of_device_id *matches) 61 60 { ··· 101 102 { 102 103 } 103 104 static inline u32 of_msi_xlate(struct device *dev, struct device_node **msi_np, u32 id_in) 104 - { 105 - return id_in; 106 - } 107 - static inline u32 of_msi_map_id(struct device *dev, 108 - struct device_node *msi_np, u32 id_in) 109 105 { 110 106 return id_in; 111 107 }
+1
scripts/Makefile.dtbs
··· 97 97 -Wno-avoid_unnecessary_addr_size \ 98 98 -Wno-alias_paths \ 99 99 -Wno-graph_child_address \ 100 + -Wno-interrupt_map \ 100 101 -Wno-simple_bus_reg 101 102 else 102 103 DTC_FLAGS += -Wunique_unit_address_if_enabled
+15 -8
scripts/dtc/checks.c
··· 1024 1024 } else if (strprefixeq(node->name, node->basenamelen, "i2c")) { 1025 1025 struct node *child; 1026 1026 for_each_child(node, child) { 1027 - if (strprefixeq(child->name, node->basenamelen, "i2c-bus")) 1027 + if (strprefixeq(child->name, child->basenamelen, "i2c-bus")) 1028 1028 return; 1029 1029 } 1030 1030 node->bus = &i2c_bus; ··· 1217 1217 static void check_avoid_unnecessary_addr_size(struct check *c, struct dt_info *dti, 1218 1218 struct node *node) 1219 1219 { 1220 - struct property *prop; 1221 1220 struct node *child; 1222 - bool has_reg = false; 1223 1221 1224 1222 if (!node->parent || node->addr_cells < 0 || node->size_cells < 0) 1225 1223 return; ··· 1226 1228 return; 1227 1229 1228 1230 for_each_child(node, child) { 1229 - prop = get_property(child, "reg"); 1230 - if (prop) 1231 - has_reg = true; 1231 + /* 1232 + * Even if the child devices' address space is not mapped into 1233 + * the parent bus (no 'ranges' property on node), children can 1234 + * still have registers on a local bus, or map local addresses 1235 + * to another subordinate address space. The properties on the 1236 + * child nodes then make #address-cells/#size-cells necessary: 1237 + */ 1238 + if (get_property(child, "reg") || get_property(child, "ranges")) 1239 + return; 1232 1240 } 1233 1241 1234 - if (!has_reg) 1235 - FAIL(c, dti, node, "unnecessary #address-cells/#size-cells without \"ranges\", \"dma-ranges\" or child \"reg\" property"); 1242 + FAIL(c, dti, node, "unnecessary #address-cells/#size-cells without \"ranges\", \"dma-ranges\" or child \"reg\" or \"ranges\" property"); 1236 1243 } 1237 1244 WARNING(avoid_unnecessary_addr_size, check_avoid_unnecessary_addr_size, NULL, &avoid_default_addr_size); 1238 1245 ··· 1676 1673 cellprop = get_property(provider_node, "#address-cells"); 1677 1674 if (cellprop) 1678 1675 parent_cellsize += propval_cell(cellprop); 1676 + else 1677 + FAIL_PROP(c, dti, node, irq_map_prop, 1678 + "Missing property '#address-cells' in node %s, using 0 as fallback", 1679 + provider_node->fullpath); 1679 1680 1680 1681 cell += 1 + parent_cellsize; 1681 1682 if (cell > map_cells)
+42 -5
scripts/dtc/data.c
··· 228 228 { 229 229 struct marker *m; 230 230 231 - m = xmalloc(sizeof(*m)); 232 - m->offset = d.len; 233 - m->type = type; 234 - m->ref = ref; 235 - m->next = NULL; 231 + m = alloc_marker(d.len, type, ref); 236 232 237 233 return data_append_markers(d, m); 238 234 } ··· 249 253 return false; 250 254 251 255 return true; 256 + } 257 + 258 + struct data data_insert_data(struct data d, struct marker *m, struct data old) 259 + { 260 + unsigned int offset = m->offset; 261 + struct marker *next = m->next; 262 + struct marker *marker; 263 + struct data new_data; 264 + char *ref; 265 + 266 + new_data = data_insert_at_marker(d, m, old.val, old.len); 267 + 268 + /* Copy all markers from old value */ 269 + marker = old.markers; 270 + for_each_marker(marker) { 271 + ref = NULL; 272 + 273 + if (marker->ref) 274 + ref = xstrdup(marker->ref); 275 + 276 + m->next = alloc_marker(marker->offset + offset, marker->type, 277 + ref); 278 + m = m->next; 279 + } 280 + m->next = next; 281 + 282 + return new_data; 283 + } 284 + 285 + struct marker *alloc_marker(unsigned int offset, enum markertype type, 286 + char *ref) 287 + { 288 + struct marker *m; 289 + 290 + m = xmalloc(sizeof(*m)); 291 + m->offset = offset; 292 + m->type = type; 293 + m->ref = ref; 294 + m->next = NULL; 295 + 296 + return m; 252 297 }
+4 -4
scripts/dtc/dt_to_config
··· 51 51 "compatible is white listed", 52 52 "matching driver and/or kernel config is hard coded", 53 53 "kernel config hard coded in Makefile", 54 - "one or more kernel config file options is not set", 55 - "one or more kernel config file options is set to 'm'", 56 - "one or more kernel config file options is set to 'y'", 57 - "one of more kernel config file options fails to have correct value" 54 + "one or more kernel config file options are not set", 55 + "one or more kernel config file options are set to 'm'", 56 + "one or more kernel config file options are set to 'y'", 57 + "one or more kernel config file options fail to have correct value" 58 58 ); 59 59 60 60
+15
scripts/dtc/dtc-lexer.l
··· 151 151 return DT_LABEL; 152 152 } 153 153 154 + <V1>{LABEL} { 155 + /* Missed includes or macro definitions while 156 + * preprocessing can lead to unexpected identifiers in 157 + * the input. Report a slightly more informative error 158 + * in this case */ 159 + 160 + lexical_error("Unexpected '%s'", yytext); 161 + 162 + /* Treat it as a literal which often generates further 163 + * useful error messages */ 164 + 165 + yylval.integer = 0; 166 + return DT_LITERAL; 167 + } 168 + 154 169 <V1>([0-9]+|0[xX][0-9a-fA-F]+)(U|L|UL|LL|ULL)? { 155 170 char *e; 156 171 DPRINT("Integer Literal: '%s'\n", yytext);
+4 -2
scripts/dtc/dtc.c
··· 15 15 unsigned int reservenum;/* Number of memory reservation slots */ 16 16 int minsize; /* Minimum blob size */ 17 17 int padsize; /* Additional padding to blob */ 18 - int alignsize; /* Additional padding to blob accroding to the alignsize */ 18 + int alignsize; /* Additional padding to blob according to the alignsize */ 19 19 int phandle_format = PHANDLE_EPAPR; /* Use linux,phandle or phandle properties */ 20 20 int generate_symbols; /* enable symbols & fixup support */ 21 21 int generate_fixups; /* suppress generation of fixups on symbol support */ ··· 289 289 if (!depfile) 290 290 die("Couldn't open dependency file %s: %s\n", depname, 291 291 strerror(errno)); 292 - fprintf(depfile, "%s:", outname); 292 + 293 + fprint_path_escaped(depfile, outname); 294 + fputc(':', depfile); 293 295 } 294 296 295 297 if (inform == NULL)
+4 -1
scripts/dtc/dtc.h
··· 38 38 extern unsigned int reservenum; /* Number of memory reservation slots */ 39 39 extern int minsize; /* Minimum blob size */ 40 40 extern int padsize; /* Additional padding to blob */ 41 - extern int alignsize; /* Additional padding to blob accroding to the alignsize */ 41 + extern int alignsize; /* Additional padding to blob according to the alignsize */ 42 42 extern int phandle_format; /* Use linux,phandle or phandle properties */ 43 43 extern int generate_symbols; /* generate symbols for nodes with labels */ 44 44 extern int generate_fixups; /* generate fixups */ ··· 182 182 struct data data_append_byte(struct data d, uint8_t byte); 183 183 struct data data_append_zeroes(struct data d, int len); 184 184 struct data data_append_align(struct data d, int align); 185 + struct data data_insert_data(struct data d, struct marker *m, struct data old); 185 186 187 + struct marker *alloc_marker(unsigned int offset, enum markertype type, 188 + char *ref); 186 189 struct data data_add_marker(struct data d, enum markertype type, char *ref); 187 190 188 191 bool data_is_one_string(struct data d);
+8
scripts/dtc/fdtoverlay.c
··· 46 46 char *tmp = NULL; 47 47 char *tmpo; 48 48 int ret; 49 + bool has_symbols; 49 50 50 51 /* 51 52 * We take copies first, because a failed apply can trash ··· 63 62 fdt_strerror(ret)); 64 63 goto fail; 65 64 } 65 + ret = fdt_path_offset(tmp, "/__symbols__"); 66 + has_symbols = ret >= 0; 66 67 67 68 memcpy(tmpo, overlay, fdt_totalsize(overlay)); 68 69 ··· 77 74 if (ret) { 78 75 fprintf(stderr, "\nFailed to apply '%s': %s\n", 79 76 name, fdt_strerror(ret)); 77 + if (!has_symbols) { 78 + fprintf(stderr, 79 + "base blob does not have a '/__symbols__' node, " 80 + "make sure you have compiled the base blob with '-@' option\n"); 81 + } 80 82 goto fail; 81 83 } 82 84
+1 -1
scripts/dtc/flattree.c
··· 503 503 * Reserve map entries. 504 504 * Align the reserve map to a doubleword boundary. 505 505 * Each entry is an (address, size) pair of u64 values. 506 - * Always supply a zero-sized temination entry. 506 + * Always supply a zero-sized termination entry. 507 507 */ 508 508 asm_emit_align(f, 8); 509 509 emit_label(f, symprefix, "reserve_map");
+4 -4
scripts/dtc/libfdt/fdt.c
··· 312 312 return offset; 313 313 } 314 314 315 - const char *fdt_find_string_(const char *strtab, int tabsize, const char *s) 315 + const char *fdt_find_string_len_(const char *strtab, int tabsize, const char *s, 316 + int slen) 316 317 { 317 - int len = strlen(s) + 1; 318 - const char *last = strtab + tabsize - len; 318 + const char *last = strtab + tabsize - (slen + 1); 319 319 const char *p; 320 320 321 321 for (p = strtab; p <= last; p++) 322 - if (memcmp(p, s, len) == 0) 322 + if (memcmp(p, s, slen) == 0 && p[slen] == '\0') 323 323 return p; 324 324 return NULL; 325 325 }
+2 -2
scripts/dtc/libfdt/fdt.h
··· 7 7 * Copyright 2012 Kim Phillips, Freescale Semiconductor. 8 8 */ 9 9 10 - #ifndef __ASSEMBLY__ 10 + #ifndef __ASSEMBLER__ 11 11 12 12 struct fdt_header { 13 13 fdt32_t magic; /* magic word FDT_MAGIC */ ··· 45 45 char data[]; 46 46 }; 47 47 48 - #endif /* !__ASSEMBLY */ 48 + #endif /* !__ASSEMBLER__ */ 49 49 50 50 #define FDT_MAGIC 0xd00dfeed /* 4: version, 4: total size */ 51 51 #define FDT_TAGSIZE sizeof(fdt32_t)
+3 -5
scripts/dtc/libfdt/fdt_overlay.c
··· 307 307 308 308 /** 309 309 * overlay_fixup_one_phandle - Set an overlay phandle to the base one 310 - * @fdt: Base Device Tree blob 311 310 * @fdto: Device tree overlay blob 312 311 * @symbols_off: Node offset of the symbols node in the base device tree 313 312 * @path: Path to a node holding a phandle in the overlay ··· 327 328 * 0 on success 328 329 * Negative error code on failure 329 330 */ 330 - static int overlay_fixup_one_phandle(void *fdt, void *fdto, 331 - int symbols_off, 331 + static int overlay_fixup_one_phandle(void *fdto, int symbols_off, 332 332 const char *path, uint32_t path_len, 333 333 const char *name, uint32_t name_len, 334 334 int poffset, uint32_t phandle) ··· 349 351 name, name_len, poffset, 350 352 &phandle_prop, 351 353 sizeof(phandle_prop)); 352 - }; 354 + } 353 355 354 356 /** 355 357 * overlay_fixup_phandle - Set an overlay phandle to the base one ··· 441 443 if ((*endptr != '\0') || (endptr <= (sep + 1))) 442 444 return -FDT_ERR_BADOVERLAY; 443 445 444 - ret = overlay_fixup_one_phandle(fdt, fdto, symbols_off, 446 + ret = overlay_fixup_one_phandle(fdto, symbols_off, 445 447 path, path_len, name, name_len, 446 448 poffset, phandle); 447 449 if (ret)
+24 -17
scripts/dtc/libfdt/fdt_rw.c
··· 124 124 * allocated. Ignored if can_assume(NO_ROLLBACK) 125 125 * @return offset of string in the string table (whether found or added) 126 126 */ 127 - static int fdt_find_add_string_(void *fdt, const char *s, int *allocated) 127 + static int fdt_find_add_string_(void *fdt, const char *s, int slen, 128 + int *allocated) 128 129 { 129 130 char *strtab = (char *)fdt + fdt_off_dt_strings(fdt); 130 131 const char *p; 131 132 char *new; 132 - int len = strlen(s) + 1; 133 133 int err; 134 134 135 135 if (!can_assume(NO_ROLLBACK)) 136 136 *allocated = 0; 137 137 138 - p = fdt_find_string_(strtab, fdt_size_dt_strings(fdt), s); 138 + p = fdt_find_string_len_(strtab, fdt_size_dt_strings(fdt), s, slen); 139 139 if (p) 140 140 /* found it */ 141 141 return (p - strtab); 142 142 143 143 new = strtab + fdt_size_dt_strings(fdt); 144 - err = fdt_splice_string_(fdt, len); 144 + err = fdt_splice_string_(fdt, slen + 1); 145 145 if (err) 146 146 return err; 147 147 148 148 if (!can_assume(NO_ROLLBACK)) 149 149 *allocated = 1; 150 150 151 - memcpy(new, s, len); 151 + memcpy(new, s, slen); 152 + new[slen] = '\0'; 153 + 152 154 return (new - strtab); 153 155 } 154 156 ··· 183 181 return fdt_splice_mem_rsv_(fdt, re, 1, 0); 184 182 } 185 183 186 - static int fdt_resize_property_(void *fdt, int nodeoffset, const char *name, 184 + static int fdt_resize_property_(void *fdt, int nodeoffset, 185 + const char *name, int namelen, 187 186 int len, struct fdt_property **prop) 188 187 { 189 188 int oldlen; 190 189 int err; 191 190 192 - *prop = fdt_get_property_w(fdt, nodeoffset, name, &oldlen); 191 + *prop = fdt_get_property_namelen_w(fdt, nodeoffset, name, namelen, 192 + &oldlen); 193 193 if (!*prop) 194 194 return oldlen; 195 195 ··· 204 200 } 205 201 206 202 static int fdt_add_property_(void *fdt, int nodeoffset, const char *name, 207 - int len, struct fdt_property **prop) 203 + int namelen, int len, struct fdt_property **prop) 208 204 { 209 205 int proplen; 210 206 int nextoffset; ··· 215 211 if ((nextoffset = fdt_check_node_offset_(fdt, nodeoffset)) < 0) 216 212 return nextoffset; 217 213 218 - namestroff = fdt_find_add_string_(fdt, name, &allocated); 214 + namestroff = fdt_find_add_string_(fdt, name, namelen, &allocated); 219 215 if (namestroff < 0) 220 216 return namestroff; 221 217 ··· 259 255 return 0; 260 256 } 261 257 262 - int fdt_setprop_placeholder(void *fdt, int nodeoffset, const char *name, 263 - int len, void **prop_data) 258 + int fdt_setprop_placeholder_namelen(void *fdt, int nodeoffset, const char *name, 259 + int namelen, int len, void **prop_data) 264 260 { 265 261 struct fdt_property *prop; 266 262 int err; 267 263 268 264 FDT_RW_PROBE(fdt); 269 265 270 - err = fdt_resize_property_(fdt, nodeoffset, name, len, &prop); 266 + err = fdt_resize_property_(fdt, nodeoffset, name, namelen, len, &prop); 271 267 if (err == -FDT_ERR_NOTFOUND) 272 - err = fdt_add_property_(fdt, nodeoffset, name, len, &prop); 268 + err = fdt_add_property_(fdt, nodeoffset, name, namelen, len, 269 + &prop); 273 270 if (err) 274 271 return err; 275 272 ··· 278 273 return 0; 279 274 } 280 275 281 - int fdt_setprop(void *fdt, int nodeoffset, const char *name, 282 - const void *val, int len) 276 + int fdt_setprop_namelen(void *fdt, int nodeoffset, const char *name, 277 + int namelen, const void *val, int len) 283 278 { 284 279 void *prop_data; 285 280 int err; 286 281 287 - err = fdt_setprop_placeholder(fdt, nodeoffset, name, len, &prop_data); 282 + err = fdt_setprop_placeholder_namelen(fdt, nodeoffset, name, namelen, 283 + len, &prop_data); 288 284 if (err) 289 285 return err; 290 286 ··· 313 307 prop->len = cpu_to_fdt32(newlen); 314 308 memcpy(prop->data + oldlen, val, len); 315 309 } else { 316 - err = fdt_add_property_(fdt, nodeoffset, name, len, &prop); 310 + err = fdt_add_property_(fdt, nodeoffset, name, strlen(name), 311 + len, &prop); 317 312 if (err) 318 313 return err; 319 314 memcpy(prop->data, val, len);
+146 -35
scripts/dtc/libfdt/libfdt.h
··· 14 14 #endif 15 15 16 16 #define FDT_FIRST_SUPPORTED_VERSION 0x02 17 - #define FDT_LAST_COMPATIBLE_VERSION 0x10 17 + #define FDT_LAST_COMPATIBLE_VERSION 0x10 18 18 #define FDT_LAST_SUPPORTED_VERSION 0x11 19 19 20 20 /* Error codes: informative error codes */ ··· 263 263 struct fdt_header *fdth = (struct fdt_header *)fdt; \ 264 264 fdth->name = cpu_to_fdt32(val); \ 265 265 } 266 - fdt_set_hdr_(magic); 267 - fdt_set_hdr_(totalsize); 268 - fdt_set_hdr_(off_dt_struct); 269 - fdt_set_hdr_(off_dt_strings); 270 - fdt_set_hdr_(off_mem_rsvmap); 271 - fdt_set_hdr_(version); 272 - fdt_set_hdr_(last_comp_version); 273 - fdt_set_hdr_(boot_cpuid_phys); 274 - fdt_set_hdr_(size_dt_strings); 275 - fdt_set_hdr_(size_dt_struct); 266 + fdt_set_hdr_(magic) 267 + fdt_set_hdr_(totalsize) 268 + fdt_set_hdr_(off_dt_struct) 269 + fdt_set_hdr_(off_dt_strings) 270 + fdt_set_hdr_(off_mem_rsvmap) 271 + fdt_set_hdr_(version) 272 + fdt_set_hdr_(last_comp_version) 273 + fdt_set_hdr_(boot_cpuid_phys) 274 + fdt_set_hdr_(size_dt_strings) 275 + fdt_set_hdr_(size_dt_struct) 276 276 #undef fdt_set_hdr_ 277 277 278 278 /** ··· 285 285 286 286 /** 287 287 * fdt_header_size_ - internal function to get header size from a version number 288 - * @version: devicetree version number 288 + * @version: device tree version number 289 289 * 290 290 * Return: size of DTB header in bytes 291 291 */ ··· 554 554 * -FDT_ERR_BADPATH, given path does not begin with '/' and the first 555 555 * component is not a valid alias 556 556 * -FDT_ERR_NOTFOUND, if the requested node does not exist 557 - * -FDT_ERR_BADMAGIC, 557 + * -FDT_ERR_BADMAGIC, 558 558 * -FDT_ERR_BADVERSION, 559 559 * -FDT_ERR_BADSTATE, 560 560 * -FDT_ERR_BADSTRUCTURE, ··· 599 599 * structure block offset of the property (>=0), on success 600 600 * -FDT_ERR_NOTFOUND, if the requested node has no properties 601 601 * -FDT_ERR_BADOFFSET, if nodeoffset did not point to an FDT_BEGIN_NODE tag 602 - * -FDT_ERR_BADMAGIC, 602 + * -FDT_ERR_BADMAGIC, 603 603 * -FDT_ERR_BADVERSION, 604 604 * -FDT_ERR_BADSTATE, 605 605 * -FDT_ERR_BADSTRUCTURE, ··· 620 620 * structure block offset of the next property (>=0), on success 621 621 * -FDT_ERR_NOTFOUND, if the given property is the last in its node 622 622 * -FDT_ERR_BADOFFSET, if nodeoffset did not point to an FDT_PROP tag 623 - * -FDT_ERR_BADMAGIC, 623 + * -FDT_ERR_BADMAGIC, 624 624 * -FDT_ERR_BADVERSION, 625 625 * -FDT_ERR_BADSTATE, 626 626 * -FDT_ERR_BADSTRUCTURE, ··· 712 712 int nodeoffset, 713 713 const char *name, 714 714 int namelen, int *lenp); 715 + static inline struct fdt_property * 716 + fdt_get_property_namelen_w(void *fdt, int nodeoffset, const char *name, 717 + int namelen, int *lenp) 718 + { 719 + return (struct fdt_property *)(uintptr_t)fdt_get_property_namelen( 720 + fdt, nodeoffset, name, namelen, lenp); 721 + } 715 722 #endif 716 723 717 724 /** ··· 771 764 * to within the device blob itself, not a copy of the value). If 772 765 * lenp is non-NULL, the length of the property value is also 773 766 * returned, in the integer pointed to by lenp. If namep is non-NULL, 774 - * the property's namne will also be returned in the char * pointed to 767 + * the property's name will also be returned in the char * pointed to 775 768 * by namep (this will be a pointer to within the device tree's string 776 769 * block, not a new copy of the name). 777 770 * ··· 779 772 * pointer to the property's value 780 773 * if lenp is non-NULL, *lenp contains the length of the property 781 774 * value (>=0) 782 - * if namep is non-NULL *namep contiains a pointer to the property 775 + * if namep is non-NULL *namep contains a pointer to the property 783 776 * name. 784 777 * NULL, on error 785 778 * if lenp is non-NULL, *lenp contains an error code (<0): ··· 873 866 /** 874 867 * fdt_get_alias_namelen - get alias based on substring 875 868 * @fdt: pointer to the device tree blob 876 - * @name: name of the alias th look up 869 + * @name: name of the alias to look up 877 870 * @namelen: number of characters of name to consider 878 871 * 879 872 * Identical to fdt_get_alias(), but only examine the first @namelen ··· 890 883 /** 891 884 * fdt_get_alias - retrieve the path referenced by a given alias 892 885 * @fdt: pointer to the device tree blob 893 - * @name: name of the alias th look up 886 + * @name: name of the alias to look up 894 887 * 895 888 * fdt_get_alias() retrieves the value of a given alias. That is, the 896 889 * value of the property named @name in the node /aliases. ··· 1266 1259 * 1267 1260 * returns: 1268 1261 * 0 <= n < FDT_MAX_NCELLS, on success 1269 - * 2, if the node has no #address-cells property 1270 - * -FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid 1262 + * 2, if the node has no #address-cells property 1263 + * -FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid 1271 1264 * #address-cells property 1272 1265 * -FDT_ERR_BADMAGIC, 1273 1266 * -FDT_ERR_BADVERSION, ··· 1287 1280 * 1288 1281 * returns: 1289 1282 * 0 <= n < FDT_MAX_NCELLS, on success 1290 - * 1, if the node has no #size-cells property 1291 - * -FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid 1283 + * 1, if the node has no #size-cells property 1284 + * -FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid 1292 1285 * #size-cells property 1293 1286 * -FDT_ERR_BADMAGIC, 1294 1287 * -FDT_ERR_BADVERSION, ··· 1569 1562 * @fdt: pointer to the device tree blob 1570 1563 * @name: name of property to add 1571 1564 * @len: length of property value in bytes 1572 - * @valp: returns a pointer to where where the value should be placed 1565 + * @valp: returns a pointer to where the value should be placed 1573 1566 * 1574 1567 * returns: 1575 1568 * 0, on success ··· 1667 1660 int fdt_set_name(void *fdt, int nodeoffset, const char *name); 1668 1661 1669 1662 /** 1663 + * fdt_setprop_namelen - create or change a property 1664 + * @fdt: pointer to the device tree blob 1665 + * @nodeoffset: offset of the node whose property to change 1666 + * @name: name of the property to change 1667 + * @namelen: length of the name 1668 + * @val: pointer to data to set the property value to 1669 + * @len: length of the property value 1670 + * 1671 + * fdt_setprop_namelen() sets the value of the named property in the given 1672 + * node to the given value and length, creating the property if it 1673 + * does not already exist. 1674 + * 1675 + * This function may insert or delete data from the blob, and will 1676 + * therefore change the offsets of some existing nodes. 1677 + * 1678 + * returns: 1679 + * 0, on success 1680 + * -FDT_ERR_NOSPACE, there is insufficient free space in the blob to 1681 + * contain the new property value 1682 + * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag 1683 + * -FDT_ERR_BADLAYOUT, 1684 + * -FDT_ERR_BADMAGIC, 1685 + * -FDT_ERR_BADVERSION, 1686 + * -FDT_ERR_BADSTATE, 1687 + * -FDT_ERR_BADSTRUCTURE, 1688 + * -FDT_ERR_BADLAYOUT, 1689 + * -FDT_ERR_TRUNCATED, standard meanings 1690 + */ 1691 + int fdt_setprop_namelen(void *fdt, int nodeoffset, const char *name, 1692 + int namelen, const void *val, int len); 1693 + 1694 + /** 1670 1695 * fdt_setprop - create or change a property 1671 1696 * @fdt: pointer to the device tree blob 1672 1697 * @nodeoffset: offset of the node whose property to change ··· 1726 1687 * -FDT_ERR_BADLAYOUT, 1727 1688 * -FDT_ERR_TRUNCATED, standard meanings 1728 1689 */ 1729 - int fdt_setprop(void *fdt, int nodeoffset, const char *name, 1730 - const void *val, int len); 1690 + static inline int fdt_setprop(void *fdt, int nodeoffset, const char *name, 1691 + const void *val, int len) 1692 + { 1693 + return fdt_setprop_namelen(fdt, nodeoffset, name, strlen(name), val, 1694 + len); 1695 + } 1731 1696 1732 1697 /** 1733 - * fdt_setprop_placeholder - allocate space for a property 1698 + * fdt_setprop_placeholder_namelen - allocate space for a property 1734 1699 * @fdt: pointer to the device tree blob 1735 1700 * @nodeoffset: offset of the node whose property to change 1736 1701 * @name: name of the property to change 1702 + * @namelen: length of the name 1737 1703 * @len: length of the property value 1738 1704 * @prop_data: return pointer to property data 1739 1705 * 1740 - * fdt_setprop_placeholer() allocates the named property in the given node. 1706 + * fdt_setprop_placeholder_namelen() allocates the named property in the given node. 1741 1707 * If the property exists it is resized. In either case a pointer to the 1742 1708 * property data is returned. 1743 1709 * ··· 1762 1718 * -FDT_ERR_BADLAYOUT, 1763 1719 * -FDT_ERR_TRUNCATED, standard meanings 1764 1720 */ 1765 - int fdt_setprop_placeholder(void *fdt, int nodeoffset, const char *name, 1766 - int len, void **prop_data); 1721 + int fdt_setprop_placeholder_namelen(void *fdt, int nodeoffset, const char *name, 1722 + int namelen, int len, void **prop_data); 1723 + 1724 + /** 1725 + * fdt_setprop_placeholder - allocate space for a property 1726 + * @fdt: pointer to the device tree blob 1727 + * @nodeoffset: offset of the node whose property to change 1728 + * @name: name of the property to change 1729 + * @len: length of the property value 1730 + * @prop_data: return pointer to property data 1731 + * 1732 + * fdt_setprop_placeholder() allocates the named property in the given node. 1733 + * If the property exists it is resized. In either case a pointer to the 1734 + * property data is returned. 1735 + * 1736 + * This function may insert or delete data from the blob, and will 1737 + * therefore change the offsets of some existing nodes. 1738 + * 1739 + * returns: 1740 + * 0, on success 1741 + * -FDT_ERR_NOSPACE, there is insufficient free space in the blob to 1742 + * contain the new property value 1743 + * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag 1744 + * -FDT_ERR_BADLAYOUT, 1745 + * -FDT_ERR_BADMAGIC, 1746 + * -FDT_ERR_BADVERSION, 1747 + * -FDT_ERR_BADSTATE, 1748 + * -FDT_ERR_BADSTRUCTURE, 1749 + * -FDT_ERR_BADLAYOUT, 1750 + * -FDT_ERR_TRUNCATED, standard meanings 1751 + */ 1752 + static inline int fdt_setprop_placeholder(void *fdt, int nodeoffset, 1753 + const char *name, int len, 1754 + void **prop_data) 1755 + { 1756 + return fdt_setprop_placeholder_namelen(fdt, nodeoffset, name, 1757 + strlen(name), len, prop_data); 1758 + } 1767 1759 1768 1760 /** 1769 1761 * fdt_setprop_u32 - set a property to a 32-bit integer ··· 1919 1839 #define fdt_setprop_string(fdt, nodeoffset, name, str) \ 1920 1840 fdt_setprop((fdt), (nodeoffset), (name), (str), strlen(str)+1) 1921 1841 1842 + /** 1843 + * fdt_setprop_namelen_string - set a property to a string value 1844 + * @fdt: pointer to the device tree blob 1845 + * @nodeoffset: offset of the node whose property to change 1846 + * @name: name of the property to change 1847 + * @namelen: number of characters of name to consider 1848 + * @str: string value for the property 1849 + * 1850 + * fdt_setprop_namelen_string() sets the value of the named property in the 1851 + * given node to the given string value (using the length of the 1852 + * string to determine the new length of the property), or creates a 1853 + * new property with that value if it does not already exist. 1854 + * 1855 + * This function may insert or delete data from the blob, and will 1856 + * therefore change the offsets of some existing nodes. 1857 + * 1858 + * returns: 1859 + * 0, on success 1860 + * -FDT_ERR_NOSPACE, there is insufficient free space in the blob to 1861 + * contain the new property value 1862 + * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag 1863 + * -FDT_ERR_BADLAYOUT, 1864 + * -FDT_ERR_BADMAGIC, 1865 + * -FDT_ERR_BADVERSION, 1866 + * -FDT_ERR_BADSTATE, 1867 + * -FDT_ERR_BADSTRUCTURE, 1868 + * -FDT_ERR_BADLAYOUT, 1869 + * -FDT_ERR_TRUNCATED, standard meanings 1870 + */ 1871 + #define fdt_setprop_namelen_string(fdt, nodeoffset, name, namelen, str) \ 1872 + fdt_setprop_namelen((fdt), (nodeoffset), (name), (namelen), (str), \ 1873 + strlen(str) + 1) 1922 1874 1923 1875 /** 1924 1876 * fdt_setprop_empty - set a property to an empty value ··· 2171 2059 * @nodeoffset: offset of the node whose property to nop 2172 2060 * @name: name of the property to nop 2173 2061 * 2174 - * fdt_del_property() will delete the given property. 2062 + * fdt_delprop() will delete the given property. 2175 2063 * 2176 2064 * This function will delete data from the blob, and will therefore 2177 2065 * change the offsets of some existing nodes. ··· 2223 2111 * change the offsets of some existing nodes. 2224 2112 * 2225 2113 * returns: 2226 - * structure block offset of the created nodeequested subnode (>=0), on 2227 - * success 2114 + * structure block offset of the created subnode (>=0), on success 2228 2115 * -FDT_ERR_NOTFOUND, if the requested subnode does not exist 2229 2116 * -FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE 2230 2117 * tag ··· 2233 2122 * blob to contain the new node 2234 2123 * -FDT_ERR_NOSPACE 2235 2124 * -FDT_ERR_BADLAYOUT 2236 - * -FDT_ERR_BADMAGIC, 2125 + * -FDT_ERR_BADMAGIC, 2237 2126 * -FDT_ERR_BADVERSION, 2238 2127 * -FDT_ERR_BADSTATE, 2239 2128 * -FDT_ERR_BADSTRUCTURE, ··· 2278 2167 * returns: 2279 2168 * 0, on success 2280 2169 * -FDT_ERR_NOSPACE, there's not enough space in the base device tree 2281 - * -FDT_ERR_NOTFOUND, the overlay points to some inexistant nodes or 2170 + * -FDT_ERR_NOTFOUND, the overlay points to some nonexistent nodes or 2282 2171 * properties in the base DT 2283 2172 * -FDT_ERR_BADPHANDLE, 2284 2173 * -FDT_ERR_BADOVERLAY,
+11 -3
scripts/dtc/libfdt/libfdt_internal.h
··· 20 20 21 21 int fdt_check_node_offset_(const void *fdt, int offset); 22 22 int fdt_check_prop_offset_(const void *fdt, int offset); 23 - const char *fdt_find_string_(const char *strtab, int tabsize, const char *s); 23 + 24 + const char *fdt_find_string_len_(const char *strtab, int tabsize, const char *s, 25 + int s_len); 26 + static inline const char *fdt_find_string_(const char *strtab, int tabsize, 27 + const char *s) 28 + { 29 + return fdt_find_string_len_(strtab, tabsize, s, strlen(s)); 30 + } 31 + 24 32 int fdt_node_end_offset_(void *fdt, int nodeoffset); 25 33 26 34 static inline const void *fdt_offset_ptr_(const void *fdt, int offset) ··· 55 47 } 56 48 57 49 /* 58 - * Internal helpers to access tructural elements of the device tree 59 - * blob (rather than for exaple reading integers from within property 50 + * Internal helpers to access structural elements of the device tree 51 + * blob (rather than for example reading integers from within property 60 52 * values). We assume that we are either given a naturally aligned 61 53 * address for the platform or if we are not, we are on a platform 62 54 * where unaligned memory reads will be handled in a graceful manner.
+18 -7
scripts/dtc/livetree.c
··· 174 174 175 175 old_prop->val = new_prop->val; 176 176 old_prop->deleted = 0; 177 - free(old_prop->srcpos); 177 + srcpos_free(old_prop->srcpos); 178 178 old_prop->srcpos = new_prop->srcpos; 179 179 free(new_prop); 180 180 new_prop = NULL; ··· 504 504 struct node *child; 505 505 506 506 for_each_child(node, child) 507 - if (streq(child->name, nodename)) 507 + if (streq(child->name, nodename) && !child->deleted) 508 508 return child; 509 509 510 510 return NULL; ··· 1014 1014 /* walk the path components creating nodes if they don't exist */ 1015 1015 for (wn = lfn, i = 1; i < depth; i++, wn = nwn) { 1016 1016 /* if no node exists, create it */ 1017 - nwn = get_subnode(wn, compp[i]); 1018 - if (!nwn) 1019 - nwn = build_and_name_child_node(wn, compp[i]); 1017 + nwn = build_root_node(wn, compp[i]); 1020 1018 } 1021 1019 1022 1020 free(compp); ··· 1056 1058 1057 1059 void generate_fixups_tree(struct dt_info *dti, const char *name) 1058 1060 { 1061 + struct node *n = get_subnode(dti->dt, name); 1062 + 1063 + /* Start with an empty __fixups__ node to not get duplicates */ 1064 + if (n) 1065 + n->deleted = true; 1066 + 1059 1067 if (!any_fixup_tree(dti, dti->dt)) 1060 1068 return; 1061 - generate_fixups_tree_internal(dti, build_root_node(dti->dt, name), 1069 + generate_fixups_tree_internal(dti, 1070 + build_and_name_child_node(dti->dt, name), 1062 1071 dti->dt); 1063 1072 } 1064 1073 1065 1074 void generate_local_fixups_tree(struct dt_info *dti, const char *name) 1066 1075 { 1076 + struct node *n = get_subnode(dti->dt, name); 1077 + 1078 + /* Start with an empty __local_fixups__ node to not get duplicates */ 1079 + if (n) 1080 + n->deleted = true; 1067 1081 if (!any_local_fixup_tree(dti, dti->dt)) 1068 1082 return; 1069 - generate_local_fixups_tree_internal(dti, build_root_node(dti->dt, name), 1083 + generate_local_fixups_tree_internal(dti, 1084 + build_and_name_child_node(dti->dt, name), 1070 1085 dti->dt); 1071 1086 }
+15 -2
scripts/dtc/srcpos.c
··· 160 160 strerror(errno)); 161 161 } 162 162 163 - if (depfile) 164 - fprintf(depfile, " %s", fullname); 163 + if (depfile) { 164 + fputc(' ', depfile); 165 + fprint_path_escaped(depfile, fullname); 166 + } 165 167 166 168 if (fullnamep) 167 169 *fullnamep = fullname; ··· 285 283 for (p = pos; p->next != NULL; p = p->next); 286 284 p->next = newtail; 287 285 return pos; 286 + } 287 + 288 + void srcpos_free(struct srcpos *pos) 289 + { 290 + struct srcpos *p_next; 291 + 292 + while (pos) { 293 + p_next = pos->next; 294 + free(pos); 295 + pos = p_next; 296 + } 288 297 } 289 298 290 299 char *
+1
scripts/dtc/srcpos.h
··· 88 88 extern struct srcpos *srcpos_copy(struct srcpos *pos); 89 89 extern struct srcpos *srcpos_extend(struct srcpos *new_srcpos, 90 90 struct srcpos *old_srcpos); 91 + extern void srcpos_free(struct srcpos *pos); 91 92 extern char *srcpos_string(struct srcpos *pos); 92 93 extern char *srcpos_string_first(struct srcpos *pos, int level); 93 94 extern char *srcpos_string_last(struct srcpos *pos, int level);
+37 -15
scripts/dtc/treesource.c
··· 139 139 [TYPE_STRING] = "", 140 140 }; 141 141 142 + /* 143 + * The invariants in the marker list are: 144 + * - offsets are non-strictly monotonically increasing 145 + * - for a single offset there is at most one type marker 146 + * - for a single offset that has both a type marker and non-type markers, the 147 + * type marker appears before the others. 148 + */ 149 + static struct marker **add_marker(struct marker **mi, 150 + enum markertype type, unsigned int offset, char *ref) 151 + { 152 + struct marker *nm; 153 + 154 + while (*mi && (*mi)->offset < offset) 155 + mi = &(*mi)->next; 156 + 157 + if (*mi && (*mi)->offset == offset && is_type_marker((*mi)->type)) { 158 + if (is_type_marker(type)) 159 + return mi; 160 + mi = &(*mi)->next; 161 + } 162 + 163 + if (*mi && (*mi)->offset == offset && type == (*mi)->type) 164 + return mi; 165 + 166 + nm = xmalloc(sizeof(*nm)); 167 + nm->type = type; 168 + nm->offset = offset; 169 + nm->ref = ref; 170 + nm->next = *mi; 171 + *mi = nm; 172 + 173 + return &nm->next; 174 + } 175 + 142 176 static void add_string_markers(struct property *prop) 143 177 { 144 178 int l, len = prop->val.len; 145 179 const char *p = prop->val.val; 180 + struct marker **mi = &prop->val.markers; 146 181 147 - for (l = strlen(p) + 1; l < len; l += strlen(p + l) + 1) { 148 - struct marker *m, **nextp; 149 - 150 - m = xmalloc(sizeof(*m)); 151 - m->offset = l; 152 - m->type = TYPE_STRING; 153 - m->ref = NULL; 154 - m->next = NULL; 155 - 156 - /* Find the end of the markerlist */ 157 - nextp = &prop->val.markers; 158 - while (*nextp) 159 - nextp = &((*nextp)->next); 160 - *nextp = m; 161 - } 182 + for (l = strlen(p) + 1; l < len; l += strlen(p + l) + 1) 183 + mi = add_marker(mi, TYPE_STRING, l, NULL); 162 184 } 163 185 164 186 static enum markertype guess_value_type(struct property *prop)
+16
scripts/dtc/util.c
··· 23 23 #include "util.h" 24 24 #include "version_gen.h" 25 25 26 + void fprint_path_escaped(FILE *fp, const char *path) 27 + { 28 + const char *p = path; 29 + 30 + while (*p) { 31 + if (*p == ' ') { 32 + fputc('\\', fp); 33 + fputc(' ', fp); 34 + } else { 35 + fputc(*p, fp); 36 + } 37 + 38 + p++; 39 + } 40 + } 41 + 26 42 char *xstrdup(const char *s) 27 43 { 28 44 int len = strlen(s) + 1;
+5
scripts/dtc/util.h
··· 42 42 exit(1); 43 43 } 44 44 45 + /** 46 + * Writes path to fp, escaping spaces with a backslash. 47 + */ 48 + void fprint_path_escaped(FILE *fp, const char *path); 49 + 45 50 static inline void *xmalloc(size_t len) 46 51 { 47 52 void *new = malloc(len);
+1 -1
scripts/dtc/version_gen.h
··· 1 - #define DTC_VERSION "DTC 1.7.0-gbcd02b52" 1 + #define DTC_VERSION "DTC 1.7.2-g52f07dcc"