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

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

Pull devicetree updates from Rob Herring:

- Convert various DT (non-binding) doc files to ReST

- Various improvements to device link code

- Fix __of_attach_node_sysfs refcounting bug

- Add support for 'memory-region-names' with reserved-memory binding

- Vendor prefixes for Protonic Holland, BeagleBoard.org, Alps, Check
Point, Würth Elektronik, U-Boot, Vaisala, Baikal Electronics,
Shanghai Awinic Technology Co., MikroTik, Silex Insight

- A bunch more binding conversions to DT schema. Only 3K to go.

- Add a minimum version check for schema tools

- Treewide dropping of 'allOf' usage with schema references. Not needed
in new json-schema spec.

- Some formatting clean-ups of schemas

* tag 'devicetree-for-5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (194 commits)
dt-bindings: clock: Add documentation for X1830 bindings.
dt-bindings: mailbox: Convert imx mu to json-schema
dt-bindings: power: Convert imx gpcv2 to json-schema
dt-bindings: power: Convert imx gpc to json-schema
dt-bindings: Merge gpio-usb-b-connector with usb-connector
dt-bindings: timer: renesas: cmt: Convert to json-schema
dt-bindings: clock: Convert i.MX8QXP LPCG to json-schema
dt-bindings: timer: Convert i.MX GPT to json-schema
dt-bindings: thermal: rcar-thermal: Add device tree support for r8a7742
dt-bindings: serial: Add binding for UART pin swap
dt-bindings: geni-se: Add interconnect binding for GENI QUP
dt-bindings: geni-se: Convert QUP geni-se bindings to YAML
dt-bindings: vendor-prefixes: Add Silex Insight vendor prefix
dt-bindings: input: touchscreen: edt-ft5x06: change reg property
dt-bindings: usb: qcom,dwc3: Introduce interconnect properties for Qualcomm DWC3 driver
dt-bindings: timer: renesas: mtu2: Convert to json-schema
of/fdt: Remove redundant kbasename function call
dt-bindings: clock: Convert i.MX1 clock to json-schema
dt-bindings: clock: Convert i.MX21 clock to json-schema
dt-bindings: clock: Convert i.MX25 clock to json-schema
...

+12529 -8225
+1 -1
Documentation/arm/microchip.rst
··· 192 192 considered as "Unstable". To be completely clear, any at91 binding can change at 193 193 any time. So, be sure to use a Device Tree Binary and a Kernel Image generated from 194 194 the same source tree. 195 - Please refer to the Documentation/devicetree/bindings/ABI.txt file for a 195 + Please refer to the Documentation/devicetree/bindings/ABI.rst file for a 196 196 definition of a "Stable" binding/ABI. 197 197 This statement will be removed by AT91 MAINTAINERS when appropriate. 198 198
+42
Documentation/devicetree/bindings/ABI.rst
··· 1 + .. SPDX-License-Identifier: GPL-2.0 2 + 3 + =================== 4 + Devicetree (DT) ABI 5 + =================== 6 + 7 + I. Regarding stable bindings/ABI, we quote from the 2013 ARM mini-summit 8 + summary document: 9 + 10 + "That still leaves the question of, what does a stable binding look 11 + like? Certainly a stable binding means that a newer kernel will not 12 + break on an older device tree, but that doesn't mean the binding is 13 + frozen for all time. Grant said there are ways to change bindings that 14 + don't result in breakage. For instance, if a new property is added, 15 + then default to the previous behaviour if it is missing. If a binding 16 + truly needs an incompatible change, then change the compatible string 17 + at the same time. The driver can bind against both the old and the 18 + new. These guidelines aren't new, but they desperately need to be 19 + documented." 20 + 21 + II. General binding rules 22 + 23 + 1) Maintainers, don't let perfect be the enemy of good. Don't hold up a 24 + binding because it isn't perfect. 25 + 26 + 2) Use specific compatible strings so that if we need to add a feature (DMA) 27 + in the future, we can create a new compatible string. See I. 28 + 29 + 3) Bindings can be augmented, but the driver shouldn't break when given 30 + the old binding. ie. add additional properties, but don't change the 31 + meaning of an existing property. For drivers, default to the original 32 + behaviour when a newly added property is missing. 33 + 34 + 4) Don't submit bindings for staging or unstable. That will be decided by 35 + the devicetree maintainers *after* discussion on the mailinglist. 36 + 37 + III. Notes 38 + 39 + 1) This document is intended as a general familiarization with the process as 40 + decided at the 2013 Kernel Summit. When in doubt, the current word of the 41 + devicetree maintainers overrules this document. In that situation, a patch 42 + updating this document would be appreciated.
-39
Documentation/devicetree/bindings/ABI.txt
··· 1 - 2 - Devicetree (DT) ABI 3 - 4 - I. Regarding stable bindings/ABI, we quote from the 2013 ARM mini-summit 5 - summary document: 6 - 7 - "That still leaves the question of, what does a stable binding look 8 - like? Certainly a stable binding means that a newer kernel will not 9 - break on an older device tree, but that doesn't mean the binding is 10 - frozen for all time. Grant said there are ways to change bindings that 11 - don't result in breakage. For instance, if a new property is added, 12 - then default to the previous behaviour if it is missing. If a binding 13 - truly needs an incompatible change, then change the compatible string 14 - at the same time. The driver can bind against both the old and the 15 - new. These guidelines aren't new, but they desperately need to be 16 - documented." 17 - 18 - II. General binding rules 19 - 20 - 1) Maintainers, don't let perfect be the enemy of good. Don't hold up a 21 - binding because it isn't perfect. 22 - 23 - 2) Use specific compatible strings so that if we need to add a feature (DMA) 24 - in the future, we can create a new compatible string. See I. 25 - 26 - 3) Bindings can be augmented, but the driver shouldn't break when given 27 - the old binding. ie. add additional properties, but don't change the 28 - meaning of an existing property. For drivers, default to the original 29 - behaviour when a newly added property is missing. 30 - 31 - 4) Don't submit bindings for staging or unstable. That will be decided by 32 - the devicetree maintainers *after* discussion on the mailinglist. 33 - 34 - III. Notes 35 - 36 - 1) This document is intended as a general familiarization with the process as 37 - decided at the 2013 Kernel Summit. When in doubt, the current word of the 38 - devicetree maintainers overrules this document. In that situation, a patch 39 - updating this document would be appreciated.
+11 -3
Documentation/devicetree/bindings/Makefile
··· 4 4 DT_MK_SCHEMA ?= dt-mk-schema 5 5 DT_MK_SCHEMA_USERONLY_FLAG := $(if $(DT_SCHEMA_FILES), -u) 6 6 7 + DT_SCHEMA_MIN_VERSION = 2020.5 8 + 9 + PHONY += check_dtschema_version 10 + check_dtschema_version: 11 + @{ echo $(DT_SCHEMA_MIN_VERSION); \ 12 + $(DT_DOC_CHECKER) --version 2>/dev/null || echo 0; } | sort -VC || \ 13 + { echo "ERROR: dtschema minimum version is v$(DT_SCHEMA_MIN_VERSION)" >&2; false; } 14 + 7 15 quiet_cmd_chk_binding = CHKDT $(patsubst $(srctree)/%,%,$<) 8 16 cmd_chk_binding = $(DT_DOC_CHECKER) -u $(srctree)/$(src) $< ; \ 9 17 $(DT_EXTRACT_EX) $< > $@ 10 18 11 - $(obj)/%.example.dts: $(src)/%.yaml FORCE 19 + $(obj)/%.example.dts: $(src)/%.yaml check_dtschema_version FORCE 12 20 $(call if_changed,chk_binding) 13 21 14 22 # Use full schemas when checking %.example.dts ··· 45 37 -Wno-avoid_unnecessary_addr_size \ 46 38 -Wno-graph_child_address 47 39 48 - $(obj)/processed-schema-examples.yaml: $(DT_DOCS) FORCE 40 + $(obj)/processed-schema-examples.yaml: $(DT_DOCS) check_dtschema_version FORCE 49 41 $(call if_changed,mk_schema) 50 42 51 43 $(obj)/processed-schema.yaml: DT_MK_SCHEMA_FLAGS := $(DT_MK_SCHEMA_USERONLY_FLAG) 52 - $(obj)/processed-schema.yaml: $(DT_SCHEMA_FILES) FORCE 44 + $(obj)/processed-schema.yaml: $(DT_SCHEMA_FILES) check_dtschema_version FORCE 53 45 $(call if_changed,mk_schema) 54 46 55 47 extra-y += processed-schema.yaml
+3 -3
Documentation/devicetree/bindings/arm/altera.yaml
··· 13 13 compatible: 14 14 items: 15 15 - enum: 16 - - altr,socfpga-cyclone5 17 - - altr,socfpga-arria5 18 - - altr,socfpga-arria10 16 + - altr,socfpga-cyclone5 17 + - altr,socfpga-arria5 18 + - altr,socfpga-arria10 19 19 - const: altr,socfpga 20 20 ...
+1 -1
Documentation/devicetree/bindings/arm/amlogic.yaml
··· 17 17 any time. Be sure to use a device tree binary and a kernel image 18 18 generated from the same source tree. 19 19 20 - Please refer to Documentation/devicetree/bindings/ABI.txt for a definition of a 20 + Please refer to Documentation/devicetree/bindings/ABI.rst for a definition of a 21 21 stable binding/ABI. 22 22 23 23 properties:
+1 -1
Documentation/devicetree/bindings/arm/amlogic/amlogic,meson-gx-ao-secure.yaml
··· 25 25 26 26 properties: 27 27 compatible: 28 - items: 28 + items: 29 29 - const: amlogic,meson-gx-ao-secure 30 30 - const: syscon 31 31
+15 -19
Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml
··· 131 131 property, describing the physical location of the children nodes. 132 132 0 means motherboard site, while 1 and 2 are daughterboard sites, and 133 133 0xf means "sisterboard" which is the site containing the main CPU tile. 134 - allOf: 135 - - $ref: '/schemas/types.yaml#/definitions/uint32' 136 - - minimum: 0 137 - maximum: 15 134 + $ref: '/schemas/types.yaml#/definitions/uint32' 135 + minimum: 0 136 + maximum: 15 138 137 139 138 arm,vexpress,position: 140 139 description: When daughterboards are stacked on one site, their position 141 140 in the stack be be described this attribute. 142 - allOf: 143 - - $ref: '/schemas/types.yaml#/definitions/uint32' 144 - - minimum: 0 145 - maximum: 3 141 + $ref: '/schemas/types.yaml#/definitions/uint32' 142 + minimum: 0 143 + maximum: 3 146 144 147 145 arm,vexpress,dcc: 148 146 description: When describing tiles consisting of more than one DCC, its 149 147 number can be specified with this attribute. 150 - allOf: 151 - - $ref: '/schemas/types.yaml#/definitions/uint32' 152 - - minimum: 0 153 - maximum: 3 148 + $ref: '/schemas/types.yaml#/definitions/uint32' 149 + minimum: 0 150 + maximum: 3 154 151 155 152 patternProperties: 156 153 "^bus@[0-9a-f]+$": ··· 159 162 "simple-bus". If the compatible is placed in the "motherboard" node, 160 163 it is stricter and always has two compatibles. 161 164 type: object 162 - allOf: 163 - - $ref: '/schemas/simple-bus.yaml' 165 + $ref: '/schemas/simple-bus.yaml' 164 166 165 167 properties: 166 168 compatible: ··· 191 195 - const: simple-bus 192 196 arm,v2m-memory-map: 193 197 description: This describes the memory map type. 194 - allOf: 195 - - $ref: '/schemas/types.yaml#/definitions/string' 196 - - enum: 197 - - rs1 198 - - rs2 198 + $ref: '/schemas/types.yaml#/definitions/string' 199 + enum: 200 + - rs1 201 + - rs2 202 + 199 203 required: 200 204 - compatible 201 205 required:
+1 -1
Documentation/devicetree/bindings/arm/bitmain.yaml
··· 13 13 compatible: 14 14 items: 15 15 - enum: 16 - - bitmain,sophon-edge 16 + - bitmain,sophon-edge 17 17 - const: bitmain,bm1880 18 18 ...
+49
Documentation/devicetree/bindings/arm/calxeda/hb-sregs.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/calxeda/hb-sregs.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Calxeda Highbank system registers 8 + 9 + description: | 10 + The Calxeda Highbank system has a block of MMIO registers controlling 11 + several generic system aspects. Those can be used to control some power 12 + management, they also contain some gate and PLL clocks. 13 + 14 + maintainers: 15 + - Andre Przywara <andre.przywara@arm.com> 16 + 17 + properties: 18 + compatible: 19 + const: calxeda,hb-sregs 20 + 21 + reg: 22 + maxItems: 1 23 + 24 + clocks: 25 + type: object 26 + 27 + required: 28 + - compatible 29 + - reg 30 + 31 + additionalProperties: false 32 + 33 + examples: 34 + - | 35 + sregs@fff3c000 { 36 + compatible = "calxeda,hb-sregs"; 37 + reg = <0xfff3c000 0x1000>; 38 + 39 + clocks { 40 + #address-cells = <1>; 41 + #size-cells = <0>; 42 + 43 + osc: oscillator { 44 + #clock-cells = <0>; 45 + compatible = "fixed-clock"; 46 + clock-frequency = <33333000>; 47 + }; 48 + }; 49 + };
-15
Documentation/devicetree/bindings/arm/calxeda/l2ecc.txt
··· 1 - Calxeda Highbank L2 cache ECC 2 - 3 - Properties: 4 - - compatible : Should be "calxeda,hb-sregs-l2-ecc" 5 - - reg : Address and size for ECC error interrupt clear registers. 6 - - interrupts : Should be single bit error interrupt, then double bit error 7 - interrupt. 8 - 9 - Example: 10 - 11 - sregs@fff3c200 { 12 - compatible = "calxeda,hb-sregs-l2-ecc"; 13 - reg = <0xfff3c200 0x100>; 14 - interrupts = <0 71 4 0 72 4>; 15 - };
+42
Documentation/devicetree/bindings/arm/calxeda/l2ecc.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/calxeda/l2ecc.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Calxeda Highbank L2 cache ECC 8 + 9 + description: | 10 + Binding for the Calxeda Highbank L2 cache controller ECC device. 11 + This does not cover the actual L2 cache controller control registers, 12 + but just the error reporting functionality. 13 + 14 + maintainers: 15 + - Andre Przywara <andre.przywara@arm.com> 16 + 17 + properties: 18 + compatible: 19 + const: "calxeda,hb-sregs-l2-ecc" 20 + 21 + reg: 22 + maxItems: 1 23 + 24 + interrupts: 25 + items: 26 + - description: single bit error interrupt 27 + - description: double bit error interrupt 28 + 29 + required: 30 + - compatible 31 + - reg 32 + - interrupts 33 + 34 + additionalProperties: false 35 + 36 + examples: 37 + - | 38 + sregs@fff3c200 { 39 + compatible = "calxeda,hb-sregs-l2-ecc"; 40 + reg = <0xfff3c200 0x100>; 41 + interrupts = <0 71 4>, <0 72 4>; 42 + };
+7 -13
Documentation/devicetree/bindings/arm/coresight-cti.yaml
··· 140 140 maxItems: 1 141 141 142 142 arm,trig-in-sigs: 143 - allOf: 144 - - $ref: /schemas/types.yaml#/definitions/uint32-array 143 + $ref: /schemas/types.yaml#/definitions/uint32-array 145 144 minItems: 1 146 145 maxItems: 32 147 146 description: 148 147 List of CTI trigger in signal numbers in use by a trig-conns node. 149 148 150 149 arm,trig-in-types: 151 - allOf: 152 - - $ref: /schemas/types.yaml#/definitions/uint32-array 150 + $ref: /schemas/types.yaml#/definitions/uint32-array 153 151 minItems: 1 154 152 maxItems: 32 155 153 description: ··· 157 159 completely, then the types will default to GEN_IO. 158 160 159 161 arm,trig-out-sigs: 160 - allOf: 161 - - $ref: /schemas/types.yaml#/definitions/uint32-array 162 + $ref: /schemas/types.yaml#/definitions/uint32-array 162 163 minItems: 1 163 164 maxItems: 32 164 165 description: 165 166 List of CTI trigger out signal numbers in use by a trig-conns node. 166 167 167 168 arm,trig-out-types: 168 - allOf: 169 - - $ref: /schemas/types.yaml#/definitions/uint32-array 169 + $ref: /schemas/types.yaml#/definitions/uint32-array 170 170 minItems: 1 171 171 maxItems: 32 172 172 description: ··· 174 178 or omitted completely, then the types will default to GEN_IO. 175 179 176 180 arm,trig-filters: 177 - allOf: 178 - - $ref: /schemas/types.yaml#/definitions/uint32-array 181 + $ref: /schemas/types.yaml#/definitions/uint32-array 179 182 minItems: 1 180 183 maxItems: 32 181 184 description: ··· 182 187 active, unless filtering is disabled on the driver. 183 188 184 189 arm,trig-conn-name: 185 - allOf: 186 - - $ref: /schemas/types.yaml#/definitions/string 190 + $ref: /schemas/types.yaml#/definitions/string 187 191 description: 188 192 Defines a connection name that will be displayed, if the cpu or 189 193 arm,cs-dev-assoc properties are not being used in this connection. ··· 295 301 - | 296 302 cti@20110000 { 297 303 compatible = "arm,coresight-cti", "arm,primecell"; 298 - reg = <0 0x20110000 0 0x1000>; 304 + reg = <0x20110000 0x1000>; 299 305 300 306 clocks = <&soc_smc50mhz>; 301 307 clock-names = "apb_pclk";
+42 -43
Documentation/devicetree/bindings/arm/cpus.yaml
··· 172 172 - qcom,scorpion 173 173 174 174 enable-method: 175 - allOf: 176 - - $ref: '/schemas/types.yaml#/definitions/string' 177 - - oneOf: 178 - # On ARM v8 64-bit this property is required 179 - - enum: 180 - - psci 181 - - spin-table 182 - # On ARM 32-bit systems this property is optional 183 - - enum: 184 - - actions,s500-smp 185 - - allwinner,sun6i-a31 186 - - allwinner,sun8i-a23 187 - - allwinner,sun9i-a80-smp 188 - - allwinner,sun8i-a83t-smp 189 - - amlogic,meson8-smp 190 - - amlogic,meson8b-smp 191 - - arm,realview-smp 192 - - aspeed,ast2600-smp 193 - - brcm,bcm11351-cpu-method 194 - - brcm,bcm23550 195 - - brcm,bcm2836-smp 196 - - brcm,bcm63138 197 - - brcm,bcm-nsp-smp 198 - - brcm,brahma-b15 199 - - marvell,armada-375-smp 200 - - marvell,armada-380-smp 201 - - marvell,armada-390-smp 202 - - marvell,armada-xp-smp 203 - - marvell,98dx3236-smp 204 - - marvell,mmp3-smp 205 - - mediatek,mt6589-smp 206 - - mediatek,mt81xx-tz-smp 207 - - qcom,gcc-msm8660 208 - - qcom,kpss-acc-v1 209 - - qcom,kpss-acc-v2 210 - - renesas,apmu 211 - - renesas,r9a06g032-smp 212 - - rockchip,rk3036-smp 213 - - rockchip,rk3066-smp 214 - - socionext,milbeaut-m10v-smp 215 - - ste,dbx500-smp 216 - - ti,am3352 217 - - ti,am4372 175 + $ref: '/schemas/types.yaml#/definitions/string' 176 + oneOf: 177 + # On ARM v8 64-bit this property is required 178 + - enum: 179 + - psci 180 + - spin-table 181 + # On ARM 32-bit systems this property is optional 182 + - enum: 183 + - actions,s500-smp 184 + - allwinner,sun6i-a31 185 + - allwinner,sun8i-a23 186 + - allwinner,sun9i-a80-smp 187 + - allwinner,sun8i-a83t-smp 188 + - amlogic,meson8-smp 189 + - amlogic,meson8b-smp 190 + - arm,realview-smp 191 + - aspeed,ast2600-smp 192 + - brcm,bcm11351-cpu-method 193 + - brcm,bcm23550 194 + - brcm,bcm2836-smp 195 + - brcm,bcm63138 196 + - brcm,bcm-nsp-smp 197 + - brcm,brahma-b15 198 + - marvell,armada-375-smp 199 + - marvell,armada-380-smp 200 + - marvell,armada-390-smp 201 + - marvell,armada-xp-smp 202 + - marvell,98dx3236-smp 203 + - marvell,mmp3-smp 204 + - mediatek,mt6589-smp 205 + - mediatek,mt81xx-tz-smp 206 + - qcom,gcc-msm8660 207 + - qcom,kpss-acc-v1 208 + - qcom,kpss-acc-v2 209 + - renesas,apmu 210 + - renesas,r9a06g032-smp 211 + - rockchip,rk3036-smp 212 + - rockchip,rk3066-smp 213 + - socionext,milbeaut-m10v-smp 214 + - ste,dbx500-smp 215 + - ti,am3352 216 + - ti,am4372 218 217 219 218 cpu-release-addr: 220 219 $ref: '/schemas/types.yaml#/definitions/uint64'
+37 -50
Documentation/devicetree/bindings/arm/l2c2x0.yaml
··· 70 70 description: Cycles of latency for Data RAM accesses. Specifies 3 cells of 71 71 read, write and setup latencies. Minimum valid values are 1. Controllers 72 72 without setup latency control should use a value of 0. 73 - allOf: 74 - - $ref: /schemas/types.yaml#/definitions/uint32-array 75 - - minItems: 2 76 - maxItems: 3 77 - items: 78 - minimum: 0 79 - maximum: 8 73 + $ref: /schemas/types.yaml#/definitions/uint32-array 74 + minItems: 2 75 + maxItems: 3 76 + items: 77 + minimum: 0 78 + maximum: 8 80 79 81 80 arm,tag-latency: 82 81 description: Cycles of latency for Tag RAM accesses. Specifies 3 cells of 83 82 read, write and setup latencies. Controllers without setup latency control 84 83 should use 0. Controllers without separate read and write Tag RAM latency 85 84 values should only use the first cell. 86 - allOf: 87 - - $ref: /schemas/types.yaml#/definitions/uint32-array 88 - - minItems: 1 89 - maxItems: 3 90 - items: 91 - minimum: 0 92 - maximum: 8 85 + $ref: /schemas/types.yaml#/definitions/uint32-array 86 + minItems: 1 87 + maxItems: 3 88 + items: 89 + minimum: 0 90 + maximum: 8 93 91 94 92 arm,dirty-latency: 95 93 description: Cycles of latency for Dirty RAMs. This is a single cell. 96 - allOf: 97 - - $ref: /schemas/types.yaml#/definitions/uint32 98 - - minimum: 1 99 - maximum: 8 94 + $ref: /schemas/types.yaml#/definitions/uint32 95 + minimum: 1 96 + maximum: 8 100 97 101 98 arm,filter-ranges: 102 99 description: <start length> Starting address and length of window to 103 100 filter. Addresses in the filter window are directed to the M1 port. Other 104 101 addresses will go to the M0 port. 105 - allOf: 106 - - $ref: /schemas/types.yaml#/definitions/uint32-array 107 - - items: 108 - minItems: 2 109 - maxItems: 2 102 + $ref: /schemas/types.yaml#/definitions/uint32-array 103 + items: 104 + minItems: 2 105 + maxItems: 2 110 106 111 107 arm,io-coherent: 112 108 description: indicates that the system is operating in an hardware ··· 127 131 arm,double-linefill: 128 132 description: Override double linefill enable setting. Enable if 129 133 non-zero, disable if zero. 130 - allOf: 131 - - $ref: /schemas/types.yaml#/definitions/uint32 132 - - enum: [ 0, 1 ] 134 + $ref: /schemas/types.yaml#/definitions/uint32 135 + enum: [0, 1] 133 136 134 137 arm,double-linefill-incr: 135 138 description: Override double linefill on INCR read. Enable 136 139 if non-zero, disable if zero. 137 - allOf: 138 - - $ref: /schemas/types.yaml#/definitions/uint32 139 - - enum: [ 0, 1 ] 140 + $ref: /schemas/types.yaml#/definitions/uint32 141 + enum: [0, 1] 140 142 141 143 arm,double-linefill-wrap: 142 144 description: Override double linefill on WRAP read. Enable 143 145 if non-zero, disable if zero. 144 - allOf: 145 - - $ref: /schemas/types.yaml#/definitions/uint32 146 - - enum: [ 0, 1 ] 146 + $ref: /schemas/types.yaml#/definitions/uint32 147 + enum: [0, 1] 147 148 148 149 arm,prefetch-drop: 149 150 description: Override prefetch drop enable setting. Enable if non-zero, 150 151 disable if zero. 151 - allOf: 152 - - $ref: /schemas/types.yaml#/definitions/uint32 153 - - enum: [ 0, 1 ] 152 + $ref: /schemas/types.yaml#/definitions/uint32 153 + enum: [0, 1] 154 154 155 155 arm,prefetch-offset: 156 156 description: Override prefetch offset value. 157 - allOf: 158 - - $ref: /schemas/types.yaml#/definitions/uint32 159 - - enum: [ 0, 1, 2, 3, 4, 5, 6, 7, 15, 23, 31 ] 157 + $ref: /schemas/types.yaml#/definitions/uint32 158 + enum: [0, 1, 2, 3, 4, 5, 6, 7, 15, 23, 31] 160 159 161 160 arm,shared-override: 162 161 description: The default behavior of the L220 or PL310 cache ··· 184 193 description: | 185 194 Data prefetch. Value: <0> (forcibly disable), <1> 186 195 (forcibly enable), property absent (retain settings set by firmware) 187 - allOf: 188 - - $ref: /schemas/types.yaml#/definitions/uint32 189 - - enum: [ 0, 1 ] 196 + $ref: /schemas/types.yaml#/definitions/uint32 197 + enum: [0, 1] 190 198 191 199 prefetch-instr: 192 200 description: | 193 201 Instruction prefetch. Value: <0> (forcibly disable), 194 202 <1> (forcibly enable), property absent (retain settings set by 195 203 firmware) 196 - allOf: 197 - - $ref: /schemas/types.yaml#/definitions/uint32 198 - - enum: [ 0, 1 ] 204 + $ref: /schemas/types.yaml#/definitions/uint32 205 + enum: [0, 1] 199 206 200 207 arm,dynamic-clock-gating: 201 208 description: | 202 209 L2 dynamic clock gating. Value: <0> (forcibly 203 210 disable), <1> (forcibly enable), property absent (OS specific behavior, 204 211 preferably retain firmware settings) 205 - allOf: 206 - - $ref: /schemas/types.yaml#/definitions/uint32 207 - - enum: [ 0, 1 ] 212 + $ref: /schemas/types.yaml#/definitions/uint32 213 + enum: [0, 1] 208 214 209 215 arm,standby-mode: 210 216 description: L2 standby mode enable. Value <0> (forcibly disable), 211 217 <1> (forcibly enable), property absent (OS specific behavior, 212 218 preferably retain firmware settings) 213 - allOf: 214 - - $ref: /schemas/types.yaml#/definitions/uint32 215 - - enum: [ 0, 1 ] 219 + $ref: /schemas/types.yaml#/definitions/uint32 220 + enum: [0, 1] 216 221 217 222 arm,early-bresp-disable: 218 223 description: Disable the CA9 optimization Early BRESP (PL310)
+4 -5
Documentation/devicetree/bindings/arm/nxp/lpc32xx.yaml
··· 17 17 - nxp,lpc3230 18 18 - nxp,lpc3240 19 19 - items: 20 - - enum: 21 - - ea,ea3250 22 - - phytec,phy3250 23 - - const: nxp,lpc3250 24 - 20 + - enum: 21 + - ea,ea3250 22 + - phytec,phy3250 23 + - const: nxp,lpc3250 25 24 ...
+7 -9
Documentation/devicetree/bindings/arm/psci.yaml
··· 69 69 70 70 method: 71 71 description: The method of calling the PSCI firmware. 72 - allOf: 73 - - $ref: /schemas/types.yaml#/definitions/string-array 74 - - enum: 75 - # SMC #0, with the register assignments specified in this binding. 76 - - smc 77 - # HVC #0, with the register assignments specified in this binding. 78 - - hvc 72 + $ref: /schemas/types.yaml#/definitions/string-array 73 + enum: 74 + - smc 75 + # HVC #0, with the register assignments specified in this binding. 76 + - hvc 79 77 80 78 cpu_suspend: 81 79 $ref: /schemas/types.yaml#/definitions/uint32 ··· 105 107 106 108 patternProperties: 107 109 "^power-domain-": 108 - allOf: 109 - - $ref: "../power/power-domain.yaml#" 110 + $ref: "../power/power-domain.yaml#" 111 + 110 112 type: object 111 113 description: | 112 114 ARM systems can have multiple cores, sometimes in an hierarchical
+1 -1
Documentation/devicetree/bindings/arm/renesas,prr.yaml
··· 33 33 - | 34 34 prr: chipid@ff000044 { 35 35 compatible = "renesas,prr"; 36 - reg = <0 0xff000044 0 4>; 36 + reg = <0xff000044 4>; 37 37 };
+2 -3
Documentation/devicetree/bindings/arm/samsung/exynos-chipid.yaml
··· 22 22 Adaptive Supply Voltage bin selection. This can be used 23 23 to determine the ASV bin of an SoC if respective information 24 24 is missing in the CHIPID registers or in the OTP memory. 25 - allOf: 26 - - $ref: /schemas/types.yaml#/definitions/uint32 27 - - enum: [ 0, 1, 2, 3 ] 25 + $ref: /schemas/types.yaml#/definitions/uint32 26 + enum: [0, 1, 2, 3] 28 27 29 28 required: 30 29 - compatible
+14 -14
Documentation/devicetree/bindings/arm/socionext/uniphier.yaml
··· 17 17 - description: LD4 SoC boards 18 18 items: 19 19 - enum: 20 - - socionext,uniphier-ld4-ref 20 + - socionext,uniphier-ld4-ref 21 21 - const: socionext,uniphier-ld4 22 22 - description: Pro4 SoC boards 23 23 items: 24 24 - enum: 25 - - socionext,uniphier-pro4-ace 26 - - socionext,uniphier-pro4-ref 27 - - socionext,uniphier-pro4-sanji 25 + - socionext,uniphier-pro4-ace 26 + - socionext,uniphier-pro4-ref 27 + - socionext,uniphier-pro4-sanji 28 28 - const: socionext,uniphier-pro4 29 29 - description: sLD8 SoC boards 30 30 items: 31 31 - enum: 32 - - socionext,uniphier-sld8-ref 32 + - socionext,uniphier-sld8-ref 33 33 - const: socionext,uniphier-sld8 34 34 - description: PXs2 SoC boards 35 35 items: 36 36 - enum: 37 - - socionext,uniphier-pxs2-gentil 38 - - socionext,uniphier-pxs2-vodka 37 + - socionext,uniphier-pxs2-gentil 38 + - socionext,uniphier-pxs2-vodka 39 39 - const: socionext,uniphier-pxs2 40 40 - description: LD6b SoC boards 41 41 items: 42 42 - enum: 43 - - socionext,uniphier-ld6b-ref 43 + - socionext,uniphier-ld6b-ref 44 44 - const: socionext,uniphier-ld6b 45 45 - description: LD11 SoC boards 46 46 items: 47 47 - enum: 48 - - socionext,uniphier-ld11-global 49 - - socionext,uniphier-ld11-ref 48 + - socionext,uniphier-ld11-global 49 + - socionext,uniphier-ld11-ref 50 50 - const: socionext,uniphier-ld11 51 51 - description: LD20 SoC boards 52 52 items: 53 53 - enum: 54 - - socionext,uniphier-ld20-akebi96 55 - - socionext,uniphier-ld20-global 56 - - socionext,uniphier-ld20-ref 54 + - socionext,uniphier-ld20-akebi96 55 + - socionext,uniphier-ld20-global 56 + - socionext,uniphier-ld20-ref 57 57 - const: socionext,uniphier-ld20 58 58 - description: PXs3 SoC boards 59 59 items: 60 60 - enum: 61 - - socionext,uniphier-pxs3-ref 61 + - socionext,uniphier-pxs3-ref 62 62 - const: socionext,uniphier-pxs3
+1 -1
Documentation/devicetree/bindings/arm/stm32/st,mlahb.yaml
··· 20 20 [2]: https://wiki.st.com/stm32mpu/wiki/STM32MP15_RAM_mapping 21 21 22 22 allOf: 23 - - $ref: /schemas/simple-bus.yaml# 23 + - $ref: /schemas/simple-bus.yaml# 24 24 25 25 properties: 26 26 compatible:
+3 -3
Documentation/devicetree/bindings/arm/stm32/st,stm32-syscon.yaml
··· 14 14 compatible: 15 15 oneOf: 16 16 - items: 17 - - enum: 18 - - st,stm32mp157-syscfg 19 - - const: syscon 17 + - enum: 18 + - st,stm32mp157-syscfg 19 + - const: syscon 20 20 21 21 reg: 22 22 maxItems: 1
+1 -1
Documentation/devicetree/bindings/arm/syna.txt
··· 13 13 time. Be sure to use a device tree binary and a kernel image generated from the 14 14 same source tree. 15 15 16 - Please refer to Documentation/devicetree/bindings/ABI.txt for a definition of a 16 + Please refer to Documentation/devicetree/bindings/ABI.rst for a definition of a 17 17 stable binding/ABI. 18 18 19 19 ---------------------------------------------------------------
+1 -1
Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml
··· 323 323 324 324 tegra_pmc: pmc@7000e400 { 325 325 compatible = "nvidia,tegra210-pmc"; 326 - reg = <0x0 0x7000e400 0x0 0x400>; 326 + reg = <0x7000e400 0x400>; 327 327 clocks = <&tegra_car TEGRA210_CLK_PCLK>, <&clk32k_in>; 328 328 clock-names = "pclk", "clk32k_in"; 329 329 #clock-cells = <1>;
+2 -2
Documentation/devicetree/bindings/ata/faraday,ftide010.yaml
··· 26 26 oneOf: 27 27 - const: faraday,ftide010 28 28 - items: 29 - - const: cortina,gemini-pata 30 - - const: faraday,ftide010 29 + - const: cortina,gemini-pata 30 + - const: faraday,ftide010 31 31 32 32 reg: 33 33 maxItems: 1
+1
Documentation/devicetree/bindings/ata/renesas,rcar-sata.yaml
··· 17 17 - renesas,sata-r8a7779 # R-Car H1 18 18 - items: 19 19 - enum: 20 + - renesas,sata-r8a7742 # RZ/G1H 20 21 - renesas,sata-r8a7790-es1 # R-Car H2 ES1 21 22 - renesas,sata-r8a7790 # R-Car H2 other than ES1 22 23 - renesas,sata-r8a7791 # R-Car M2-W
-44
Documentation/devicetree/bindings/ata/sata_highbank.txt
··· 1 - * Calxeda AHCI SATA Controller 2 - 3 - SATA nodes are defined to describe on-chip Serial ATA controllers. 4 - The Calxeda SATA controller mostly conforms to the AHCI interface 5 - with some special extensions to add functionality. 6 - Each SATA controller should have its own node. 7 - 8 - Required properties: 9 - - compatible : compatible list, contains "calxeda,hb-ahci" 10 - - interrupts : <interrupt mapping for SATA IRQ> 11 - - reg : <registers mapping> 12 - 13 - Optional properties: 14 - - dma-coherent : Present if dma operations are coherent 15 - - calxeda,port-phys : phandle-combophy and lane assignment, which maps each 16 - SATA port to a combophy and a lane within that 17 - combophy 18 - - calxeda,sgpio-gpio: phandle-gpio bank, bit offset, and default on or off, 19 - which indicates that the driver supports SGPIO 20 - indicator lights using the indicated GPIOs 21 - - calxeda,led-order : a u32 array that map port numbers to offsets within the 22 - SGPIO bitstream. 23 - - calxeda,tx-atten : a u32 array that contains TX attenuation override 24 - codes, one per port. The upper 3 bytes are always 25 - 0 and thus ignored. 26 - - calxeda,pre-clocks : a u32 that indicates the number of additional clock 27 - cycles to transmit before sending an SGPIO pattern 28 - - calxeda,post-clocks: a u32 that indicates the number of additional clock 29 - cycles to transmit after sending an SGPIO pattern 30 - 31 - Example: 32 - sata@ffe08000 { 33 - compatible = "calxeda,hb-ahci"; 34 - reg = <0xffe08000 0x1000>; 35 - interrupts = <115>; 36 - dma-coherent; 37 - calxeda,port-phys = <&combophy5 0 &combophy0 0 &combophy0 1 38 - &combophy0 2 &combophy0 3>; 39 - calxeda,sgpio-gpio =<&gpioh 5 1 &gpioh 6 1 &gpioh 7 1>; 40 - calxeda,led-order = <4 0 1 2 3>; 41 - calxeda,tx-atten = <0xff 22 0xff 0xff 23>; 42 - calxeda,pre-clocks = <10>; 43 - calxeda,post-clocks = <0>; 44 - };
+95
Documentation/devicetree/bindings/ata/sata_highbank.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/ata/sata_highbank.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Calxeda AHCI SATA Controller 8 + 9 + description: | 10 + The Calxeda SATA controller mostly conforms to the AHCI interface 11 + with some special extensions to add functionality, to map GPIOs for 12 + activity LEDs and for mapping the ComboPHYs. 13 + 14 + maintainers: 15 + - Andre Przywara <andre.przywara@arm.com> 16 + 17 + properties: 18 + compatible: 19 + const: calxeda,hb-ahci 20 + 21 + reg: 22 + maxItems: 1 23 + 24 + interrupts: 25 + maxItems: 1 26 + 27 + dma-coherent: true 28 + 29 + calxeda,pre-clocks: 30 + $ref: /schemas/types.yaml#/definitions/uint32 31 + description: | 32 + Indicates the number of additional clock cycles to transmit before 33 + sending an SGPIO pattern. 34 + 35 + calxeda,post-clocks: 36 + $ref: /schemas/types.yaml#/definitions/uint32 37 + description: | 38 + Indicates the number of additional clock cycles to transmit after 39 + sending an SGPIO pattern. 40 + 41 + calxeda,led-order: 42 + description: Maps port numbers to offsets within the SGPIO bitstream. 43 + allOf: 44 + - $ref: /schemas/types.yaml#/definitions/uint32-array 45 + - minItems: 1 46 + maxItems: 8 47 + 48 + calxeda,port-phys: 49 + description: | 50 + phandle-combophy and lane assignment, which maps each SATA port to a 51 + combophy and a lane within that combophy 52 + allOf: 53 + - $ref: /schemas/types.yaml#/definitions/phandle-array 54 + - minItems: 1 55 + maxItems: 8 56 + 57 + calxeda,tx-atten: 58 + description: | 59 + Contains TX attenuation override codes, one per port. 60 + The upper 24 bits of each entry are always 0 and thus ignored. 61 + allOf: 62 + - $ref: /schemas/types.yaml#/definitions/uint32-array 63 + - minItems: 1 64 + maxItems: 8 65 + 66 + calxeda,sgpio-gpio: 67 + description: | 68 + phandle-gpio bank, bit offset, and default on or off, which indicates 69 + that the driver supports SGPIO indicator lights using the indicated 70 + GPIOs. 71 + 72 + required: 73 + - compatible 74 + - reg 75 + - interrupts 76 + 77 + additionalProperties: false 78 + 79 + examples: 80 + - | 81 + sata@ffe08000 { 82 + compatible = "calxeda,hb-ahci"; 83 + reg = <0xffe08000 0x1000>; 84 + interrupts = <115>; 85 + dma-coherent; 86 + calxeda,port-phys = <&combophy5 0>, <&combophy0 0>, <&combophy0 1>, 87 + <&combophy0 2>, <&combophy0 3>; 88 + calxeda,sgpio-gpio =<&gpioh 5 1>, <&gpioh 6 1>, <&gpioh 7 1>; 89 + calxeda,led-order = <4 0 1 2 3>; 90 + calxeda,tx-atten = <0xff 22 0xff 0xff 23>; 91 + calxeda,pre-clocks = <10>; 92 + calxeda,post-clocks = <0>; 93 + }; 94 + 95 + ...
-45
Documentation/devicetree/bindings/auxdisplay/hit,hd44780.txt
··· 1 - DT bindings for the Hitachi HD44780 Character LCD Controller 2 - 3 - The Hitachi HD44780 Character LCD Controller is commonly used on character LCDs 4 - that can display one or more lines of text. It exposes an M6800 bus interface, 5 - which can be used in either 4-bit or 8-bit mode. 6 - 7 - Required properties: 8 - - compatible: Must contain "hit,hd44780", 9 - - data-gpios: Must contain an array of either 4 or 8 GPIO specifiers, 10 - referring to the GPIO pins connected to the data signal lines DB0-DB7 11 - (8-bit mode) or DB4-DB7 (4-bit mode) of the LCD Controller's bus interface, 12 - - enable-gpios: Must contain a GPIO specifier, referring to the GPIO pin 13 - connected to the "E" (Enable) signal line of the LCD Controller's bus 14 - interface, 15 - - rs-gpios: Must contain a GPIO specifier, referring to the GPIO pin 16 - connected to the "RS" (Register Select) signal line of the LCD Controller's 17 - bus interface, 18 - - display-height-chars: Height of the display, in character cells, 19 - - display-width-chars: Width of the display, in character cells. 20 - 21 - Optional properties: 22 - - rw-gpios: Must contain a GPIO specifier, referring to the GPIO pin 23 - connected to the "RW" (Read/Write) signal line of the LCD Controller's bus 24 - interface, 25 - - backlight-gpios: Must contain a GPIO specifier, referring to the GPIO pin 26 - used for enabling the LCD's backlight, 27 - - internal-buffer-width: Internal buffer width (default is 40 for displays 28 - with 1 or 2 lines, and display-width-chars for displays with more than 2 29 - lines). 30 - 31 - Example: 32 - 33 - auxdisplay { 34 - compatible = "hit,hd44780"; 35 - 36 - data-gpios = <&hc595 0 GPIO_ACTIVE_HIGH>, 37 - <&hc595 1 GPIO_ACTIVE_HIGH>, 38 - <&hc595 2 GPIO_ACTIVE_HIGH>, 39 - <&hc595 3 GPIO_ACTIVE_HIGH>; 40 - enable-gpios = <&hc595 4 GPIO_ACTIVE_HIGH>; 41 - rs-gpios = <&hc595 5 GPIO_ACTIVE_HIGH>; 42 - 43 - display-height-chars = <2>; 44 - display-width-chars = <16>; 45 - };
+96
Documentation/devicetree/bindings/auxdisplay/hit,hd44780.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/auxdisplay/hit,hd44780.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Hitachi HD44780 Character LCD Controller 8 + 9 + maintainers: 10 + - Geert Uytterhoeven <geert@linux-m68k.org> 11 + 12 + description: 13 + The Hitachi HD44780 Character LCD Controller is commonly used on character 14 + LCDs that can display one or more lines of text. It exposes an M6800 bus 15 + interface, which can be used in either 4-bit or 8-bit mode. 16 + 17 + properties: 18 + compatible: 19 + const: hit,hd44780 20 + 21 + data-gpios: 22 + description: 23 + GPIO pins connected to the data signal lines DB0-DB7 (8-bit mode) or 24 + DB4-DB7 (4-bit mode) of the LCD Controller's bus interface. 25 + oneOf: 26 + - maxItems: 4 27 + - maxItems: 8 28 + 29 + enable-gpios: 30 + description: 31 + GPIO pin connected to the "E" (Enable) signal line of the LCD 32 + Controller's bus interface. 33 + maxItems: 1 34 + 35 + rs-gpios: 36 + description: 37 + GPIO pin connected to the "RS" (Register Select) signal line of the LCD 38 + Controller's bus interface. 39 + maxItems: 1 40 + 41 + rw-gpios: 42 + description: 43 + GPIO pin connected to the "RW" (Read/Write) signal line of the LCD 44 + Controller's bus interface. 45 + maxItems: 1 46 + 47 + backlight-gpios: 48 + description: GPIO pin used for enabling the LCD's backlight. 49 + maxItems: 1 50 + 51 + display-height-chars: 52 + description: Height of the display, in character cells, 53 + $ref: /schemas/types.yaml#/definitions/uint32 54 + minimum: 1 55 + maximum: 4 56 + 57 + display-width-chars: 58 + description: Width of the display, in character cells. 59 + $ref: /schemas/types.yaml#/definitions/uint32 60 + minimum: 1 61 + maximum: 64 62 + 63 + internal-buffer-width: 64 + description: 65 + Internal buffer width (default is 40 for displays with 1 or 2 lines, and 66 + display-width-chars for displays with more than 2 lines). 67 + $ref: /schemas/types.yaml#/definitions/uint32 68 + minimum: 1 69 + maximum: 64 70 + 71 + required: 72 + - compatible 73 + - data-gpios 74 + - enable-gpios 75 + - rs-gpios 76 + - display-height-chars 77 + - display-width-chars 78 + 79 + additionalProperties: false 80 + 81 + examples: 82 + - | 83 + #include <dt-bindings/gpio/gpio.h> 84 + auxdisplay { 85 + compatible = "hit,hd44780"; 86 + 87 + data-gpios = <&hc595 0 GPIO_ACTIVE_HIGH>, 88 + <&hc595 1 GPIO_ACTIVE_HIGH>, 89 + <&hc595 2 GPIO_ACTIVE_HIGH>, 90 + <&hc595 3 GPIO_ACTIVE_HIGH>; 91 + enable-gpios = <&hc595 4 GPIO_ACTIVE_HIGH>; 92 + rs-gpios = <&hc595 5 GPIO_ACTIVE_HIGH>; 93 + 94 + display-height-chars = <2>; 95 + display-width-chars = <16>; 96 + };
+2 -3
Documentation/devicetree/bindings/bus/allwinner,sun50i-a64-de2.yaml
··· 31 31 maxItems: 1 32 32 33 33 allwinner,sram: 34 - allOf: 35 - - $ref: /schemas/types.yaml#definitions/phandle-array 36 - - maxItems: 1 37 34 description: 38 35 The SRAM that needs to be claimed to access the display engine 39 36 bus. 37 + $ref: /schemas/types.yaml#definitions/phandle-array 38 + maxItems: 1 40 39 41 40 ranges: true 42 41
+2 -2
Documentation/devicetree/bindings/bus/allwinner,sun8i-a23-rsb.yaml
··· 21 21 oneOf: 22 22 - const: allwinner,sun8i-a23-rsb 23 23 - items: 24 - - const: allwinner,sun8i-a83t-rsb 25 - - const: allwinner,sun8i-a23-rsb 24 + - const: allwinner,sun8i-a83t-rsb 25 + - const: allwinner,sun8i-a23-rsb 26 26 27 27 reg: 28 28 maxItems: 1
+4 -4
Documentation/devicetree/bindings/clock/allwinner,sun4i-a10-gates-clk.yaml
··· 52 52 - const: allwinner,sun4i-a10-dram-gates-clk 53 53 54 54 - items: 55 - - const: allwinner,sun5i-a13-dram-gates-clk 56 - - const: allwinner,sun4i-a10-gates-clk 55 + - const: allwinner,sun5i-a13-dram-gates-clk 56 + - const: allwinner,sun4i-a10-gates-clk 57 57 58 58 - items: 59 - - const: allwinner,sun8i-h3-apb0-gates-clk 60 - - const: allwinner,sun4i-a10-gates-clk 59 + - const: allwinner,sun8i-h3-apb0-gates-clk 60 + - const: allwinner,sun4i-a10-gates-clk 61 61 62 62 reg: 63 63 maxItems: 1
+1 -1
Documentation/devicetree/bindings/clock/bitmain,bm1880-clk.yaml
··· 65 65 - | 66 66 uart0: serial@58018000 { 67 67 compatible = "snps,dw-apb-uart"; 68 - reg = <0x0 0x58018000 0x0 0x2000>; 68 + reg = <0x58018000 0x2000>; 69 69 clocks = <&clk 45>, <&clk 46>; 70 70 clock-names = "baudclk", "apb_pclk"; 71 71 interrupts = <0 9 4>;
-17
Documentation/devicetree/bindings/clock/calxeda.txt
··· 1 - Device Tree Clock bindings for Calxeda highbank platform 2 - 3 - This binding uses the common clock binding[1]. 4 - 5 - [1] Documentation/devicetree/bindings/clock/clock-bindings.txt 6 - 7 - Required properties: 8 - - compatible : shall be one of the following: 9 - "calxeda,hb-pll-clock" - for a PLL clock 10 - "calxeda,hb-a9periph-clock" - The A9 peripheral clock divided from the 11 - A9 clock. 12 - "calxeda,hb-a9bus-clock" - The A9 bus clock divided from the A9 clock. 13 - "calxeda,hb-emmc-clock" - Divided clock for MMC/SD controller. 14 - - reg : shall be the control register offset from SYSREGs base for the clock. 15 - - clocks : shall be the input parent clock phandle for the clock. This is 16 - either an oscillator or a pll output. 17 - - #clock-cells : from common clock binding; shall be set to 0.
+82
Documentation/devicetree/bindings/clock/calxeda.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/clock/calxeda.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Device Tree Clock bindings for Calxeda highbank platform 8 + 9 + description: | 10 + This binding covers the Calxeda SoC internal peripheral and bus clocks 11 + as used by peripherals. The clocks live inside the "system register" 12 + region of the SoC, so are typically presented as children of an 13 + "hb-sregs" node. 14 + 15 + maintainers: 16 + - Andre Przywara <andre.przywara@arm.com> 17 + 18 + properties: 19 + "#clock-cells": 20 + const: 0 21 + 22 + compatible: 23 + enum: 24 + - calxeda,hb-pll-clock 25 + - calxeda,hb-a9periph-clock 26 + - calxeda,hb-a9bus-clock 27 + - calxeda,hb-emmc-clock 28 + 29 + reg: 30 + maxItems: 1 31 + 32 + clocks: 33 + maxItems: 1 34 + 35 + required: 36 + - "#clock-cells" 37 + - compatible 38 + - clocks 39 + - reg 40 + 41 + additionalProperties: false 42 + 43 + examples: 44 + - | 45 + sregs@3fffc000 { 46 + compatible = "calxeda,hb-sregs"; 47 + reg = <0x3fffc000 0x1000>; 48 + 49 + clocks { 50 + #address-cells = <1>; 51 + #size-cells = <0>; 52 + 53 + osc: oscillator { 54 + #clock-cells = <0>; 55 + compatible = "fixed-clock"; 56 + clock-frequency = <33333000>; 57 + }; 58 + 59 + ddrpll: ddrpll@108 { 60 + #clock-cells = <0>; 61 + compatible = "calxeda,hb-pll-clock"; 62 + clocks = <&osc>; 63 + reg = <0x108>; 64 + }; 65 + 66 + a9pll: a9pll@100 { 67 + #clock-cells = <0>; 68 + compatible = "calxeda,hb-pll-clock"; 69 + clocks = <&osc>; 70 + reg = <0x100>; 71 + }; 72 + 73 + a9periphclk: a9periphclk@104 { 74 + #clock-cells = <0>; 75 + compatible = "calxeda,hb-a9periph-clock"; 76 + clocks = <&a9pll>; 77 + reg = <0x104>; 78 + }; 79 + }; 80 + }; 81 + 82 + ...
-94
Documentation/devicetree/bindings/clock/cirrus,lochnagar.txt
··· 1 - Cirrus Logic Lochnagar Audio Development Board 2 - 3 - Lochnagar is an evaluation and development board for Cirrus Logic 4 - Smart CODEC and Amp devices. It allows the connection of most Cirrus 5 - Logic devices on mini-cards, as well as allowing connection of 6 - various application processor systems to provide a full evaluation 7 - platform. Audio system topology, clocking and power can all be 8 - controlled through the Lochnagar, allowing the device under test 9 - to be used in a variety of possible use cases. 10 - 11 - This binding document describes the binding for the clock portion of 12 - the driver. 13 - 14 - Also see these documents for generic binding information: 15 - [1] Clock : ../clock/clock-bindings.txt 16 - 17 - And these for relevant defines: 18 - [2] include/dt-bindings/clock/lochnagar.h 19 - 20 - This binding must be part of the Lochnagar MFD binding: 21 - [3] ../mfd/cirrus,lochnagar.txt 22 - 23 - Required properties: 24 - 25 - - compatible : One of the following strings: 26 - "cirrus,lochnagar1-clk" 27 - "cirrus,lochnagar2-clk" 28 - 29 - - #clock-cells : Must be 1. The first cell indicates the clock 30 - number, see [2] for available clocks and [1]. 31 - 32 - Optional properties: 33 - 34 - - clocks : Must contain an entry for each clock in clock-names. 35 - - clock-names : May contain entries for each of the following 36 - clocks: 37 - - ln-cdc-clkout : Output clock from CODEC card. 38 - - ln-dsp-clkout : Output clock from DSP card. 39 - - ln-gf-mclk1,ln-gf-mclk2,ln-gf-mclk3,ln-gf-mclk4 : Optional 40 - input audio clocks from host system. 41 - - ln-psia1-mclk, ln-psia2-mclk : Optional input audio clocks from 42 - external connector. 43 - - ln-spdif-mclk : Optional input audio clock from SPDIF. 44 - - ln-spdif-clkout : Optional input audio clock from SPDIF. 45 - - ln-adat-mclk : Optional input audio clock from ADAT. 46 - - ln-pmic-32k : On board fixed clock. 47 - - ln-clk-12m : On board fixed clock. 48 - - ln-clk-11m : On board fixed clock. 49 - - ln-clk-24m : On board fixed clock. 50 - - ln-clk-22m : On board fixed clock. 51 - - ln-clk-8m : On board fixed clock. 52 - - ln-usb-clk-24m : On board fixed clock. 53 - - ln-usb-clk-12m : On board fixed clock. 54 - 55 - - assigned-clocks : A list of Lochnagar clocks to be reparented, see 56 - [2] for available clocks. 57 - - assigned-clock-parents : Parents to be assigned to the clocks 58 - listed in "assigned-clocks". 59 - 60 - Optional nodes: 61 - 62 - - fixed-clock nodes may be registered for the following on board clocks: 63 - - ln-pmic-32k : 32768 Hz 64 - - ln-clk-12m : 12288000 Hz 65 - - ln-clk-11m : 11298600 Hz 66 - - ln-clk-24m : 24576000 Hz 67 - - ln-clk-22m : 22579200 Hz 68 - - ln-clk-8m : 8192000 Hz 69 - - ln-usb-clk-24m : 24576000 Hz 70 - - ln-usb-clk-12m : 12288000 Hz 71 - 72 - Example: 73 - 74 - lochnagar { 75 - lochnagar-clk { 76 - compatible = "cirrus,lochnagar2-clk"; 77 - 78 - #clock-cells = <1>; 79 - 80 - clocks = <&clk-audio>, <&clk_pmic>; 81 - clock-names = "ln-gf-mclk2", "ln-pmic-32k"; 82 - 83 - assigned-clocks = <&lochnagar-clk LOCHNAGAR_CDC_MCLK1>, 84 - <&lochnagar-clk LOCHNAGAR_CDC_MCLK2>; 85 - assigned-clock-parents = <&clk-audio>, 86 - <&clk-pmic>; 87 - }; 88 - 89 - clk-pmic: clk-pmic { 90 - compatible = "fixed-clock"; 91 - clock-cells = <0>; 92 - clock-frequency = <32768>; 93 - }; 94 - };
+78
Documentation/devicetree/bindings/clock/cirrus,lochnagar.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/clock/cirrus,lochnagar.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Cirrus Logic Lochnagar Audio Development Board 8 + 9 + maintainers: 10 + - patches@opensource.cirrus.com 11 + 12 + description: | 13 + Lochnagar is an evaluation and development board for Cirrus Logic 14 + Smart CODEC and Amp devices. It allows the connection of most Cirrus 15 + Logic devices on mini-cards, as well as allowing connection of various 16 + application processor systems to provide a full evaluation platform. 17 + Audio system topology, clocking and power can all be controlled through 18 + the Lochnagar, allowing the device under test to be used in a variety of 19 + possible use cases. 20 + 21 + This binding document describes the binding for the clock portion of the 22 + driver. 23 + 24 + Also see these documents for generic binding information: 25 + [1] Clock : ../clock/clock-bindings.txt 26 + 27 + And these for relevant defines: 28 + [2] include/dt-bindings/clock/lochnagar.h 29 + 30 + This binding must be part of the Lochnagar MFD binding: 31 + [3] ../mfd/cirrus,lochnagar.yaml 32 + 33 + properties: 34 + compatible: 35 + enum: 36 + - cirrus,lochnagar1-clk 37 + - cirrus,lochnagar2-clk 38 + 39 + '#clock-cells': 40 + description: 41 + The first cell indicates the clock number, see [2] for available 42 + clocks and [1]. 43 + const: 1 44 + 45 + clock-names: 46 + items: 47 + enum: 48 + - ln-cdc-clkout # Output clock from CODEC card. 49 + - ln-dsp-clkout # Output clock from DSP card. 50 + - ln-gf-mclk1 # Optional input clock from host system. 51 + - ln-gf-mclk2 # Optional input clock from host system. 52 + - ln-gf-mclk3 # Optional input clock from host system. 53 + - ln-gf-mclk4 # Optional input clock from host system. 54 + - ln-psia1-mclk # Optional input clock from external connector. 55 + - ln-psia2-mclk # Optional input clock from external connector. 56 + - ln-spdif-mclk # Optional input clock from SPDIF. 57 + - ln-spdif-clkout # Optional input clock from SPDIF. 58 + - ln-adat-mclk # Optional input clock from ADAT. 59 + - ln-pmic-32k # On board fixed clock. 60 + - ln-clk-12m # On board fixed clock. 61 + - ln-clk-11m # On board fixed clock. 62 + - ln-clk-24m # On board fixed clock. 63 + - ln-clk-22m # On board fixed clock. 64 + - ln-clk-8m # On board fixed clock. 65 + - ln-usb-clk-24m # On board fixed clock. 66 + - ln-usb-clk-12m # On board fixed clock. 67 + minItems: 1 68 + maxItems: 19 69 + 70 + clocks: true 71 + assigned-clocks: true 72 + assigned-clock-parents: true 73 + 74 + additionalProperties: false 75 + 76 + required: 77 + - compatible 78 + - '#clock-cells'
+2 -3
Documentation/devicetree/bindings/clock/fixed-factor-clock.yaml
··· 24 24 25 25 clock-div: 26 26 description: Fixed divider 27 - allOf: 28 - - $ref: /schemas/types.yaml#/definitions/uint32 29 - - minimum: 1 27 + $ref: /schemas/types.yaml#/definitions/uint32 28 + minimum: 1 30 29 31 30 clock-mult: 32 31 description: Fixed multiplier
+9 -10
Documentation/devicetree/bindings/clock/fsl,plldig.yaml
··· 28 28 const: 0 29 29 30 30 fsl,vco-hz: 31 - description: Optional for VCO frequency of the PLL in Hertz. 32 - The VCO frequency of this PLL cannot be changed during runtime 33 - only at startup. Therefore, the output frequencies are very 34 - limited and might not even closely match the requested frequency. 35 - To work around this restriction the user may specify its own 36 - desired VCO frequency for the PLL. 37 - minimum: 650000000 38 - maximum: 1300000000 39 - default: 1188000000 31 + description: Optional for VCO frequency of the PLL in Hertz. The VCO frequency 32 + of this PLL cannot be changed during runtime only at startup. Therefore, 33 + the output frequencies are very limited and might not even closely match 34 + the requested frequency. To work around this restriction the user may specify 35 + its own desired VCO frequency for the PLL. 36 + minimum: 650000000 37 + maximum: 1300000000 38 + default: 1188000000 40 39 41 40 required: 42 41 - compatible ··· 50 51 - | 51 52 dpclk: clock-display@f1f0000 { 52 53 compatible = "fsl,ls1028a-plldig"; 53 - reg = <0x0 0xf1f0000 0x0 0xffff>; 54 + reg = <0xf1f0000 0xffff>; 54 55 #clock-cells = <0>; 55 56 clocks = <&osc_27m>; 56 57 };
-26
Documentation/devicetree/bindings/clock/imx1-clock.txt
··· 1 - * Clock bindings for Freescale i.MX1 CPUs 2 - 3 - Required properties: 4 - - compatible: Should be "fsl,imx1-ccm". 5 - - reg: Address and length of the register set. 6 - - #clock-cells: Should be <1>. 7 - 8 - The clock consumer should specify the desired clock by having the clock 9 - ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx1-clock.h 10 - for the full list of i.MX1 clock IDs. 11 - 12 - Examples: 13 - clks: ccm@21b000 { 14 - #clock-cells = <1>; 15 - compatible = "fsl,imx1-ccm"; 16 - reg = <0x0021b000 0x1000>; 17 - }; 18 - 19 - pwm: pwm@208000 { 20 - #pwm-cells = <2>; 21 - compatible = "fsl,imx1-pwm"; 22 - reg = <0x00208000 0x1000>; 23 - interrupts = <34>; 24 - clocks = <&clks IMX1_CLK_DUMMY>, <&clks IMX1_CLK_PER1>; 25 - clock-names = "ipg", "per"; 26 - };
+51
Documentation/devicetree/bindings/clock/imx1-clock.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/clock/imx1-clock.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Clock bindings for Freescale i.MX1 CPUs 8 + 9 + maintainers: 10 + - Alexander Shiyan <shc_work@mail.ru> 11 + 12 + description: | 13 + The clock consumer should specify the desired clock by having the clock 14 + ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx1-clock.h 15 + for the full list of i.MX1 clock IDs. 16 + 17 + properties: 18 + compatible: 19 + const: fsl,imx1-ccm 20 + 21 + reg: 22 + maxItems: 1 23 + 24 + '#clock-cells': 25 + const: 1 26 + 27 + required: 28 + - compatible 29 + - reg 30 + - '#clock-cells' 31 + 32 + additionalProperties: false 33 + 34 + examples: 35 + - | 36 + #include <dt-bindings/clock/imx1-clock.h> 37 + 38 + clock-controller@21b000 { 39 + #clock-cells = <1>; 40 + compatible = "fsl,imx1-ccm"; 41 + reg = <0x0021b000 0x1000>; 42 + }; 43 + 44 + pwm@208000 { 45 + #pwm-cells = <2>; 46 + compatible = "fsl,imx1-pwm"; 47 + reg = <0x00208000 0x1000>; 48 + interrupts = <34>; 49 + clocks = <&clks IMX1_CLK_DUMMY>, <&clks IMX1_CLK_PER1>; 50 + clock-names = "ipg", "per"; 51 + };
-27
Documentation/devicetree/bindings/clock/imx21-clock.txt
··· 1 - * Clock bindings for Freescale i.MX21 2 - 3 - Required properties: 4 - - compatible : Should be "fsl,imx21-ccm". 5 - - reg : Address and length of the register set. 6 - - interrupts : Should contain CCM interrupt. 7 - - #clock-cells: Should be <1>. 8 - 9 - The clock consumer should specify the desired clock by having the clock 10 - ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx21-clock.h 11 - for the full list of i.MX21 clock IDs. 12 - 13 - Examples: 14 - clks: ccm@10027000{ 15 - compatible = "fsl,imx21-ccm"; 16 - reg = <0x10027000 0x800>; 17 - #clock-cells = <1>; 18 - }; 19 - 20 - uart1: serial@1000a000 { 21 - compatible = "fsl,imx21-uart"; 22 - reg = <0x1000a000 0x1000>; 23 - interrupts = <20>; 24 - clocks = <&clks IMX21_CLK_UART1_IPG_GATE>, 25 - <&clks IMX21_CLK_PER1>; 26 - clock-names = "ipg", "per"; 27 - };
+51
Documentation/devicetree/bindings/clock/imx21-clock.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/clock/imx21-clock.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Clock bindings for Freescale i.MX21 8 + 9 + maintainers: 10 + - Alexander Shiyan <shc_work@mail.ru> 11 + 12 + description: | 13 + The clock consumer should specify the desired clock by having the clock 14 + ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx21-clock.h 15 + for the full list of i.MX21 clock IDs. 16 + 17 + properties: 18 + compatible: 19 + const: fsl,imx21-ccm 20 + 21 + reg: 22 + maxItems: 1 23 + 24 + '#clock-cells': 25 + const: 1 26 + 27 + required: 28 + - compatible 29 + - reg 30 + - '#clock-cells' 31 + 32 + additionalProperties: false 33 + 34 + examples: 35 + - | 36 + #include <dt-bindings/clock/imx21-clock.h> 37 + 38 + clock-controller@10027000 { 39 + compatible = "fsl,imx21-ccm"; 40 + reg = <0x10027000 0x800>; 41 + #clock-cells = <1>; 42 + }; 43 + 44 + serial@1000a000 { 45 + compatible = "fsl,imx21-uart"; 46 + reg = <0x1000a000 0x1000>; 47 + interrupts = <20>; 48 + clocks = <&clks IMX21_CLK_UART1_IPG_GATE>, 49 + <&clks IMX21_CLK_PER1>; 50 + clock-names = "ipg", "per"; 51 + };
-70
Documentation/devicetree/bindings/clock/imx23-clock.txt
··· 1 - * Clock bindings for Freescale i.MX23 2 - 3 - Required properties: 4 - - compatible: Should be "fsl,imx23-clkctrl" 5 - - reg: Address and length of the register set 6 - - #clock-cells: Should be <1> 7 - 8 - The clock consumer should specify the desired clock by having the clock 9 - ID in its "clocks" phandle cell. The following is a full list of i.MX23 10 - clocks and IDs. 11 - 12 - Clock ID 13 - ------------------ 14 - ref_xtal 0 15 - pll 1 16 - ref_cpu 2 17 - ref_emi 3 18 - ref_pix 4 19 - ref_io 5 20 - saif_sel 6 21 - lcdif_sel 7 22 - gpmi_sel 8 23 - ssp_sel 9 24 - emi_sel 10 25 - cpu 11 26 - etm_sel 12 27 - cpu_pll 13 28 - cpu_xtal 14 29 - hbus 15 30 - xbus 16 31 - lcdif_div 17 32 - ssp_div 18 33 - gpmi_div 19 34 - emi_pll 20 35 - emi_xtal 21 36 - etm_div 22 37 - saif_div 23 38 - clk32k_div 24 39 - rtc 25 40 - adc 26 41 - spdif_div 27 42 - clk32k 28 43 - dri 29 44 - pwm 30 45 - filt 31 46 - uart 32 47 - ssp 33 48 - gpmi 34 49 - spdif 35 50 - emi 36 51 - saif 37 52 - lcdif 38 53 - etm 39 54 - usb 40 55 - usb_phy 41 56 - 57 - Examples: 58 - 59 - clks: clkctrl@80040000 { 60 - compatible = "fsl,imx23-clkctrl"; 61 - reg = <0x80040000 0x2000>; 62 - #clock-cells = <1>; 63 - }; 64 - 65 - auart0: serial@8006c000 { 66 - compatible = "fsl,imx23-auart"; 67 - reg = <0x8006c000 0x2000>; 68 - interrupts = <24 25 23>; 69 - clocks = <&clks 32>; 70 - };
+92
Documentation/devicetree/bindings/clock/imx23-clock.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/clock/imx23-clock.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Clock bindings for Freescale i.MX23 8 + 9 + maintainers: 10 + - Shawn Guo <shawn.guo@linaro.org> 11 + 12 + description: | 13 + The clock consumer should specify the desired clock by having the clock 14 + ID in its "clocks" phandle cell. The following is a full list of i.MX23 15 + clocks and IDs. 16 + 17 + Clock ID 18 + ------------------ 19 + ref_xtal 0 20 + pll 1 21 + ref_cpu 2 22 + ref_emi 3 23 + ref_pix 4 24 + ref_io 5 25 + saif_sel 6 26 + lcdif_sel 7 27 + gpmi_sel 8 28 + ssp_sel 9 29 + emi_sel 10 30 + cpu 11 31 + etm_sel 12 32 + cpu_pll 13 33 + cpu_xtal 14 34 + hbus 15 35 + xbus 16 36 + lcdif_div 17 37 + ssp_div 18 38 + gpmi_div 19 39 + emi_pll 20 40 + emi_xtal 21 41 + etm_div 22 42 + saif_div 23 43 + clk32k_div 24 44 + rtc 25 45 + adc 26 46 + spdif_div 27 47 + clk32k 28 48 + dri 29 49 + pwm 30 50 + filt 31 51 + uart 32 52 + ssp 33 53 + gpmi 34 54 + spdif 35 55 + emi 36 56 + saif 37 57 + lcdif 38 58 + etm 39 59 + usb 40 60 + usb_phy 41 61 + 62 + properties: 63 + compatible: 64 + const: fsl,imx23-clkctrl 65 + 66 + reg: 67 + maxItems: 1 68 + 69 + '#clock-cells': 70 + const: 1 71 + 72 + required: 73 + - compatible 74 + - reg 75 + - '#clock-cells' 76 + 77 + additionalProperties: false 78 + 79 + examples: 80 + - | 81 + clock-controller@80040000 { 82 + compatible = "fsl,imx23-clkctrl"; 83 + reg = <0x80040000 0x2000>; 84 + #clock-cells = <1>; 85 + }; 86 + 87 + serial@8006c000 { 88 + compatible = "fsl,imx23-auart"; 89 + reg = <0x8006c000 0x2000>; 90 + interrupts = <24 25 23>; 91 + clocks = <&clks 32>; 92 + };
-160
Documentation/devicetree/bindings/clock/imx25-clock.txt
··· 1 - * Clock bindings for Freescale i.MX25 2 - 3 - Required properties: 4 - - compatible: Should be "fsl,imx25-ccm" 5 - - reg: Address and length of the register set 6 - - interrupts: Should contain CCM interrupt 7 - - #clock-cells: Should be <1> 8 - 9 - The clock consumer should specify the desired clock by having the clock 10 - ID in its "clocks" phandle cell. The following is a full list of i.MX25 11 - clocks and IDs. 12 - 13 - Clock ID 14 - --------------------------- 15 - dummy 0 16 - osc 1 17 - mpll 2 18 - upll 3 19 - mpll_cpu_3_4 4 20 - cpu_sel 5 21 - cpu 6 22 - ahb 7 23 - usb_div 8 24 - ipg 9 25 - per0_sel 10 26 - per1_sel 11 27 - per2_sel 12 28 - per3_sel 13 29 - per4_sel 14 30 - per5_sel 15 31 - per6_sel 16 32 - per7_sel 17 33 - per8_sel 18 34 - per9_sel 19 35 - per10_sel 20 36 - per11_sel 21 37 - per12_sel 22 38 - per13_sel 23 39 - per14_sel 24 40 - per15_sel 25 41 - per0 26 42 - per1 27 43 - per2 28 44 - per3 29 45 - per4 30 46 - per5 31 47 - per6 32 48 - per7 33 49 - per8 34 50 - per9 35 51 - per10 36 52 - per11 37 53 - per12 38 54 - per13 39 55 - per14 40 56 - per15 41 57 - csi_ipg_per 42 58 - epit_ipg_per 43 59 - esai_ipg_per 44 60 - esdhc1_ipg_per 45 61 - esdhc2_ipg_per 46 62 - gpt_ipg_per 47 63 - i2c_ipg_per 48 64 - lcdc_ipg_per 49 65 - nfc_ipg_per 50 66 - owire_ipg_per 51 67 - pwm_ipg_per 52 68 - sim1_ipg_per 53 69 - sim2_ipg_per 54 70 - ssi1_ipg_per 55 71 - ssi2_ipg_per 56 72 - uart_ipg_per 57 73 - ata_ahb 58 74 - reserved 59 75 - csi_ahb 60 76 - emi_ahb 61 77 - esai_ahb 62 78 - esdhc1_ahb 63 79 - esdhc2_ahb 64 80 - fec_ahb 65 81 - lcdc_ahb 66 82 - rtic_ahb 67 83 - sdma_ahb 68 84 - slcdc_ahb 69 85 - usbotg_ahb 70 86 - reserved 71 87 - reserved 72 88 - reserved 73 89 - reserved 74 90 - can1_ipg 75 91 - can2_ipg 76 92 - csi_ipg 77 93 - cspi1_ipg 78 94 - cspi2_ipg 79 95 - cspi3_ipg 80 96 - dryice_ipg 81 97 - ect_ipg 82 98 - epit1_ipg 83 99 - epit2_ipg 84 100 - reserved 85 101 - esdhc1_ipg 86 102 - esdhc2_ipg 87 103 - fec_ipg 88 104 - reserved 89 105 - reserved 90 106 - reserved 91 107 - gpt1_ipg 92 108 - gpt2_ipg 93 109 - gpt3_ipg 94 110 - gpt4_ipg 95 111 - reserved 96 112 - reserved 97 113 - reserved 98 114 - iim_ipg 99 115 - reserved 100 116 - reserved 101 117 - kpp_ipg 102 118 - lcdc_ipg 103 119 - reserved 104 120 - pwm1_ipg 105 121 - pwm2_ipg 106 122 - pwm3_ipg 107 123 - pwm4_ipg 108 124 - rngb_ipg 109 125 - reserved 110 126 - scc_ipg 111 127 - sdma_ipg 112 128 - sim1_ipg 113 129 - sim2_ipg 114 130 - slcdc_ipg 115 131 - spba_ipg 116 132 - ssi1_ipg 117 133 - ssi2_ipg 118 134 - tsc_ipg 119 135 - uart1_ipg 120 136 - uart2_ipg 121 137 - uart3_ipg 122 138 - uart4_ipg 123 139 - uart5_ipg 124 140 - reserved 125 141 - wdt_ipg 126 142 - cko_div 127 143 - cko_sel 128 144 - cko 129 145 - 146 - Examples: 147 - 148 - clks: ccm@53f80000 { 149 - compatible = "fsl,imx25-ccm"; 150 - reg = <0x53f80000 0x4000>; 151 - interrupts = <31>; 152 - }; 153 - 154 - uart1: serial@43f90000 { 155 - compatible = "fsl,imx25-uart", "fsl,imx21-uart"; 156 - reg = <0x43f90000 0x4000>; 157 - interrupts = <45>; 158 - clocks = <&clks 79>, <&clks 50>; 159 - clock-names = "ipg", "per"; 160 - };
+186
Documentation/devicetree/bindings/clock/imx25-clock.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/clock/imx25-clock.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Clock bindings for Freescale i.MX25 8 + 9 + maintainers: 10 + - Sascha Hauer <s.hauer@pengutronix.de> 11 + 12 + description: | 13 + The clock consumer should specify the desired clock by having the clock 14 + ID in its "clocks" phandle cell. The following is a full list of i.MX25 15 + clocks and IDs. 16 + 17 + Clock ID 18 + -------------------------- 19 + dummy 0 20 + osc 1 21 + mpll 2 22 + upll 3 23 + mpll_cpu_3_4 4 24 + cpu_sel 5 25 + cpu 6 26 + ahb 7 27 + usb_div 8 28 + ipg 9 29 + per0_sel 10 30 + per1_sel 11 31 + per2_sel 12 32 + per3_sel 13 33 + per4_sel 14 34 + per5_sel 15 35 + per6_sel 16 36 + per7_sel 17 37 + per8_sel 18 38 + per9_sel 19 39 + per10_sel 20 40 + per11_sel 21 41 + per12_sel 22 42 + per13_sel 23 43 + per14_sel 24 44 + per15_sel 25 45 + per0 26 46 + per1 27 47 + per2 28 48 + per3 29 49 + per4 30 50 + per5 31 51 + per6 32 52 + per7 33 53 + per8 34 54 + per9 35 55 + per10 36 56 + per11 37 57 + per12 38 58 + per13 39 59 + per14 40 60 + per15 41 61 + csi_ipg_per 42 62 + epit_ipg_per 43 63 + esai_ipg_per 44 64 + esdhc1_ipg_per 45 65 + esdhc2_ipg_per 46 66 + gpt_ipg_per 47 67 + i2c_ipg_per 48 68 + lcdc_ipg_per 49 69 + nfc_ipg_per 50 70 + owire_ipg_per 51 71 + pwm_ipg_per 52 72 + sim1_ipg_per 53 73 + sim2_ipg_per 54 74 + ssi1_ipg_per 55 75 + ssi2_ipg_per 56 76 + uart_ipg_per 57 77 + ata_ahb 58 78 + reserved 59 79 + csi_ahb 60 80 + emi_ahb 61 81 + esai_ahb 62 82 + esdhc1_ahb 63 83 + esdhc2_ahb 64 84 + fec_ahb 65 85 + lcdc_ahb 66 86 + rtic_ahb 67 87 + sdma_ahb 68 88 + slcdc_ahb 69 89 + usbotg_ahb 70 90 + reserved 71 91 + reserved 72 92 + reserved 73 93 + reserved 74 94 + can1_ipg 75 95 + can2_ipg 76 96 + csi_ipg 77 97 + cspi1_ipg 78 98 + cspi2_ipg 79 99 + cspi3_ipg 80 100 + dryice_ipg 81 101 + ect_ipg 82 102 + epit1_ipg 83 103 + epit2_ipg 84 104 + reserved 85 105 + esdhc1_ipg 86 106 + esdhc2_ipg 87 107 + fec_ipg 88 108 + reserved 89 109 + reserved 90 110 + reserved 91 111 + gpt1_ipg 92 112 + gpt2_ipg 93 113 + gpt3_ipg 94 114 + gpt4_ipg 95 115 + reserved 96 116 + reserved 97 117 + reserved 98 118 + iim_ipg 99 119 + reserved 100 120 + reserved 101 121 + kpp_ipg 102 122 + lcdc_ipg 103 123 + reserved 104 124 + pwm1_ipg 105 125 + pwm2_ipg 106 126 + pwm3_ipg 107 127 + pwm4_ipg 108 128 + rngb_ipg 109 129 + reserved 110 130 + scc_ipg 111 131 + sdma_ipg 112 132 + sim1_ipg 113 133 + sim2_ipg 114 134 + slcdc_ipg 115 135 + spba_ipg 116 136 + ssi1_ipg 117 137 + ssi2_ipg 118 138 + tsc_ipg 119 139 + uart1_ipg 120 140 + uart2_ipg 121 141 + uart3_ipg 122 142 + uart4_ipg 123 143 + uart5_ipg 124 144 + reserved 125 145 + wdt_ipg 126 146 + cko_div 127 147 + cko_sel 128 148 + cko 129 149 + 150 + properties: 151 + compatible: 152 + const: fsl,imx25-ccm 153 + 154 + reg: 155 + maxItems: 1 156 + 157 + interrupts: 158 + maxItems: 1 159 + 160 + '#clock-cells': 161 + const: 1 162 + 163 + required: 164 + - compatible 165 + - reg 166 + - interrupts 167 + - '#clock-cells' 168 + 169 + additionalProperties: false 170 + 171 + examples: 172 + - | 173 + clock-controller@53f80000 { 174 + compatible = "fsl,imx25-ccm"; 175 + reg = <0x53f80000 0x4000>; 176 + interrupts = <31>; 177 + #clock-cells = <1>; 178 + }; 179 + 180 + serial@43f90000 { 181 + compatible = "fsl,imx25-uart", "fsl,imx21-uart"; 182 + reg = <0x43f90000 0x4000>; 183 + interrupts = <45>; 184 + clocks = <&clks 79>, <&clks 50>; 185 + clock-names = "ipg", "per"; 186 + };
-27
Documentation/devicetree/bindings/clock/imx27-clock.txt
··· 1 - * Clock bindings for Freescale i.MX27 2 - 3 - Required properties: 4 - - compatible: Should be "fsl,imx27-ccm" 5 - - reg: Address and length of the register set 6 - - interrupts: Should contain CCM interrupt 7 - - #clock-cells: Should be <1> 8 - 9 - The clock consumer should specify the desired clock by having the clock 10 - ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx27-clock.h 11 - for the full list of i.MX27 clock IDs. 12 - 13 - Examples: 14 - clks: ccm@10027000{ 15 - compatible = "fsl,imx27-ccm"; 16 - reg = <0x10027000 0x1000>; 17 - #clock-cells = <1>; 18 - }; 19 - 20 - uart1: serial@1000a000 { 21 - compatible = "fsl,imx27-uart", "fsl,imx21-uart"; 22 - reg = <0x1000a000 0x1000>; 23 - interrupts = <20>; 24 - clocks = <&clks IMX27_CLK_UART1_IPG_GATE>, 25 - <&clks IMX27_CLK_PER1_GATE>; 26 - clock-names = "ipg", "per"; 27 - };
+55
Documentation/devicetree/bindings/clock/imx27-clock.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/clock/imx27-clock.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Clock bindings for Freescale i.MX27 8 + 9 + maintainers: 10 + - Fabio Estevam <fabio.estevam@freescale.com> 11 + 12 + description: | 13 + The clock consumer should specify the desired clock by having the clock 14 + ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx27-clock.h 15 + for the full list of i.MX27 clock IDs. 16 + 17 + properties: 18 + compatible: 19 + const: fsl,imx27-ccm 20 + 21 + reg: 22 + maxItems: 1 23 + 24 + interrupts: 25 + maxItems: 1 26 + 27 + '#clock-cells': 28 + const: 1 29 + 30 + required: 31 + - compatible 32 + - reg 33 + - '#clock-cells' 34 + 35 + additionalProperties: false 36 + 37 + examples: 38 + - | 39 + #include <dt-bindings/clock/imx27-clock.h> 40 + 41 + clock-controller@10027000 { 42 + compatible = "fsl,imx27-ccm"; 43 + reg = <0x10027000 0x1000>; 44 + interrupts = <31>; 45 + #clock-cells = <1>; 46 + }; 47 + 48 + serial@1000a000 { 49 + compatible = "fsl,imx27-uart", "fsl,imx21-uart"; 50 + reg = <0x1000a000 0x1000>; 51 + interrupts = <20>; 52 + clocks = <&clks IMX27_CLK_UART1_IPG_GATE>, 53 + <&clks IMX27_CLK_PER1_GATE>; 54 + clock-names = "ipg", "per"; 55 + };
-93
Documentation/devicetree/bindings/clock/imx28-clock.txt
··· 1 - * Clock bindings for Freescale i.MX28 2 - 3 - Required properties: 4 - - compatible: Should be "fsl,imx28-clkctrl" 5 - - reg: Address and length of the register set 6 - - #clock-cells: Should be <1> 7 - 8 - The clock consumer should specify the desired clock by having the clock 9 - ID in its "clocks" phandle cell. The following is a full list of i.MX28 10 - clocks and IDs. 11 - 12 - Clock ID 13 - ------------------ 14 - ref_xtal 0 15 - pll0 1 16 - pll1 2 17 - pll2 3 18 - ref_cpu 4 19 - ref_emi 5 20 - ref_io0 6 21 - ref_io1 7 22 - ref_pix 8 23 - ref_hsadc 9 24 - ref_gpmi 10 25 - saif0_sel 11 26 - saif1_sel 12 27 - gpmi_sel 13 28 - ssp0_sel 14 29 - ssp1_sel 15 30 - ssp2_sel 16 31 - ssp3_sel 17 32 - emi_sel 18 33 - etm_sel 19 34 - lcdif_sel 20 35 - cpu 21 36 - ptp_sel 22 37 - cpu_pll 23 38 - cpu_xtal 24 39 - hbus 25 40 - xbus 26 41 - ssp0_div 27 42 - ssp1_div 28 43 - ssp2_div 29 44 - ssp3_div 30 45 - gpmi_div 31 46 - emi_pll 32 47 - emi_xtal 33 48 - lcdif_div 34 49 - etm_div 35 50 - ptp 36 51 - saif0_div 37 52 - saif1_div 38 53 - clk32k_div 39 54 - rtc 40 55 - lradc 41 56 - spdif_div 42 57 - clk32k 43 58 - pwm 44 59 - uart 45 60 - ssp0 46 61 - ssp1 47 62 - ssp2 48 63 - ssp3 49 64 - gpmi 50 65 - spdif 51 66 - emi 52 67 - saif0 53 68 - saif1 54 69 - lcdif 55 70 - etm 56 71 - fec 57 72 - can0 58 73 - can1 59 74 - usb0 60 75 - usb1 61 76 - usb0_phy 62 77 - usb1_phy 63 78 - enet_out 64 79 - 80 - Examples: 81 - 82 - clks: clkctrl@80040000 { 83 - compatible = "fsl,imx28-clkctrl"; 84 - reg = <0x80040000 0x2000>; 85 - #clock-cells = <1>; 86 - }; 87 - 88 - auart0: serial@8006a000 { 89 - compatible = "fsl,imx28-auart", "fsl,imx23-auart"; 90 - reg = <0x8006a000 0x2000>; 91 - interrupts = <112 70 71>; 92 - clocks = <&clks 45>; 93 - };
+115
Documentation/devicetree/bindings/clock/imx28-clock.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/clock/imx28-clock.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Clock bindings for Freescale i.MX28 8 + 9 + maintainers: 10 + - Shawn Guo <shawn.guo@linaro.org> 11 + 12 + description: | 13 + The clock consumer should specify the desired clock by having the clock 14 + ID in its "clocks" phandle cell. The following is a full list of i.MX28 15 + clocks and IDs. 16 + 17 + Clock ID 18 + ------------------ 19 + ref_xtal 0 20 + pll0 1 21 + pll1 2 22 + pll2 3 23 + ref_cpu 4 24 + ref_emi 5 25 + ref_io0 6 26 + ref_io1 7 27 + ref_pix 8 28 + ref_hsadc 9 29 + ref_gpmi 10 30 + saif0_sel 11 31 + saif1_sel 12 32 + gpmi_sel 13 33 + ssp0_sel 14 34 + ssp1_sel 15 35 + ssp2_sel 16 36 + ssp3_sel 17 37 + emi_sel 18 38 + etm_sel 19 39 + lcdif_sel 20 40 + cpu 21 41 + ptp_sel 22 42 + cpu_pll 23 43 + cpu_xtal 24 44 + hbus 25 45 + xbus 26 46 + ssp0_div 27 47 + ssp1_div 28 48 + ssp2_div 29 49 + ssp3_div 30 50 + gpmi_div 31 51 + emi_pll 32 52 + emi_xtal 33 53 + lcdif_div 34 54 + etm_div 35 55 + ptp 36 56 + saif0_div 37 57 + saif1_div 38 58 + clk32k_div 39 59 + rtc 40 60 + lradc 41 61 + spdif_div 42 62 + clk32k 43 63 + pwm 44 64 + uart 45 65 + ssp0 46 66 + ssp1 47 67 + ssp2 48 68 + ssp3 49 69 + gpmi 50 70 + spdif 51 71 + emi 52 72 + saif0 53 73 + saif1 54 74 + lcdif 55 75 + etm 56 76 + fec 57 77 + can0 58 78 + can1 59 79 + usb0 60 80 + usb1 61 81 + usb0_phy 62 82 + usb1_phy 63 83 + enet_out 64 84 + 85 + properties: 86 + compatible: 87 + const: fsl,imx28-clkctrl 88 + 89 + reg: 90 + maxItems: 1 91 + 92 + '#clock-cells': 93 + const: 1 94 + 95 + required: 96 + - compatible 97 + - reg 98 + - '#clock-cells' 99 + 100 + additionalProperties: false 101 + 102 + examples: 103 + - | 104 + clock-controller@80040000 { 105 + compatible = "fsl,imx28-clkctrl"; 106 + reg = <0x80040000 0x2000>; 107 + #clock-cells = <1>; 108 + }; 109 + 110 + serial@8006a000 { 111 + compatible = "fsl,imx28-auart", "fsl,imx23-auart"; 112 + reg = <0x8006a000 0x2000>; 113 + interrupts = <112 70 71>; 114 + clocks = <&clks 45>; 115 + };
-90
Documentation/devicetree/bindings/clock/imx31-clock.txt
··· 1 - * Clock bindings for Freescale i.MX31 2 - 3 - Required properties: 4 - - compatible: Should be "fsl,imx31-ccm" 5 - - reg: Address and length of the register set 6 - - interrupts: Should contain CCM interrupt 7 - - #clock-cells: Should be <1> 8 - 9 - The clock consumer should specify the desired clock by having the clock 10 - ID in its "clocks" phandle cell. The following is a full list of i.MX31 11 - clocks and IDs. 12 - 13 - Clock ID 14 - ----------------------- 15 - dummy 0 16 - ckih 1 17 - ckil 2 18 - mpll 3 19 - spll 4 20 - upll 5 21 - mcu_main 6 22 - hsp 7 23 - ahb 8 24 - nfc 9 25 - ipg 10 26 - per_div 11 27 - per 12 28 - csi_sel 13 29 - fir_sel 14 30 - csi_div 15 31 - usb_div_pre 16 32 - usb_div_post 17 33 - fir_div_pre 18 34 - fir_div_post 19 35 - sdhc1_gate 20 36 - sdhc2_gate 21 37 - gpt_gate 22 38 - epit1_gate 23 39 - epit2_gate 24 40 - iim_gate 25 41 - ata_gate 26 42 - sdma_gate 27 43 - cspi3_gate 28 44 - rng_gate 29 45 - uart1_gate 30 46 - uart2_gate 31 47 - ssi1_gate 32 48 - i2c1_gate 33 49 - i2c2_gate 34 50 - i2c3_gate 35 51 - hantro_gate 36 52 - mstick1_gate 37 53 - mstick2_gate 38 54 - csi_gate 39 55 - rtc_gate 40 56 - wdog_gate 41 57 - pwm_gate 42 58 - sim_gate 43 59 - ect_gate 44 60 - usb_gate 45 61 - kpp_gate 46 62 - ipu_gate 47 63 - uart3_gate 48 64 - uart4_gate 49 65 - uart5_gate 50 66 - owire_gate 51 67 - ssi2_gate 52 68 - cspi1_gate 53 69 - cspi2_gate 54 70 - gacc_gate 55 71 - emi_gate 56 72 - rtic_gate 57 73 - firi_gate 58 74 - 75 - Examples: 76 - 77 - clks: ccm@53f80000{ 78 - compatible = "fsl,imx31-ccm"; 79 - reg = <0x53f80000 0x4000>; 80 - interrupts = <31>, <53>; 81 - #clock-cells = <1>; 82 - }; 83 - 84 - uart1: serial@43f90000 { 85 - compatible = "fsl,imx31-uart", "fsl,imx21-uart"; 86 - reg = <0x43f90000 0x4000>; 87 - interrupts = <45>; 88 - clocks = <&clks 10>, <&clks 30>; 89 - clock-names = "ipg", "per"; 90 - };
+120
Documentation/devicetree/bindings/clock/imx31-clock.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/clock/imx31-clock.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Clock bindings for Freescale i.MX31 8 + 9 + maintainers: 10 + - Fabio Estevam <fabio.estevam@freescale.com> 11 + 12 + description: | 13 + The clock consumer should specify the desired clock by having the clock 14 + ID in its "clocks" phandle cell. The following is a full list of i.MX31 15 + clocks and IDs. 16 + 17 + Clock ID 18 + ----------------------- 19 + dummy 0 20 + ckih 1 21 + ckil 2 22 + mpll 3 23 + spll 4 24 + upll 5 25 + mcu_main 6 26 + hsp 7 27 + ahb 8 28 + nfc 9 29 + ipg 10 30 + per_div 11 31 + per 12 32 + csi_sel 13 33 + fir_sel 14 34 + csi_div 15 35 + usb_div_pre 16 36 + usb_div_post 17 37 + fir_div_pre 18 38 + fir_div_post 19 39 + sdhc1_gate 20 40 + sdhc2_gate 21 41 + gpt_gate 22 42 + epit1_gate 23 43 + epit2_gate 24 44 + iim_gate 25 45 + ata_gate 26 46 + sdma_gate 27 47 + cspi3_gate 28 48 + rng_gate 29 49 + uart1_gate 30 50 + uart2_gate 31 51 + ssi1_gate 32 52 + i2c1_gate 33 53 + i2c2_gate 34 54 + i2c3_gate 35 55 + hantro_gate 36 56 + mstick1_gate 37 57 + mstick2_gate 38 58 + csi_gate 39 59 + rtc_gate 40 60 + wdog_gate 41 61 + pwm_gate 42 62 + sim_gate 43 63 + ect_gate 44 64 + usb_gate 45 65 + kpp_gate 46 66 + ipu_gate 47 67 + uart3_gate 48 68 + uart4_gate 49 69 + uart5_gate 50 70 + owire_gate 51 71 + ssi2_gate 52 72 + cspi1_gate 53 73 + cspi2_gate 54 74 + gacc_gate 55 75 + emi_gate 56 76 + rtic_gate 57 77 + firi_gate 58 78 + 79 + properties: 80 + compatible: 81 + const: fsl,imx31-ccm 82 + 83 + reg: 84 + maxItems: 1 85 + 86 + interrupts: 87 + description: CCM provides 2 interrupt requests, request 1 is to generate 88 + interrupt for DVFS when a frequency change is requested, request 2 is 89 + to generate interrupt for DPTC when a voltage change is requested. 90 + items: 91 + - description: CCM DVFS interrupt request 1 92 + - description: CCM DPTC interrupt request 2 93 + 94 + '#clock-cells': 95 + const: 1 96 + 97 + required: 98 + - compatible 99 + - reg 100 + - interrupts 101 + - '#clock-cells' 102 + 103 + additionalProperties: false 104 + 105 + examples: 106 + - | 107 + clock-controller@53f80000 { 108 + compatible = "fsl,imx31-ccm"; 109 + reg = <0x53f80000 0x4000>; 110 + interrupts = <31>, <53>; 111 + #clock-cells = <1>; 112 + }; 113 + 114 + serial@43f90000 { 115 + compatible = "fsl,imx31-uart", "fsl,imx21-uart"; 116 + reg = <0x43f90000 0x4000>; 117 + interrupts = <45>; 118 + clocks = <&clks 10>, <&clks 30>; 119 + clock-names = "ipg", "per"; 120 + };
-114
Documentation/devicetree/bindings/clock/imx35-clock.txt
··· 1 - * Clock bindings for Freescale i.MX35 2 - 3 - Required properties: 4 - - compatible: Should be "fsl,imx35-ccm" 5 - - reg: Address and length of the register set 6 - - interrupts: Should contain CCM interrupt 7 - - #clock-cells: Should be <1> 8 - 9 - The clock consumer should specify the desired clock by having the clock 10 - ID in its "clocks" phandle cell. The following is a full list of i.MX35 11 - clocks and IDs. 12 - 13 - Clock ID 14 - --------------------------- 15 - ckih 0 16 - mpll 1 17 - ppll 2 18 - mpll_075 3 19 - arm 4 20 - hsp 5 21 - hsp_div 6 22 - hsp_sel 7 23 - ahb 8 24 - ipg 9 25 - arm_per_div 10 26 - ahb_per_div 11 27 - ipg_per 12 28 - uart_sel 13 29 - uart_div 14 30 - esdhc_sel 15 31 - esdhc1_div 16 32 - esdhc2_div 17 33 - esdhc3_div 18 34 - spdif_sel 19 35 - spdif_div_pre 20 36 - spdif_div_post 21 37 - ssi_sel 22 38 - ssi1_div_pre 23 39 - ssi1_div_post 24 40 - ssi2_div_pre 25 41 - ssi2_div_post 26 42 - usb_sel 27 43 - usb_div 28 44 - nfc_div 29 45 - asrc_gate 30 46 - pata_gate 31 47 - audmux_gate 32 48 - can1_gate 33 49 - can2_gate 34 50 - cspi1_gate 35 51 - cspi2_gate 36 52 - ect_gate 37 53 - edio_gate 38 54 - emi_gate 39 55 - epit1_gate 40 56 - epit2_gate 41 57 - esai_gate 42 58 - esdhc1_gate 43 59 - esdhc2_gate 44 60 - esdhc3_gate 45 61 - fec_gate 46 62 - gpio1_gate 47 63 - gpio2_gate 48 64 - gpio3_gate 49 65 - gpt_gate 50 66 - i2c1_gate 51 67 - i2c2_gate 52 68 - i2c3_gate 53 69 - iomuxc_gate 54 70 - ipu_gate 55 71 - kpp_gate 56 72 - mlb_gate 57 73 - mshc_gate 58 74 - owire_gate 59 75 - pwm_gate 60 76 - rngc_gate 61 77 - rtc_gate 62 78 - rtic_gate 63 79 - scc_gate 64 80 - sdma_gate 65 81 - spba_gate 66 82 - spdif_gate 67 83 - ssi1_gate 68 84 - ssi2_gate 69 85 - uart1_gate 70 86 - uart2_gate 71 87 - uart3_gate 72 88 - usbotg_gate 73 89 - wdog_gate 74 90 - max_gate 75 91 - admux_gate 76 92 - csi_gate 77 93 - csi_div 78 94 - csi_sel 79 95 - iim_gate 80 96 - gpu2d_gate 81 97 - ckli_gate 82 98 - 99 - Examples: 100 - 101 - clks: ccm@53f80000 { 102 - compatible = "fsl,imx35-ccm"; 103 - reg = <0x53f80000 0x4000>; 104 - interrupts = <31>; 105 - #clock-cells = <1>; 106 - }; 107 - 108 - esdhc1: esdhc@53fb4000 { 109 - compatible = "fsl,imx35-esdhc"; 110 - reg = <0x53fb4000 0x4000>; 111 - interrupts = <7>; 112 - clocks = <&clks 9>, <&clks 8>, <&clks 43>; 113 - clock-names = "ipg", "ahb", "per"; 114 - };
+139
Documentation/devicetree/bindings/clock/imx35-clock.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/clock/imx35-clock.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Clock bindings for Freescale i.MX35 8 + 9 + maintainers: 10 + - Steffen Trumtrar <s.trumtrar@pengutronix.de> 11 + 12 + description: | 13 + The clock consumer should specify the desired clock by having the clock 14 + ID in its "clocks" phandle cell. The following is a full list of i.MX35 15 + clocks and IDs. 16 + 17 + Clock ID 18 + --------------------------- 19 + ckih 0 20 + mpll 1 21 + ppll 2 22 + mpll_075 3 23 + arm 4 24 + hsp 5 25 + hsp_div 6 26 + hsp_sel 7 27 + ahb 8 28 + ipg 9 29 + arm_per_div 10 30 + ahb_per_div 11 31 + ipg_per 12 32 + uart_sel 13 33 + uart_div 14 34 + esdhc_sel 15 35 + esdhc1_div 16 36 + esdhc2_div 17 37 + esdhc3_div 18 38 + spdif_sel 19 39 + spdif_div_pre 20 40 + spdif_div_post 21 41 + ssi_sel 22 42 + ssi1_div_pre 23 43 + ssi1_div_post 24 44 + ssi2_div_pre 25 45 + ssi2_div_post 26 46 + usb_sel 27 47 + usb_div 28 48 + nfc_div 29 49 + asrc_gate 30 50 + pata_gate 31 51 + audmux_gate 32 52 + can1_gate 33 53 + can2_gate 34 54 + cspi1_gate 35 55 + cspi2_gate 36 56 + ect_gate 37 57 + edio_gate 38 58 + emi_gate 39 59 + epit1_gate 40 60 + epit2_gate 41 61 + esai_gate 42 62 + esdhc1_gate 43 63 + esdhc2_gate 44 64 + esdhc3_gate 45 65 + fec_gate 46 66 + gpio1_gate 47 67 + gpio2_gate 48 68 + gpio3_gate 49 69 + gpt_gate 50 70 + i2c1_gate 51 71 + i2c2_gate 52 72 + i2c3_gate 53 73 + iomuxc_gate 54 74 + ipu_gate 55 75 + kpp_gate 56 76 + mlb_gate 57 77 + mshc_gate 58 78 + owire_gate 59 79 + pwm_gate 60 80 + rngc_gate 61 81 + rtc_gate 62 82 + rtic_gate 63 83 + scc_gate 64 84 + sdma_gate 65 85 + spba_gate 66 86 + spdif_gate 67 87 + ssi1_gate 68 88 + ssi2_gate 69 89 + uart1_gate 70 90 + uart2_gate 71 91 + uart3_gate 72 92 + usbotg_gate 73 93 + wdog_gate 74 94 + max_gate 75 95 + admux_gate 76 96 + csi_gate 77 97 + csi_div 78 98 + csi_sel 79 99 + iim_gate 80 100 + gpu2d_gate 81 101 + ckli_gate 82 102 + 103 + properties: 104 + compatible: 105 + const: fsl,imx35-ccm 106 + 107 + reg: 108 + maxItems: 1 109 + 110 + interrupts: 111 + maxItems: 1 112 + 113 + '#clock-cells': 114 + const: 1 115 + 116 + required: 117 + - compatible 118 + - reg 119 + - interrupts 120 + - '#clock-cells' 121 + 122 + additionalProperties: false 123 + 124 + examples: 125 + - | 126 + clock-controller@53f80000 { 127 + compatible = "fsl,imx35-ccm"; 128 + reg = <0x53f80000 0x4000>; 129 + interrupts = <31>; 130 + #clock-cells = <1>; 131 + }; 132 + 133 + esdhc@53fb4000 { 134 + compatible = "fsl,imx35-esdhc"; 135 + reg = <0x53fb4000 0x4000>; 136 + interrupts = <7>; 137 + clocks = <&clks 9>, <&clks 8>, <&clks 43>; 138 + clock-names = "ipg", "ahb", "per"; 139 + };
-28
Documentation/devicetree/bindings/clock/imx5-clock.txt
··· 1 - * Clock bindings for Freescale i.MX5 2 - 3 - Required properties: 4 - - compatible: Should be "fsl,<soc>-ccm" , where <soc> can be imx51 or imx53 5 - - reg: Address and length of the register set 6 - - interrupts: Should contain CCM interrupt 7 - - #clock-cells: Should be <1> 8 - 9 - The clock consumer should specify the desired clock by having the clock 10 - ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx5-clock.h 11 - for the full list of i.MX5 clock IDs. 12 - 13 - Examples (for mx53): 14 - 15 - clks: ccm@53fd4000{ 16 - compatible = "fsl,imx53-ccm"; 17 - reg = <0x53fd4000 0x4000>; 18 - interrupts = <0 71 0x04 0 72 0x04>; 19 - #clock-cells = <1>; 20 - }; 21 - 22 - can1: can@53fc8000 { 23 - compatible = "fsl,imx53-flexcan", "fsl,p1010-flexcan"; 24 - reg = <0x53fc8000 0x4000>; 25 - interrupts = <82>; 26 - clocks = <&clks IMX5_CLK_CAN1_IPG_GATE>, <&clks IMX5_CLK_CAN1_SERIAL_GATE>; 27 - clock-names = "ipg", "per"; 28 - };
+65
Documentation/devicetree/bindings/clock/imx5-clock.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/clock/imx5-clock.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Clock bindings for Freescale i.MX5 8 + 9 + maintainers: 10 + - Fabio Estevam <fabio.estevam@freescale.com> 11 + 12 + description: | 13 + The clock consumer should specify the desired clock by having the clock 14 + ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx5-clock.h 15 + for the full list of i.MX5 clock IDs. 16 + 17 + properties: 18 + compatible: 19 + enum: 20 + - fsl,imx53-ccm 21 + - fsl,imx51-ccm 22 + - fsl,imx50-ccm 23 + 24 + reg: 25 + maxItems: 1 26 + 27 + interrupts: 28 + description: CCM provides 2 interrupt requests, request 1 is to generate 29 + interrupt for frequency or mux change, request 2 is to generate 30 + interrupt for oscillator read or PLL lock. 31 + items: 32 + - description: CCM interrupt request 1 33 + - description: CCM interrupt request 2 34 + 35 + '#clock-cells': 36 + const: 1 37 + 38 + required: 39 + - compatible 40 + - reg 41 + - interrupts 42 + - '#clock-cells' 43 + 44 + additionalProperties: false 45 + 46 + examples: 47 + - | 48 + #include <dt-bindings/clock/imx5-clock.h> 49 + #include <dt-bindings/interrupt-controller/arm-gic.h> 50 + 51 + clock-controller@53fd4000{ 52 + compatible = "fsl,imx53-ccm"; 53 + reg = <0x53fd4000 0x4000>; 54 + interrupts = <0 71 IRQ_TYPE_LEVEL_HIGH>, 55 + <0 72 IRQ_TYPE_LEVEL_HIGH>; 56 + #clock-cells = <1>; 57 + }; 58 + 59 + can@53fc8000 { 60 + compatible = "fsl,imx53-flexcan", "fsl,p1010-flexcan"; 61 + reg = <0x53fc8000 0x4000>; 62 + interrupts = <82>; 63 + clocks = <&clks IMX5_CLK_CAN1_IPG_GATE>, <&clks IMX5_CLK_CAN1_SERIAL_GATE>; 64 + clock-names = "ipg", "per"; 65 + };
-41
Documentation/devicetree/bindings/clock/imx6q-clock.txt
··· 1 - * Clock bindings for Freescale i.MX6 Quad 2 - 3 - Required properties: 4 - - compatible: Should be "fsl,imx6q-ccm" 5 - - reg: Address and length of the register set 6 - - interrupts: Should contain CCM interrupt 7 - - #clock-cells: Should be <1> 8 - 9 - Optional properties: 10 - - fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ signal 11 - on power off. 12 - Use this property if the SoC should be powered off by external power 13 - management IC (PMIC) triggered via PMIC_STBY_REQ signal. 14 - Boards that are designed to initiate poweroff on PMIC_ON_REQ signal should 15 - be using "syscon-poweroff" driver instead. 16 - - clocks: list of clock specifiers, must contain an entry for each entry 17 - in clock-names 18 - - clock-names: valid names are "osc", "ckil", "ckih1", "anaclk1" and "anaclk2" 19 - 20 - The clock consumer should specify the desired clock by having the clock 21 - ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx6qdl-clock.h 22 - for the full list of i.MX6 Quad and DualLite clock IDs. 23 - 24 - Examples: 25 - 26 - #include <dt-bindings/clock/imx6qdl-clock.h> 27 - 28 - clks: ccm@20c4000 { 29 - compatible = "fsl,imx6q-ccm"; 30 - reg = <0x020c4000 0x4000>; 31 - interrupts = <0 87 0x04 0 88 0x04>; 32 - #clock-cells = <1>; 33 - }; 34 - 35 - uart1: serial@2020000 { 36 - compatible = "fsl,imx6q-uart", "fsl,imx21-uart"; 37 - reg = <0x02020000 0x4000>; 38 - interrupts = <0 26 0x04>; 39 - clocks = <&clks IMX6QDL_CLK_UART_IPG>, <&clks IMX6QDL_CLK_UART_SERIAL>; 40 - clock-names = "ipg", "per"; 41 - };
+72
Documentation/devicetree/bindings/clock/imx6q-clock.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/clock/imx6q-clock.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Clock bindings for Freescale i.MX6 Quad 8 + 9 + maintainers: 10 + - Anson Huang <Anson.Huang@nxp.com> 11 + 12 + properties: 13 + compatible: 14 + const: fsl,imx6q-ccm 15 + 16 + reg: 17 + maxItems: 1 18 + 19 + interrupts: 20 + description: CCM provides 2 interrupt requests, request 1 is to generate 21 + interrupt for frequency or mux change, request 2 is to generate 22 + interrupt for oscillator read or PLL lock. 23 + items: 24 + - description: CCM interrupt request 1 25 + - description: CCM interrupt request 2 26 + maxItems: 2 27 + 28 + '#clock-cells': 29 + const: 1 30 + 31 + clocks: 32 + items: 33 + - description: 24m osc 34 + - description: 32k osc 35 + - description: ckih1 clock input 36 + - description: anaclk1 clock input 37 + - description: anaclk2 clock input 38 + 39 + clock-names: 40 + items: 41 + - const: osc 42 + - const: ckil 43 + - const: ckih1 44 + - const: anaclk1 45 + - const: anaclk2 46 + 47 + fsl,pmic-stby-poweroff: 48 + $ref: /schemas/types.yaml#/definitions/flag 49 + description: | 50 + Use this property if the SoC should be powered off by external power 51 + management IC (PMIC) triggered via PMIC_STBY_REQ signal. 52 + Boards that are designed to initiate poweroff on PMIC_ON_REQ signal should 53 + be using "syscon-poweroff" driver instead. 54 + 55 + required: 56 + - compatible 57 + - reg 58 + - interrupts 59 + - '#clock-cells' 60 + 61 + examples: 62 + # Clock Control Module node: 63 + - | 64 + #include <dt-bindings/interrupt-controller/arm-gic.h> 65 + 66 + clock-controller@20c4000 { 67 + compatible = "fsl,imx6q-ccm"; 68 + reg = <0x020c4000 0x4000>; 69 + interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>, 70 + <0 88 IRQ_TYPE_LEVEL_HIGH>; 71 + #clock-cells = <1>; 72 + };
-10
Documentation/devicetree/bindings/clock/imx6sl-clock.txt
··· 1 - * Clock bindings for Freescale i.MX6 SoloLite 2 - 3 - Required properties: 4 - - compatible: Should be "fsl,imx6sl-ccm" 5 - - reg: Address and length of the register set 6 - - #clock-cells: Should be <1> 7 - 8 - The clock consumer should specify the desired clock by having the clock 9 - ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx6sl-clock.h 10 - for the full list of i.MX6 SoloLite clock IDs.
+48
Documentation/devicetree/bindings/clock/imx6sl-clock.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/clock/imx6sl-clock.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Clock bindings for Freescale i.MX6 SoloLite 8 + 9 + maintainers: 10 + - Anson Huang <Anson.Huang@nxp.com> 11 + 12 + properties: 13 + compatible: 14 + const: fsl,imx6sl-ccm 15 + 16 + reg: 17 + maxItems: 1 18 + 19 + interrupts: 20 + description: CCM provides 2 interrupt requests, request 1 is to generate 21 + interrupt for frequency or mux change, request 2 is to generate 22 + interrupt for oscillator read or PLL lock. 23 + items: 24 + - description: CCM interrupt request 1 25 + - description: CCM interrupt request 2 26 + maxItems: 2 27 + 28 + '#clock-cells': 29 + const: 1 30 + 31 + required: 32 + - compatible 33 + - reg 34 + - interrupts 35 + - '#clock-cells' 36 + 37 + examples: 38 + # Clock Control Module node: 39 + - | 40 + #include <dt-bindings/interrupt-controller/arm-gic.h> 41 + 42 + clock-controller@20c4000 { 43 + compatible = "fsl,imx6sl-ccm"; 44 + reg = <0x020c4000 0x4000>; 45 + interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>, 46 + <0 88 IRQ_TYPE_LEVEL_HIGH>; 47 + #clock-cells = <1>; 48 + };
-36
Documentation/devicetree/bindings/clock/imx6sll-clock.txt
··· 1 - * Clock bindings for Freescale i.MX6 SLL 2 - 3 - Required properties: 4 - - compatible: Should be "fsl,imx6sll-ccm" 5 - - reg: Address and length of the register set 6 - - #clock-cells: Should be <1> 7 - - clocks: list of clock specifiers, must contain an entry for each required 8 - entry in clock-names 9 - - clock-names: should include entries "ckil", "osc", "ipp_di0" and "ipp_di1" 10 - 11 - The clock consumer should specify the desired clock by having the clock 12 - ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx6sll-clock.h 13 - for the full list of i.MX6 SLL clock IDs. 14 - 15 - Examples: 16 - 17 - #include <dt-bindings/clock/imx6sll-clock.h> 18 - 19 - clks: clock-controller@20c4000 { 20 - compatible = "fsl,imx6sll-ccm"; 21 - reg = <0x020c4000 0x4000>; 22 - interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>, 23 - <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; 24 - #clock-cells = <1>; 25 - clocks = <&ckil>, <&osc>, <&ipp_di0>, <&ipp_di1>; 26 - clock-names = "ckil", "osc", "ipp_di0", "ipp_di1"; 27 - }; 28 - 29 - uart1: serial@2020000 { 30 - compatible = "fsl,imx6sl-uart", "fsl,imx6q-uart", "fsl,imx21-uart"; 31 - reg = <0x02020000 0x4000>; 32 - interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 33 - clocks = <&clks IMX6SLL_CLK_UART1_IPG>, 34 - <&clks IMX6SLL_CLK_UART1_SERIAL>; 35 - clock-names = "ipg", "per"; 36 - };
+66
Documentation/devicetree/bindings/clock/imx6sll-clock.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/clock/imx6sll-clock.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Clock bindings for Freescale i.MX6 SLL 8 + 9 + maintainers: 10 + - Anson Huang <Anson.Huang@nxp.com> 11 + 12 + properties: 13 + compatible: 14 + const: fsl,imx6sll-ccm 15 + 16 + reg: 17 + maxItems: 1 18 + 19 + interrupts: 20 + description: CCM provides 2 interrupt requests, request 1 is to generate 21 + interrupt for frequency or mux change, request 2 is to generate 22 + interrupt for oscillator read or PLL lock. 23 + items: 24 + - description: CCM interrupt request 1 25 + - description: CCM interrupt request 2 26 + maxItems: 2 27 + 28 + '#clock-cells': 29 + const: 1 30 + 31 + clocks: 32 + items: 33 + - description: 32k osc 34 + - description: 24m osc 35 + - description: ipp_di0 clock input 36 + - description: ipp_di1 clock input 37 + 38 + clock-names: 39 + items: 40 + - const: ckil 41 + - const: osc 42 + - const: ipp_di0 43 + - const: ipp_di1 44 + 45 + required: 46 + - compatible 47 + - reg 48 + - interrupts 49 + - '#clock-cells' 50 + - clocks 51 + - clock-names 52 + 53 + examples: 54 + # Clock Control Module node: 55 + - | 56 + #include <dt-bindings/interrupt-controller/arm-gic.h> 57 + 58 + clock-controller@20c4000 { 59 + compatible = "fsl,imx6sll-ccm"; 60 + reg = <0x020c4000 0x4000>; 61 + interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>, 62 + <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; 63 + #clock-cells = <1>; 64 + clocks = <&ckil>, <&osc>, <&ipp_di0>, <&ipp_di1>; 65 + clock-names = "ckil", "osc", "ipp_di0", "ipp_di1"; 66 + };
-13
Documentation/devicetree/bindings/clock/imx6sx-clock.txt
··· 1 - * Clock bindings for Freescale i.MX6 SoloX 2 - 3 - Required properties: 4 - - compatible: Should be "fsl,imx6sx-ccm" 5 - - reg: Address and length of the register set 6 - - #clock-cells: Should be <1> 7 - - clocks: list of clock specifiers, must contain an entry for each required 8 - entry in clock-names 9 - - clock-names: should include entries "ckil", "osc", "ipp_di0" and "ipp_di1" 10 - 11 - The clock consumer should specify the desired clock by having the clock 12 - ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx6sx-clock.h 13 - for the full list of i.MX6 SoloX clock IDs.
+70
Documentation/devicetree/bindings/clock/imx6sx-clock.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/clock/imx6sx-clock.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Clock bindings for Freescale i.MX6 SoloX 8 + 9 + maintainers: 10 + - Anson Huang <Anson.Huang@nxp.com> 11 + 12 + properties: 13 + compatible: 14 + const: fsl,imx6sx-ccm 15 + 16 + reg: 17 + maxItems: 1 18 + 19 + interrupts: 20 + description: CCM provides 2 interrupt requests, request 1 is to generate 21 + interrupt for frequency or mux change, request 2 is to generate 22 + interrupt for oscillator read or PLL lock. 23 + items: 24 + - description: CCM interrupt request 1 25 + - description: CCM interrupt request 2 26 + maxItems: 2 27 + 28 + '#clock-cells': 29 + const: 1 30 + 31 + clocks: 32 + items: 33 + - description: 32k osc 34 + - description: 24m osc 35 + - description: ipp_di0 clock input 36 + - description: ipp_di1 clock input 37 + - description: anaclk1 clock input 38 + - description: anaclk2 clock input 39 + 40 + clock-names: 41 + items: 42 + - const: ckil 43 + - const: osc 44 + - const: ipp_di0 45 + - const: ipp_di1 46 + - const: anaclk1 47 + - const: anaclk2 48 + 49 + required: 50 + - compatible 51 + - reg 52 + - interrupts 53 + - '#clock-cells' 54 + - clocks 55 + - clock-names 56 + 57 + examples: 58 + # Clock Control Module node: 59 + - | 60 + #include <dt-bindings/interrupt-controller/arm-gic.h> 61 + 62 + clock-controller@20c4000 { 63 + compatible = "fsl,imx6sx-ccm"; 64 + reg = <0x020c4000 0x4000>; 65 + interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>, 66 + <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; 67 + #clock-cells = <1>; 68 + clocks = <&ckil>, <&osc>, <&ipp_di0>, <&ipp_di1>, <&anaclk1>, <&anaclk2>; 69 + clock-names = "ckil", "osc", "ipp_di0", "ipp_di1", "anaclk1", "anaclk2"; 70 + };
-13
Documentation/devicetree/bindings/clock/imx6ul-clock.txt
··· 1 - * Clock bindings for Freescale i.MX6 UltraLite 2 - 3 - Required properties: 4 - - compatible: Should be "fsl,imx6ul-ccm" 5 - - reg: Address and length of the register set 6 - - #clock-cells: Should be <1> 7 - - clocks: list of clock specifiers, must contain an entry for each required 8 - entry in clock-names 9 - - clock-names: should include entries "ckil", "osc", "ipp_di0" and "ipp_di1" 10 - 11 - The clock consumer should specify the desired clock by having the clock 12 - ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx6ul-clock.h 13 - for the full list of i.MX6 UltraLite clock IDs.
+66
Documentation/devicetree/bindings/clock/imx6ul-clock.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/clock/imx6ul-clock.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Clock bindings for Freescale i.MX6 UltraLite 8 + 9 + maintainers: 10 + - Anson Huang <Anson.Huang@nxp.com> 11 + 12 + properties: 13 + compatible: 14 + const: fsl,imx6ul-ccm 15 + 16 + reg: 17 + maxItems: 1 18 + 19 + interrupts: 20 + description: CCM provides 2 interrupt requests, request 1 is to generate 21 + interrupt for frequency or mux change, request 2 is to generate 22 + interrupt for oscillator read or PLL lock. 23 + items: 24 + - description: CCM interrupt request 1 25 + - description: CCM interrupt request 2 26 + maxItems: 2 27 + 28 + '#clock-cells': 29 + const: 1 30 + 31 + clocks: 32 + items: 33 + - description: 32k osc 34 + - description: 24m osc 35 + - description: ipp_di0 clock input 36 + - description: ipp_di1 clock input 37 + 38 + clock-names: 39 + items: 40 + - const: ckil 41 + - const: osc 42 + - const: ipp_di0 43 + - const: ipp_di1 44 + 45 + required: 46 + - compatible 47 + - reg 48 + - interrupts 49 + - '#clock-cells' 50 + - clocks 51 + - clock-names 52 + 53 + examples: 54 + # Clock Control Module node: 55 + - | 56 + #include <dt-bindings/interrupt-controller/arm-gic.h> 57 + 58 + clock-controller@20c4000 { 59 + compatible = "fsl,imx6ul-ccm"; 60 + reg = <0x020c4000 0x4000>; 61 + interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>, 62 + <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; 63 + #clock-cells = <1>; 64 + clocks = <&ckil>, <&osc>, <&ipp_di0>, <&ipp_di1>; 65 + clock-names = "ckil", "osc", "ipp_di0", "ipp_di1"; 66 + };
-13
Documentation/devicetree/bindings/clock/imx7d-clock.txt
··· 1 - * Clock bindings for Freescale i.MX7 Dual 2 - 3 - Required properties: 4 - - compatible: Should be "fsl,imx7d-ccm" 5 - - reg: Address and length of the register set 6 - - #clock-cells: Should be <1> 7 - - clocks: list of clock specifiers, must contain an entry for each required 8 - entry in clock-names 9 - - clock-names: should include entries "ckil", "osc" 10 - 11 - The clock consumer should specify the desired clock by having the clock 12 - ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx7d-clock.h 13 - for the full list of i.MX7 Dual clock IDs.
+65
Documentation/devicetree/bindings/clock/imx7d-clock.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/clock/imx7d-clock.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Clock bindings for Freescale i.MX7 Dual 8 + 9 + maintainers: 10 + - Frank Li <Frank.Li@nxp.com> 11 + - Anson Huang <Anson.Huang@nxp.com> 12 + 13 + description: | 14 + The clock consumer should specify the desired clock by having the clock 15 + ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx7d-clock.h 16 + for the full list of i.MX7 Dual clock IDs. 17 + 18 + properties: 19 + compatible: 20 + const: fsl,imx7d-ccm 21 + 22 + reg: 23 + maxItems: 1 24 + 25 + interrupts: 26 + items: 27 + - description: CCM interrupt request 1 28 + - description: CCM interrupt request 2 29 + 30 + '#clock-cells': 31 + const: 1 32 + 33 + clocks: 34 + items: 35 + - description: 32k osc 36 + - description: 24m osc 37 + 38 + clock-names: 39 + items: 40 + - const: ckil 41 + - const: osc 42 + 43 + required: 44 + - compatible 45 + - reg 46 + - interrupts 47 + - clocks 48 + - clock-names 49 + - '#clock-cells' 50 + 51 + additionalProperties: false 52 + 53 + examples: 54 + - | 55 + #include <dt-bindings/interrupt-controller/arm-gic.h> 56 + 57 + clock-controller@30380000 { 58 + compatible = "fsl,imx7d-ccm"; 59 + reg = <0x30380000 0x10000>; 60 + interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>, 61 + <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 62 + #clock-cells = <1>; 63 + clocks = <&ckil>, <&osc>; 64 + clock-names = "ckil", "osc"; 65 + };
-51
Documentation/devicetree/bindings/clock/imx8qxp-lpcg.txt
··· 1 - * NXP i.MX8QXP LPCG (Low-Power Clock Gating) Clock bindings 2 - 3 - The Low-Power Clock Gate (LPCG) modules contain a local programming 4 - model to control the clock gates for the peripherals. An LPCG module 5 - is used to locally gate the clocks for the associated peripheral. 6 - 7 - Note: 8 - This level of clock gating is provided after the clocks are generated 9 - by the SCU resources and clock controls. Thus even if the clock is 10 - enabled by these control bits, it might still not be running based 11 - on the base resource. 12 - 13 - Required properties: 14 - - compatible: Should be one of: 15 - "fsl,imx8qxp-lpcg-adma", 16 - "fsl,imx8qxp-lpcg-conn", 17 - "fsl,imx8qxp-lpcg-dc", 18 - "fsl,imx8qxp-lpcg-dsp", 19 - "fsl,imx8qxp-lpcg-gpu", 20 - "fsl,imx8qxp-lpcg-hsio", 21 - "fsl,imx8qxp-lpcg-img", 22 - "fsl,imx8qxp-lpcg-lsio", 23 - "fsl,imx8qxp-lpcg-vpu" 24 - - reg: Address and length of the register set 25 - - #clock-cells: Should be <1> 26 - 27 - The clock consumer should specify the desired clock by having the clock 28 - ID in its "clocks" phandle cell. 29 - See the full list of clock IDs from: 30 - include/dt-bindings/clock/imx8qxp-clock.h 31 - 32 - Examples: 33 - 34 - #include <dt-bindings/clock/imx8qxp-clock.h> 35 - 36 - conn_lpcg: clock-controller@5b200000 { 37 - compatible = "fsl,imx8qxp-lpcg-conn"; 38 - reg = <0x5b200000 0xb0000>; 39 - #clock-cells = <1>; 40 - }; 41 - 42 - usdhc1: mmc@5b010000 { 43 - compatible = "fsl,imx8qxp-usdhc", "fsl,imx7d-usdhc"; 44 - interrupt-parent = <&gic>; 45 - interrupts = <GIC_SPI 232 IRQ_TYPE_LEVEL_HIGH>; 46 - reg = <0x5b010000 0x10000>; 47 - clocks = <&conn_lpcg IMX8QXP_CONN_LPCG_SDHC0_IPG_CLK>, 48 - <&conn_lpcg IMX8QXP_CONN_LPCG_SDHC0_PER_CLK>, 49 - <&conn_lpcg IMX8QXP_CONN_LPCG_SDHC0_HCLK>; 50 - clock-names = "ipg", "per", "ahb"; 51 - };
+73
Documentation/devicetree/bindings/clock/imx8qxp-lpcg.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/clock/imx8qxp-lpcg.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: NXP i.MX8QXP LPCG (Low-Power Clock Gating) Clock bindings 8 + 9 + maintainers: 10 + - Aisheng Dong <aisheng.dong@nxp.com> 11 + 12 + description: | 13 + The Low-Power Clock Gate (LPCG) modules contain a local programming 14 + model to control the clock gates for the peripherals. An LPCG module 15 + is used to locally gate the clocks for the associated peripheral. 16 + 17 + This level of clock gating is provided after the clocks are generated 18 + by the SCU resources and clock controls. Thus even if the clock is 19 + enabled by these control bits, it might still not be running based 20 + on the base resource. 21 + 22 + The clock consumer should specify the desired clock by having the clock 23 + ID in its "clocks" phandle cell. See the full list of clock IDs from: 24 + include/dt-bindings/clock/imx8-clock.h 25 + 26 + properties: 27 + compatible: 28 + enum: 29 + - fsl,imx8qxp-lpcg-adma 30 + - fsl,imx8qxp-lpcg-conn 31 + - fsl,imx8qxp-lpcg-dc 32 + - fsl,imx8qxp-lpcg-dsp 33 + - fsl,imx8qxp-lpcg-gpu 34 + - fsl,imx8qxp-lpcg-hsio 35 + - fsl,imx8qxp-lpcg-img 36 + - fsl,imx8qxp-lpcg-lsio 37 + - fsl,imx8qxp-lpcg-vpu 38 + 39 + reg: 40 + maxItems: 1 41 + 42 + '#clock-cells': 43 + const: 1 44 + 45 + required: 46 + - compatible 47 + - reg 48 + - '#clock-cells' 49 + 50 + additionalProperties: false 51 + 52 + examples: 53 + - | 54 + #include <dt-bindings/clock/imx8-clock.h> 55 + #include <dt-bindings/firmware/imx/rsrc.h> 56 + #include <dt-bindings/interrupt-controller/arm-gic.h> 57 + 58 + clock-controller@5b200000 { 59 + compatible = "fsl,imx8qxp-lpcg-conn"; 60 + reg = <0x5b200000 0xb0000>; 61 + #clock-cells = <1>; 62 + }; 63 + 64 + mmc@5b010000 { 65 + compatible = "fsl,imx8qxp-usdhc", "fsl,imx7d-usdhc"; 66 + interrupts = <GIC_SPI 232 IRQ_TYPE_LEVEL_HIGH>; 67 + reg = <0x5b010000 0x10000>; 68 + clocks = <&conn_lpcg IMX_CONN_LPCG_SDHC0_IPG_CLK>, 69 + <&conn_lpcg IMX_CONN_LPCG_SDHC0_PER_CLK>, 70 + <&conn_lpcg IMX_CONN_LPCG_SDHC0_HCLK>; 71 + clock-names = "ipg", "per", "ahb"; 72 + power-domains = <&pd IMX_SC_R_SDHC_0>; 73 + };
-57
Documentation/devicetree/bindings/clock/ingenic,cgu.txt
··· 1 - Ingenic SoC CGU binding 2 - 3 - The CGU in an Ingenic SoC provides all the clocks generated on-chip. It 4 - typically includes a variety of PLLs, multiplexers, dividers & gates in order 5 - to provide many different clock signals derived from only 2 external source 6 - clocks. 7 - 8 - Required properties: 9 - - compatible : Should be one of: 10 - * ingenic,jz4740-cgu 11 - * ingenic,jz4725b-cgu 12 - * ingenic,jz4770-cgu 13 - * ingenic,jz4780-cgu 14 - * ingenic,x1000-cgu 15 - - reg : The address & length of the CGU registers. 16 - - clocks : List of phandle & clock specifiers for clocks external to the CGU. 17 - Two such external clocks should be specified - first the external crystal 18 - "ext" and second the RTC clock source "rtc". 19 - - clock-names : List of name strings for the external clocks. 20 - - #clock-cells: Should be 1. 21 - Clock consumers specify this argument to identify a clock. The valid values 22 - may be found in <dt-bindings/clock/<soctype>-cgu.h>. 23 - 24 - Example SoC include file: 25 - 26 - / { 27 - cgu: jz4740-cgu { 28 - compatible = "ingenic,jz4740-cgu"; 29 - reg = <0x10000000 0x100>; 30 - #clock-cells = <1>; 31 - }; 32 - 33 - uart0: serial@10030000 { 34 - clocks = <&cgu JZ4740_CLK_UART0>; 35 - }; 36 - }; 37 - 38 - Example board file: 39 - 40 - / { 41 - ext: clock@0 { 42 - compatible = "fixed-clock"; 43 - #clock-cells = <0>; 44 - clock-frequency = <12000000>; 45 - }; 46 - 47 - rtc: clock@1 { 48 - compatible = "fixed-clock"; 49 - #clock-cells = <0>; 50 - clock-frequency = <32768>; 51 - }; 52 - 53 - &cgu { 54 - clocks = <&ext> <&rtc>; 55 - clock-names: "ext", "rtc"; 56 - }; 57 - };
+124
Documentation/devicetree/bindings/clock/ingenic,cgu.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/clock/ingenic,cgu.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Ingenic SoCs CGU devicetree bindings 8 + 9 + description: | 10 + The CGU in an Ingenic SoC provides all the clocks generated on-chip. It 11 + typically includes a variety of PLLs, multiplexers, dividers & gates in order 12 + to provide many different clock signals derived from only 2 external source 13 + clocks. 14 + 15 + maintainers: 16 + - Paul Cercueil <paul@crapouillou.net> 17 + 18 + select: 19 + properties: 20 + compatible: 21 + contains: 22 + enum: 23 + - ingenic,jz4740-cgu 24 + - ingenic,jz4725b-cgu 25 + - ingenic,jz4770-cgu 26 + - ingenic,jz4780-cgu 27 + - ingenic,x1000-cgu 28 + - ingenic,x1830-cgu 29 + required: 30 + - compatible 31 + 32 + properties: 33 + $nodename: 34 + pattern: "^clock-controller@[0-9a-f]+$" 35 + 36 + "#address-cells": 37 + const: 1 38 + 39 + "#size-cells": 40 + const: 1 41 + 42 + "#clock-cells": 43 + const: 1 44 + 45 + ranges: true 46 + 47 + compatible: 48 + items: 49 + - enum: 50 + - ingenic,jz4740-cgu 51 + - ingenic,jz4725b-cgu 52 + - ingenic,jz4770-cgu 53 + - ingenic,jz4780-cgu 54 + - ingenic,x1000-cgu 55 + - ingenic,x1830-cgu 56 + - const: simple-mfd 57 + minItems: 1 58 + 59 + reg: 60 + maxItems: 1 61 + 62 + clocks: 63 + items: 64 + - description: External oscillator clock 65 + - description: Internal 32 kHz RTC clock 66 + 67 + clock-names: 68 + items: 69 + - const: ext 70 + - enum: 71 + - rtc 72 + - osc32k # Different name, same clock 73 + 74 + assigned-clocks: 75 + minItems: 1 76 + maxItems: 64 77 + 78 + assigned-clock-parents: 79 + minItems: 1 80 + maxItems: 64 81 + 82 + assigned-clock-rates: 83 + minItems: 1 84 + maxItems: 64 85 + 86 + required: 87 + - "#clock-cells" 88 + - compatible 89 + - reg 90 + - clocks 91 + - clock-names 92 + 93 + patternProperties: 94 + "^usb-phy@[a-f0-9]+$": 95 + allOf: [ $ref: "../usb/ingenic,jz4770-phy.yaml#" ] 96 + 97 + additionalProperties: false 98 + 99 + examples: 100 + - | 101 + #include <dt-bindings/clock/jz4770-cgu.h> 102 + cgu: clock-controller@10000000 { 103 + compatible = "ingenic,jz4770-cgu", "simple-mfd"; 104 + reg = <0x10000000 0x100>; 105 + #address-cells = <1>; 106 + #size-cells = <1>; 107 + ranges = <0x0 0x10000000 0x100>; 108 + 109 + clocks = <&ext>, <&osc32k>; 110 + clock-names = "ext", "osc32k"; 111 + 112 + #clock-cells = <1>; 113 + 114 + otg_phy: usb-phy@3c { 115 + compatible = "ingenic,jz4770-phy"; 116 + reg = <0x3c 0x10>; 117 + 118 + clocks = <&cgu JZ4770_CLK_OTG_PHY>; 119 + 120 + vcc-supply = <&ldo5>; 121 + 122 + #phy-cells = <0>; 123 + }; 124 + };
+1 -1
Documentation/devicetree/bindings/clock/qcom,gcc-sc7180.yaml
··· 65 65 #include <dt-bindings/clock/qcom,rpmh.h> 66 66 clock-controller@100000 { 67 67 compatible = "qcom,gcc-sc7180"; 68 - reg = <0 0x00100000 0 0x1f0000>; 68 + reg = <0x00100000 0x1f0000>; 69 69 clocks = <&rpmhcc RPMH_CXO_CLK>, 70 70 <&rpmhcc RPMH_CXO_CLK_A>, 71 71 <&sleep_clk>;
+1 -1
Documentation/devicetree/bindings/clock/qcom,gcc-sm8150.yaml
··· 63 63 #include <dt-bindings/clock/qcom,rpmh.h> 64 64 clock-controller@100000 { 65 65 compatible = "qcom,gcc-sm8150"; 66 - reg = <0 0x00100000 0 0x1f0000>; 66 + reg = <0x00100000 0x1f0000>; 67 67 clocks = <&rpmhcc RPMH_CXO_CLK>, 68 68 <&sleep_clk>; 69 69 clock-names = "bi_tcxo", "sleep_clk";
+1 -1
Documentation/devicetree/bindings/clock/qcom,gcc-sm8250.yaml
··· 61 61 #include <dt-bindings/clock/qcom,rpmh.h> 62 62 clock-controller@100000 { 63 63 compatible = "qcom,gcc-sm8250"; 64 - reg = <0 0x00100000 0 0x1f0000>; 64 + reg = <0x00100000 0x1f0000>; 65 65 clocks = <&rpmhcc RPMH_CXO_CLK>, 66 66 <&sleep_clk>; 67 67 clock-names = "bi_tcxo", "sleep_clk";
+8 -8
Documentation/devicetree/bindings/clock/qcom,mmcc.yaml
··· 15 15 power domains. 16 16 17 17 properties: 18 - compatible : 18 + compatible: 19 19 enum: 20 - - qcom,mmcc-apq8064 21 - - qcom,mmcc-apq8084 22 - - qcom,mmcc-msm8660 23 - - qcom,mmcc-msm8960 24 - - qcom,mmcc-msm8974 25 - - qcom,mmcc-msm8996 26 - - qcom,mmcc-msm8998 20 + - qcom,mmcc-apq8064 21 + - qcom,mmcc-apq8084 22 + - qcom,mmcc-msm8660 23 + - qcom,mmcc-msm8960 24 + - qcom,mmcc-msm8974 25 + - qcom,mmcc-msm8996 26 + - qcom,mmcc-msm8998 27 27 28 28 clocks: 29 29 items:
+1 -1
Documentation/devicetree/bindings/clock/qcom,sc7180-dispcc.yaml
··· 66 66 #include <dt-bindings/clock/qcom,rpmh.h> 67 67 clock-controller@af00000 { 68 68 compatible = "qcom,sc7180-dispcc"; 69 - reg = <0 0x0af00000 0 0x200000>; 69 + reg = <0x0af00000 0x200000>; 70 70 clocks = <&rpmhcc RPMH_CXO_CLK>, 71 71 <&gcc GCC_DISP_GPLL0_CLK_SRC>, 72 72 <&dsi_phy 0>,
+1 -1
Documentation/devicetree/bindings/clock/qcom,sc7180-gpucc.yaml
··· 60 60 #include <dt-bindings/clock/qcom,rpmh.h> 61 61 clock-controller@5090000 { 62 62 compatible = "qcom,sc7180-gpucc"; 63 - reg = <0 0x05090000 0 0x9000>; 63 + reg = <0x05090000 0x9000>; 64 64 clocks = <&rpmhcc RPMH_CXO_CLK>, 65 65 <&gcc GCC_GPU_GPLL0_CLK_SRC>, 66 66 <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
+1 -1
Documentation/devicetree/bindings/clock/qcom,sc7180-mss.yaml
··· 50 50 #include <dt-bindings/clock/qcom,gcc-sc7180.h> 51 51 clock-controller@41a8000 { 52 52 compatible = "qcom,sc7180-mss"; 53 - reg = <0 0x041a8000 0 0x8000>; 53 + reg = <0x041a8000 0x8000>; 54 54 clocks = <&gcc GCC_MSS_MFAB_AXIS_CLK>, 55 55 <&gcc GCC_MSS_NAV_AXI_CLK>, 56 56 <&gcc GCC_MSS_CFG_AHB_CLK>;
+1 -1
Documentation/devicetree/bindings/clock/qcom,sc7180-videocc.yaml
··· 55 55 #include <dt-bindings/clock/qcom,rpmh.h> 56 56 clock-controller@ab00000 { 57 57 compatible = "qcom,sc7180-videocc"; 58 - reg = <0 0x0ab00000 0 0x10000>; 58 + reg = <0x0ab00000 0x10000>; 59 59 clocks = <&rpmhcc RPMH_CXO_CLK>; 60 60 clock-names = "bi_tcxo"; 61 61 #clock-cells = <1>;
+1 -1
Documentation/devicetree/bindings/clock/qcom,sdm845-dispcc.yaml
··· 75 75 #include <dt-bindings/clock/qcom,rpmh.h> 76 76 clock-controller@af00000 { 77 77 compatible = "qcom,sdm845-dispcc"; 78 - reg = <0 0x0af00000 0 0x10000>; 78 + reg = <0x0af00000 0x10000>; 79 79 clocks = <&rpmhcc RPMH_CXO_CLK>, 80 80 <&gcc GCC_DISP_GPLL0_CLK_SRC>, 81 81 <&gcc GCC_DISP_GPLL0_DIV_CLK_SRC>,
+1 -1
Documentation/devicetree/bindings/clock/qcom,sdm845-gpucc.yaml
··· 60 60 #include <dt-bindings/clock/qcom,rpmh.h> 61 61 clock-controller@5090000 { 62 62 compatible = "qcom,sdm845-gpucc"; 63 - reg = <0 0x05090000 0 0x9000>; 63 + reg = <0x05090000 0x9000>; 64 64 clocks = <&rpmhcc RPMH_CXO_CLK>, 65 65 <&gcc GCC_GPU_GPLL0_CLK_SRC>, 66 66 <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
+1 -1
Documentation/devicetree/bindings/clock/qcom,sdm845-videocc.yaml
··· 55 55 #include <dt-bindings/clock/qcom,rpmh.h> 56 56 clock-controller@ab00000 { 57 57 compatible = "qcom,sdm845-videocc"; 58 - reg = <0 0x0ab00000 0 0x10000>; 58 + reg = <0x0ab00000 0x10000>; 59 59 clocks = <&rpmhcc RPMH_CXO_CLK>; 60 60 clock-names = "bi_tcxo"; 61 61 #clock-cells = <1>;
+11 -16
Documentation/devicetree/bindings/clock/sprd,sc9863a-clk.yaml
··· 76 76 - | 77 77 ap_clk: clock-controller@21500000 { 78 78 compatible = "sprd,sc9863a-ap-clk"; 79 - reg = <0 0x21500000 0 0x1000>; 79 + reg = <0x21500000 0x1000>; 80 80 clocks = <&ext_26m>, <&ext_32k>; 81 81 clock-names = "ext-26m", "ext-32k"; 82 82 #clock-cells = <1>; 83 83 }; 84 84 85 85 - | 86 - soc { 87 - #address-cells = <2>; 88 - #size-cells = <2>; 86 + syscon@20e00000 { 87 + compatible = "sprd,sc9863a-glbregs", "syscon", "simple-mfd"; 88 + reg = <0x20e00000 0x4000>; 89 + #address-cells = <1>; 90 + #size-cells = <1>; 91 + ranges = <0 0x20e00000 0x4000>; 89 92 90 - ap_ahb_regs: syscon@20e00000 { 91 - compatible = "sprd,sc9863a-glbregs", "syscon", "simple-mfd"; 92 - reg = <0 0x20e00000 0 0x4000>; 93 - #address-cells = <1>; 94 - #size-cells = <1>; 95 - ranges = <0 0 0x20e00000 0x4000>; 96 - 97 - apahb_gate: apahb-gate@0 { 98 - compatible = "sprd,sc9863a-apahb-gate"; 99 - reg = <0x0 0x1020>; 100 - #clock-cells = <1>; 101 - }; 93 + apahb_gate: apahb-gate@0 { 94 + compatible = "sprd,sc9863a-apahb-gate"; 95 + reg = <0x0 0x1020>; 96 + #clock-cells = <1>; 102 97 }; 103 98 }; 104 99
+51 -22
Documentation/devicetree/bindings/connector/usb-connector.yaml
··· 15 15 16 16 properties: 17 17 compatible: 18 - enum: 19 - - usb-a-connector 20 - - usb-b-connector 21 - - usb-c-connector 18 + oneOf: 19 + - enum: 20 + - usb-a-connector 21 + - usb-b-connector 22 + - usb-c-connector 23 + 24 + - items: 25 + - const: gpio-usb-b-connector 26 + - const: usb-b-connector 22 27 23 28 label: 24 29 description: Symbolic name for the connector. ··· 32 27 description: Size of the connector, should be specified in case of 33 28 non-fullsize 'usb-a-connector' or 'usb-b-connector' compatible 34 29 connectors. 35 - allOf: 36 - - $ref: /schemas/types.yaml#definitions/string 30 + $ref: /schemas/types.yaml#definitions/string 31 + 37 32 enum: 38 33 - mini 39 34 - micro ··· 62 57 power-role: 63 58 description: Determines the power role that the Type C connector will 64 59 support. "dual" refers to Dual Role Port (DRP). 65 - allOf: 66 - - $ref: /schemas/types.yaml#definitions/string 60 + $ref: /schemas/types.yaml#definitions/string 61 + 67 62 enum: 68 63 - source 69 64 - sink ··· 71 66 72 67 try-power-role: 73 68 description: Preferred power role. 74 - allOf: 75 - - $ref: /schemas/types.yaml#definitions/string 69 + $ref: /schemas/types.yaml#definitions/string 70 + 76 71 enum: 77 - - source 78 - - sink 79 - - dual 72 + - source 73 + - sink 74 + - dual 80 75 81 76 data-role: 82 77 description: Data role if Type C connector supports USB data. "dual" refers 83 78 Dual Role Device (DRD). 84 - allOf: 85 - - $ref: /schemas/types.yaml#definitions/string 79 + $ref: /schemas/types.yaml#definitions/string 80 + 86 81 enum: 87 82 - host 88 83 - device ··· 100 95 defined in dt-bindings/usb/pd.h. 101 96 minItems: 1 102 97 maxItems: 7 103 - allOf: 104 - - $ref: /schemas/types.yaml#/definitions/uint32-array 98 + $ref: /schemas/types.yaml#/definitions/uint32-array 105 99 106 100 sink-pdos: 107 101 description: An array of u32 with each entry providing supported power sink ··· 112 108 in dt-bindings/usb/pd.h. 113 109 minItems: 1 114 110 maxItems: 7 115 - allOf: 116 - - $ref: /schemas/types.yaml#/definitions/uint32-array 111 + $ref: /schemas/types.yaml#/definitions/uint32-array 117 112 118 113 op-sink-microwatt: 119 114 description: Sink required operating power in microwatt, if source can't ··· 145 142 required: 146 143 - compatible 147 144 145 + allOf: 146 + - if: 147 + properties: 148 + compatible: 149 + contains: 150 + const: gpio-usb-b-connector 151 + then: 152 + anyOf: 153 + - required: 154 + - vbus-gpios 155 + - required: 156 + - id-gpios 157 + 148 158 examples: 149 159 # Micro-USB connector with HS lines routed via controller (MUIC). 150 - - |+ 160 + - | 151 161 muic-max77843 { 152 162 usb_con1: connector { 153 163 compatible = "usb-b-connector"; ··· 172 156 # USB-C connector attached to CC controller (s2mm005), HS lines routed 173 157 # to companion PMIC (max77865), SS lines to USB3 PHY and SBU to DisplayPort. 174 158 # DisplayPort video lines are routed to the connector via SS mux in USB3 PHY. 175 - - |+ 159 + - | 176 160 ccic: s2mm005 { 177 161 usb_con2: connector { 178 162 compatible = "usb-c-connector"; ··· 206 190 207 191 # USB-C connector attached to a typec port controller(ptn5110), which has 208 192 # power delivery support and enables drp. 209 - - |+ 193 + - | 210 194 #include <dt-bindings/usb/pd.h> 211 195 typec: ptn5110 { 212 196 usb_con3: connector { ··· 218 202 sink-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM) 219 203 PDO_VAR(5000, 12000, 2000)>; 220 204 op-sink-microwatt = <10000000>; 205 + }; 206 + }; 207 + 208 + # USB connector with GPIO control lines 209 + - | 210 + #include <dt-bindings/gpio/gpio.h> 211 + 212 + usb { 213 + connector { 214 + compatible = "gpio-usb-b-connector", "usb-b-connector"; 215 + type = "micro"; 216 + id-gpios = <&pio 12 GPIO_ACTIVE_HIGH>; 217 + vbus-supply = <&usb_p0_vbus>; 221 218 }; 222 219 };
+7 -7
Documentation/devicetree/bindings/crypto/allwinner,sun4i-a10-crypto.yaml
··· 15 15 oneOf: 16 16 - const: allwinner,sun4i-a10-crypto 17 17 - items: 18 - - const: allwinner,sun5i-a13-crypto 19 - - const: allwinner,sun4i-a10-crypto 18 + - const: allwinner,sun5i-a13-crypto 19 + - const: allwinner,sun4i-a10-crypto 20 20 - items: 21 - - const: allwinner,sun6i-a31-crypto 22 - - const: allwinner,sun4i-a10-crypto 21 + - const: allwinner,sun6i-a31-crypto 22 + - const: allwinner,sun4i-a10-crypto 23 23 - items: 24 - - const: allwinner,sun7i-a20-crypto 25 - - const: allwinner,sun4i-a10-crypto 24 + - const: allwinner,sun7i-a20-crypto 25 + - const: allwinner,sun4i-a10-crypto 26 26 - items: 27 - - const: allwinner,sun8i-a33-crypto 27 + - const: allwinner,sun8i-a33-crypto 28 28 29 29 reg: 30 30 maxItems: 1
+8 -8
Documentation/devicetree/bindings/crypto/allwinner,sun8i-ce.yaml
··· 50 50 const: allwinner,sun50i-h6-crypto 51 51 then: 52 52 properties: 53 - clocks: 54 - minItems: 3 55 - clock-names: 56 - minItems: 3 53 + clocks: 54 + minItems: 3 55 + clock-names: 56 + minItems: 3 57 57 else: 58 58 properties: 59 - clocks: 60 - maxItems: 2 61 - clock-names: 62 - maxItems: 2 59 + clocks: 60 + maxItems: 2 61 + clock-names: 62 + maxItems: 2 63 63 64 64 required: 65 65 - compatible
+2 -2
Documentation/devicetree/bindings/crypto/amlogic,gxl-crypto.yaml
··· 12 12 properties: 13 13 compatible: 14 14 items: 15 - - const: amlogic,gxl-crypto 15 + - const: amlogic,gxl-crypto 16 16 17 17 reg: 18 18 maxItems: 1 ··· 45 45 46 46 crypto: crypto-engine@c883e000 { 47 47 compatible = "amlogic,gxl-crypto"; 48 - reg = <0x0 0xc883e000 0x0 0x36>; 48 + reg = <0xc883e000 0x36>; 49 49 interrupts = <GIC_SPI 188 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 189 IRQ_TYPE_EDGE_RISING>; 50 50 clocks = <&clkc CLKID_BLKMV>; 51 51 clock-names = "blkmv";
+4 -5
Documentation/devicetree/bindings/crypto/st,stm32-hash.yaml
··· 36 36 37 37 dma-maxburst: 38 38 description: Set number of maximum dma burst supported 39 - allOf: 40 - - $ref: /schemas/types.yaml#/definitions/uint32 41 - - minimum: 0 42 - - maximum: 2 43 - - default: 0 39 + $ref: /schemas/types.yaml#/definitions/uint32 40 + minimum: 0 41 + maximum: 2 42 + default: 0 44 43 45 44 required: 46 45 - compatible
+3 -4
Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-engine.yaml
··· 66 66 - allwinner,sun50i-h6-display-engine 67 67 68 68 allwinner,pipelines: 69 - allOf: 70 - - $ref: /schemas/types.yaml#/definitions/phandle-array 71 - - minItems: 1 72 - maxItems: 2 69 + $ref: /schemas/types.yaml#/definitions/phandle-array 70 + minItems: 1 71 + maxItems: 2 73 72 description: | 74 73 Available display engine frontends (DE 1.0) or mixers (DE 75 74 2.0/3.0) available.
+20 -20
Documentation/devicetree/bindings/display/allwinner,sun4i-a10-hdmi.yaml
··· 21 21 - const: allwinner,sun5i-a10s-hdmi 22 22 - const: allwinner,sun6i-a31-hdmi 23 23 - items: 24 - - const: allwinner,sun7i-a20-hdmi 25 - - const: allwinner,sun5i-a10s-hdmi 24 + - const: allwinner,sun7i-a20-hdmi 25 + - const: allwinner,sun5i-a10s-hdmi 26 26 27 27 reg: 28 28 maxItems: 1 ··· 33 33 clocks: 34 34 oneOf: 35 35 - items: 36 - - description: The HDMI interface clock 37 - - description: The HDMI module clock 38 - - description: The first video PLL 39 - - description: The second video PLL 36 + - description: The HDMI interface clock 37 + - description: The HDMI module clock 38 + - description: The first video PLL 39 + - description: The second video PLL 40 40 41 41 - items: 42 - - description: The HDMI interface clock 43 - - description: The HDMI module clock 44 - - description: The HDMI DDC clock 45 - - description: The first video PLL 46 - - description: The second video PLL 42 + - description: The HDMI interface clock 43 + - description: The HDMI module clock 44 + - description: The HDMI DDC clock 45 + - description: The first video PLL 46 + - description: The second video PLL 47 47 48 48 clock-names: 49 49 oneOf: 50 50 - items: 51 - - const: ahb 52 - - const: mod 53 - - const: pll-0 54 - - const: pll-1 51 + - const: ahb 52 + - const: mod 53 + - const: pll-0 54 + - const: pll-1 55 55 56 56 - items: 57 - - const: ahb 58 - - const: mod 59 - - const: ddc 60 - - const: pll-0 61 - - const: pll-1 57 + - const: ahb 58 + - const: mod 59 + - const: ddc 60 + - const: pll-0 61 + - const: pll-1 62 62 63 63 resets: 64 64 maxItems: 1
+31 -32
Documentation/devicetree/bindings/display/allwinner,sun4i-a10-tcon.yaml
··· 35 35 - const: allwinner,sun9i-a80-tcon-tv 36 36 37 37 - items: 38 - - enum: 39 - - allwinner,sun7i-a20-tcon0 40 - - allwinner,sun7i-a20-tcon1 41 - - const: allwinner,sun7i-a20-tcon 38 + - enum: 39 + - allwinner,sun7i-a20-tcon0 40 + - allwinner,sun7i-a20-tcon1 41 + - const: allwinner,sun7i-a20-tcon 42 42 43 43 - items: 44 - - enum: 45 - - allwinner,sun50i-a64-tcon-lcd 46 - - const: allwinner,sun8i-a83t-tcon-lcd 44 + - enum: 45 + - allwinner,sun50i-a64-tcon-lcd 46 + - const: allwinner,sun8i-a83t-tcon-lcd 47 47 48 48 - items: 49 - - enum: 50 - - allwinner,sun8i-h3-tcon-tv 51 - - allwinner,sun50i-a64-tcon-tv 52 - - const: allwinner,sun8i-a83t-tcon-tv 49 + - enum: 50 + - allwinner,sun8i-h3-tcon-tv 51 + - allwinner,sun50i-a64-tcon-tv 52 + - const: allwinner,sun8i-a83t-tcon-tv 53 53 54 54 - items: 55 - - enum: 56 - - allwinner,sun50i-h6-tcon-tv 57 - - const: allwinner,sun8i-r40-tcon-tv 55 + - enum: 56 + - allwinner,sun50i-h6-tcon-tv 57 + - const: allwinner,sun8i-r40-tcon-tv 58 58 59 59 reg: 60 60 maxItems: 1 ··· 71 71 maxItems: 4 72 72 73 73 clock-output-names: 74 - allOf: 75 - - $ref: /schemas/types.yaml#/definitions/string-array 76 - - maxItems: 1 77 74 description: 78 75 Name of the LCD pixel clock created. 76 + $ref: /schemas/types.yaml#/definitions/string-array 77 + maxItems: 1 79 78 80 79 dmas: 81 80 maxItems: 1 ··· 82 83 resets: 83 84 anyOf: 84 85 - items: 85 - - description: TCON Reset Line 86 + - description: TCON Reset Line 86 87 87 88 - items: 88 - - description: TCON Reset Line 89 - - description: TCON LVDS Reset Line 89 + - description: TCON Reset Line 90 + - description: TCON LVDS Reset Line 90 91 91 92 - items: 92 - - description: TCON Reset Line 93 - - description: TCON eDP Reset Line 93 + - description: TCON Reset Line 94 + - description: TCON eDP Reset Line 94 95 95 96 - items: 96 - - description: TCON Reset Line 97 - - description: TCON eDP Reset Line 98 - - description: TCON LVDS Reset Line 97 + - description: TCON Reset Line 98 + - description: TCON eDP Reset Line 99 + - description: TCON LVDS Reset Line 99 100 100 101 reset-names: 101 102 oneOf: 102 103 - const: lcd 103 104 104 105 - items: 105 - - const: lcd 106 - - const: lvds 106 + - const: lcd 107 + - const: lvds 107 108 108 109 - items: 109 - - const: lcd 110 - - const: edp 110 + - const: lcd 111 + - const: edp 111 112 112 113 - items: 113 - - const: lcd 114 - - const: edp 115 - - const: lvds 114 + - const: lcd 115 + - const: edp 116 + - const: lvds 116 117 117 118 ports: 118 119 type: object
+14 -14
Documentation/devicetree/bindings/display/allwinner,sun6i-a31-mipi-dsi.yaml
··· 76 76 allOf: 77 77 - if: 78 78 properties: 79 - compatible: 80 - contains: 81 - const: allwinner,sun6i-a31-mipi-dsi 79 + compatible: 80 + contains: 81 + const: allwinner,sun6i-a31-mipi-dsi 82 82 83 83 then: 84 - properties: 85 - clocks: 86 - minItems: 2 84 + properties: 85 + clocks: 86 + minItems: 2 87 87 88 - required: 89 - - clock-names 88 + required: 89 + - clock-names 90 90 91 91 - if: 92 92 properties: 93 - compatible: 94 - contains: 95 - const: allwinner,sun50i-a64-mipi-dsi 93 + compatible: 94 + contains: 95 + const: allwinner,sun50i-a64-mipi-dsi 96 96 97 97 then: 98 - properties: 99 - clocks: 100 - minItems: 1 98 + properties: 99 + clocks: 100 + minItems: 1 101 101 102 102 additionalProperties: false 103 103
+5 -5
Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-dw-hdmi.yaml
··· 29 29 - const: allwinner,sun50i-h6-dw-hdmi 30 30 31 31 - items: 32 - - enum: 33 - - allwinner,sun8i-h3-dw-hdmi 34 - - allwinner,sun8i-r40-dw-hdmi 35 - - allwinner,sun50i-a64-dw-hdmi 36 - - const: allwinner,sun8i-a83t-dw-hdmi 32 + - enum: 33 + - allwinner,sun8i-h3-dw-hdmi 34 + - allwinner,sun8i-r40-dw-hdmi 35 + - allwinner,sun50i-a64-dw-hdmi 36 + - const: allwinner,sun8i-a83t-dw-hdmi 37 37 38 38 reg: 39 39 maxItems: 1
+119
Documentation/devicetree/bindings/display/bridge/analogix,anx7814.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/analogix,anx7814.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Analogix ANX7814 SlimPort (Full-HD Transmitter) 8 + 9 + maintainers: 10 + - Enric Balletbo i Serra <enric.balletbo@collabora.com> 11 + 12 + properties: 13 + compatible: 14 + enum: 15 + - analogix,anx7808 16 + - analogix,anx7812 17 + - analogix,anx7814 18 + - analogix,anx7818 19 + 20 + reg: 21 + maxItems: 1 22 + description: I2C address of the device. 23 + 24 + interrupts: 25 + maxItems: 1 26 + description: Should contain the INTP interrupt. 27 + 28 + hpd-gpios: 29 + deprecated: true 30 + maxItems: 1 31 + description: Which GPIO to use for hpd. 32 + 33 + pd-gpios: 34 + maxItems: 1 35 + description: Which GPIO to use for power down. 36 + 37 + reset-gpios: 38 + maxItems: 1 39 + description: Which GPIO to use for reset. 40 + 41 + dvdd10-supply: 42 + description: Regulator for 1.0V digital core power. 43 + 44 + ports: 45 + type: object 46 + description: 47 + A node containing input and output port nodes with endpoint 48 + definitions as documented in 49 + Documentation/devicetree/bindings/media/video-interfaces.txt 50 + Documentation/devicetree/bindings/graph.txt 51 + 52 + properties: 53 + port@0: 54 + type: object 55 + description: Video port for HDMI input. 56 + 57 + properties: 58 + reg: 59 + const: 0 60 + 61 + port@1: 62 + type: object 63 + description: 64 + Video port for SlimPort, DisplayPort, eDP or MyDP output. 65 + 66 + properties: 67 + reg: 68 + const: 1 69 + 70 + required: 71 + - port@0 72 + - port@1 73 + 74 + required: 75 + - compatible 76 + - reg 77 + - ports 78 + 79 + additionalProperties: false 80 + 81 + examples: 82 + - | 83 + #include <dt-bindings/interrupt-controller/arm-gic.h> 84 + #include <dt-bindings/gpio/gpio.h> 85 + 86 + i2c { 87 + #address-cells = <1>; 88 + #size-cells = <0>; 89 + 90 + anx7814: bridge@38 { 91 + compatible = "analogix,anx7814"; 92 + reg = <0x38>; 93 + interrupt-parent = <&gpio0>; 94 + interrupts = <99 IRQ_TYPE_LEVEL_LOW>; /* INTP */ 95 + pd-gpios = <&pio 33 GPIO_ACTIVE_HIGH>; 96 + reset-gpios = <&pio 98 GPIO_ACTIVE_HIGH>; 97 + 98 + ports { 99 + #address-cells = <1>; 100 + #size-cells = <0>; 101 + 102 + port@0 { 103 + reg = <0>; 104 + anx7814_in: endpoint { 105 + remote-endpoint = <&hdmi0_out>; 106 + }; 107 + }; 108 + 109 + port@1 { 110 + reg = <1>; 111 + anx7814_out: endpoint { 112 + remote-endpoint = <&edp_out>; 113 + }; 114 + }; 115 + }; 116 + }; 117 + }; 118 + 119 + ...
-42
Documentation/devicetree/bindings/display/bridge/anx7814.txt
··· 1 - Analogix ANX7814 SlimPort (Full-HD Transmitter) 2 - ----------------------------------------------- 3 - 4 - The ANX7814 is an ultra-low power Full-HD (1080p60) SlimPort transmitter 5 - designed for portable devices. 6 - 7 - Required properties: 8 - 9 - - compatible : Must be one of: 10 - "analogix,anx7808" 11 - "analogix,anx7812" 12 - "analogix,anx7814" 13 - "analogix,anx7818" 14 - - reg : I2C address of the device 15 - - interrupts : Should contain the INTP interrupt 16 - - hpd-gpios : Which GPIO to use for hpd 17 - - pd-gpios : Which GPIO to use for power down 18 - - reset-gpios : Which GPIO to use for reset 19 - 20 - Optional properties: 21 - 22 - - dvdd10-supply : Regulator for 1.0V digital core power. 23 - - Video port for HDMI input, using the DT bindings defined in [1]. 24 - 25 - [1]: Documentation/devicetree/bindings/media/video-interfaces.txt 26 - 27 - Example: 28 - 29 - anx7814: anx7814@38 { 30 - compatible = "analogix,anx7814"; 31 - reg = <0x38>; 32 - interrupt-parent = <&gpio0>; 33 - interrupts = <99 IRQ_TYPE_LEVEL_LOW>; /* INTP */ 34 - hpd-gpios = <&pio 36 GPIO_ACTIVE_HIGH>; 35 - pd-gpios = <&pio 33 GPIO_ACTIVE_HIGH>; 36 - reset-gpios = <&pio 98 GPIO_ACTIVE_HIGH>; 37 - port { 38 - anx7814_in: endpoint { 39 - remote-endpoint = <&hdmi0_out>; 40 - }; 41 - }; 42 - };
+9 -9
Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml
··· 32 32 compatible: 33 33 oneOf: 34 34 - items: 35 - - enum: 36 - - ti,ds90c185 # For the TI DS90C185 FPD-Link Serializer 37 - - ti,ds90c187 # For the TI DS90C187 FPD-Link Serializer 38 - - ti,sn75lvds83 # For the TI SN75LVDS83 FlatLink transmitter 39 - - const: lvds-encoder # Generic LVDS encoder compatible fallback 35 + - enum: 36 + - ti,ds90c185 # For the TI DS90C185 FPD-Link Serializer 37 + - ti,ds90c187 # For the TI DS90C187 FPD-Link Serializer 38 + - ti,sn75lvds83 # For the TI SN75LVDS83 FlatLink transmitter 39 + - const: lvds-encoder # Generic LVDS encoder compatible fallback 40 40 - items: 41 - - enum: 42 - - ti,ds90cf384a # For the DS90CF384A FPD-Link LVDS Receiver 43 - - const: lvds-decoder # Generic LVDS decoders compatible fallback 41 + - enum: 42 + - ti,ds90cf384a # For the DS90CF384A FPD-Link LVDS Receiver 43 + - const: lvds-decoder # Generic LVDS decoders compatible fallback 44 44 - enum: 45 - - thine,thc63lvdm83d # For the THC63LVDM83D LVDS serializer 45 + - thine,thc63lvdm83d # For the THC63LVDM83D LVDS serializer 46 46 47 47 ports: 48 48 type: object
+4 -7
Documentation/devicetree/bindings/display/panel/panel-common.yaml
··· 48 48 rotation: 49 49 description: 50 50 Display rotation in degrees counter clockwise (0,90,180,270) 51 - allOf: 52 - - $ref: /schemas/types.yaml#/definitions/uint32 53 - - enum: [ 0, 90, 180, 270 ] 51 + $ref: /schemas/types.yaml#/definitions/uint32 52 + enum: [0, 90, 180, 270] 54 53 55 54 # Display Timings 56 55 panel-timing: ··· 57 58 Most display panels are restricted to a single resolution and 58 59 require specific display timings. The panel-timing subnode expresses those 59 60 timings. 60 - allOf: 61 - - $ref: panel-timing.yaml# 61 + $ref: panel-timing.yaml# 62 62 63 63 display-timings: 64 64 description: 65 65 Some display panels support several resolutions with different timings. 66 66 The display-timings bindings supports specifying several timings and 67 67 optionally specifying which is the native mode. 68 - allOf: 69 - - $ref: display-timings.yaml# 68 + $ref: display-timings.yaml# 70 69 71 70 # Connectivity 72 71 port:
+54 -66
Documentation/devicetree/bindings/display/panel/panel-timing.yaml
··· 72 72 hfront-porch: 73 73 description: Horizontal front porch panel timing 74 74 oneOf: 75 - - allOf: 76 - - $ref: /schemas/types.yaml#/definitions/uint32 77 - - maxItems: 1 78 - items: 79 - description: typical number of pixels 80 - - allOf: 81 - - $ref: /schemas/types.yaml#/definitions/uint32-array 82 - - minItems: 3 83 - maxItems: 3 84 - items: 85 - description: min, typ, max number of pixels 75 + - $ref: /schemas/types.yaml#/definitions/uint32 76 + maxItems: 1 77 + items: 78 + description: typical number of pixels 79 + - $ref: /schemas/types.yaml#/definitions/uint32-array 80 + minItems: 3 81 + maxItems: 3 82 + items: 83 + description: min, typ, max number of pixels 86 84 87 85 hback-porch: 88 86 description: Horizontal back porch timing 89 87 oneOf: 90 - - allOf: 91 - - $ref: /schemas/types.yaml#/definitions/uint32 92 - - maxItems: 1 93 - items: 94 - description: typical number of pixels 95 - - allOf: 96 - - $ref: /schemas/types.yaml#/definitions/uint32-array 97 - - minItems: 3 98 - maxItems: 3 99 - items: 100 - description: min, typ, max number of pixels 88 + - $ref: /schemas/types.yaml#/definitions/uint32 89 + maxItems: 1 90 + items: 91 + description: typical number of pixels 92 + - $ref: /schemas/types.yaml#/definitions/uint32-array 93 + minItems: 3 94 + maxItems: 3 95 + items: 96 + description: min, typ, max number of pixels 101 97 102 98 hsync-len: 103 99 description: Horizontal sync length panel timing 104 100 oneOf: 105 - - allOf: 106 - - $ref: /schemas/types.yaml#/definitions/uint32 107 - - maxItems: 1 108 - items: 109 - description: typical number of pixels 110 - - allOf: 111 - - $ref: /schemas/types.yaml#/definitions/uint32-array 112 - - minItems: 3 113 - maxItems: 3 114 - items: 115 - description: min, typ, max number of pixels 101 + - $ref: /schemas/types.yaml#/definitions/uint32 102 + maxItems: 1 103 + items: 104 + description: typical number of pixels 105 + - $ref: /schemas/types.yaml#/definitions/uint32-array 106 + minItems: 3 107 + maxItems: 3 108 + items: 109 + description: min, typ, max number of pixels 116 110 117 111 vfront-porch: 118 112 description: Vertical front porch panel timing 119 113 oneOf: 120 - - allOf: 121 - - $ref: /schemas/types.yaml#/definitions/uint32 122 - - maxItems: 1 123 - items: 124 - description: typical number of lines 125 - - allOf: 126 - - $ref: /schemas/types.yaml#/definitions/uint32-array 127 - - minItems: 3 128 - maxItems: 3 129 - items: 130 - description: min, typ, max number of lines 114 + - $ref: /schemas/types.yaml#/definitions/uint32 115 + maxItems: 1 116 + items: 117 + description: typical number of lines 118 + - $ref: /schemas/types.yaml#/definitions/uint32-array 119 + minItems: 3 120 + maxItems: 3 121 + items: 122 + description: min, typ, max number of lines 131 123 132 124 vback-porch: 133 125 description: Vertical back porch panel timing 134 126 oneOf: 135 - - allOf: 136 - - $ref: /schemas/types.yaml#/definitions/uint32 137 - - maxItems: 1 138 - items: 139 - description: typical number of lines 140 - - allOf: 141 - - $ref: /schemas/types.yaml#/definitions/uint32-array 142 - - minItems: 3 143 - maxItems: 3 144 - items: 145 - description: min, typ, max number of lines 127 + - $ref: /schemas/types.yaml#/definitions/uint32 128 + maxItems: 1 129 + items: 130 + description: typical number of lines 131 + - $ref: /schemas/types.yaml#/definitions/uint32-array 132 + minItems: 3 133 + maxItems: 3 134 + items: 135 + description: min, typ, max number of lines 146 136 147 137 vsync-len: 148 138 description: Vertical sync length panel timing 149 139 oneOf: 150 - - allOf: 151 - - $ref: /schemas/types.yaml#/definitions/uint32 152 - - maxItems: 1 153 - items: 154 - description: typical number of lines 155 - - allOf: 156 - - $ref: /schemas/types.yaml#/definitions/uint32-array 157 - - minItems: 3 158 - maxItems: 3 159 - items: 160 - description: min, typ, max number of lines 140 + - $ref: /schemas/types.yaml#/definitions/uint32 141 + maxItems: 1 142 + items: 143 + description: typical number of lines 144 + - $ref: /schemas/types.yaml#/definitions/uint32-array 145 + minItems: 3 146 + maxItems: 3 147 + items: 148 + description: min, typ, max number of lines 161 149 162 150 hsync-active: 163 151 description: |
+1 -1
Documentation/devicetree/bindings/display/panel/sony,acx424akp.yaml
··· 18 18 reg: true 19 19 reset-gpios: true 20 20 vddi-supply: 21 - description: regulator that supplies the vddi voltage 21 + description: regulator that supplies the vddi voltage 22 22 enforce-video-mode: true 23 23 24 24 required:
+2 -2
Documentation/devicetree/bindings/display/panel/xinpeng,xpp055c272.yaml
··· 19 19 backlight: true 20 20 reset-gpios: true 21 21 iovcc-supply: 22 - description: regulator that supplies the iovcc voltage 22 + description: regulator that supplies the iovcc voltage 23 23 vci-supply: 24 - description: regulator that supplies the vci voltage 24 + description: regulator that supplies the vci voltage 25 25 26 26 required: 27 27 - compatible
+9 -9
Documentation/devicetree/bindings/display/renesas,cmm.yaml
··· 21 21 compatible: 22 22 oneOf: 23 23 - items: 24 - - enum: 25 - - renesas,r8a7795-cmm 26 - - renesas,r8a7796-cmm 27 - - renesas,r8a77965-cmm 28 - - renesas,r8a77990-cmm 29 - - renesas,r8a77995-cmm 30 - - const: renesas,rcar-gen3-cmm 24 + - enum: 25 + - renesas,r8a7795-cmm 26 + - renesas,r8a7796-cmm 27 + - renesas,r8a77965-cmm 28 + - renesas,r8a77990-cmm 29 + - renesas,r8a77995-cmm 30 + - const: renesas,rcar-gen3-cmm 31 31 - items: 32 - - const: renesas,rcar-gen2-cmm 32 + - const: renesas,rcar-gen2-cmm 33 33 34 34 reg: 35 35 maxItems: 1 ··· 60 60 cmm0: cmm@fea40000 { 61 61 compatible = "renesas,r8a7796-cmm", 62 62 "renesas,rcar-gen3-cmm"; 63 - reg = <0 0xfea40000 0 0x1000>; 63 + reg = <0xfea40000 0x1000>; 64 64 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 65 65 clocks = <&cpg CPG_MOD 711>; 66 66 resets = <&cpg 711>;
+9 -10
Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml
··· 88 88 - "#size-cells" 89 89 90 90 ti,am65x-oldi-io-ctrl: 91 - allOf: 92 - - $ref: "/schemas/types.yaml#/definitions/phandle-array" 93 - - maxItems: 1 91 + $ref: "/schemas/types.yaml#/definitions/phandle-array" 92 + maxItems: 1 94 93 description: 95 94 phandle to syscon device node mapping OLDI IO_CTRL registers. 96 95 The mapped range should point to OLDI_DAT0_IO_CTRL, map it and ··· 122 123 123 124 dss: dss@4a00000 { 124 125 compatible = "ti,am65x-dss"; 125 - reg = <0x0 0x04a00000 0x0 0x1000>, /* common */ 126 - <0x0 0x04a02000 0x0 0x1000>, /* vidl1 */ 127 - <0x0 0x04a06000 0x0 0x1000>, /* vid */ 128 - <0x0 0x04a07000 0x0 0x1000>, /* ovr1 */ 129 - <0x0 0x04a08000 0x0 0x1000>, /* ovr2 */ 130 - <0x0 0x04a0a000 0x0 0x1000>, /* vp1 */ 131 - <0x0 0x04a0b000 0x0 0x1000>; /* vp2 */ 126 + reg = <0x04a00000 0x1000>, /* common */ 127 + <0x04a02000 0x1000>, /* vidl1 */ 128 + <0x04a06000 0x1000>, /* vid */ 129 + <0x04a07000 0x1000>, /* ovr1 */ 130 + <0x04a08000 0x1000>, /* ovr2 */ 131 + <0x04a0a000 0x1000>, /* vp1 */ 132 + <0x04a0b000 0x1000>; /* vp2 */ 132 133 reg-names = "common", "vidl1", "vid", 133 134 "ovr1", "ovr2", "vp1", "vp2"; 134 135 ti,am65x-oldi-io-ctrl = <&dss_oldi_io_ctrl>;
+17 -17
Documentation/devicetree/bindings/display/ti/ti,j721e-dss.yaml
··· 156 156 157 157 dss: dss@4a00000 { 158 158 compatible = "ti,j721e-dss"; 159 - reg = <0x00 0x04a00000 0x00 0x10000>, /* common_m */ 160 - <0x00 0x04a10000 0x00 0x10000>, /* common_s0*/ 161 - <0x00 0x04b00000 0x00 0x10000>, /* common_s1*/ 162 - <0x00 0x04b10000 0x00 0x10000>, /* common_s2*/ 163 - <0x00 0x04a20000 0x00 0x10000>, /* vidl1 */ 164 - <0x00 0x04a30000 0x00 0x10000>, /* vidl2 */ 165 - <0x00 0x04a50000 0x00 0x10000>, /* vid1 */ 166 - <0x00 0x04a60000 0x00 0x10000>, /* vid2 */ 167 - <0x00 0x04a70000 0x00 0x10000>, /* ovr1 */ 168 - <0x00 0x04a90000 0x00 0x10000>, /* ovr2 */ 169 - <0x00 0x04ab0000 0x00 0x10000>, /* ovr3 */ 170 - <0x00 0x04ad0000 0x00 0x10000>, /* ovr4 */ 171 - <0x00 0x04a80000 0x00 0x10000>, /* vp1 */ 172 - <0x00 0x04aa0000 0x00 0x10000>, /* vp2 */ 173 - <0x00 0x04ac0000 0x00 0x10000>, /* vp3 */ 174 - <0x00 0x04ae0000 0x00 0x10000>, /* vp4 */ 175 - <0x00 0x04af0000 0x00 0x10000>; /* wb */ 159 + reg = <0x04a00000 0x10000>, /* common_m */ 160 + <0x04a10000 0x10000>, /* common_s0*/ 161 + <0x04b00000 0x10000>, /* common_s1*/ 162 + <0x04b10000 0x10000>, /* common_s2*/ 163 + <0x04a20000 0x10000>, /* vidl1 */ 164 + <0x04a30000 0x10000>, /* vidl2 */ 165 + <0x04a50000 0x10000>, /* vid1 */ 166 + <0x04a60000 0x10000>, /* vid2 */ 167 + <0x04a70000 0x10000>, /* ovr1 */ 168 + <0x04a90000 0x10000>, /* ovr2 */ 169 + <0x04ab0000 0x10000>, /* ovr3 */ 170 + <0x04ad0000 0x10000>, /* ovr4 */ 171 + <0x04a80000 0x10000>, /* vp1 */ 172 + <0x04aa0000 0x10000>, /* vp2 */ 173 + <0x04ac0000 0x10000>, /* vp3 */ 174 + <0x04ae0000 0x10000>, /* vp4 */ 175 + <0x04af0000 0x10000>; /* wb */ 176 176 reg-names = "common_m", "common_s0", 177 177 "common_s1", "common_s2", 178 178 "vidl1", "vidl2","vid1","vid2",
+1 -2
Documentation/devicetree/bindings/dma/dma-common.yaml
··· 31 31 kernel. i.e. first channel corresponds to LSB. 32 32 The first item in the array is for channels 0-31, the second is for 33 33 channels 32-63, etc. 34 - allOf: 35 - - $ref: /schemas/types.yaml#/definitions/uint32-array 34 + $ref: /schemas/types.yaml#/definitions/uint32-array 36 35 items: 37 36 minItems: 1 38 37 # Should be enough
+80
Documentation/devicetree/bindings/dma/ingenic,dma.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/dma/ingenic,dma.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Ingenic SoCs DMA Controller DT bindings 8 + 9 + maintainers: 10 + - Paul Cercueil <paul@crapouillou.net> 11 + 12 + allOf: 13 + - $ref: "dma-controller.yaml#" 14 + 15 + properties: 16 + compatible: 17 + enum: 18 + - ingenic,jz4740-dma 19 + - ingenic,jz4725b-dma 20 + - ingenic,jz4770-dma 21 + - ingenic,jz4780-dma 22 + - ingenic,x1000-dma 23 + - ingenic,x1830-dma 24 + 25 + reg: 26 + items: 27 + - description: Channel-specific registers 28 + - description: System control registers 29 + 30 + interrupts: 31 + maxItems: 1 32 + 33 + clocks: 34 + maxItems: 1 35 + 36 + "#dma-cells": 37 + const: 2 38 + description: > 39 + DMA clients must use the format described in dma.txt, giving a phandle 40 + to the DMA controller plus the following 2 integer cells: 41 + 42 + - Request type: The DMA request type for transfers to/from the 43 + device on the allocated channel, as defined in the SoC documentation. 44 + 45 + - Channel: If set to 0xffffffff, any available channel will be allocated 46 + for the client. Otherwise, the exact channel specified will be used. 47 + The channel should be reserved on the DMA controller using the 48 + ingenic,reserved-channels property. 49 + 50 + ingenic,reserved-channels: 51 + $ref: /schemas/types.yaml#definitions/uint32 52 + description: > 53 + Bitmask of channels to reserve for devices that need a specific 54 + channel. These channels will only be assigned when explicitely 55 + requested by a client. The primary use for this is channels 0 and 56 + 1, which can be configured to have special behaviour for NAND/BCH 57 + when using programmable firmware. 58 + 59 + required: 60 + - compatible 61 + - reg 62 + - interrupts 63 + - clocks 64 + 65 + examples: 66 + - | 67 + #include <dt-bindings/clock/jz4780-cgu.h> 68 + dma: dma-controller@13420000 { 69 + compatible = "ingenic,jz4780-dma"; 70 + reg = <0x13420000 0x400>, <0x13421000 0x40>; 71 + 72 + interrupt-parent = <&intc>; 73 + interrupts = <10>; 74 + 75 + clocks = <&cgu JZ4780_CLK_PDMA>; 76 + 77 + #dma-cells = <2>; 78 + 79 + ingenic,reserved-channels = <0x3>; 80 + };
-64
Documentation/devicetree/bindings/dma/jz4780-dma.txt
··· 1 - * Ingenic XBurst DMA Controller 2 - 3 - Required properties: 4 - 5 - - compatible: Should be one of: 6 - * ingenic,jz4740-dma 7 - * ingenic,jz4725b-dma 8 - * ingenic,jz4770-dma 9 - * ingenic,jz4780-dma 10 - * ingenic,x1000-dma 11 - * ingenic,x1830-dma 12 - - reg: Should contain the DMA channel registers location and length, followed 13 - by the DMA controller registers location and length. 14 - - interrupts: Should contain the interrupt specifier of the DMA controller. 15 - - clocks: Should contain a clock specifier for the JZ4780/X1000/X1830 PDMA 16 - clock. 17 - - #dma-cells: Must be <2>. Number of integer cells in the dmas property of 18 - DMA clients (see below). 19 - 20 - Optional properties: 21 - 22 - - ingenic,reserved-channels: Bitmask of channels to reserve for devices that 23 - need a specific channel. These channels will only be assigned when explicitly 24 - requested by a client. The primary use for this is channels 0 and 1, which 25 - can be configured to have special behaviour for NAND/BCH when using 26 - programmable firmware. 27 - 28 - Example: 29 - 30 - dma: dma-controller@13420000 { 31 - compatible = "ingenic,jz4780-dma"; 32 - reg = <0x13420000 0x400 33 - 0x13421000 0x40>; 34 - 35 - interrupt-parent = <&intc>; 36 - interrupts = <10>; 37 - 38 - clocks = <&cgu JZ4780_CLK_PDMA>; 39 - 40 - #dma-cells = <2>; 41 - 42 - ingenic,reserved-channels = <0x3>; 43 - }; 44 - 45 - DMA clients must use the format described in dma.txt, giving a phandle to the 46 - DMA controller plus the following 2 integer cells: 47 - 48 - 1. Request type: The DMA request type for transfers to/from the device on 49 - the allocated channel, as defined in the SoC documentation. 50 - 51 - 2. Channel: If set to 0xffffffff, any available channel will be allocated for 52 - the client. Otherwise, the exact channel specified will be used. The channel 53 - should be reserved on the DMA controller using the ingenic,reserved-channels 54 - property. 55 - 56 - Example: 57 - 58 - uart0: serial@10030000 { 59 - ... 60 - dmas = <&dma 0x14 0xffffffff 61 - &dma 0x15 0xffffffff>; 62 - dma-names = "tx", "rx"; 63 - ... 64 - };
+2 -1
Documentation/devicetree/bindings/dma/mtk-uart-apdma.txt
··· 21 21 Examples: 22 22 23 23 apdma: dma-controller@11000400 { 24 - compatible = "mediatek,mt2712-uart-dma"; 24 + compatible = "mediatek,mt2712-uart-dma", 25 + "mediatek,mt6577-uart-dma"; 25 26 reg = <0 0x11000400 0 0x80>, 26 27 <0 0x11000480 0 0x80>, 27 28 <0 0x11000500 0 0x80>,
+1 -1
Documentation/devicetree/bindings/dma/sifive,fu540-c000-pdma.yaml
··· 49 49 - | 50 50 dma@3000000 { 51 51 compatible = "sifive,fu540-c000-pdma"; 52 - reg = <0x0 0x3000000 0x0 0x8000>; 52 + reg = <0x3000000 0x8000>; 53 53 interrupts = <23 24 25 26 27 28 29 30>; 54 54 #dma-cells = <1>; 55 55 };
+11 -18
Documentation/devicetree/bindings/dma/ti/k3-udma.yaml
··· 69 69 maxItems: 3 70 70 71 71 reg-names: 72 - items: 73 - - const: gcfg 74 - - const: rchanrt 75 - - const: tchanrt 72 + items: 73 + - const: gcfg 74 + - const: rchanrt 75 + - const: tchanrt 76 76 77 77 msi-parent: true 78 78 79 79 ti,sci: 80 80 description: phandle to TI-SCI compatible System controller node 81 - allOf: 82 - - $ref: /schemas/types.yaml#/definitions/phandle 81 + $ref: /schemas/types.yaml#/definitions/phandle 83 82 84 83 ti,sci-dev-id: 85 84 description: TI-SCI device id of UDMAP 86 - allOf: 87 - - $ref: /schemas/types.yaml#/definitions/uint32 85 + $ref: /schemas/types.yaml#/definitions/uint32 88 86 89 87 ti,ringacc: 90 88 description: phandle to the ring accelerator node 91 - allOf: 92 - - $ref: /schemas/types.yaml#/definitions/phandle 89 + $ref: /schemas/types.yaml#/definitions/phandle 93 90 94 91 ti,sci-rm-range-tchan: 95 92 description: | 96 93 Array of UDMA tchan resource subtypes for resource allocation for this 97 94 host 98 - allOf: 99 - - $ref: /schemas/types.yaml#/definitions/uint32-array 95 + $ref: /schemas/types.yaml#/definitions/uint32-array 100 96 minItems: 1 101 97 # Should be enough 102 98 maxItems: 255 ··· 101 105 description: | 102 106 Array of UDMA rchan resource subtypes for resource allocation for this 103 107 host 104 - allOf: 105 - - $ref: /schemas/types.yaml#/definitions/uint32-array 108 + $ref: /schemas/types.yaml#/definitions/uint32-array 106 109 minItems: 1 107 110 # Should be enough 108 111 maxItems: 255 ··· 110 115 description: | 111 116 Array of UDMA rflow resource subtypes for resource allocation for this 112 117 host 113 - allOf: 114 - - $ref: /schemas/types.yaml#/definitions/uint32-array 118 + $ref: /schemas/types.yaml#/definitions/uint32-array 115 119 minItems: 1 116 120 # Should be enough 117 121 maxItems: 255 ··· 136 142 properties: 137 143 ti,udma-atype: 138 144 description: ATYPE value which should be used by non slave channels 139 - allOf: 140 - - $ref: /schemas/types.yaml#/definitions/uint32 145 + $ref: /schemas/types.yaml#/definitions/uint32 141 146 142 147 required: 143 148 - ti,udma-atype
+5 -8
Documentation/devicetree/bindings/eeprom/at24.yaml
··· 34 34 - minItems: 1 35 35 maxItems: 2 36 36 items: 37 - - pattern: "^(atmel|catalyst|microchip|nxp|ramtron|renesas|rohm|st),(24(c|cs|mac)[0-9]+|spd)$" 37 + - pattern: "^(atmel|catalyst|microchip|nxp|ramtron|renesas|rohm|st),(24(c|cs|lc|mac)[0-9]+|spd)$" 38 38 - pattern: "^atmel,(24(c|cs|mac)[0-9]+|spd)$" 39 39 - oneOf: 40 40 - items: ··· 118 118 maxItems: 1 119 119 120 120 pagesize: 121 - allOf: 122 - - $ref: /schemas/types.yaml#/definitions/uint32 123 121 description: 124 122 The length of the pagesize for writing. Please consult the 125 123 manual of your device, that value varies a lot. A wrong value 126 124 may result in data loss! If not specified, a safety value of 127 125 '1' is used which will be very slow. 128 - enum: [ 1, 8, 16, 32, 64, 128, 258 ] 126 + $ref: /schemas/types.yaml#/definitions/uint32 127 + enum: [1, 8, 16, 32, 64, 128, 256] 129 128 default: 1 130 129 131 130 read-only: ··· 147 148 wp-gpios: true 148 149 149 150 address-width: 150 - allOf: 151 - - $ref: /schemas/types.yaml#/definitions/uint32 152 151 description: 153 152 Number of address bits. 153 + $ref: /schemas/types.yaml#/definitions/uint32 154 154 default: 8 155 155 enum: [ 8, 16 ] 156 156 157 157 num-addresses: 158 - allOf: 159 - - $ref: /schemas/types.yaml#/definitions/uint32 160 158 description: 161 159 Total number of i2c slave addresses this device takes. 160 + $ref: /schemas/types.yaml#/definitions/uint32 162 161 default: 1 163 162 minimum: 1 164 163 maximum: 8
+6 -11
Documentation/devicetree/bindings/example-schema.yaml
··· 138 138 # 'description'. 139 139 vendor,int-property: 140 140 description: Vendor specific properties must have a description 141 - # 'allOf' is the json-schema way of subclassing a schema. Here the base 142 - # type schema is referenced and then additional constraints on the values 143 - # are added. 144 - allOf: 145 - - $ref: /schemas/types.yaml#/definitions/uint32 146 - - enum: [2, 4, 6, 8, 10] 141 + $ref: /schemas/types.yaml#/definitions/uint32 142 + enum: [2, 4, 6, 8, 10] 147 143 148 144 vendor,bool-property: 149 145 description: Vendor specific properties must have a description. Boolean ··· 150 154 vendor,string-array-property: 151 155 description: Vendor specific properties should reference a type in the 152 156 core schema. 153 - allOf: 154 - - $ref: /schemas/types.yaml#/definitions/string-array 155 - - items: 156 - - enum: [ foo, bar ] 157 - - enum: [ baz, boo ] 157 + $ref: /schemas/types.yaml#/definitions/string-array 158 + items: 159 + - enum: [foo, bar] 160 + - enum: [baz, boo] 158 161 159 162 vendor,property-in-standard-units-microvolt: 160 163 description: Vendor specific properties having a standard unit suffix
-76
Documentation/devicetree/bindings/extcon/extcon-arizona.txt
··· 1 - Cirrus Logic Arizona class audio SoCs 2 - 3 - These devices are audio SoCs with extensive digital capabilities and a range 4 - of analogue I/O. 5 - 6 - This document lists Extcon specific bindings, see the primary binding document: 7 - ../mfd/arizona.txt 8 - 9 - Optional properties: 10 - 11 - - wlf,hpdet-channel : Headphone detection channel. 12 - ARIZONA_ACCDET_MODE_HPL or 1 - Headphone detect mode is set to HPDETL 13 - ARIZONA_ACCDET_MODE_HPR or 2 - Headphone detect mode is set to HPDETR 14 - If this node is not mentioned or if the value is unknown, then 15 - headphone detection mode is set to HPDETL. 16 - 17 - - wlf,use-jd2 : Use the additional JD input along with JD1 for dual pin jack 18 - detection. 19 - - wlf,use-jd2-nopull : Internal pull on JD2 is disabled when used for 20 - jack detection. 21 - - wlf,jd-invert : Invert the polarity of the jack detection switch 22 - 23 - - wlf,micd-software-compare : Use a software comparison to determine mic 24 - presence 25 - - wlf,micd-detect-debounce : Additional software microphone detection 26 - debounce specified in milliseconds. 27 - - wlf,micd-pol-gpio : GPIO specifier for the GPIO controlling the headset 28 - polarity if one exists. 29 - - wlf,micd-bias-start-time : Time allowed for MICBIAS to startup prior to 30 - performing microphone detection, specified as per the ARIZONA_MICD_TIME_XXX 31 - defines. 32 - - wlf,micd-rate : Delay between successive microphone detection measurements, 33 - specified as per the ARIZONA_MICD_TIME_XXX defines. 34 - - wlf,micd-dbtime : Microphone detection hardware debounces specified as the 35 - number of measurements to take, valid values being 2 and 4. 36 - - wlf,micd-timeout-ms : Timeout for microphone detection, specified in 37 - milliseconds. 38 - - wlf,micd-force-micbias : Force MICBIAS continuously on during microphone 39 - detection. 40 - - wlf,micd-configs : Headset polarity configurations (generally used for 41 - detection of CTIA / OMTP headsets), the field can be of variable length 42 - but should always be a multiple of 3 cells long, each three cell group 43 - represents one polarity configuration. 44 - The first cell defines the accessory detection pin, zero will use MICDET1 45 - and all other values will use MICDET2. 46 - The second cell represents the MICBIAS to be used. 47 - The third cell represents the value of the micd-pol-gpio pin. 48 - 49 - - wlf,gpsw : Settings for the general purpose switch, set as one of the 50 - ARIZONA_GPSW_XXX defines. 51 - 52 - Example: 53 - 54 - codec: wm8280@0 { 55 - compatible = "wlf,wm8280"; 56 - reg = <0>; 57 - ... 58 - 59 - wlf,use-jd2; 60 - wlf,use-jd2-nopull; 61 - wlf,jd-invert; 62 - 63 - wlf,micd-software-compare; 64 - wlf,micd-detect-debounce = <0>; 65 - wlf,micd-pol-gpio = <&codec 2 0>; 66 - wlf,micd-rate = <ARIZONA_MICD_TIME_8MS>; 67 - wlf,micd-dbtime = <4>; 68 - wlf,micd-timeout-ms = <100>; 69 - wlf,micd-force-micbias; 70 - wlf,micd-configs = < 71 - 0 1 0 /* MICDET1 MICBIAS1 GPIO=low */ 72 - 1 2 1 /* MICDET2 MICBIAS2 GPIO=high */ 73 - >; 74 - 75 - wlf,gpsw = <ARIZONA_GPSW_OPEN>; 76 - };
+1 -2
Documentation/devicetree/bindings/extcon/extcon-usbc-cros-ec.yaml
··· 22 22 const: google,extcon-usbc-cros-ec 23 23 24 24 google,usb-port-id: 25 - allOf: 26 - - $ref: /schemas/types.yaml#/definitions/uint32 25 + $ref: /schemas/types.yaml#/definitions/uint32 27 26 description: the port id 28 27 minimum: 0 29 28 maximum: 255
+125
Documentation/devicetree/bindings/extcon/wlf,arizona.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/extcon/wlf,arizona.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Cirrus Logic/Wolfson Microelectronics Arizona class audio SoCs 8 + 9 + maintainers: 10 + - patches@opensource.cirrus.com 11 + 12 + description: | 13 + These devices are audio SoCs with extensive digital capabilities and a 14 + range of analogue I/O. 15 + 16 + This document lists Extcon specific bindings, see the primary binding 17 + document ../mfd/arizona.yaml 18 + 19 + properties: 20 + wlf,hpdet-channel: 21 + description: 22 + Headphone detection channel. ARIZONA_ACCDET_MODE_HPL/1 sets the 23 + headphone detect mode to HPDETL, ARIZONA_ACCDET_MODE_HPR/2 sets it 24 + to HPDETR. If this node is not included or if the value is unknown, 25 + then headphone detection mode is set to HPDETL. 26 + $ref: "/schemas/types.yaml#/definitions/uint32" 27 + minimum: 1 28 + maximum: 2 29 + 30 + wlf,use-jd2: 31 + description: 32 + Use the additional JD input along with JD1 for dual pin jack detection. 33 + type: boolean 34 + 35 + wlf,use-jd2-nopull: 36 + description: 37 + Internal pull on JD2 is disabled when used for jack detection. 38 + type: boolean 39 + 40 + wlf,jd-invert: 41 + description: 42 + Invert the polarity of the jack detection switch. 43 + type: boolean 44 + 45 + wlf,micd-software-compare: 46 + description: 47 + Use a software comparison to determine mic presence. 48 + type: boolean 49 + 50 + wlf,micd-detect-debounce: 51 + description: 52 + Additional software microphone detection debounce specified in 53 + milliseconds. 54 + $ref: "/schemas/types.yaml#/definitions/uint32" 55 + 56 + wlf,micd-pol-gpio: 57 + description: 58 + GPIO specifier for the GPIO controlling the headset polarity if one 59 + exists. 60 + maxItems: 1 61 + 62 + wlf,micd-bias-start-time: 63 + description: 64 + Time allowed for MICBIAS to startup prior to performing microphone 65 + detection, specified as per the ARIZONA_MICD_TIME_XXX defines. 66 + $ref: "/schemas/types.yaml#/definitions/uint32" 67 + minimum: 0 68 + maximum: 12 69 + 70 + wlf,micd-rate: 71 + description: 72 + Delay between successive microphone detection measurements, specified 73 + as per the ARIZONA_MICD_TIME_XXX defines. 74 + $ref: "/schemas/types.yaml#/definitions/uint32" 75 + minimum: 0 76 + maximum: 12 77 + 78 + wlf,micd-dbtime: 79 + description: 80 + Microphone detection hardware debounces specified as the number of 81 + measurements to take. 82 + $ref: "/schemas/types.yaml#/definitions/uint32" 83 + enum: [2, 4] 84 + 85 + wlf,micd-timeout-ms: 86 + description: 87 + Timeout for microphone detection, specified in milliseconds. 88 + $ref: "/schemas/types.yaml#/definitions/uint32" 89 + 90 + wlf,micd-force-micbias: 91 + description: 92 + Force MICBIAS continuously on during microphone detection. 93 + type: boolean 94 + 95 + wlf,micd-configs: 96 + description: 97 + Headset polarity configurations (generally used for detection of 98 + CTIA / OMTP headsets), the field can be of variable length but 99 + should always be a multiple of 3 cells long, each three cell group 100 + represents one polarity configuration. 101 + $ref: "/schemas/types.yaml#/definitions/uint32-matrix" 102 + items: 103 + items: 104 + - description: 105 + The first cell defines the accessory detection pin, zero 106 + will use MICDET1 and 0x2000 will use MICDET2. 107 + enum: [ 0, 0x2000 ] 108 + - description: 109 + The second cell represents the MICBIAS to be used. Zero 110 + will use MICVDD, 1-3 will use MICBIASx. 111 + minimum: 0 112 + maximum: 3 113 + - description: 114 + The third cell represents the value of the micd-pol-gpio 115 + pin. 116 + minimum: 0 117 + maximum: 1 118 + 119 + wlf,gpsw: 120 + description: 121 + Settings for the general purpose switch, set as one of the 122 + ARIZONA_GPSW_XXX defines. 123 + $ref: "/schemas/types.yaml#/definitions/uint32" 124 + minimum: 0 125 + maximum: 3
+1 -1
Documentation/devicetree/bindings/gpio/brcm,xgs-iproc-gpio.yaml
··· 27 27 gpio-controller: true 28 28 29 29 '#gpio-cells': 30 - const: 2 30 + const: 2 31 31 32 32 ngpios: 33 33 minimum: 0
-35
Documentation/devicetree/bindings/gpio/fsl-imx-gpio.txt
··· 1 - * Freescale i.MX/MXC GPIO controller 2 - 3 - Required properties: 4 - - compatible : Should be "fsl,<soc>-gpio" 5 - - reg : Address and length of the register set for the device 6 - - interrupts : Should be the port interrupt shared by all 32 pins, if 7 - one number. If two numbers, the first one is the interrupt shared 8 - by low 16 pins and the second one is for high 16 pins. 9 - - gpio-controller : Marks the device node as a gpio controller. 10 - - #gpio-cells : Should be two. The first cell is the pin number and 11 - the second cell is used to specify the gpio polarity: 12 - 0 = active high 13 - 1 = active low 14 - - interrupt-controller: Marks the device node as an interrupt controller. 15 - - #interrupt-cells : Should be 2. The first cell is the GPIO number. 16 - The second cell bits[3:0] is used to specify trigger type and level flags: 17 - 1 = low-to-high edge triggered. 18 - 2 = high-to-low edge triggered. 19 - 4 = active high level-sensitive. 20 - 8 = active low level-sensitive. 21 - 22 - Optional properties: 23 - - clocks: the clock for clocking the GPIO silicon 24 - 25 - Example: 26 - 27 - gpio0: gpio@73f84000 { 28 - compatible = "fsl,imx51-gpio", "fsl,imx35-gpio"; 29 - reg = <0x73f84000 0x4000>; 30 - interrupts = <50 51>; 31 - gpio-controller; 32 - #gpio-cells = <2>; 33 - interrupt-controller; 34 - #interrupt-cells = <2>; 35 - };
+68
Documentation/devicetree/bindings/gpio/fsl-imx-gpio.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/gpio/fsl-imx-gpio.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Freescale i.MX/MXC GPIO controller 8 + 9 + maintainers: 10 + - Anson Huang <Anson.Huang@nxp.com> 11 + 12 + properties: 13 + compatible: 14 + enum: 15 + - fsl,imx1-gpio 16 + - fsl,imx21-gpio 17 + - fsl,imx31-gpio 18 + - fsl,imx35-gpio 19 + - fsl,imx7d-gpio 20 + 21 + reg: 22 + maxItems: 1 23 + 24 + interrupts: 25 + description: | 26 + Should be the port interrupt shared by all 32 pins, if one number. 27 + If two numbers, the first one is the interrupt shared by low 16 pins 28 + and the second one is for high 16 pins. 29 + minItems: 1 30 + maxItems: 2 31 + 32 + interrupt-controller: true 33 + 34 + "#interrupt-cells": 35 + const: 2 36 + 37 + clocks: 38 + maxItems: 1 39 + 40 + "#gpio-cells": 41 + const: 2 42 + 43 + gpio-controller: true 44 + 45 + required: 46 + - compatible 47 + - reg 48 + - interrupts 49 + - interrupt-controller 50 + - "#interrupt-cells" 51 + - "#gpio-cells" 52 + - gpio-controller 53 + 54 + additionalProperties: false 55 + 56 + examples: 57 + - | 58 + gpio0: gpio@73f84000 { 59 + compatible = "fsl,imx35-gpio"; 60 + reg = <0x73f84000 0x4000>; 61 + interrupts = <50 51>; 62 + gpio-controller; 63 + #gpio-cells = <2>; 64 + interrupt-controller; 65 + #interrupt-cells = <2>; 66 + }; 67 + 68 + ...
-88
Documentation/devicetree/bindings/gpio/gpio-mxs.txt
··· 1 - * Freescale MXS GPIO controller 2 - 3 - The Freescale MXS GPIO controller is part of MXS PIN controller. The 4 - GPIOs are organized in port/bank. Each port consists of 32 GPIOs. 5 - 6 - As the GPIO controller is embedded in the PIN controller and all the 7 - GPIO ports share the same IO space with PIN controller, the GPIO node 8 - will be represented as sub-nodes of MXS pinctrl node. 9 - 10 - Required properties for GPIO node: 11 - - compatible : Should be "fsl,<soc>-gpio". The supported SoCs include 12 - imx23 and imx28. 13 - - interrupts : Should be the port interrupt shared by all 32 pins. 14 - - gpio-controller : Marks the device node as a gpio controller. 15 - - #gpio-cells : Should be two. The first cell is the pin number and 16 - the second cell is used to specify the gpio polarity: 17 - 0 = active high 18 - 1 = active low 19 - - interrupt-controller: Marks the device node as an interrupt controller. 20 - - #interrupt-cells : Should be 2. The first cell is the GPIO number. 21 - The second cell bits[3:0] is used to specify trigger type and level flags: 22 - 1 = low-to-high edge triggered. 23 - 2 = high-to-low edge triggered. 24 - 4 = active high level-sensitive. 25 - 8 = active low level-sensitive. 26 - 27 - Note: Each GPIO port should have an alias correctly numbered in "aliases" 28 - node. 29 - 30 - Examples: 31 - 32 - aliases { 33 - gpio0 = &gpio0; 34 - gpio1 = &gpio1; 35 - gpio2 = &gpio2; 36 - gpio3 = &gpio3; 37 - gpio4 = &gpio4; 38 - }; 39 - 40 - pinctrl@80018000 { 41 - compatible = "fsl,imx28-pinctrl", "simple-bus"; 42 - reg = <0x80018000 2000>; 43 - 44 - gpio0: gpio@0 { 45 - compatible = "fsl,imx28-gpio"; 46 - interrupts = <127>; 47 - gpio-controller; 48 - #gpio-cells = <2>; 49 - interrupt-controller; 50 - #interrupt-cells = <2>; 51 - }; 52 - 53 - gpio1: gpio@1 { 54 - compatible = "fsl,imx28-gpio"; 55 - interrupts = <126>; 56 - gpio-controller; 57 - #gpio-cells = <2>; 58 - interrupt-controller; 59 - #interrupt-cells = <2>; 60 - }; 61 - 62 - gpio2: gpio@2 { 63 - compatible = "fsl,imx28-gpio"; 64 - interrupts = <125>; 65 - gpio-controller; 66 - #gpio-cells = <2>; 67 - interrupt-controller; 68 - #interrupt-cells = <2>; 69 - }; 70 - 71 - gpio3: gpio@3 { 72 - compatible = "fsl,imx28-gpio"; 73 - interrupts = <124>; 74 - gpio-controller; 75 - #gpio-cells = <2>; 76 - interrupt-controller; 77 - #interrupt-cells = <2>; 78 - }; 79 - 80 - gpio4: gpio@4 { 81 - compatible = "fsl,imx28-gpio"; 82 - interrupts = <123>; 83 - gpio-controller; 84 - #gpio-cells = <2>; 85 - interrupt-controller; 86 - #interrupt-cells = <2>; 87 - }; 88 - };
+136
Documentation/devicetree/bindings/gpio/gpio-mxs.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/gpio/gpio-mxs.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Freescale MXS GPIO controller 8 + 9 + maintainers: 10 + - Shawn Guo <shawn.guo@linaro.org> 11 + - Anson Huang <Anson.Huang@nxp.com> 12 + 13 + description: | 14 + The Freescale MXS GPIO controller is part of MXS PIN controller. 15 + The GPIOs are organized in port/bank, each port consists of 32 GPIOs. 16 + As the GPIO controller is embedded in the PIN controller and all the 17 + GPIO ports share the same IO space with PIN controller, the GPIO node 18 + will be represented as sub-nodes of MXS pinctrl node. 19 + 20 + properties: 21 + compatible: 22 + enum: 23 + - fsl,imx23-pinctrl 24 + - fsl,imx28-pinctrl 25 + 26 + '#address-cells': 27 + const: 1 28 + '#size-cells': 29 + const: 0 30 + 31 + reg: 32 + maxItems: 1 33 + 34 + patternProperties: 35 + "gpio@[0-9]+$": 36 + type: object 37 + properties: 38 + compatible: 39 + enum: 40 + - fsl,imx23-gpio 41 + - fsl,imx28-gpio 42 + 43 + reg: 44 + maxItems: 1 45 + 46 + interrupts: 47 + description: Should be the port interrupt shared by all 32 pins. 48 + maxItems: 1 49 + 50 + interrupt-controller: true 51 + 52 + "#interrupt-cells": 53 + const: 2 54 + 55 + "#gpio-cells": 56 + const: 2 57 + 58 + gpio-controller: true 59 + 60 + required: 61 + - compatible 62 + - reg 63 + - interrupts 64 + - interrupt-controller 65 + - "#interrupt-cells" 66 + - "#gpio-cells" 67 + - gpio-controller 68 + 69 + additionalProperties: false 70 + 71 + required: 72 + - compatible 73 + - reg 74 + - '#address-cells' 75 + - '#size-cells' 76 + 77 + additionalProperties: false 78 + 79 + examples: 80 + - | 81 + pinctrl@80018000 { 82 + #address-cells = <1>; 83 + #size-cells = <0>; 84 + compatible = "fsl,imx28-pinctrl"; 85 + reg = <0x80018000 0x2000>; 86 + 87 + gpio@0 { 88 + compatible = "fsl,imx28-gpio"; 89 + reg = <0>; 90 + interrupts = <127>; 91 + gpio-controller; 92 + #gpio-cells = <2>; 93 + interrupt-controller; 94 + #interrupt-cells = <2>; 95 + }; 96 + 97 + gpio@1 { 98 + compatible = "fsl,imx28-gpio"; 99 + reg = <1>; 100 + interrupts = <126>; 101 + gpio-controller; 102 + #gpio-cells = <2>; 103 + interrupt-controller; 104 + #interrupt-cells = <2>; 105 + }; 106 + 107 + gpio@2 { 108 + compatible = "fsl,imx28-gpio"; 109 + reg = <2>; 110 + interrupts = <125>; 111 + gpio-controller; 112 + #gpio-cells = <2>; 113 + interrupt-controller; 114 + #interrupt-cells = <2>; 115 + }; 116 + 117 + gpio@3 { 118 + compatible = "fsl,imx28-gpio"; 119 + reg = <3>; 120 + interrupts = <124>; 121 + gpio-controller; 122 + #gpio-cells = <2>; 123 + interrupt-controller; 124 + #interrupt-cells = <2>; 125 + }; 126 + 127 + gpio@4 { 128 + compatible = "fsl,imx28-gpio"; 129 + reg = <4>; 130 + interrupts = <123>; 131 + gpio-controller; 132 + #gpio-cells = <2>; 133 + interrupt-controller; 134 + #interrupt-cells = <2>; 135 + }; 136 + };
-94
Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt
··· 1 - * Renesas R-Car GPIO Controller 2 - 3 - Required Properties: 4 - 5 - - compatible: should contain one or more of the following: 6 - - "renesas,gpio-r8a7743": for R8A7743 (RZ/G1M) compatible GPIO controller. 7 - - "renesas,gpio-r8a7744": for R8A7744 (RZ/G1N) compatible GPIO controller. 8 - - "renesas,gpio-r8a7745": for R8A7745 (RZ/G1E) compatible GPIO controller. 9 - - "renesas,gpio-r8a77470": for R8A77470 (RZ/G1C) compatible GPIO controller. 10 - - "renesas,gpio-r8a774a1": for R8A774A1 (RZ/G2M) compatible GPIO controller. 11 - - "renesas,gpio-r8a774b1": for R8A774B1 (RZ/G2N) compatible GPIO controller. 12 - - "renesas,gpio-r8a774c0": for R8A774C0 (RZ/G2E) compatible GPIO controller. 13 - - "renesas,gpio-r8a7778": for R8A7778 (R-Car M1) compatible GPIO controller. 14 - - "renesas,gpio-r8a7779": for R8A7779 (R-Car H1) compatible GPIO controller. 15 - - "renesas,gpio-r8a7790": for R8A7790 (R-Car H2) compatible GPIO controller. 16 - - "renesas,gpio-r8a7791": for R8A7791 (R-Car M2-W) compatible GPIO controller. 17 - - "renesas,gpio-r8a7792": for R8A7792 (R-Car V2H) compatible GPIO controller. 18 - - "renesas,gpio-r8a7793": for R8A7793 (R-Car M2-N) compatible GPIO controller. 19 - - "renesas,gpio-r8a7794": for R8A7794 (R-Car E2) compatible GPIO controller. 20 - - "renesas,gpio-r8a7795": for R8A7795 (R-Car H3) compatible GPIO controller. 21 - - "renesas,gpio-r8a7796": for R8A77960 (R-Car M3-W) compatible GPIO controller. 22 - - "renesas,gpio-r8a77961": for R8A77961 (R-Car M3-W+) compatible GPIO controller. 23 - - "renesas,gpio-r8a77965": for R8A77965 (R-Car M3-N) compatible GPIO controller. 24 - - "renesas,gpio-r8a77970": for R8A77970 (R-Car V3M) compatible GPIO controller. 25 - - "renesas,gpio-r8a77980": for R8A77980 (R-Car V3H) compatible GPIO controller. 26 - - "renesas,gpio-r8a77990": for R8A77990 (R-Car E3) compatible GPIO controller. 27 - - "renesas,gpio-r8a77995": for R8A77995 (R-Car D3) compatible GPIO controller. 28 - - "renesas,rcar-gen1-gpio": for a generic R-Car Gen1 GPIO controller. 29 - - "renesas,rcar-gen2-gpio": for a generic R-Car Gen2 or RZ/G1 GPIO controller. 30 - - "renesas,rcar-gen3-gpio": for a generic R-Car Gen3 or RZ/G2 GPIO controller. 31 - - "renesas,gpio-rcar": deprecated. 32 - 33 - When compatible with the generic version nodes must list the 34 - SoC-specific version corresponding to the platform first followed by 35 - the generic version. 36 - 37 - - reg: Base address and length of each memory resource used by the GPIO 38 - controller hardware module. 39 - 40 - - interrupts: Interrupt specifier for the controllers interrupt. 41 - 42 - - gpio-controller: Marks the device node as a gpio controller. 43 - - #gpio-cells: Should be 2. The first cell is the GPIO number and the second 44 - cell specifies GPIO flags, as defined in <dt-bindings/gpio/gpio.h>. Only the 45 - GPIO_ACTIVE_HIGH and GPIO_ACTIVE_LOW flags are supported. 46 - - gpio-ranges: See gpio.txt. 47 - 48 - Optional properties: 49 - 50 - - clocks: Must contain a reference to the functional clock. The property is 51 - mandatory if the hardware implements a controllable functional clock for 52 - the GPIO instance. 53 - 54 - - gpio-reserved-ranges: See gpio.txt. 55 - 56 - Please refer to gpio.txt in this directory for the common GPIO bindings used by 57 - client devices. 58 - 59 - The GPIO controller also acts as an interrupt controller. It uses the default 60 - two cells specifier as described in Documentation/devicetree/bindings/ 61 - interrupt-controller/interrupts.txt. 62 - 63 - Example: R8A77470 (RZ/G1C) GPIO controller nodes 64 - 65 - gpio0: gpio@e6050000 { 66 - compatible = "renesas,gpio-r8a77470", 67 - "renesas,rcar-gen2-gpio"; 68 - reg = <0 0xe6050000 0 0x50>; 69 - interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 70 - #gpio-cells = <2>; 71 - gpio-controller; 72 - gpio-ranges = <&pfc 0 0 23>; 73 - #interrupt-cells = <2>; 74 - interrupt-controller; 75 - clocks = <&cpg CPG_MOD 912>; 76 - power-domains = <&sysc R8A77470_PD_ALWAYS_ON>; 77 - resets = <&cpg 912>; 78 - }; 79 - ... 80 - gpio3: gpio@e6053000 { 81 - compatible = "renesas,gpio-r8a77470", 82 - "renesas,rcar-gen2-gpio"; 83 - reg = <0 0xe6053000 0 0x50>; 84 - interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 85 - #gpio-cells = <2>; 86 - gpio-controller; 87 - gpio-ranges = <&pfc 0 96 30>; 88 - gpio-reserved-ranges = <17 10>; 89 - #interrupt-cells = <2>; 90 - interrupt-controller; 91 - clocks = <&cpg CPG_MOD 909>; 92 - power-domains = <&sysc R8A77470_PD_ALWAYS_ON>; 93 - resets = <&cpg 909>; 94 - };
+144
Documentation/devicetree/bindings/gpio/renesas,rcar-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/gpio/renesas,rcar-gpio.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Renesas R-Car General-Purpose Input/Output Ports (GPIO) 8 + 9 + maintainers: 10 + - Geert Uytterhoeven <geert+renesas@glider.be> 11 + 12 + properties: 13 + compatible: 14 + oneOf: 15 + - items: 16 + - enum: 17 + - renesas,gpio-r8a7778 # R-Car M1 18 + - renesas,gpio-r8a7779 # R-Car H1 19 + - const: renesas,rcar-gen1-gpio # R-Car Gen1 20 + 21 + - items: 22 + - enum: 23 + - renesas,gpio-r8a7742 # RZ/G1H 24 + - renesas,gpio-r8a7743 # RZ/G1M 25 + - renesas,gpio-r8a7744 # RZ/G1N 26 + - renesas,gpio-r8a7745 # RZ/G1E 27 + - renesas,gpio-r8a77470 # RZ/G1C 28 + - renesas,gpio-r8a7790 # R-Car H2 29 + - renesas,gpio-r8a7791 # R-Car M2-W 30 + - renesas,gpio-r8a7792 # R-Car V2H 31 + - renesas,gpio-r8a7793 # R-Car M2-N 32 + - renesas,gpio-r8a7794 # R-Car E2 33 + - const: renesas,rcar-gen2-gpio # R-Car Gen2 or RZ/G1 34 + 35 + - items: 36 + - enum: 37 + - renesas,gpio-r8a774a1 # RZ/G2M 38 + - renesas,gpio-r8a774b1 # RZ/G2N 39 + - renesas,gpio-r8a774c0 # RZ/G2E 40 + - renesas,gpio-r8a7795 # R-Car H3 41 + - renesas,gpio-r8a7796 # R-Car M3-W 42 + - renesas,gpio-r8a77961 # R-Car M3-W+ 43 + - renesas,gpio-r8a77965 # R-Car M3-N 44 + - renesas,gpio-r8a77970 # R-Car V3M 45 + - renesas,gpio-r8a77980 # R-Car V3H 46 + - renesas,gpio-r8a77990 # R-Car E3 47 + - renesas,gpio-r8a77995 # R-Car D3 48 + - const: renesas,rcar-gen3-gpio # R-Car Gen3 or RZ/G2 49 + 50 + reg: 51 + maxItems: 1 52 + 53 + interrupts: 54 + maxItems: 1 55 + 56 + clocks: 57 + maxItems: 1 58 + 59 + power-domains: 60 + maxItems: 1 61 + 62 + resets: 63 + maxItems: 1 64 + 65 + gpio-controller: true 66 + 67 + '#gpio-cells': 68 + const: 2 69 + 70 + interrupt-controller: true 71 + 72 + '#interrupt-cells': 73 + const: 2 74 + 75 + gpio-ranges: 76 + maxItems: 1 77 + 78 + gpio-reserved-ranges: 79 + minItems: 1 80 + maxItems: 8 81 + 82 + patternProperties: 83 + "^.*$": 84 + if: 85 + type: object 86 + then: 87 + properties: 88 + gpio-hog: true 89 + gpios: true 90 + input: true 91 + output-high: true 92 + output-low: true 93 + line-name: true 94 + 95 + required: 96 + - gpio-hog 97 + - gpios 98 + 99 + additionalProperties: false 100 + 101 + required: 102 + - compatible 103 + - reg 104 + - interrupts 105 + - gpio-controller 106 + - '#gpio-cells' 107 + - gpio-ranges 108 + - interrupt-controller 109 + - '#interrupt-cells' 110 + 111 + if: 112 + not: 113 + properties: 114 + compatible: 115 + contains: 116 + enum: 117 + - renesas,rcar-gen1-gpio 118 + then: 119 + required: 120 + - clocks 121 + - power-domains 122 + - resets 123 + 124 + additionalProperties: false 125 + 126 + examples: 127 + - | 128 + #include <dt-bindings/clock/r8a77470-cpg-mssr.h> 129 + #include <dt-bindings/interrupt-controller/arm-gic.h> 130 + #include <dt-bindings/power/r8a77470-sysc.h> 131 + gpio3: gpio@e6053000 { 132 + compatible = "renesas,gpio-r8a77470", "renesas,rcar-gen2-gpio"; 133 + reg = <0xe6053000 0x50>; 134 + interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 135 + clocks = <&cpg CPG_MOD 909>; 136 + power-domains = <&sysc R8A77470_PD_ALWAYS_ON>; 137 + resets = <&cpg 909>; 138 + gpio-controller; 139 + #gpio-cells = <2>; 140 + gpio-ranges = <&pfc 0 96 30>; 141 + gpio-reserved-ranges = <17 10>; 142 + interrupt-controller; 143 + #interrupt-cells = <2>; 144 + };
+1 -1
Documentation/devicetree/bindings/gpio/sifive,gpio.yaml
··· 57 57 compatible = "sifive,fu540-c000-gpio", "sifive,gpio0"; 58 58 interrupt-parent = <&plic>; 59 59 interrupts = <7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22>; 60 - reg = <0x0 0x10060000 0x0 0x1000>; 60 + reg = <0x10060000 0x1000>; 61 61 clocks = <&tlclk PRCI_CLK_TLCLK>; 62 62 gpio-controller; 63 63 #gpio-cells = <2>;
+6
Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
··· 43 43 44 44 operating-points-v2: true 45 45 46 + power-domains: 47 + maxItems: 1 48 + 46 49 resets: 47 50 maxItems: 2 51 + 52 + "#cooling-cells": 53 + const: 2 48 54 49 55 required: 50 56 - compatible
+11 -9
Documentation/devicetree/bindings/gpu/arm,mali-midgard.yaml
··· 16 16 oneOf: 17 17 - items: 18 18 - enum: 19 - - samsung,exynos5250-mali 19 + - samsung,exynos5250-mali 20 20 - const: arm,mali-t604 21 21 - items: 22 22 - enum: 23 - - samsung,exynos5420-mali 23 + - samsung,exynos5420-mali 24 24 - const: arm,mali-t628 25 25 - items: 26 26 - enum: 27 - - allwinner,sun50i-h6-mali 27 + - allwinner,sun50i-h6-mali 28 28 - const: arm,mali-t720 29 29 - items: 30 30 - enum: 31 - - amlogic,meson-gxm-mali 32 - - realtek,rtd1295-mali 31 + - amlogic,meson-gxm-mali 32 + - realtek,rtd1295-mali 33 33 - const: arm,mali-t820 34 34 - items: 35 35 - enum: 36 - - arm,juno-mali 36 + - arm,juno-mali 37 37 - const: arm,mali-t624 38 38 - items: 39 39 - enum: 40 - - rockchip,rk3288-mali 41 - - samsung,exynos5433-mali 40 + - rockchip,rk3288-mali 41 + - samsung,exynos5433-mali 42 42 - const: arm,mali-t760 43 43 - items: 44 44 - enum: 45 - - rockchip,rk3399-mali 45 + - rockchip,rk3399-mali 46 46 - const: arm,mali-t860 47 47 48 48 # "arm,mali-t830" ··· 86 86 87 87 "#cooling-cells": 88 88 const: 2 89 + 90 + dma-coherent: true 89 91 90 92 required: 91 93 - compatible
+4
Documentation/devicetree/bindings/gpu/arm,mali-utgard.yaml
··· 108 108 109 109 operating-points-v2: true 110 110 111 + "#cooling-cells": 112 + const: 2 113 + 111 114 required: 112 115 - compatible 113 116 - reg ··· 169 166 clocks = <&ccu 1>, <&ccu 2>; 170 167 clock-names = "bus", "core"; 171 168 resets = <&ccu 1>; 169 + #cooling-cells = <2>; 172 170 }; 173 171 174 172 ...
+1 -1
Documentation/devicetree/bindings/gpu/vivante,gc.yaml
··· 9 9 description: Vivante GPU core devices 10 10 11 11 maintainers: 12 - - Lucas Stach <l.stach@pengutronix.de> 12 + - Lucas Stach <l.stach@pengutronix.de> 13 13 14 14 properties: 15 15 compatible:
+1 -2
Documentation/devicetree/bindings/hwmon/adi,axi-fan-control.yaml
··· 34 34 description: 35 35 Value specifying the number of pulses per revolution of the controlled 36 36 FAN. 37 - allOf: 38 - - $ref: /schemas/types.yaml#/definitions/uint32 37 + $ref: /schemas/types.yaml#/definitions/uint32 39 38 enum: [1, 2, 4] 40 39 41 40 required:
+14 -18
Documentation/devicetree/bindings/hwmon/adi,ltc2947.yaml
··· 38 38 the accumulated values, this entry can also have two items which sets 39 39 energy1/charge1 and energy2/charger2 respectively. Check table 12 of the 40 40 datasheet for more information on the supported options. 41 - allOf: 42 - - $ref: /schemas/types.yaml#/definitions/uint32-array 43 - - minItems: 2 44 - maxItems: 2 45 - items: 46 - enum: [0, 1, 2, 3] 47 - default: 0 41 + $ref: /schemas/types.yaml#/definitions/uint32-array 42 + minItems: 2 43 + maxItems: 2 44 + items: 45 + enum: [0, 1, 2, 3] 46 + default: 0 48 47 49 48 adi,accumulation-deadband-microamp: 50 49 description: 51 50 This property controls the Accumulation Dead band which allows to set the 52 51 level of current below which no accumulation takes place. 53 - allOf: 54 - - $ref: /schemas/types.yaml#/definitions/uint32 52 + $ref: /schemas/types.yaml#/definitions/uint32 55 53 maximum: 255 56 54 default: 0 57 55 ··· 59 61 active high, setting it to zero makets it active low. When this property 60 62 is present, the GPIO is automatically configured as output and set to 61 63 control a fan as a function of measured temperature. 62 - allOf: 63 - - $ref: /schemas/types.yaml#/definitions/uint32 64 + $ref: /schemas/types.yaml#/definitions/uint32 64 65 enum: [0, 1] 65 66 default: 0 66 67 ··· 71 74 registers. Check table 13 of the datasheet for more information on the 72 75 supported options. This property cannot be used together with 73 76 adi,gpio-out-pol. 74 - allOf: 75 - - $ref: /schemas/types.yaml#/definitions/uint32-array 76 - - minItems: 2 77 - maxItems: 2 78 - items: 79 - enum: [0, 1, 2] 80 - default: 0 77 + $ref: /schemas/types.yaml#/definitions/uint32-array 78 + minItems: 2 79 + maxItems: 2 80 + items: 81 + enum: [0, 1, 2] 82 + default: 0 81 83 82 84 required: 83 85 - compatible
+8 -10
Documentation/devicetree/bindings/hwmon/adt7475.yaml
··· 46 46 set to 1 the attenuator is bypassed if set to 0 the attenuator is 47 47 not bypassed. If the property is absent then the attenuator 48 48 retains it's configuration from the bios/bootloader. 49 - allOf: 50 - - $ref: /schemas/types.yaml#/definitions/uint32 51 - - enum: [0, 1] 49 + $ref: /schemas/types.yaml#/definitions/uint32 50 + enum: [0, 1] 52 51 53 52 "^adi,pwm-active-state$": 54 53 description: | 55 54 Integer array, represents the active state of the pwm outputs If set to 0 56 55 the pwm uses a logic low output for 100% duty cycle. If set to 1 the pwm 57 56 uses a logic high output for 100% duty cycle. 58 - allOf: 59 - - $ref: /schemas/types.yaml#/definitions/uint32-array 60 - - minItems: 3 61 - maxItems: 3 62 - items: 63 - enum: [0, 1] 64 - default: 1 57 + $ref: /schemas/types.yaml#/definitions/uint32-array 58 + minItems: 3 59 + maxItems: 3 60 + items: 61 + enum: [0, 1] 62 + default: 1 65 63 66 64 required: 67 65 - compatible
-26
Documentation/devicetree/bindings/hwmon/cirrus,lochnagar.txt
··· 1 - Cirrus Logic Lochnagar Audio Development Board 2 - 3 - Lochnagar is an evaluation and development board for Cirrus Logic 4 - Smart CODEC and Amp devices. It allows the connection of most Cirrus 5 - Logic devices on mini-cards, as well as allowing connection of 6 - various application processor systems to provide a full evaluation 7 - platform. Audio system topology, clocking and power can all be 8 - controlled through the Lochnagar, allowing the device under test 9 - to be used in a variety of possible use cases. 10 - 11 - This binding document describes the binding for the hardware monitor 12 - portion of the driver. 13 - 14 - This binding must be part of the Lochnagar MFD binding: 15 - [4] ../mfd/cirrus,lochnagar.txt 16 - 17 - Required properties: 18 - 19 - - compatible : One of the following strings: 20 - "cirrus,lochnagar2-hwmon" 21 - 22 - Example: 23 - 24 - lochnagar-hwmon { 25 - compatible = "cirrus,lochnagar2-hwmon"; 26 - };
+35
Documentation/devicetree/bindings/hwmon/cirrus,lochnagar.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/hwmon/cirrus,lochnagar.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Cirrus Logic Lochnagar Audio Development Board 8 + 9 + maintainers: 10 + - patches@opensource.cirrus.com 11 + 12 + description: | 13 + Lochnagar is an evaluation and development board for Cirrus Logic 14 + Smart CODEC and Amp devices. It allows the connection of most Cirrus 15 + Logic devices on mini-cards, as well as allowing connection of various 16 + application processor systems to provide a full evaluation platform. 17 + Audio system topology, clocking and power can all be controlled through 18 + the Lochnagar, allowing the device under test to be used in a variety of 19 + possible use cases. 20 + 21 + This binding document describes the binding for the hardware monitor 22 + portion of the driver. 23 + 24 + This binding must be part of the Lochnagar MFD binding: 25 + [1] ../mfd/cirrus,lochnagar.yaml 26 + 27 + properties: 28 + compatible: 29 + enum: 30 + - cirrus,lochnagar2-hwmon 31 + 32 + required: 33 + - compatible 34 + 35 + additionalProperties: false
+9 -12
Documentation/devicetree/bindings/hwmon/ti,tmp513.yaml
··· 45 45 The gain value for the PGA function. This is 8, 4, 2 or 1. 46 46 The PGA gain affect the shunt voltage range. 47 47 The range will be equal to: pga-gain * 40mV 48 - allOf: 49 - - $ref: /schemas/types.yaml#/definitions/uint32 48 + $ref: /schemas/types.yaml#/definitions/uint32 50 49 enum: [1, 2, 4, 8] 51 50 default: 8 52 51 53 52 ti,bus-range-microvolt: 54 53 description: | 55 54 This is the operating range of the bus voltage in microvolt 56 - allOf: 57 - - $ref: /schemas/types.yaml#/definitions/uint32 55 + $ref: /schemas/types.yaml#/definitions/uint32 58 56 enum: [16000000, 32000000] 59 57 default: 32000000 60 58 ··· 61 63 Array of three(TMP513) or two(TMP512) n-Factor value for each remote 62 64 temperature channel. 63 65 See datasheet Table 11 for n-Factor range list and value interpretation. 64 - allOf: 65 - - $ref: /schemas/types.yaml#definitions/uint32-array 66 - - minItems: 2 67 - maxItems: 3 68 - items: 69 - default: 0x00 70 - minimum: 0x00 71 - maximum: 0xFF 66 + $ref: /schemas/types.yaml#definitions/uint32-array 67 + minItems: 2 68 + maxItems: 3 69 + items: 70 + default: 0x00 71 + minimum: 0x00 72 + maximum: 0xFF 72 73 73 74 required: 74 75 - compatible
+1 -1
Documentation/devicetree/bindings/i2c/brcm,bcm2835-i2c.txt
··· 13 13 14 14 Example: 15 15 16 - i2c@20205000 { 16 + i2c@7e205000 { 17 17 compatible = "brcm,bcm2835-i2c"; 18 18 reg = <0x7e205000 0x1000>; 19 19 interrupts = <2 21>;
+58
Documentation/devicetree/bindings/i2c/cdns,i2c-r1p10.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: "http://devicetree.org/schemas/i2c/cdns,i2c-r1p10.yaml#" 5 + $schema: "http://devicetree.org/meta-schemas/core.yaml#" 6 + 7 + title: Cadence I2C controller Device Tree Bindings 8 + 9 + maintainers: 10 + - Michal Simek <michal.simek@xilinx.com> 11 + 12 + allOf: 13 + - $ref: /schemas/i2c/i2c-controller.yaml# 14 + 15 + properties: 16 + compatible: 17 + enum: 18 + - cdns,i2c-r1p10 # cadence i2c controller version 1.0 19 + - cdns,i2c-r1p14 # cadence i2c controller version 1.4 20 + 21 + reg: 22 + maxItems: 1 23 + 24 + clocks: 25 + minItems: 1 26 + 27 + interrupts: 28 + maxItems: 1 29 + 30 + clock-frequency: 31 + minimum: 1 32 + maximum: 400000 33 + description: | 34 + Desired operating frequency, in Hz, of the bus. 35 + 36 + clock-name: 37 + const: pclk 38 + description: | 39 + Input clock name. 40 + 41 + required: 42 + - compatible 43 + - reg 44 + - clocks 45 + - interrupts 46 + 47 + examples: 48 + - | 49 + #include <dt-bindings/interrupt-controller/arm-gic.h> 50 + i2c@e0004000 { 51 + compatible = "cdns,i2c-r1p10"; 52 + clocks = <&clkc 38>; 53 + interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 54 + reg = <0xe0004000 0x1000>; 55 + clock-frequency = <400000>; 56 + #address-cells = <1>; 57 + #size-cells = <0>; 58 + };
-28
Documentation/devicetree/bindings/i2c/i2c-cadence.txt
··· 1 - Binding for the Cadence I2C controller 2 - 3 - Required properties: 4 - - reg: Physical base address and size of the controller's register area. 5 - - compatible: Should contain one of: 6 - * "cdns,i2c-r1p10" 7 - Note: Use this when cadence i2c controller version 1.0 is used. 8 - * "cdns,i2c-r1p14" 9 - Note: Use this when cadence i2c controller version 1.4 is used. 10 - - clocks: Input clock specifier. Refer to common clock bindings. 11 - - interrupts: Interrupt specifier. Refer to interrupt bindings. 12 - - #address-cells: Should be 1. 13 - - #size-cells: Should be 0. 14 - 15 - Optional properties: 16 - - clock-frequency: Desired operating frequency, in Hz, of the bus. 17 - - clock-names: Input clock name, should be 'pclk'. 18 - 19 - Example: 20 - i2c@e0004000 { 21 - compatible = "cdns,i2c-r1p10"; 22 - clocks = <&clkc 38>; 23 - interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 24 - reg = <0xe0004000 0x1000>; 25 - clock-frequency = <400000>; 26 - #address-cells = <1>; 27 - #size-cells = <0>; 28 - };
-33
Documentation/devicetree/bindings/i2c/i2c-jz4780.txt
··· 1 - * Ingenic JZ4780 I2C Bus controller 2 - 3 - Required properties: 4 - - compatible: should be one of the following: 5 - - "ingenic,jz4780-i2c" for the JZ4780 6 - - "ingenic,x1000-i2c" for the X1000 7 - - reg: Should contain the address & size of the I2C controller registers. 8 - - interrupts: Should specify the interrupt provided by parent. 9 - - clocks: Should contain a single clock specifier for the JZ4780 I2C clock. 10 - - clock-frequency: desired I2C bus clock frequency in Hz. 11 - 12 - Recommended properties: 13 - - pinctrl-names: should be "default"; 14 - - pinctrl-0: phandle to pinctrl function 15 - 16 - Example 17 - 18 - / { 19 - i2c4: i2c4@10054000 { 20 - compatible = "ingenic,jz4780-i2c"; 21 - reg = <0x10054000 0x1000>; 22 - 23 - interrupt-parent = <&intc>; 24 - interrupts = <56>; 25 - 26 - clocks = <&cgu JZ4780_CLK_SMB4>; 27 - clock-frequency = <100000>; 28 - pinctrl-names = "default"; 29 - pinctrl-0 = <&pins_i2c4_data>; 30 - 31 - }; 32 - }; 33 -
+5 -5
Documentation/devicetree/bindings/i2c/i2c-rk3x.yaml
··· 28 28 - const: rockchip,rk3399-i2c 29 29 - items: 30 30 - enum: 31 - - rockchip,rk3036-i2c 32 - - rockchip,rk3368-i2c 31 + - rockchip,rk3036-i2c 32 + - rockchip,rk3368-i2c 33 33 - const: rockchip,rk3288-i2c 34 34 - items: 35 35 - enum: 36 - - rockchip,px30-i2c 37 - - rockchip,rk3308-i2c 38 - - rockchip,rk3328-i2c 36 + - rockchip,px30-i2c 37 + - rockchip,rk3308-i2c 38 + - rockchip,rk3328-i2c 39 39 - const: rockchip,rk3399-i2c 40 40 41 41 reg:
-25
Documentation/devicetree/bindings/i2c/i2c-xiic.txt
··· 1 - Xilinx IIC controller: 2 - 3 - Required properties: 4 - - compatible : Must be "xlnx,xps-iic-2.00.a" 5 - - reg : IIC register location and length 6 - - interrupts : IIC controller unterrupt 7 - - #address-cells = <1> 8 - - #size-cells = <0> 9 - - clocks: Input clock specifier. Refer to common clock bindings. 10 - 11 - Optional properties: 12 - - Child nodes conforming to i2c bus binding 13 - - clock-names: Input clock name, should be 'pclk'. 14 - 15 - Example: 16 - 17 - axi_iic_0: i2c@40800000 { 18 - compatible = "xlnx,xps-iic-2.00.a"; 19 - clocks = <&clkc 15>; 20 - interrupts = < 1 2 >; 21 - reg = < 0x40800000 0x10000 >; 22 - 23 - #size-cells = <0>; 24 - #address-cells = <1>; 25 - };
+88
Documentation/devicetree/bindings/i2c/ingenic,i2c.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/i2c/ingenic,i2c.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Ingenic SoCs I2C controller devicetree bindings 8 + 9 + maintainers: 10 + - Paul Cercueil <paul@crapouillou.net> 11 + 12 + allOf: 13 + - $ref: /schemas/i2c/i2c-controller.yaml# 14 + 15 + properties: 16 + $nodename: 17 + pattern: "^i2c@[0-9a-f]+$" 18 + 19 + compatible: 20 + enum: 21 + - ingenic,jz4780-i2c 22 + - ingenic,x1000-i2c 23 + 24 + reg: 25 + maxItems: 1 26 + 27 + interrupts: 28 + maxItems: 1 29 + 30 + clocks: 31 + maxItems: 1 32 + 33 + clock-frequency: 34 + enum: [ 100000, 400000 ] 35 + 36 + dmas: 37 + items: 38 + - description: DMA controller phandle and request line for RX 39 + - description: DMA controller phandle and request line for TX 40 + 41 + dma-names: 42 + items: 43 + - const: rx 44 + - const: tx 45 + 46 + required: 47 + - compatible 48 + - reg 49 + - interrupts 50 + - clocks 51 + - clock-frequency 52 + - dmas 53 + - dma-names 54 + 55 + unevaluatedProperties: false 56 + 57 + examples: 58 + - | 59 + #include <dt-bindings/clock/jz4780-cgu.h> 60 + #include <dt-bindings/dma/jz4780-dma.h> 61 + #include <dt-bindings/interrupt-controller/irq.h> 62 + i2c@10054000 { 63 + compatible = "ingenic,jz4780-i2c"; 64 + #address-cells = <1>; 65 + #size-cells = <0>; 66 + reg = <0x10054000 0x1000>; 67 + 68 + interrupt-parent = <&intc>; 69 + interrupts = <56>; 70 + 71 + clocks = <&cgu JZ4780_CLK_SMB4>; 72 + pinctrl-names = "default"; 73 + pinctrl-0 = <&pins_i2c4_data>; 74 + 75 + dmas = <&dma JZ4780_DMA_SMB4_RX 0xffffffff>, 76 + <&dma JZ4780_DMA_SMB4_TX 0xffffffff>; 77 + dma-names = "rx", "tx"; 78 + 79 + clock-frequency = <400000>; 80 + 81 + rtc@51 { 82 + compatible = "nxp,pcf8563"; 83 + reg = <0x51>; 84 + 85 + interrupt-parent = <&gpf>; 86 + interrupts = <30 IRQ_TYPE_LEVEL_LOW>; 87 + }; 88 + };
+1
Documentation/devicetree/bindings/i2c/renesas,i2c.txt
··· 2 2 3 3 Required properties: 4 4 - compatible: 5 + "renesas,i2c-r8a7742" if the device is a part of a R8A7742 SoC. 5 6 "renesas,i2c-r8a7743" if the device is a part of a R8A7743 SoC. 6 7 "renesas,i2c-r8a7744" if the device is a part of a R8A7744 SoC. 7 8 "renesas,i2c-r8a7745" if the device is a part of a R8A7745 SoC.
+1
Documentation/devicetree/bindings/i2c/renesas,iic.txt
··· 4 4 - compatible : 5 5 - "renesas,iic-r8a73a4" (R-Mobile APE6) 6 6 - "renesas,iic-r8a7740" (R-Mobile A1) 7 + - "renesas,iic-r8a7742" (RZ/G1H) 7 8 - "renesas,iic-r8a7743" (RZ/G1M) 8 9 - "renesas,iic-r8a7744" (RZ/G1N) 9 10 - "renesas,iic-r8a7745" (RZ/G1E)
+8 -7
Documentation/devicetree/bindings/i2c/st,stm32-i2c.yaml
··· 17 17 contains: 18 18 enum: 19 19 - st,stm32f7-i2c 20 + - st,stm32mp15-i2c 20 21 then: 21 22 properties: 22 23 i2c-scl-rising-time-ns: ··· 31 30 Fast Mode Plus speed is selected by slave. 32 31 Format is phandle to syscfg / register offset within 33 32 syscfg / register bitmask for FMP bit. 34 - allOf: 35 - - $ref: "/schemas/types.yaml#/definitions/phandle-array" 36 - - items: 37 - minItems: 3 38 - maxItems: 3 33 + $ref: "/schemas/types.yaml#/definitions/phandle-array" 34 + items: 35 + minItems: 3 36 + maxItems: 3 39 37 40 38 - if: 41 39 properties: ··· 52 52 enum: 53 53 - st,stm32f4-i2c 54 54 - st,stm32f7-i2c 55 + - st,stm32mp15-i2c 55 56 56 57 reg: 57 58 maxItems: 1 ··· 122 121 clocks = <&rcc 1 CLK_I2C1>; 123 122 }; 124 123 125 - //Example 3 (with st,stm32f7-i2c compatible on stm32mp) 124 + //Example 3 (with st,stm32mp15-i2c compatible on stm32mp) 126 125 #include <dt-bindings/interrupt-controller/arm-gic.h> 127 126 #include <dt-bindings/clock/stm32mp1-clks.h> 128 127 #include <dt-bindings/reset/stm32mp1-resets.h> 129 128 i2c@40013000 { 130 - compatible = "st,stm32f7-i2c"; 129 + compatible = "st,stm32mp15-i2c"; 131 130 #address-cells = <1>; 132 131 #size-cells = <0>; 133 132 reg = <0x40013000 0x400>;
+49
Documentation/devicetree/bindings/i2c/xlnx,xps-iic-2.00.a.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: "http://devicetree.org/schemas/i2c/xlnx,xps-iic-2.00.a.yaml#" 5 + $schema: "http://devicetree.org/meta-schemas/core.yaml#" 6 + 7 + title: ilinx IIC controller Device Tree Bindings 8 + 9 + maintainers: 10 + - info@mocean-labs.com 11 + 12 + allOf: 13 + - $ref: /schemas/i2c/i2c-controller.yaml# 14 + 15 + properties: 16 + compatible: 17 + const: xlnx,xps-iic-2.00.a 18 + 19 + reg: 20 + maxItems: 1 21 + 22 + interrupts: 23 + maxItems: 1 24 + 25 + clocks: 26 + minItems: 1 27 + 28 + clock-name: 29 + const: pclk 30 + description: | 31 + Input clock name. 32 + 33 + required: 34 + - compatible 35 + - reg 36 + - interrupts 37 + - clocks 38 + 39 + examples: 40 + - | 41 + axi_iic_0: i2c@40800000 { 42 + compatible = "xlnx,xps-iic-2.00.a"; 43 + clocks = <&clkc 15>; 44 + interrupts = < 1 2 >; 45 + reg = < 0x40800000 0x10000 >; 46 + 47 + #size-cells = <0>; 48 + #address-cells = <1>; 49 + };
+4 -5
Documentation/devicetree/bindings/iio/adc/adi,ad7124.yaml
··· 72 72 The channel number. It can have up to 8 channels on ad7124-4 73 73 and 16 channels on ad7124-8, numbered from 0 to 15. 74 74 items: 75 - minimum: 0 76 - maximum: 15 75 + minimum: 0 76 + maximum: 15 77 77 78 78 adi,reference-select: 79 79 description: | ··· 83 83 1: REFIN2(+)/REFIN2(−). 84 84 3: AVDD 85 85 If this field is left empty, internal reference is selected. 86 - allOf: 87 - - $ref: /schemas/types.yaml#/definitions/uint32 88 - - enum: [0, 1, 3] 86 + $ref: /schemas/types.yaml#/definitions/uint32 87 + enum: [0, 1, 3] 89 88 90 89 diff-channels: 91 90 description: see Documentation/devicetree/bindings/iio/adc/adc.txt
+4 -5
Documentation/devicetree/bindings/iio/adc/lltc,ltc2496.yaml
··· 7 7 title: Linear Technology / Analog Devices LTC2496 ADC 8 8 9 9 maintainers: 10 - - Lars-Peter Clausen <lars@metafoo.de> 11 - - Michael Hennerich <Michael.Hennerich@analog.com> 12 - - Stefan Popa <stefan.popa@analog.com> 10 + - Lars-Peter Clausen <lars@metafoo.de> 11 + - Michael Hennerich <Michael.Hennerich@analog.com> 12 + - Stefan Popa <stefan.popa@analog.com> 13 13 14 14 properties: 15 15 compatible: ··· 18 18 19 19 vref-supply: 20 20 description: phandle to an external regulator providing the reference voltage 21 - allOf: 22 - - $ref: /schemas/types.yaml#/definitions/phandle 21 + $ref: /schemas/types.yaml#/definitions/phandle 23 22 24 23 reg: 25 24 description: spi chipselect number according to the usual spi bindings
+3 -4
Documentation/devicetree/bindings/iio/adc/microchip,mcp3911.yaml
··· 38 38 39 39 microchip,device-addr: 40 40 description: Device address when multiple MCP3911 chips are present on the same SPI bus. 41 - allOf: 42 - - $ref: /schemas/types.yaml#/definitions/uint32 43 - - enum: [0, 1, 2, 3] 44 - - default: 0 41 + $ref: /schemas/types.yaml#/definitions/uint32 42 + enum: [0, 1, 2, 3] 43 + default: 0 45 44 46 45 vref-supply: 47 46 description: |
+15 -20
Documentation/devicetree/bindings/iio/adc/st,stm32-adc.yaml
··· 76 76 description: 77 77 Phandle to system configuration controller. It can be used to control the 78 78 analog circuitry on stm32mp1. 79 - allOf: 80 - - $ref: "/schemas/types.yaml#/definitions/phandle-array" 79 + $ref: "/schemas/types.yaml#/definitions/phandle-array" 81 80 82 81 interrupt-controller: true 83 82 ··· 246 247 Resolution (bits) to use for conversions: 247 248 - can be 6, 8, 10 or 12 on stm32f4 248 249 - can be 8, 10, 12, 14 or 16 on stm32h7 and stm32mp1 249 - allOf: 250 - - $ref: /schemas/types.yaml#/definitions/uint32 250 + $ref: /schemas/types.yaml#/definitions/uint32 251 251 252 252 st,adc-channels: 253 253 description: | ··· 254 256 - 16 channels, numbered from 0 to 15 (for in0..in15) on stm32f4 255 257 - 20 channels, numbered from 0 to 19 (for in0..in19) on stm32h7 and 256 258 stm32mp1. 257 - allOf: 258 - - $ref: /schemas/types.yaml#/definitions/uint32-array 259 + $ref: /schemas/types.yaml#/definitions/uint32-array 259 260 260 261 st,adc-diff-channels: 261 262 description: | ··· 267 270 required. Both properties can be used together. Some channels can be 268 271 used as single-ended and some other ones as differential (mixed). But 269 272 channels can't be configured both as single-ended and differential. 270 - allOf: 271 - - $ref: /schemas/types.yaml#/definitions/uint32-matrix 272 - - items: 273 - items: 274 - - description: | 275 - "vinp" indicates positive input number 276 - minimum: 0 277 - maximum: 19 278 - - description: | 279 - "vinn" indicates negative input number 280 - minimum: 0 281 - maximum: 19 273 + $ref: /schemas/types.yaml#/definitions/uint32-matrix 274 + items: 275 + items: 276 + - description: | 277 + "vinp" indicates positive input number 278 + minimum: 0 279 + maximum: 19 280 + - description: | 281 + "vinn" indicates negative input number 282 + minimum: 0 283 + maximum: 19 282 284 283 285 st,min-sample-time-nsecs: 284 286 description: ··· 287 291 array that matches "st,adc-channels" and/or "st,adc-diff-channels" 288 292 list, to set sample time resp. for all channels, or independently for 289 293 each channel. 290 - allOf: 291 - - $ref: /schemas/types.yaml#/definitions/uint32-array 294 + $ref: /schemas/types.yaml#/definitions/uint32-array 292 295 293 296 allOf: 294 297 - if:
+11 -16
Documentation/devicetree/bindings/iio/adc/st,stm32-dfsdm-adc.yaml
··· 95 95 On stm32h7 and stm32mp1: 96 96 - For st,stm32-dfsdm-adc: up to 8 channels numbered from 0 to 7. 97 97 - For st,stm32-dfsdm-dmic: 1 channel numbered from 0 to 7. 98 - allOf: 99 - - $ref: /schemas/types.yaml#/definitions/uint32-array 100 - - items: 101 - minimum: 0 102 - maximum: 7 98 + $ref: /schemas/types.yaml#/definitions/uint32-array 99 + items: 100 + minimum: 0 101 + maximum: 7 103 102 104 103 st,adc-channel-names: 105 104 description: List of single-ended channel names. 106 - allOf: 107 - - $ref: /schemas/types.yaml#/definitions/string-array 105 + $ref: /schemas/types.yaml#/definitions/string-array 108 106 109 107 st,filter-order: 110 108 description: | ··· 110 112 - 0: FastSinC 111 113 - [1-5]: order 1 to 5. 112 114 For audio purpose it is recommended to use order 3 to 5. 113 - allOf: 114 - - $ref: /schemas/types.yaml#/definitions/uint32 115 - - items: 116 - minimum: 0 117 - maximum: 5 115 + $ref: /schemas/types.yaml#/definitions/uint32 116 + items: 117 + minimum: 0 118 + maximum: 5 118 119 119 120 "#io-channel-cells": 120 121 const: 1 ··· 127 130 - "MANCH_F": manchester codec, rising edge = logic 1, falling edge = logic 0 128 131 items: 129 132 enum: [ SPI_R, SPI_F, MANCH_R, MANCH_F ] 130 - allOf: 131 - - $ref: /schemas/types.yaml#/definitions/non-unique-string-array 133 + $ref: /schemas/types.yaml#/definitions/non-unique-string-array 132 134 133 135 st,adc-channel-clk-src: 134 136 description: | ··· 138 142 - "CLKOUT_R": internal SPI clock divided by 2 (rising edge). 139 143 items: 140 144 enum: [ CLKIN, CLKOUT, CLKOUT_F, CLKOUT_R ] 141 - allOf: 142 - - $ref: /schemas/types.yaml#/definitions/non-unique-string-array 145 + $ref: /schemas/types.yaml#/definitions/non-unique-string-array 143 146 144 147 st,adc-alt-channel: 145 148 description:
-37
Documentation/devicetree/bindings/iio/imu/bmi160.txt
··· 1 - Bosch BMI160 - Inertial Measurement Unit with Accelerometer, Gyroscope 2 - and externally connectable Magnetometer 3 - 4 - https://www.bosch-sensortec.com/bst/products/all_products/bmi160 5 - 6 - Required properties: 7 - - compatible : should be "bosch,bmi160" 8 - - reg : the I2C address or SPI chip select number of the sensor 9 - - spi-max-frequency : set maximum clock frequency (only for SPI) 10 - 11 - Optional properties: 12 - - interrupts : interrupt mapping for IRQ 13 - - interrupt-names : set to "INT1" if INT1 pin should be used as interrupt 14 - input, set to "INT2" if INT2 pin should be used instead 15 - - drive-open-drain : set if the specified interrupt pin should be configured as 16 - open drain. If not set, defaults to push-pull. 17 - 18 - Examples: 19 - 20 - bmi160@68 { 21 - compatible = "bosch,bmi160"; 22 - reg = <0x68>; 23 - 24 - interrupt-parent = <&gpio4>; 25 - interrupts = <12 IRQ_TYPE_EDGE_RISING>; 26 - interrupt-names = "INT1"; 27 - }; 28 - 29 - bmi160@0 { 30 - compatible = "bosch,bmi160"; 31 - reg = <0>; 32 - spi-max-frequency = <10000000>; 33 - 34 - interrupt-parent = <&gpio2>; 35 - interrupts = <12 IRQ_TYPE_LEVEL_LOW>; 36 - interrupt-names = "INT2"; 37 - };
+75
Documentation/devicetree/bindings/iio/imu/bosch,bmi160.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/iio/imu/bosch,bmi160.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Bosch BMI160 8 + 9 + maintainers: 10 + - Jonathan Cameron <jic23@kernel.org> 11 + 12 + description: | 13 + Inertial Measurement Unit with Accelerometer, Gyroscope and externally 14 + connectable Magnetometer 15 + https://www.bosch-sensortec.com/bst/products/all_products/bmi160 16 + 17 + properties: 18 + compatible: 19 + const: bosch,bmi160 20 + 21 + reg: 22 + maxItems: 1 23 + 24 + interrupts: 25 + maxItems: 1 26 + 27 + interrupt-names: 28 + enum: 29 + - INT1 30 + - INT2 31 + description: | 32 + set to "INT1" if INT1 pin should be used as interrupt input, set 33 + to "INT2" if INT2 pin should be used instead 34 + 35 + drive-open-drain: 36 + description: | 37 + set if the specified interrupt pin should be configured as 38 + open drain. If not set, defaults to push-pull. 39 + 40 + required: 41 + - compatible 42 + - reg 43 + 44 + examples: 45 + - | 46 + // Example for I2C 47 + #include <dt-bindings/interrupt-controller/irq.h> 48 + i2c { 49 + #address-cells = <1>; 50 + #size-cells = <0>; 51 + 52 + bmi160@68 { 53 + compatible = "bosch,bmi160"; 54 + reg = <0x68>; 55 + interrupt-parent = <&gpio4>; 56 + interrupts = <12 IRQ_TYPE_EDGE_RISING>; 57 + interrupt-names = "INT1"; 58 + }; 59 + }; 60 + - | 61 + // Example for SPI 62 + #include <dt-bindings/interrupt-controller/irq.h> 63 + spi { 64 + #address-cells = <1>; 65 + #size-cells = <0>; 66 + 67 + bmi160@0 { 68 + compatible = "bosch,bmi160"; 69 + reg = <0>; 70 + spi-max-frequency = <10000000>; 71 + interrupt-parent = <&gpio2>; 72 + interrupts = <12 IRQ_TYPE_EDGE_RISING>; 73 + interrupt-names = "INT2"; 74 + }; 75 + };
+6 -7
Documentation/devicetree/bindings/iio/light/tsl2772.yaml
··· 33 33 34 34 amstaos,proximity-diodes: 35 35 description: Proximity diodes to enable 36 - allOf: 37 - - $ref: /schemas/types.yaml#/definitions/uint32-array 38 - - minItems: 1 39 - maxItems: 2 40 - items: 41 - minimum: 0 42 - maximum: 1 36 + $ref: /schemas/types.yaml#/definitions/uint32-array 37 + minItems: 1 38 + maxItems: 2 39 + items: 40 + minimum: 0 41 + maximum: 1 43 42 44 43 interrupts: 45 44 maxItems: 1
+23 -37
Documentation/devicetree/bindings/iio/temperature/adi,ltc2983.yaml
··· 42 42 0 - 50/60Hz rejection 43 43 1 - 60Hz rejection 44 44 2 - 50Hz rejection 45 - allOf: 46 - - $ref: /schemas/types.yaml#/definitions/uint32 47 - - minimum: 0 48 - maximum: 2 45 + $ref: /schemas/types.yaml#/definitions/uint32 46 + minimum: 0 47 + maximum: 2 49 48 50 49 '#address-cells': 51 50 const: 1 ··· 90 91 7 - Type T Thermocouple 91 92 8 - Type B Thermocouple 92 93 9 - Custom Thermocouple 93 - allOf: 94 - - $ref: /schemas/types.yaml#/definitions/uint32 94 + $ref: /schemas/types.yaml#/definitions/uint32 95 95 minimum: 1 96 96 maximum: 9 97 97 ··· 119 121 more details look at table 69 and 70. 120 122 Note should be signed, but dtc doesn't currently maintain the 121 123 sign. 122 - allOf: 123 - - $ref: /schemas/types.yaml#/definitions/uint64-matrix 124 + $ref: /schemas/types.yaml#/definitions/uint64-matrix 124 125 minItems: 3 125 126 maxItems: 64 126 127 items: ··· 135 138 properties: 136 139 adi,sensor-type: 137 140 description: Identifies the sensor as a diode. 138 - allOf: 139 - - $ref: /schemas/types.yaml#/definitions/uint32 141 + $ref: /schemas/types.yaml#/definitions/uint32 140 142 const: 28 141 143 142 144 adi,single-ended: ··· 192 196 16 - RTD PT-1000 (0.00375) 193 197 17 - RTD NI-120 194 198 18 - RTD Custom 195 - allOf: 196 - - $ref: /schemas/types.yaml#/definitions/uint32 199 + $ref: /schemas/types.yaml#/definitions/uint32 197 200 minimum: 10 198 201 maximum: 18 199 202 ··· 205 210 description: 206 211 Identifies the number of wires used by the RTD. Setting this 207 212 property to 5 means 4 wires with Kelvin Rsense. 208 - allOf: 209 - - $ref: /schemas/types.yaml#/definitions/uint32 210 - - enum: [2, 3, 4, 5] 213 + $ref: /schemas/types.yaml#/definitions/uint32 214 + enum: [2, 3, 4, 5] 211 215 212 216 adi,rsense-share: 213 217 description: ··· 231 237 description: 232 238 This property set the RTD curve used and the corresponding 233 239 Callendar-VanDusen constants. Look at table 30 of the datasheet. 234 - allOf: 235 - - $ref: /schemas/types.yaml#/definitions/uint32 236 - - minimum: 0 237 - maximum: 3 240 + $ref: /schemas/types.yaml#/definitions/uint32 241 + minimum: 0 242 + maximum: 3 238 243 239 244 adi,custom-rtd: 240 245 description: 241 246 This is a table, where each entry should be a pair of 242 247 resistance(ohm)-temperature(K). The entries added here are in uohm 243 248 and uK. For more details values look at table 74 and 75. 244 - allOf: 245 - - $ref: /schemas/types.yaml#/definitions/uint64-matrix 249 + $ref: /schemas/types.yaml#/definitions/uint64-matrix 246 250 items: 247 251 minItems: 3 248 252 maxItems: 64 ··· 252 260 - adi,rsense-handle 253 261 254 262 dependencies: 255 - adi,current-rotate: [ adi,rsense-share ] 263 + adi,current-rotate: [ "adi,rsense-share" ] 256 264 257 265 "^thermistor@": 258 266 type: object ··· 272 280 25 - Thermistor Spectrum 1003k 1kohm 273 281 26 - Thermistor Custom Steinhart-Hart 274 282 27 - Custom Thermistor 275 - allOf: 276 - - $ref: /schemas/types.yaml#/definitions/uint32 283 + $ref: /schemas/types.yaml#/definitions/uint32 277 284 minimum: 19 278 285 maximum: 27 279 286 ··· 305 314 This property controls the magnitude of the excitation current 306 315 applied to the thermistor. Value 0 set's the sensor in auto-range 307 316 mode. 308 - allOf: 309 - - $ref: /schemas/types.yaml#/definitions/uint32 310 - - enum: [0, 250, 500, 1000, 5000, 10000, 25000, 50000, 100000, 311 - 250000, 500000, 1000000] 317 + $ref: /schemas/types.yaml#/definitions/uint32 318 + enum: [0, 250, 500, 1000, 5000, 10000, 25000, 50000, 100000, 250000, 319 + 500000, 1000000] 312 320 313 321 adi,custom-thermistor: 314 322 description: ··· 315 325 resistance(ohm)-temperature(K). The entries added here are in uohm 316 326 and uK only for custom thermistors. For more details look at table 317 327 78 and 79. 318 - allOf: 319 - - $ref: /schemas/types.yaml#/definitions/uint64-matrix 328 + $ref: /schemas/types.yaml#/definitions/uint64-matrix 320 329 minItems: 3 321 330 maxItems: 64 322 331 items: ··· 328 339 be programmed into the device memory using this property. For 329 340 Steinhart sensors the coefficients are given in the raw 330 341 format. Look at table 82 for more information. 331 - allOf: 332 - - $ref: /schemas/types.yaml#/definitions/uint32-array 342 + $ref: /schemas/types.yaml#/definitions/uint32-array 333 343 items: 334 344 minItems: 6 335 345 maxItems: 6 ··· 337 349 - adi,rsense-handle 338 350 339 351 dependencies: 340 - adi,current-rotate: [ adi,rsense-share ] 352 + adi,current-rotate: [ "adi,rsense-share" ] 341 353 342 354 "^adc@": 343 355 type: object ··· 346 358 properties: 347 359 adi,sensor-type: 348 360 description: Identifies the sensor as a direct adc. 349 - allOf: 350 - - $ref: /schemas/types.yaml#/definitions/uint32 361 + $ref: /schemas/types.yaml#/definitions/uint32 351 362 const: 30 352 363 353 364 adi,single-ended: ··· 366 379 367 380 adi,sensor-type: 368 381 description: Identifies the sensor as a rsense. 369 - allOf: 370 - - $ref: /schemas/types.yaml#/definitions/uint32 382 + $ref: /schemas/types.yaml#/definitions/uint32 371 383 const: 29 372 384 373 385 adi,rsense-val-milli-ohms:
+12
Documentation/devicetree/bindings/index.rst
··· 1 + .. SPDX-License-Identifier: GPL-2.0 2 + 3 + =========== 4 + Device Tree 5 + =========== 6 + 7 + .. toctree:: 8 + :maxdepth: 1 9 + 10 + ABI 11 + submitting-patches 12 + writing-bindings
+4 -5
Documentation/devicetree/bindings/input/allwinner,sun4i-a10-lradc-keys.yaml
··· 16 16 - const: allwinner,sun4i-a10-lradc-keys 17 17 - const: allwinner,sun8i-a83t-r-lradc 18 18 - items: 19 - - const: allwinner,sun50i-a64-lradc 20 - - const: allwinner,sun8i-a83t-r-lradc 19 + - const: allwinner,sun50i-a64-lradc 20 + - const: allwinner,sun8i-a83t-r-lradc 21 21 22 22 reg: 23 23 maxItems: 1 ··· 42 42 description: Keycode to emit 43 43 44 44 channel: 45 - allOf: 46 - - $ref: /schemas/types.yaml#/definitions/uint32 47 - - enum: [0, 1] 45 + $ref: /schemas/types.yaml#/definitions/uint32 46 + enum: [0, 1] 48 47 description: ADC Channel this key is attached to 49 48 50 49 voltage:
-45
Documentation/devicetree/bindings/input/gpio-keys-polled.txt
··· 1 - Device-Tree bindings for input/gpio_keys_polled.c keyboard driver 2 - 3 - Required properties: 4 - - compatible = "gpio-keys-polled"; 5 - - poll-interval: Poll interval time in milliseconds 6 - 7 - Optional properties: 8 - - autorepeat: Boolean, Enable auto repeat feature of Linux input 9 - subsystem. 10 - 11 - Each button (key) is represented as a sub-node of "gpio-keys-polled": 12 - Subnode properties: 13 - 14 - - gpios: OF device-tree gpio specification. 15 - - label: Descriptive name of the key. 16 - - linux,code: Key / Axis code to emit. 17 - 18 - Optional subnode-properties: 19 - - linux,input-type: Specify event type this button/key generates. 20 - If not specified defaults to <1> == EV_KEY. 21 - - linux,input-value: If linux,input-type is EV_ABS or EV_REL then this 22 - value is sent for events this button generates when pressed. 23 - EV_ABS/EV_REL axis will generate an event with a value of 0 when 24 - all buttons with linux,input-type == type and linux,code == axis 25 - are released. This value is interpreted as a signed 32 bit value, 26 - e.g. to make a button generate a value of -1 use: 27 - linux,input-value = <0xffffffff>; /* -1 */ 28 - - debounce-interval: Debouncing interval time in milliseconds. 29 - If not specified defaults to 5. 30 - - wakeup-source: Boolean, button can wake-up the system. 31 - (Legacy property supported: "gpio-key,wakeup") 32 - 33 - Example nodes: 34 - 35 - gpio_keys_polled { 36 - compatible = "gpio-keys-polled"; 37 - poll-interval = <100>; 38 - autorepeat; 39 - 40 - button21 { 41 - label = "GPIO Key UP"; 42 - linux,code = <103>; 43 - gpios = <&gpio1 0 1>; 44 - }; 45 - ...
-58
Documentation/devicetree/bindings/input/gpio-keys.txt
··· 1 - Device-Tree bindings for input/keyboard/gpio_keys.c keyboard driver 2 - 3 - Required properties: 4 - - compatible = "gpio-keys"; 5 - 6 - Optional properties: 7 - - autorepeat: Boolean, Enable auto repeat feature of Linux input 8 - subsystem. 9 - - label: String, name of the input device. 10 - 11 - Each button (key) is represented as a sub-node of "gpio-keys": 12 - Subnode properties: 13 - 14 - - gpios: OF device-tree gpio specification. 15 - - interrupts: the interrupt line for that input. 16 - - label: Descriptive name of the key. 17 - - linux,code: Keycode to emit. 18 - 19 - Note that either "interrupts" or "gpios" properties can be omitted, but not 20 - both at the same time. Specifying both properties is allowed. 21 - 22 - Optional subnode-properties: 23 - - linux,input-type: Specify event type this button/key generates. 24 - If not specified defaults to <1> == EV_KEY. 25 - - debounce-interval: Debouncing interval time in milliseconds. 26 - If not specified defaults to 5. 27 - - wakeup-source: Boolean, button can wake-up the system. 28 - (Legacy property supported: "gpio-key,wakeup") 29 - - wakeup-event-action: Specifies whether the key should wake the 30 - system when asserted, when deasserted, or both. This property is 31 - only valid for keys that wake up the system (e.g., when the 32 - "wakeup-source" property is also provided). 33 - Supported values are defined in linux-event-codes.h: 34 - EV_ACT_ASSERTED - asserted 35 - EV_ACT_DEASSERTED - deasserted 36 - EV_ACT_ANY - both asserted and deasserted 37 - - linux,can-disable: Boolean, indicates that button is connected 38 - to dedicated (not shared) interrupt which can be disabled to 39 - suppress events from the button. 40 - 41 - Example nodes: 42 - 43 - gpio-keys { 44 - compatible = "gpio-keys"; 45 - autorepeat; 46 - 47 - up { 48 - label = "GPIO Key UP"; 49 - linux,code = <103>; 50 - gpios = <&gpio1 0 1>; 51 - }; 52 - 53 - down { 54 - label = "GPIO Key DOWN"; 55 - linux,code = <108>; 56 - interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; 57 - }; 58 - ...
+149
Documentation/devicetree/bindings/input/gpio-keys.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/input/gpio-keys.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Device-Tree bindings for GPIO attached keys 8 + 9 + maintainers: 10 + - Rob Herring <robh@kernel.org> 11 + 12 + properties: 13 + compatible: 14 + enum: 15 + - gpio-keys 16 + - gpio-keys-polled 17 + 18 + patternProperties: 19 + ".*": 20 + if: 21 + type: object 22 + then: 23 + $ref: input.yaml# 24 + 25 + properties: 26 + gpios: 27 + maxItems: 1 28 + 29 + interrupts: 30 + maxItems: 1 31 + 32 + label: 33 + description: Descriptive name of the key. 34 + 35 + linux,code: 36 + description: Key / Axis code to emit. 37 + $ref: /schemas/types.yaml#definitions/uint32 38 + 39 + linux,input-type: 40 + description: 41 + Specify event type this button/key generates. If not specified defaults to 42 + <1> == EV_KEY. 43 + $ref: /schemas/types.yaml#definitions/uint32 44 + 45 + default: 1 46 + 47 + linux,input-value: 48 + description: | 49 + If linux,input-type is EV_ABS or EV_REL then this 50 + value is sent for events this button generates when pressed. 51 + EV_ABS/EV_REL axis will generate an event with a value of 0 52 + when all buttons with linux,input-type == type and 53 + linux,code == axis are released. This value is interpreted 54 + as a signed 32 bit value, e.g. to make a button generate a 55 + value of -1 use: 56 + 57 + linux,input-value = <0xffffffff>; /* -1 */ 58 + 59 + $ref: /schemas/types.yaml#definitions/uint32 60 + 61 + debounce-interval: 62 + description: 63 + Debouncing interval time in milliseconds. If not specified defaults to 5. 64 + $ref: /schemas/types.yaml#definitions/uint32 65 + 66 + default: 5 67 + 68 + wakeup-source: 69 + description: Button can wake-up the system. 70 + 71 + wakeup-event-action: 72 + description: | 73 + Specifies whether the key should wake the system when asserted, when 74 + deasserted, or both. This property is only valid for keys that wake up the 75 + system (e.g., when the "wakeup-source" property is also provided). 76 + 77 + Supported values are defined in linux-event-codes.h: 78 + 79 + EV_ACT_ANY - both asserted and deasserted 80 + EV_ACT_ASSERTED - asserted 81 + EV_ACT_DEASSERTED - deasserted 82 + $ref: /schemas/types.yaml#definitions/uint32 83 + enum: [0, 1, 2] 84 + 85 + linux,can-disable: 86 + description: 87 + Indicates that button is connected to dedicated (not shared) interrupt 88 + which can be disabled to suppress events from the button. 89 + type: boolean 90 + 91 + pinctrl-0: 92 + maxItems: 1 93 + 94 + pinctrl-names: 95 + maxItems: 1 96 + 97 + required: 98 + - linux,code 99 + 100 + anyOf: 101 + - required: 102 + - interrupts 103 + - required: 104 + - gpios 105 + 106 + dependencies: 107 + wakeup-event-action: [ wakeup-source ] 108 + linux,input-value: [ gpios ] 109 + 110 + unevaluatedProperties: false 111 + 112 + if: 113 + properties: 114 + compatible: 115 + const: gpio-keys-polled 116 + then: 117 + properties: 118 + poll-interval: 119 + description: 120 + Poll interval time in milliseconds 121 + $ref: /schemas/types.yaml#definitions/uint32 122 + 123 + required: 124 + - poll-interval 125 + 126 + additionalProperties: false 127 + 128 + examples: 129 + - | 130 + #include <dt-bindings/interrupt-controller/irq.h> 131 + 132 + gpio-keys { 133 + compatible = "gpio-keys"; 134 + autorepeat; 135 + 136 + up { 137 + label = "GPIO Key UP"; 138 + linux,code = <103>; 139 + gpios = <&gpio1 0 1>; 140 + }; 141 + 142 + down { 143 + label = "GPIO Key DOWN"; 144 + linux,code = <108>; 145 + interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; 146 + }; 147 + }; 148 + 149 + ...
+4 -5
Documentation/devicetree/bindings/input/input.yaml
··· 18 18 description: 19 19 Specifies an array of numeric keycode values to be used for reporting 20 20 button presses. 21 - allOf: 22 - - $ref: /schemas/types.yaml#/definitions/uint32-array 23 - - items: 24 - minimum: 0 25 - maximum: 0xff 21 + $ref: /schemas/types.yaml#/definitions/uint32-array 22 + items: 23 + minimum: 0 24 + maximum: 0xff 26 25 27 26 poll-interval: 28 27 description: Poll interval time in milliseconds.
+3 -4
Documentation/devicetree/bindings/input/iqs62x-keys.yaml
··· 30 30 - azoteq,iqs625-keys 31 31 32 32 linux,keycodes: 33 - allOf: 34 - - $ref: /schemas/types.yaml#/definitions/uint32-array 35 - - minItems: 1 36 - maxItems: 16 33 + $ref: /schemas/types.yaml#/definitions/uint32-array 34 + minItems: 1 35 + maxItems: 16 37 36 description: | 38 37 Specifies the numeric keycodes associated with each available touch or 39 38 proximity event according to the following table. An 'x' indicates the
+13 -17
Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.yaml
··· 42 42 - focaltech,ft6236 43 43 44 44 reg: 45 - const: 0x38 45 + maxItems: 1 46 46 47 47 interrupts: 48 48 maxItems: 1 ··· 61 61 gain: 62 62 description: Allows setting the sensitivity in the range from 0 to 31. 63 63 Note that lower values indicate higher sensitivity. 64 - allOf: 65 - - $ref: /schemas/types.yaml#/definitions/uint32 66 - - minimum: 0 67 - - maximum: 31 64 + $ref: /schemas/types.yaml#/definitions/uint32 65 + minimum: 0 66 + maximum: 31 68 67 69 68 offset: 70 69 description: Allows setting the edge compensation in the range from 0 to 31. 71 - allOf: 72 - - $ref: /schemas/types.yaml#/definitions/uint32 73 - - minimum: 0 74 - - maximum: 31 70 + $ref: /schemas/types.yaml#/definitions/uint32 71 + minimum: 0 72 + maximum: 31 75 73 76 74 offset-x: 77 75 description: Same as offset, but applies only to the horizontal position. 78 76 Range from 0 to 80, only supported by evervision,ev-ft5726 devices. 79 - allOf: 80 - - $ref: /schemas/types.yaml#/definitions/uint32 81 - - minimum: 0 82 - - maximum: 80 77 + $ref: /schemas/types.yaml#/definitions/uint32 78 + minimum: 0 79 + maximum: 80 83 80 84 81 offset-y: 85 82 description: Same as offset, but applies only to the vertical position. 86 83 Range from 0 to 80, only supported by evervision,ev-ft5726 devices. 87 - allOf: 88 - - $ref: /schemas/types.yaml#/definitions/uint32 89 - - minimum: 0 90 - - maximum: 80 84 + $ref: /schemas/types.yaml#/definitions/uint32 85 + minimum: 0 86 + maximum: 80 91 87 92 88 touchscreen-size-x: true 93 89 touchscreen-size-y: true
+1 -1
Documentation/devicetree/bindings/input/touchscreen/goodix.yaml
··· 63 63 - interrupts 64 64 65 65 examples: 66 - - | 66 + - | 67 67 i2c { 68 68 #address-cells = <1>; 69 69 #size-cells = <0>;
+2 -2
Documentation/devicetree/bindings/interconnect/qcom,msm8916.yaml
··· 10 10 - Georgi Djakov <georgi.djakov@linaro.org> 11 11 12 12 description: | 13 - The Qualcomm MSM8916 interconnect providers support adjusting the 14 - bandwidth requirements between the various NoC fabrics. 13 + The Qualcomm MSM8916 interconnect providers support adjusting the 14 + bandwidth requirements between the various NoC fabrics. 15 15 16 16 properties: 17 17 compatible:
+2 -2
Documentation/devicetree/bindings/interconnect/qcom,msm8974.yaml
··· 10 10 - Brian Masney <masneyb@onstation.org> 11 11 12 12 description: | 13 - The Qualcomm MSM8974 interconnect providers support setting system 14 - bandwidth requirements between various network-on-chip fabrics. 13 + The Qualcomm MSM8974 interconnect providers support setting system 14 + bandwidth requirements between various network-on-chip fabrics. 15 15 16 16 properties: 17 17 reg:
+2 -2
Documentation/devicetree/bindings/interconnect/qcom,qcs404.yaml
··· 10 10 - Georgi Djakov <georgi.djakov@linaro.org> 11 11 12 12 description: | 13 - The Qualcomm QCS404 interconnect providers support adjusting the 14 - bandwidth requirements between the various NoC fabrics. 13 + The Qualcomm QCS404 interconnect providers support adjusting the 14 + bandwidth requirements between the various NoC fabrics. 15 15 16 16 properties: 17 17 reg:
+3 -3
Documentation/devicetree/bindings/interconnect/qcom,sc7180.yaml
··· 65 65 66 66 config_noc: interconnect@1500000 { 67 67 compatible = "qcom,sc7180-config-noc"; 68 - reg = <0 0x01500000 0 0x28000>; 68 + reg = <0x01500000 0x28000>; 69 69 #interconnect-cells = <1>; 70 70 qcom,bcm-voters = <&apps_bcm_voter>; 71 71 }; 72 72 73 73 system_noc: interconnect@1620000 { 74 74 compatible = "qcom,sc7180-system-noc"; 75 - reg = <0 0x01620000 0 0x17080>; 75 + reg = <0x01620000 0x17080>; 76 76 #interconnect-cells = <1>; 77 77 qcom,bcm-voters = <&apps_bcm_voter>; 78 78 }; 79 79 80 80 mmss_noc: interconnect@1740000 { 81 81 compatible = "qcom,sc7180-mmss-noc"; 82 - reg = <0 0x01740000 0 0x1c100>; 82 + reg = <0x01740000 0x1c100>; 83 83 #interconnect-cells = <1>; 84 84 qcom,bcm-voters = <&apps_bcm_voter>; 85 85 };
+2 -2
Documentation/devicetree/bindings/interconnect/qcom,sdm845.yaml
··· 60 60 61 61 mem_noc: interconnect@1380000 { 62 62 compatible = "qcom,sdm845-mem-noc"; 63 - reg = <0 0x01380000 0 0x27200>; 63 + reg = <0x01380000 0x27200>; 64 64 #interconnect-cells = <1>; 65 65 qcom,bcm-voters = <&apps_bcm_voter>; 66 66 }; 67 67 68 68 mmss_noc: interconnect@1740000 { 69 69 compatible = "qcom,sdm845-mmss-noc"; 70 - reg = <0 0x01740000 0 0x1c1000>; 70 + reg = <0x01740000 0x1c1000>; 71 71 #interconnect-cells = <1>; 72 72 qcom,bcm-voter-names = "apps", "disp"; 73 73 qcom,bcm-voters = <&apps_bcm_voter>, <&disp_bcm_voter>;
+6 -6
Documentation/devicetree/bindings/interrupt-controller/allwinner,sun7i-a20-sc-nmi.yaml
··· 27 27 deprecated: true 28 28 - const: allwinner,sun7i-a20-sc-nmi 29 29 - items: 30 - - const: allwinner,sun8i-a83t-r-intc 31 - - const: allwinner,sun6i-a31-r-intc 30 + - const: allwinner,sun8i-a83t-r-intc 31 + - const: allwinner,sun6i-a31-r-intc 32 32 - const: allwinner,sun9i-a80-sc-nmi 33 33 - items: 34 - - const: allwinner,sun50i-a64-r-intc 35 - - const: allwinner,sun6i-a31-r-intc 34 + - const: allwinner,sun50i-a64-r-intc 35 + - const: allwinner,sun6i-a31-r-intc 36 36 - items: 37 - - const: allwinner,sun50i-h6-r-intc 38 - - const: allwinner,sun6i-a31-r-intc 37 + - const: allwinner,sun50i-h6-r-intc 38 + - const: allwinner,sun6i-a31-r-intc 39 39 40 40 reg: 41 41 maxItems: 1
+17 -22
Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml
··· 91 91 description: 92 92 If using padding pages, specifies the stride of consecutive 93 93 redistributors. Must be a multiple of 64kB. 94 - allOf: 95 - - $ref: /schemas/types.yaml#/definitions/uint64 96 - - multipleOf: 0x10000 97 - exclusiveMinimum: 0 94 + $ref: /schemas/types.yaml#/definitions/uint64 95 + multipleOf: 0x10000 96 + exclusiveMinimum: 0 98 97 99 98 "#redistributor-regions": 100 99 description: 101 100 The number of independent contiguous regions occupied by the 102 101 redistributors. Required if more than one such region is present. 103 - allOf: 104 - - $ref: /schemas/types.yaml#/definitions/uint32 105 - - maximum: 4096 # Should be enough? 102 + $ref: /schemas/types.yaml#/definitions/uint32 103 + maximum: 4096 106 104 107 105 msi-controller: 108 106 description: ··· 112 114 A list of pairs <intid span>, where "intid" is the first SPI of a range 113 115 that can be used an MBI, and "span" the size of that range. Multiple 114 116 ranges can be provided. 115 - allOf: 116 - - $ref: /schemas/types.yaml#/definitions/uint32-matrix 117 - - items: 118 - minItems: 2 119 - maxItems: 2 117 + $ref: /schemas/types.yaml#/definitions/uint32-matrix 118 + items: 119 + minItems: 2 120 + maxItems: 2 120 121 121 122 mbi-alias: 122 123 description: 123 124 Address property. Base address of an alias of the GICD region containing 124 125 only the {SET,CLR}SPI registers to be used if isolation is required, 125 126 and if supported by the HW. 126 - allOf: 127 - - $ref: /schemas/types.yaml#/definitions/uint32-array 128 - - items: 129 - minItems: 1 130 - maxItems: 2 127 + $ref: /schemas/types.yaml#/definitions/uint32-array 128 + items: 129 + minItems: 1 130 + maxItems: 2 131 131 132 132 ppi-partitions: 133 133 type: object ··· 184 188 description: 185 189 (u32, u32) tuple describing the untranslated 186 190 address and size of the pre-ITS window. 187 - allOf: 188 - - $ref: /schemas/types.yaml#/definitions/uint32-array 189 - - items: 190 - minItems: 2 191 - maxItems: 2 191 + $ref: /schemas/types.yaml#/definitions/uint32-array 192 + items: 193 + minItems: 2 194 + maxItems: 2 192 195 193 196 required: 194 197 - compatible
+9
Documentation/devicetree/bindings/interrupt-controller/arm,gic.yaml
··· 40 40 - qcom,msm-qgic2 41 41 42 42 - items: 43 + - const: arm,gic-400 44 + - enum: 45 + - arm,cortex-a15-gic 46 + - arm,cortex-a7-gic 47 + 48 + - items: 43 49 - const: arm,arm1176jzf-devchip-gic 44 50 - const: arm,arm11mp-gic 45 51 ··· 129 123 - const: gclk #for "arm,pl390" 130 124 131 125 power-domains: 126 + maxItems: 1 127 + 128 + resets: 132 129 maxItems: 1 133 130 134 131 required:
-35
Documentation/devicetree/bindings/interrupt-controller/fsl,irqsteer.txt
··· 1 - Freescale IRQSTEER Interrupt multiplexer 2 - 3 - Required properties: 4 - 5 - - compatible: should be: 6 - - "fsl,imx8m-irqsteer" 7 - - "fsl,imx-irqsteer" 8 - - reg: Physical base address and size of registers. 9 - - interrupts: Should contain the up to 8 parent interrupt lines used to 10 - multiplex the input interrupts. They should be specified sequentially 11 - from output 0 to 7. 12 - - clocks: Should contain one clock for entry in clock-names 13 - see Documentation/devicetree/bindings/clock/clock-bindings.txt 14 - - clock-names: 15 - - "ipg": main logic clock 16 - - interrupt-controller: Identifies the node as an interrupt controller. 17 - - #interrupt-cells: Specifies the number of cells needed to encode an 18 - interrupt source. The value must be 1. 19 - - fsl,channel: The output channel that all input IRQs should be steered into. 20 - - fsl,num-irqs: Number of input interrupts of this channel. 21 - Should be multiple of 32 input interrupts and up to 512 interrupts. 22 - 23 - Example: 24 - 25 - interrupt-controller@32e2d000 { 26 - compatible = "fsl,imx8m-irqsteer", "fsl,imx-irqsteer"; 27 - reg = <0x32e2d000 0x1000>; 28 - interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; 29 - clocks = <&clk IMX8MQ_CLK_DISP_APB_ROOT>; 30 - clock-names = "ipg"; 31 - fsl,channel = <0>; 32 - fsl,num-irqs = <64>; 33 - interrupt-controller; 34 - #interrupt-cells = <1>; 35 - };
+89
Documentation/devicetree/bindings/interrupt-controller/fsl,irqsteer.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/fsl,irqsteer.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Freescale IRQSTEER Interrupt Multiplexer 8 + 9 + maintainers: 10 + - Lucas Stach <l.stach@pengutronix.de> 11 + 12 + properties: 13 + compatible: 14 + enum: 15 + - fsl,imx8m-irqsteer 16 + - fsl,imx-irqsteer 17 + 18 + reg: 19 + maxItems: 1 20 + 21 + interrupts: 22 + description: | 23 + should contain the up to 8 parent interrupt lines used to multiplex 24 + the input interrupts. They should be specified sequentially from 25 + output 0 to 7. 26 + items: 27 + - description: output interrupt 0 28 + - description: output interrupt 1 29 + - description: output interrupt 2 30 + - description: output interrupt 3 31 + - description: output interrupt 4 32 + - description: output interrupt 5 33 + - description: output interrupt 6 34 + - description: output interrupt 7 35 + minItems: 1 36 + maxItems: 8 37 + 38 + clocks: 39 + maxItems: 1 40 + 41 + clock-names: 42 + const: ipg 43 + 44 + interrupt-controller: true 45 + 46 + "#interrupt-cells": 47 + const: 1 48 + 49 + fsl,channel: 50 + $ref: '/schemas/types.yaml#/definitions/uint32' 51 + description: | 52 + u32 value representing the output channel that all input IRQs should be 53 + steered into. 54 + 55 + fsl,num-irqs: 56 + $ref: '/schemas/types.yaml#/definitions/uint32' 57 + description: | 58 + u32 value representing the number of input interrupts of this channel, 59 + should be multiple of 32 input interrupts and up to 512 interrupts. 60 + 61 + required: 62 + - compatible 63 + - reg 64 + - interrupts 65 + - clocks 66 + - clock-names 67 + - interrupt-controller 68 + - "#interrupt-cells" 69 + - fsl,channel 70 + - fsl,num-irqs 71 + 72 + additionalProperties: false 73 + 74 + examples: 75 + - | 76 + #include <dt-bindings/clock/imx8mq-clock.h> 77 + #include <dt-bindings/interrupt-controller/arm-gic.h> 78 + 79 + interrupt-controller@32e2d000 { 80 + compatible = "fsl,imx-irqsteer"; 81 + reg = <0x32e2d000 0x1000>; 82 + interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; 83 + clocks = <&clk IMX8MQ_CLK_DISP_APB_ROOT>; 84 + clock-names = "ipg"; 85 + fsl,channel = <0>; 86 + fsl,num-irqs = <64>; 87 + interrupt-controller; 88 + #interrupt-cells = <1>; 89 + };
-28
Documentation/devicetree/bindings/interrupt-controller/ingenic,intc.txt
··· 1 - Ingenic SoC Interrupt Controller 2 - 3 - Required properties: 4 - 5 - - compatible : should be "ingenic,<socname>-intc". Valid strings are: 6 - ingenic,jz4740-intc 7 - ingenic,jz4725b-intc 8 - ingenic,jz4770-intc 9 - ingenic,jz4775-intc 10 - ingenic,jz4780-intc 11 - - reg : Specifies base physical address and size of the registers. 12 - - interrupt-controller : Identifies the node as an interrupt controller 13 - - #interrupt-cells : Specifies the number of cells needed to encode an 14 - interrupt source. The value shall be 1. 15 - - interrupts : Specifies the CPU interrupt the controller is connected to. 16 - 17 - Example: 18 - 19 - intc: interrupt-controller@10001000 { 20 - compatible = "ingenic,jz4740-intc"; 21 - reg = <0x10001000 0x14>; 22 - 23 - interrupt-controller; 24 - #interrupt-cells = <1>; 25 - 26 - interrupt-parent = <&cpuintc>; 27 - interrupts = <2>; 28 - };
+63
Documentation/devicetree/bindings/interrupt-controller/ingenic,intc.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/ingenic,intc.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Ingenic SoCs interrupt controller devicetree bindings 8 + 9 + maintainers: 10 + - Paul Cercueil <paul@crapouillou.net> 11 + 12 + properties: 13 + $nodename: 14 + pattern: "^interrupt-controller@[0-9a-f]+$" 15 + 16 + compatible: 17 + oneOf: 18 + - enum: 19 + - ingenic,jz4740-intc 20 + - ingenic,jz4760-intc 21 + - ingenic,jz4780-intc 22 + - items: 23 + - enum: 24 + - ingenic,jz4775-intc 25 + - ingenic,jz4770-intc 26 + - const: ingenic,jz4760-intc 27 + - items: 28 + - const: ingenic,x1000-intc 29 + - const: ingenic,jz4780-intc 30 + - items: 31 + - const: ingenic,jz4725b-intc 32 + - const: ingenic,jz4740-intc 33 + 34 + "#interrupt-cells": 35 + const: 1 36 + 37 + reg: 38 + maxItems: 1 39 + 40 + interrupts: 41 + maxItems: 1 42 + 43 + interrupt-controller: true 44 + 45 + required: 46 + - compatible 47 + - reg 48 + - interrupts 49 + - "#interrupt-cells" 50 + - interrupt-controller 51 + 52 + examples: 53 + - | 54 + intc: interrupt-controller@10001000 { 55 + compatible = "ingenic,jz4770-intc", "ingenic,jz4760-intc"; 56 + reg = <0x10001000 0x40>; 57 + 58 + interrupt-controller; 59 + #interrupt-cells = <1>; 60 + 61 + interrupt-parent = <&cpuintc>; 62 + interrupts = <2>; 63 + };
+4 -4
Documentation/devicetree/bindings/interrupt-controller/intel,ixp4xx-interrupt.yaml
··· 25 25 compatible: 26 26 items: 27 27 - enum: 28 - - intel,ixp42x-interrupt 29 - - intel,ixp43x-interrupt 30 - - intel,ixp45x-interrupt 31 - - intel,ixp46x-interrupt 28 + - intel,ixp42x-interrupt 29 + - intel,ixp43x-interrupt 30 + - intel,ixp45x-interrupt 31 + - intel,ixp46x-interrupt 32 32 33 33 reg: 34 34 maxItems: 1
+3 -5
Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml
··· 54 54 and each bit in the cell refers to a children interrupt fron 0 to 31. 55 55 If a CPU interrupt line didn't connected with liointc, then keep it's 56 56 cell with zero. 57 - allOf: 58 - - $ref: /schemas/types.yaml#/definitions/uint32-array 59 - - minItems: 4 60 - maxItems: 4 61 - 57 + $ref: /schemas/types.yaml#/definitions/uint32-array 58 + minItems: 4 59 + maxItems: 4 62 60 63 61 required: 64 62 - compatible
-62
Documentation/devicetree/bindings/interrupt-controller/renesas,intc-irqpin.txt
··· 1 - DT bindings for the R-/SH-Mobile irqpin controller 2 - 3 - Required properties: 4 - 5 - - compatible: has to be "renesas,intc-irqpin-<soctype>", "renesas,intc-irqpin" 6 - as fallback. 7 - Examples with soctypes are: 8 - - "renesas,intc-irqpin-r8a7740" (R-Mobile A1) 9 - - "renesas,intc-irqpin-r8a7778" (R-Car M1A) 10 - - "renesas,intc-irqpin-r8a7779" (R-Car H1) 11 - - "renesas,intc-irqpin-sh73a0" (SH-Mobile AG5) 12 - 13 - - reg: Base address and length of each register bank used by the external 14 - IRQ pins driven by the interrupt controller hardware module. The base 15 - addresses, length and number of required register banks varies with soctype. 16 - - interrupt-controller: Identifies the node as an interrupt controller. 17 - - #interrupt-cells: has to be <2>: an interrupt index and flags, as defined in 18 - interrupts.txt in this directory. 19 - - interrupts: Must contain a list of interrupt specifiers. For each interrupt 20 - provided by this irqpin controller instance, there must be one entry, 21 - referring to the corresponding parent interrupt. 22 - 23 - Optional properties: 24 - 25 - - any properties, listed in interrupts.txt, and any standard resource allocation 26 - properties 27 - - sense-bitfield-width: width of a single sense bitfield in the SENSE register, 28 - if different from the default 4 bits 29 - - control-parent: disable and enable interrupts on the parent interrupt 30 - controller, needed for some broken implementations 31 - - clocks: Must contain a reference to the functional clock. This property is 32 - mandatory if the hardware implements a controllable functional clock for 33 - the irqpin controller instance. 34 - - power-domains: Must contain a reference to the power domain. This property is 35 - mandatory if the irqpin controller instance is part of a controllable power 36 - domain. 37 - 38 - 39 - Example 40 - ------- 41 - 42 - irqpin1: interrupt-controller@e6900004 { 43 - compatible = "renesas,intc-irqpin-r8a7740", 44 - "renesas,intc-irqpin"; 45 - #interrupt-cells = <2>; 46 - interrupt-controller; 47 - reg = <0xe6900004 4>, 48 - <0xe6900014 4>, 49 - <0xe6900024 1>, 50 - <0xe6900044 1>, 51 - <0xe6900064 1>; 52 - interrupts = <0 149 IRQ_TYPE_LEVEL_HIGH 53 - 0 149 IRQ_TYPE_LEVEL_HIGH 54 - 0 149 IRQ_TYPE_LEVEL_HIGH 55 - 0 149 IRQ_TYPE_LEVEL_HIGH 56 - 0 149 IRQ_TYPE_LEVEL_HIGH 57 - 0 149 IRQ_TYPE_LEVEL_HIGH 58 - 0 149 IRQ_TYPE_LEVEL_HIGH 59 - 0 149 IRQ_TYPE_LEVEL_HIGH>; 60 - clocks = <&mstp2_clks R8A7740_CLK_INTCA>; 61 - power-domains = <&pd_a4s>; 62 - };
+107
Documentation/devicetree/bindings/interrupt-controller/renesas,intc-irqpin.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/renesas,intc-irqpin.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Renesas Interrupt Controller (INTC) for external pins 8 + 9 + maintainers: 10 + - Geert Uytterhoeven <geert+renesas@glider.be> 11 + 12 + properties: 13 + compatible: 14 + items: 15 + - enum: 16 + - renesas,intc-irqpin-r8a7740 # R-Mobile A1 17 + - renesas,intc-irqpin-r8a7778 # R-Car M1A 18 + - renesas,intc-irqpin-r8a7779 # R-Car H1 19 + - renesas,intc-irqpin-sh73a0 # SH-Mobile AG5 20 + - const: renesas,intc-irqpin 21 + 22 + reg: 23 + minItems: 5 24 + items: 25 + - description: Interrupt control register 26 + - description: Interrupt priority register 27 + - description: Interrupt source register 28 + - description: Interrupt mask register 29 + - description: Interrupt mask clear register 30 + - description: Interrupt control register for ICR0 with IRLM0 bit 31 + 32 + interrupt-controller: true 33 + 34 + '#interrupt-cells': 35 + const: 2 36 + 37 + interrupts: 38 + minItems: 1 39 + maxItems: 8 40 + 41 + sense-bitfield-width: 42 + $ref: /schemas/types.yaml#/definitions/uint32 43 + enum: [2, 4] 44 + default: 4 45 + description: 46 + Width of a single sense bitfield in the SENSE register, if different from the 47 + default. 48 + 49 + control-parent: 50 + type: boolean 51 + description: 52 + Disable and enable interrupts on the parent interrupt controller, needed for some 53 + broken implementations. 54 + 55 + clocks: 56 + maxItems: 1 57 + 58 + power-domains: 59 + maxItems: 1 60 + 61 + required: 62 + - compatible 63 + - reg 64 + - interrupt-controller 65 + - '#interrupt-cells' 66 + - interrupts 67 + 68 + if: 69 + properties: 70 + compatible: 71 + contains: 72 + enum: 73 + - renesas,intc-irqpin-r8a7740 74 + - renesas,intc-irqpin-sh73a0 75 + then: 76 + required: 77 + - clocks 78 + - power-domains 79 + 80 + additionalProperties: false 81 + 82 + examples: 83 + - | 84 + #include <dt-bindings/clock/r8a7740-clock.h> 85 + #include <dt-bindings/interrupt-controller/arm-gic.h> 86 + #include <dt-bindings/interrupt-controller/irq.h> 87 + 88 + irqpin1: interrupt-controller@e6900004 { 89 + compatible = "renesas,intc-irqpin-r8a7740", "renesas,intc-irqpin"; 90 + reg = <0xe6900004 4>, 91 + <0xe6900014 4>, 92 + <0xe6900024 1>, 93 + <0xe6900044 1>, 94 + <0xe6900064 1>; 95 + interrupt-controller; 96 + #interrupt-cells = <2>; 97 + interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>, 98 + <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>, 99 + <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>, 100 + <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>, 101 + <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>, 102 + <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>, 103 + <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>, 104 + <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>; 105 + clocks = <&mstp2_clks R8A7740_CLK_INTCA>; 106 + power-domains = <&pd_a4s>; 107 + };
+2 -1
Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.yaml
··· 14 14 items: 15 15 - enum: 16 16 - renesas,irqc-r8a73a4 # R-Mobile APE6 17 + - renesas,irqc-r8a7742 # RZ/G1H 17 18 - renesas,irqc-r8a7743 # RZ/G1M 18 19 - renesas,irqc-r8a7744 # RZ/G1N 19 20 - renesas,irqc-r8a7745 # RZ/G1E ··· 79 78 compatible = "renesas,irqc-r8a7790", "renesas,irqc"; 80 79 #interrupt-cells = <2>; 81 80 interrupt-controller; 82 - reg = <0 0xe61c0000 0 0x200>; 81 + reg = <0xe61c0000 0x200>; 83 82 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, 84 83 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>, 85 84 <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
+6 -6
Documentation/devicetree/bindings/interrupt-controller/st,stm32-exti.yaml
··· 14 14 compatible: 15 15 oneOf: 16 16 - items: 17 - - enum: 18 - - st,stm32-exti 19 - - st,stm32h7-exti 17 + - enum: 18 + - st,stm32-exti 19 + - st,stm32h7-exti 20 20 - items: 21 - - enum: 22 - - st,stm32mp1-exti 23 - - const: syscon 21 + - enum: 22 + - st,stm32mp1-exti 23 + - const: syscon 24 24 25 25 "#interrupt-cells": 26 26 const: 2
+1 -2
Documentation/devicetree/bindings/iommu/arm,smmu.yaml
··· 57 57 58 58 '#global-interrupts': 59 59 description: The number of global interrupts exposed by the device. 60 - allOf: 61 - - $ref: /schemas/types.yaml#/definitions/uint32 60 + $ref: /schemas/types.yaml#/definitions/uint32 62 61 minimum: 0 63 62 maximum: 260 # 2 secure, 2 non-secure, and up to 256 perf counters 64 63
-73
Documentation/devicetree/bindings/iommu/renesas,ipmmu-vmsa.txt
··· 1 - * Renesas VMSA-Compatible IOMMU 2 - 3 - The IPMMU is an IOMMU implementation compatible with the ARM VMSA page tables. 4 - It provides address translation for bus masters outside of the CPU, each 5 - connected to the IPMMU through a port called micro-TLB. 6 - 7 - 8 - Required Properties: 9 - 10 - - compatible: Must contain SoC-specific and generic entry below in case 11 - the device is compatible with the R-Car Gen2 VMSA-compatible IPMMU. 12 - 13 - - "renesas,ipmmu-r8a73a4" for the R8A73A4 (R-Mobile APE6) IPMMU. 14 - - "renesas,ipmmu-r8a7743" for the R8A7743 (RZ/G1M) IPMMU. 15 - - "renesas,ipmmu-r8a7744" for the R8A7744 (RZ/G1N) IPMMU. 16 - - "renesas,ipmmu-r8a7745" for the R8A7745 (RZ/G1E) IPMMU. 17 - - "renesas,ipmmu-r8a774a1" for the R8A774A1 (RZ/G2M) IPMMU. 18 - - "renesas,ipmmu-r8a774b1" for the R8A774B1 (RZ/G2N) IPMMU. 19 - - "renesas,ipmmu-r8a774c0" for the R8A774C0 (RZ/G2E) IPMMU. 20 - - "renesas,ipmmu-r8a7790" for the R8A7790 (R-Car H2) IPMMU. 21 - - "renesas,ipmmu-r8a7791" for the R8A7791 (R-Car M2-W) IPMMU. 22 - - "renesas,ipmmu-r8a7793" for the R8A7793 (R-Car M2-N) IPMMU. 23 - - "renesas,ipmmu-r8a7794" for the R8A7794 (R-Car E2) IPMMU. 24 - - "renesas,ipmmu-r8a7795" for the R8A7795 (R-Car H3) IPMMU. 25 - - "renesas,ipmmu-r8a7796" for the R8A7796 (R-Car M3-W) IPMMU. 26 - - "renesas,ipmmu-r8a77965" for the R8A77965 (R-Car M3-N) IPMMU. 27 - - "renesas,ipmmu-r8a77970" for the R8A77970 (R-Car V3M) IPMMU. 28 - - "renesas,ipmmu-r8a77980" for the R8A77980 (R-Car V3H) IPMMU. 29 - - "renesas,ipmmu-r8a77990" for the R8A77990 (R-Car E3) IPMMU. 30 - - "renesas,ipmmu-r8a77995" for the R8A77995 (R-Car D3) IPMMU. 31 - - "renesas,ipmmu-vmsa" for generic R-Car Gen2 or RZ/G1 VMSA-compatible 32 - IPMMU. 33 - 34 - - reg: Base address and size of the IPMMU registers. 35 - - interrupts: Specifiers for the MMU fault interrupts. For instances that 36 - support secure mode two interrupts must be specified, for non-secure and 37 - secure mode, in that order. For instances that don't support secure mode a 38 - single interrupt must be specified. Not required for cache IPMMUs. 39 - 40 - - #iommu-cells: Must be 1. 41 - 42 - Optional properties: 43 - 44 - - renesas,ipmmu-main: reference to the main IPMMU instance in two cells. 45 - The first cell is a phandle to the main IPMMU and the second cell is 46 - the interrupt bit number associated with the particular cache IPMMU device. 47 - The interrupt bit number needs to match the main IPMMU IMSSTR register. 48 - Only used by cache IPMMU instances. 49 - 50 - 51 - Each bus master connected to an IPMMU must reference the IPMMU in its device 52 - node with the following property: 53 - 54 - - iommus: A reference to the IPMMU in two cells. The first cell is a phandle 55 - to the IPMMU and the second cell the number of the micro-TLB that the 56 - device is connected to. 57 - 58 - 59 - Example: R8A7791 IPMMU-MX and VSP1-D0 bus master 60 - 61 - ipmmu_mx: mmu@fe951000 { 62 - compatible = "renasas,ipmmu-r8a7791", "renasas,ipmmu-vmsa"; 63 - reg = <0 0xfe951000 0 0x1000>; 64 - interrupts = <0 222 IRQ_TYPE_LEVEL_HIGH>, 65 - <0 221 IRQ_TYPE_LEVEL_HIGH>; 66 - #iommu-cells = <1>; 67 - }; 68 - 69 - vsp@fe928000 { 70 - ... 71 - iommus = <&ipmmu_mx 13>; 72 - ... 73 - };
+98
Documentation/devicetree/bindings/iommu/renesas,ipmmu-vmsa.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/iommu/renesas,ipmmu-vmsa.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Renesas VMSA-Compatible IOMMU 8 + 9 + maintainers: 10 + - Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> 11 + 12 + description: 13 + The IPMMU is an IOMMU implementation compatible with the ARM VMSA page tables. 14 + It provides address translation for bus masters outside of the CPU, each 15 + connected to the IPMMU through a port called micro-TLB. 16 + 17 + properties: 18 + compatible: 19 + oneOf: 20 + - items: 21 + - enum: 22 + - renesas,ipmmu-r8a73a4 # R-Mobile APE6 23 + - renesas,ipmmu-r8a7743 # RZ/G1M 24 + - renesas,ipmmu-r8a7744 # RZ/G1N 25 + - renesas,ipmmu-r8a7745 # RZ/G1E 26 + - renesas,ipmmu-r8a7790 # R-Car H2 27 + - renesas,ipmmu-r8a7791 # R-Car M2-W 28 + - renesas,ipmmu-r8a7793 # R-Car M2-N 29 + - renesas,ipmmu-r8a7794 # R-Car E2 30 + - const: renesas,ipmmu-vmsa # R-Mobile APE6 or R-Car Gen2 or RZ/G1 31 + - items: 32 + - enum: 33 + - renesas,ipmmu-r8a774a1 # RZ/G2M 34 + - renesas,ipmmu-r8a774b1 # RZ/G2N 35 + - renesas,ipmmu-r8a774c0 # RZ/G2E 36 + - renesas,ipmmu-r8a7795 # R-Car H3 37 + - renesas,ipmmu-r8a7796 # R-Car M3-W 38 + - renesas,ipmmu-r8a77965 # R-Car M3-N 39 + - renesas,ipmmu-r8a77970 # R-Car V3M 40 + - renesas,ipmmu-r8a77980 # R-Car V3H 41 + - renesas,ipmmu-r8a77990 # R-Car E3 42 + - renesas,ipmmu-r8a77995 # R-Car D3 43 + 44 + reg: 45 + maxItems: 1 46 + 47 + interrupts: 48 + minItems: 1 49 + maxItems: 2 50 + description: 51 + Specifiers for the MMU fault interrupts. Not required for cache IPMMUs. 52 + items: 53 + - description: non-secure mode 54 + - description: secure mode if supported 55 + 56 + '#iommu-cells': 57 + const: 1 58 + description: 59 + The number of the micro-TLB that the device is connected to. 60 + 61 + power-domains: 62 + maxItems: 1 63 + 64 + renesas,ipmmu-main: 65 + $ref: /schemas/types.yaml#/definitions/phandle-array 66 + description: 67 + Reference to the main IPMMU phandle plus 1 cell. The cell is 68 + the interrupt bit number associated with the particular cache IPMMU 69 + device. The interrupt bit number needs to match the main IPMMU IMSSTR 70 + register. Only used by cache IPMMU instances. 71 + 72 + required: 73 + - compatible 74 + - reg 75 + - '#iommu-cells' 76 + - power-domains 77 + 78 + oneOf: 79 + - required: 80 + - interrupts 81 + - required: 82 + - renesas,ipmmu-main 83 + 84 + additionalProperties: false 85 + 86 + examples: 87 + - | 88 + #include <dt-bindings/clock/r8a7791-cpg-mssr.h> 89 + #include <dt-bindings/interrupt-controller/arm-gic.h> 90 + #include <dt-bindings/power/r8a7791-sysc.h> 91 + 92 + ipmmu_mx: iommu@fe951000 { 93 + compatible = "renasas,ipmmu-r8a7791", "renasas,ipmmu-vmsa"; 94 + reg = <0xfe951000 0x1000>; 95 + interrupts = <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>, 96 + <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>; 97 + #iommu-cells = <1>; 98 + };
+5 -5
Documentation/devicetree/bindings/iommu/samsung,sysmmu.yaml
··· 54 54 clock-names: 55 55 oneOf: 56 56 - items: 57 - - const: sysmmu 57 + - const: sysmmu 58 58 - items: 59 - - const: sysmmu 60 - - const: master 59 + - const: sysmmu 60 + - const: master 61 61 - items: 62 - - const: aclk 63 - - const: pclk 62 + - const: aclk 63 + - const: pclk 64 64 65 65 "#iommu-cells": 66 66 const: 0
-25
Documentation/devicetree/bindings/ipmi/ipmi-smic.txt
··· 1 - IPMI device 2 - 3 - Required properties: 4 - - compatible: should be one of ipmi-kcs, ipmi-smic, or ipmi-bt 5 - - device_type: should be ipmi 6 - - reg: Address and length of the register set for the device 7 - 8 - Optional properties: 9 - - interrupts: The interrupt for the device. Without this the interface 10 - is polled. 11 - - reg-size - The size of the register. Defaults to 1 12 - - reg-spacing - The number of bytes between register starts. Defaults to 1 13 - - reg-shift - The amount to shift the registers to the right to get the data 14 - into bit zero. 15 - 16 - Example: 17 - 18 - smic@fff3a000 { 19 - compatible = "ipmi-smic"; 20 - device_type = "ipmi"; 21 - reg = <0xfff3a000 0x1000>; 22 - interrupts = <0 24 4>; 23 - reg-size = <4>; 24 - reg-spacing = <4>; 25 - };
+63
Documentation/devicetree/bindings/ipmi/ipmi-smic.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/ipmi/ipmi-smic.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: IPMI device bindings 8 + 9 + description: IPMI device bindings 10 + 11 + maintainers: 12 + - Corey Minyard <cminyard@mvista.com> 13 + 14 + properties: 15 + compatible: 16 + enum: 17 + - ipmi-kcs 18 + - ipmi-smic 19 + - ipmi-bt 20 + 21 + device_type: 22 + items: 23 + - const: "ipmi" 24 + 25 + reg: 26 + maxItems: 1 27 + 28 + interrupts: 29 + description: Interface is polled if this property is omitted. 30 + maxItems: 1 31 + 32 + reg-size: 33 + description: The access width of the register in bytes. Defaults to 1. 34 + allOf: 35 + - $ref: /schemas/types.yaml#/definitions/uint32 36 + - enum: [1, 2, 4, 8] 37 + 38 + reg-spacing: 39 + $ref: /schemas/types.yaml#/definitions/uint32 40 + description: The number of bytes between register starts. Defaults to 1. 41 + 42 + reg-shift: 43 + description: | 44 + The amount of bits to shift the register content to the right to get 45 + the data into bit zero. 46 + allOf: 47 + - $ref: /schemas/types.yaml#/definitions/uint32 48 + - maximum: 56 49 + 50 + required: 51 + - compatible 52 + - reg 53 + 54 + examples: 55 + - | 56 + smic@fff3a000 { 57 + compatible = "ipmi-smic"; 58 + device_type = "ipmi"; 59 + reg = <0xfff3a000 0x1000>; 60 + interrupts = <0 24 4>; 61 + reg-size = <4>; 62 + reg-spacing = <4>; 63 + };
+5 -8
Documentation/devicetree/bindings/leds/common.yaml
··· 41 41 Color of the LED. Use one of the LED_COLOR_ID_* prefixed definitions from 42 42 the header include/dt-bindings/leds/common.h. If there is no matching 43 43 LED_COLOR_ID available, add a new one. 44 - allOf: 45 - - $ref: /schemas/types.yaml#definitions/uint32 44 + $ref: /schemas/types.yaml#definitions/uint32 46 45 minimum: 0 47 46 maximum: 8 48 47 ··· 66 67 produced where the LED momentarily turns off (or on). The "keep" setting 67 68 will keep the LED at whatever its current state is, without producing a 68 69 glitch. 69 - allOf: 70 - - $ref: /schemas/types.yaml#definitions/string 70 + $ref: /schemas/types.yaml#definitions/string 71 71 enum: 72 72 - on 73 73 - off ··· 77 79 description: 78 80 This parameter, if present, is a string defining the trigger assigned to 79 81 the LED. 80 - allOf: 81 - - $ref: /schemas/types.yaml#definitions/string 82 + $ref: /schemas/types.yaml#definitions/string 83 + 82 84 enum: 83 85 # LED will act as a back-light, controlled by the framebuffer system 84 86 - backlight ··· 109 111 brightness and duration (in ms). The exact format is 110 112 described in: 111 113 Documentation/devicetree/bindings/leds/leds-trigger-pattern.txt 112 - allOf: 113 - - $ref: /schemas/types.yaml#definitions/uint32-matrix 114 + $ref: /schemas/types.yaml#definitions/uint32-matrix 114 115 items: 115 116 minItems: 2 116 117 maxItems: 2
+1 -2
Documentation/devicetree/bindings/leds/leds-gpio.yaml
··· 24 24 "(^led-[0-9a-f]$|led)": 25 25 type: object 26 26 27 - allOf: 28 - - $ref: common.yaml# 27 + $ref: common.yaml# 29 28 30 29 properties: 31 30 gpios:
+4 -5
Documentation/devicetree/bindings/leds/rohm,bd71828-leds.yaml
··· 34 34 #- $ref: "common.yaml#" 35 35 rohm,led-compatible: 36 36 description: LED identification string 37 - allOf: 38 - - $ref: "/schemas/types.yaml#/definitions/string" 39 - - enum: 40 - - bd71828-ambled 41 - - bd71828-grnled 37 + $ref: "/schemas/types.yaml#/definitions/string" 38 + enum: 39 + - bd71828-ambled 40 + - bd71828-grnled 42 41 function: 43 42 description: 44 43 Purpose of LED as defined in dt-bindings/leds/common.h
-58
Documentation/devicetree/bindings/mailbox/fsl,mu.txt
··· 1 - NXP i.MX Messaging Unit (MU) 2 - -------------------------------------------------------------------- 3 - 4 - The Messaging Unit module enables two processors within the SoC to 5 - communicate and coordinate by passing messages (e.g. data, status 6 - and control) through the MU interface. The MU also provides the ability 7 - for one processor to signal the other processor using interrupts. 8 - 9 - Because the MU manages the messaging between processors, the MU uses 10 - different clocks (from each side of the different peripheral buses). 11 - Therefore, the MU must synchronize the accesses from one side to the 12 - other. The MU accomplishes synchronization using two sets of matching 13 - registers (Processor A-facing, Processor B-facing). 14 - 15 - Messaging Unit Device Node: 16 - ============================= 17 - 18 - Required properties: 19 - ------------------- 20 - - compatible : should be "fsl,<chip>-mu", the supported chips include 21 - imx6sx, imx7s, imx8qxp, imx8qm. 22 - The "fsl,imx6sx-mu" compatible is seen as generic and should 23 - be included together with SoC specific compatible. 24 - There is a version 1.0 MU on imx7ulp, use "fsl,imx7ulp-mu" 25 - compatible to support it. 26 - To communicate with i.MX8 SCU, "fsl,imx8-mu-scu" could be 27 - used for fast IPC 28 - - reg : Should contain the registers location and length 29 - - interrupts : Interrupt number. The interrupt specifier format depends 30 - on the interrupt controller parent. 31 - - #mbox-cells: Must be 2. 32 - <&phandle type channel> 33 - phandle : Label name of controller 34 - type : Channel type 35 - channel : Channel number 36 - 37 - This MU support 4 type of unidirectional channels, each type 38 - has 4 channels. A total of 16 channels. Following types are 39 - supported: 40 - 0 - TX channel with 32bit transmit register and IRQ transmit 41 - acknowledgment support. 42 - 1 - RX channel with 32bit receive register and IRQ support 43 - 2 - TX doorbell channel. Without own register and no ACK support. 44 - 3 - RX doorbell channel. 45 - 46 - Optional properties: 47 - ------------------- 48 - - clocks : phandle to the input clock. 49 - - fsl,mu-side-b : Should be set for side B MU. 50 - 51 - Examples: 52 - -------- 53 - lsio_mu0: mailbox@5d1b0000 { 54 - compatible = "fsl,imx8qxp-mu"; 55 - reg = <0x0 0x5d1b0000 0x0 0x10000>; 56 - interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>; 57 - #mbox-cells = <2>; 58 - };
+91
Documentation/devicetree/bindings/mailbox/fsl,mu.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/fsl,mu.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: NXP i.MX Messaging Unit (MU) 8 + 9 + maintainers: 10 + - Dong Aisheng <aisheng.dong@nxp.com> 11 + 12 + description: | 13 + The Messaging Unit module enables two processors within the SoC to 14 + communicate and coordinate by passing messages (e.g. data, status 15 + and control) through the MU interface. The MU also provides the ability 16 + for one processor to signal the other processor using interrupts. 17 + 18 + Because the MU manages the messaging between processors, the MU uses 19 + different clocks (from each side of the different peripheral buses). 20 + Therefore, the MU must synchronize the accesses from one side to the 21 + other. The MU accomplishes synchronization using two sets of matching 22 + registers (Processor A-facing, Processor B-facing). 23 + 24 + properties: 25 + compatible: 26 + oneOf: 27 + - const: fsl,imx6sx-mu 28 + - const: fsl,imx7ulp-mu 29 + - const: fsl,imx8-mu-scu 30 + - items: 31 + - enum: 32 + - fsl,imx7s-mu 33 + - fsl,imx8mq-mu 34 + - fsl,imx8mm-mu 35 + - fsl,imx8mn-mu 36 + - fsl,imx8mp-mu 37 + - fsl,imx8qxp-mu 38 + - const: fsl,imx6sx-mu 39 + - description: To communicate with i.MX8 SCU with fast IPC 40 + items: 41 + - const: fsl,imx8qxp-mu 42 + - const: fsl,imx8-mu-scu 43 + 44 + reg: 45 + maxItems: 1 46 + 47 + interrupts: 48 + maxItems: 1 49 + 50 + "#mbox-cells": 51 + description: | 52 + <&phandle type channel> 53 + phandle : Label name of controller 54 + type : Channel type 55 + channel : Channel number 56 + 57 + This MU support 4 type of unidirectional channels, each type 58 + has 4 channels. A total of 16 channels. Following types are 59 + supported: 60 + 0 - TX channel with 32bit transmit register and IRQ transmit 61 + acknowledgment support. 62 + 1 - RX channel with 32bit receive register and IRQ support 63 + 2 - TX doorbell channel. Without own register and no ACK support. 64 + 3 - RX doorbell channel. 65 + const: 2 66 + 67 + clocks: 68 + maxItems: 1 69 + 70 + fsl,mu-side-b: 71 + description: boolean, if present, means it is for side B MU. 72 + type: boolean 73 + 74 + required: 75 + - compatible 76 + - reg 77 + - interrupts 78 + - "#mbox-cells" 79 + 80 + additionalProperties: false 81 + 82 + examples: 83 + - | 84 + #include <dt-bindings/interrupt-controller/arm-gic.h> 85 + 86 + mailbox@5d1b0000 { 87 + compatible = "fsl,imx8qxp-mu", "fsl,imx6sx-mu"; 88 + reg = <0x5d1b0000 0x10000>; 89 + interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>; 90 + #mbox-cells = <2>; 91 + };
+3 -4
Documentation/devicetree/bindings/mailbox/st,stm32-ipcc.yaml
··· 24 24 maxItems: 1 25 25 26 26 clocks: 27 - maxItems: 1 27 + maxItems: 1 28 28 29 29 interrupts: 30 30 items: ··· 49 49 50 50 st,proc-id: 51 51 description: Processor id using the mailbox (0 or 1) 52 - allOf: 53 - - $ref: /schemas/types.yaml#/definitions/uint32 54 - - enum: [ 0, 1 ] 52 + $ref: /schemas/types.yaml#/definitions/uint32 53 + enum: [0, 1] 55 54 56 55 required: 57 56 - compatible
+14 -14
Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml
··· 20 20 - const: allwinner,sun4i-a10-csi1 21 21 - const: allwinner,sun7i-a20-csi0 22 22 - items: 23 - - const: allwinner,sun7i-a20-csi1 24 - - const: allwinner,sun4i-a10-csi1 23 + - const: allwinner,sun7i-a20-csi1 24 + - const: allwinner,sun4i-a10-csi1 25 25 - items: 26 - - const: allwinner,sun8i-r40-csi0 27 - - const: allwinner,sun7i-a20-csi0 26 + - const: allwinner,sun8i-r40-csi0 27 + - const: allwinner,sun7i-a20-csi0 28 28 29 29 reg: 30 30 maxItems: 1 ··· 35 35 clocks: 36 36 oneOf: 37 37 - items: 38 - - description: The CSI interface clock 39 - - description: The CSI DRAM clock 38 + - description: The CSI interface clock 39 + - description: The CSI DRAM clock 40 40 41 41 - items: 42 - - description: The CSI interface clock 43 - - description: The CSI ISP clock 44 - - description: The CSI DRAM clock 42 + - description: The CSI interface clock 43 + - description: The CSI ISP clock 44 + - description: The CSI DRAM clock 45 45 46 46 clock-names: 47 47 oneOf: 48 48 - items: 49 - - const: bus 50 - - const: ram 49 + - const: bus 50 + - const: ram 51 51 52 52 - items: 53 - - const: bus 54 - - const: isp 55 - - const: ram 53 + - const: bus 54 + - const: isp 55 + - const: ram 56 56 57 57 resets: 58 58 maxItems: 1
+9 -11
Documentation/devicetree/bindings/media/amlogic,gx-vdec.yaml
··· 29 29 compatible: 30 30 oneOf: 31 31 - items: 32 - - enum: 33 - - amlogic,gxbb-vdec # GXBB (S905) 34 - - amlogic,gxl-vdec # GXL (S905X, S905D) 35 - - amlogic,gxm-vdec # GXM (S912) 36 - - const: amlogic,gx-vdec 32 + - enum: 33 + - amlogic,gxbb-vdec # GXBB (S905) 34 + - amlogic,gxl-vdec # GXL (S905X, S905D) 35 + - amlogic,gxm-vdec # GXM (S912) 36 + - const: amlogic,gx-vdec 37 37 - enum: 38 - - amlogic,g12a-vdec # G12A (S905X2, S905D2) 39 - - amlogic,sm1-vdec # SM1 (S905X3, S905D3) 38 + - amlogic,g12a-vdec # G12A (S905X2, S905D2) 39 + - amlogic,sm1-vdec # SM1 (S905X3, S905D3) 40 40 41 41 interrupts: 42 42 minItems: 2 ··· 77 77 78 78 amlogic,ao-sysctrl: 79 79 description: should point to the AOBUS sysctrl node 80 - allOf: 81 - - $ref: /schemas/types.yaml#/definitions/phandle 80 + $ref: /schemas/types.yaml#/definitions/phandle 82 81 83 82 amlogic,canvas: 84 83 description: should point to a canvas provider node 85 - allOf: 86 - - $ref: /schemas/types.yaml#/definitions/phandle 84 + $ref: /schemas/types.yaml#/definitions/phandle 87 85 88 86 allOf: 89 87 - if:
+2 -3
Documentation/devicetree/bindings/media/amlogic,meson-gx-ao-cec.yaml
··· 35 35 36 36 hdmi-phandle: 37 37 description: phandle to the HDMI controller 38 - allOf: 39 - - $ref: /schemas/types.yaml#/definitions/phandle 38 + $ref: /schemas/types.yaml#/definitions/phandle 40 39 41 40 allOf: 42 41 - if: ··· 87 88 - | 88 89 cec_AO: cec@100 { 89 90 compatible = "amlogic,meson-gx-ao-cec"; 90 - reg = <0x0 0x00100 0x0 0x14>; 91 + reg = <0x00100 0x14>; 91 92 interrupts = <199>; 92 93 clocks = <&clkc_cec>; 93 94 clock-names = "core";
+1 -2
Documentation/devicetree/bindings/media/i2c/imx219.yaml
··· 67 67 otherwise it's continuous. 68 68 69 69 link-frequencies: 70 - allOf: 71 - - $ref: /schemas/types.yaml#/definitions/uint64-array 70 + $ref: /schemas/types.yaml#/definitions/uint64-array 72 71 description: 73 72 Allowed data bus frequencies. 74 73
-50
Documentation/devicetree/bindings/media/marvell,mmp2-ccic.txt
··· 1 - Marvell MMP2 camera host interface 2 - 3 - Required properties: 4 - - compatible: Should be "marvell,mmp2-ccic". 5 - - reg: Register base and size. 6 - - interrupts: The interrupt number. 7 - - #clock-cells: Must be 0. 8 - 9 - Optional properties: 10 - - clocks: Reference to the input clock as specified by 11 - Documentation/devicetree/bindings/clock/clock-bindings.txt. 12 - - clock-names: Names of the clocks used; "axi" for the AXI bus interface, 13 - "func" for the peripheral clock and "phy" for the parallel 14 - video bus interface. 15 - - clock-output-names: Optional clock source for sensors. Shall be "mclk". 16 - 17 - Required subnodes: 18 - - port: The parallel bus interface port with a single endpoint linked to 19 - the sensor's endpoint as described in 20 - Documentation/devicetree/bindings/media/video-interfaces.txt. 21 - 22 - Required endpoint properties: 23 - - bus-type: data bus type, <5> or <6> for Parallel or Bt.656 respectively 24 - - pclk-sample: pixel clock polarity 25 - - hsync-active: horizontal synchronization polarity (only required for 26 - parallel bus) 27 - - vsync-active: vertical synchronization polarity (only required for 28 - parallel bus) 29 - 30 - Example: 31 - 32 - camera0: camera@d420a000 { 33 - compatible = "marvell,mmp2-ccic"; 34 - reg = <0xd420a000 0x800>; 35 - interrupts = <42>; 36 - clocks = <&soc_clocks MMP2_CLK_CCIC0>; 37 - clock-names = "axi"; 38 - #clock-cells = <0>; 39 - clock-output-names = "mclk"; 40 - 41 - port { 42 - camera0_0: endpoint { 43 - remote-endpoint = <&ov7670_0>; 44 - bus-type = <5>; /* Parallel */ 45 - hsync-active = <1>; /* Active high */ 46 - vsync-active = <1>; /* Active high */ 47 - pclk-sample = <0>; /* Falling */ 48 - }; 49 - }; 50 - };
+99
Documentation/devicetree/bindings/media/marvell,mmp2-ccic.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + # Copyright 2019,2020 Lubomir Rintel <lkundrak@v3.sk> 3 + %YAML 1.2 4 + --- 5 + $id: http://devicetree.org/schemas/media/marvell,mmp2-ccic.yaml# 6 + $schema: http://devicetree.org/meta-schemas/core.yaml# 7 + 8 + title: Marvell MMP2 camera host interface bindings 9 + 10 + maintainers: 11 + - Lubomir Rintel <lkundrak@v3.sk> 12 + 13 + properties: 14 + $nodename: 15 + pattern: '^camera@[a-f0-9]+$' 16 + 17 + compatible: 18 + const: marvell,mmp2-ccic 19 + 20 + reg: 21 + maxItems: 1 22 + 23 + interrupts: 24 + maxItems: 1 25 + 26 + port: 27 + type: object 28 + additionalProperties: false 29 + 30 + properties: 31 + endpoint: 32 + type: object 33 + additionalProperties: false 34 + 35 + # Properties described in 36 + # Documentation/devicetree/bindings/media/video-interfaces.txt 37 + properties: 38 + remote-endpoint: true 39 + hsync-active: true 40 + vsync-active: true 41 + pclk-sample: true 42 + bus-type: true 43 + 44 + required: 45 + - remote-endpoint 46 + 47 + required: 48 + - endpoint 49 + 50 + clocks: 51 + minItems: 1 52 + maxItems: 3 53 + items: 54 + - description: AXI bus interface clock 55 + - description: Peripheral clock 56 + - description: Parallel video bus interface clock 57 + 58 + clock-names: 59 + const: axi 60 + 61 + '#clock-cells': 62 + const: 0 63 + 64 + clock-output-names: 65 + const: mclk 66 + 67 + required: 68 + - compatible 69 + - reg 70 + - interrupts 71 + - port 72 + 73 + additionalProperties: false 74 + 75 + examples: 76 + - | 77 + #include <dt-bindings/clock/marvell,mmp2.h> 78 + 79 + camera@d420a000 { 80 + compatible = "marvell,mmp2-ccic"; 81 + reg = <0xd420a000 0x800>; 82 + interrupts = <42>; 83 + clocks = <&soc_clocks MMP2_CLK_CCIC0>; 84 + clock-names = "axi"; 85 + #clock-cells = <0>; 86 + clock-output-names = "mclk"; 87 + 88 + port { 89 + camera0_0: endpoint { 90 + remote-endpoint = <&ov7670_0>; 91 + bus-type = <5>; /* Parallel */ 92 + hsync-active = <1>; /* Active high */ 93 + vsync-active = <1>; /* Active high */ 94 + pclk-sample = <0>; /* Falling */ 95 + }; 96 + }; 97 + }; 98 + 99 + ...
+1 -1
Documentation/devicetree/bindings/media/qcom,sc7180-venus.yaml
··· 115 115 116 116 venus: video-codec@aa00000 { 117 117 compatible = "qcom,sc7180-venus"; 118 - reg = <0 0x0aa00000 0 0xff000>; 118 + reg = <0x0aa00000 0xff000>; 119 119 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 120 120 power-domains = <&videocc VENUS_GDSC>, 121 121 <&videocc VCODEC0_GDSC>;
+1 -1
Documentation/devicetree/bindings/media/qcom,sdm845-venus-v2.yaml
··· 110 110 111 111 video-codec@aa00000 { 112 112 compatible = "qcom,sdm845-venus-v2"; 113 - reg = <0 0x0aa00000 0 0xff000>; 113 + reg = <0x0aa00000 0xff000>; 114 114 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 115 115 clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK>, 116 116 <&videocc VIDEO_CC_VENUS_AHB_CLK>,
+1 -1
Documentation/devicetree/bindings/media/qcom,sdm845-venus.yaml
··· 127 127 128 128 video-codec@aa00000 { 129 129 compatible = "qcom,sdm845-venus"; 130 - reg = <0 0x0aa00000 0 0xff000>; 130 + reg = <0x0aa00000 0xff000>; 131 131 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 132 132 clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK>, 133 133 <&videocc VIDEO_CC_VENUS_AHB_CLK>,
+132 -133
Documentation/devicetree/bindings/media/rc.yaml
··· 18 18 description: 19 19 Specifies the scancode/key mapping table defined in-kernel for 20 20 the remote controller. 21 - allOf: 22 - - $ref: '/schemas/types.yaml#/definitions/string' 23 - - enum: 24 - - rc-adstech-dvb-t-pci 25 - - rc-alink-dtu-m 26 - - rc-anysee 27 - - rc-apac-viewcomp 28 - - rc-astrometa-t2hybrid 29 - - rc-asus-pc39 30 - - rc-asus-ps3-100 31 - - rc-ati-tv-wonder-hd-600 32 - - rc-ati-x10 33 - - rc-avermedia 34 - - rc-avermedia-a16d 35 - - rc-avermedia-cardbus 36 - - rc-avermedia-dvbt 37 - - rc-avermedia-m135a 38 - - rc-avermedia-m733a-rm-k6 39 - - rc-avermedia-rm-ks 40 - - rc-avertv-303 41 - - rc-azurewave-ad-tu700 42 - - rc-beelink-gs1 43 - - rc-behold 44 - - rc-behold-columbus 45 - - rc-budget-ci-old 46 - - rc-cec 47 - - rc-cinergy 48 - - rc-cinergy-1400 49 - - rc-d680-dmb 50 - - rc-delock-61959 51 - - rc-dib0700-nec 52 - - rc-dib0700-rc5 53 - - rc-digitalnow-tinytwin 54 - - rc-digittrade 55 - - rc-dm1105-nec 56 - - rc-dntv-live-dvb-t 57 - - rc-dntv-live-dvbt-pro 58 - - rc-dtt200u 59 - - rc-dvbsky 60 - - rc-dvico-mce 61 - - rc-dvico-portable 62 - - rc-em-terratec 63 - - rc-empty 64 - - rc-encore-enltv 65 - - rc-encore-enltv-fm53 66 - - rc-encore-enltv2 67 - - rc-evga-indtube 68 - - rc-eztv 69 - - rc-flydvb 70 - - rc-flyvideo 71 - - rc-fusionhdtv-mce 72 - - rc-gadmei-rm008z 73 - - rc-geekbox 74 - - rc-genius-tvgo-a11mce 75 - - rc-gotview7135 76 - - rc-hauppauge 77 - - rc-hisi-poplar 78 - - rc-hisi-tv-demo 79 - - rc-imon-mce 80 - - rc-imon-pad 81 - - rc-imon-rsc 82 - - rc-iodata-bctv7e 83 - - rc-it913x-v1 84 - - rc-it913x-v2 85 - - rc-kaiomy 86 - - rc-khadas 87 - - rc-kworld-315u 88 - - rc-kworld-pc150u 89 - - rc-kworld-plus-tv-analog 90 - - rc-leadtek-y04g0051 91 - - rc-lme2510 92 - - rc-manli 93 - - rc-medion-x10 94 - - rc-medion-x10-digitainer 95 - - rc-medion-x10-or2x 96 - - rc-msi-digivox-ii 97 - - rc-msi-digivox-iii 98 - - rc-msi-tvanywhere 99 - - rc-msi-tvanywhere-plus 100 - - rc-nebula 101 - - rc-nec-terratec-cinergy-xs 102 - - rc-norwood 103 - - rc-npgtech 104 - - rc-odroid 105 - - rc-pctv-sedna 106 - - rc-pinnacle-color 107 - - rc-pinnacle-grey 108 - - rc-pinnacle-pctv-hd 109 - - rc-pixelview 110 - - rc-pixelview-002t 111 - - rc-pixelview-mk12 112 - - rc-pixelview-new 113 - - rc-powercolor-real-angel 114 - - rc-proteus-2309 115 - - rc-purpletv 116 - - rc-pv951 117 - - rc-rc5-tv 118 - - rc-rc6-mce 119 - - rc-real-audio-220-32-keys 120 - - rc-reddo 121 - - rc-snapstream-firefly 122 - - rc-streamzap 123 - - rc-su3000 124 - - rc-tango 125 - - rc-tanix-tx3mini 126 - - rc-tanix-tx5max 127 - - rc-tbs-nec 128 - - rc-technisat-ts35 129 - - rc-technisat-usb2 130 - - rc-terratec-cinergy-c-pci 131 - - rc-terratec-cinergy-s2-hd 132 - - rc-terratec-cinergy-xs 133 - - rc-terratec-slim 134 - - rc-terratec-slim-2 135 - - rc-tevii-nec 136 - - rc-tivo 137 - - rc-total-media-in-hand 138 - - rc-total-media-in-hand-02 139 - - rc-trekstor 140 - - rc-tt-1500 141 - - rc-twinhan-dtv-cab-ci 142 - - rc-twinhan1027 143 - - rc-videomate-k100 144 - - rc-videomate-s350 145 - - rc-videomate-tv-pvr 146 - - rc-videostrong-kii-pro 147 - - rc-wetek-hub 148 - - rc-wetek-play2 149 - - rc-winfast 150 - - rc-winfast-usbii-deluxe 151 - - rc-x96max 152 - - rc-xbox-dvd 153 - - rc-zx-irdec 21 + $ref: '/schemas/types.yaml#/definitions/string' 22 + enum: 23 + - rc-adstech-dvb-t-pci 24 + - rc-alink-dtu-m 25 + - rc-anysee 26 + - rc-apac-viewcomp 27 + - rc-astrometa-t2hybrid 28 + - rc-asus-pc39 29 + - rc-asus-ps3-100 30 + - rc-ati-tv-wonder-hd-600 31 + - rc-ati-x10 32 + - rc-avermedia 33 + - rc-avermedia-a16d 34 + - rc-avermedia-cardbus 35 + - rc-avermedia-dvbt 36 + - rc-avermedia-m135a 37 + - rc-avermedia-m733a-rm-k6 38 + - rc-avermedia-rm-ks 39 + - rc-avertv-303 40 + - rc-azurewave-ad-tu700 41 + - rc-beelink-gs1 42 + - rc-behold 43 + - rc-behold-columbus 44 + - rc-budget-ci-old 45 + - rc-cec 46 + - rc-cinergy 47 + - rc-cinergy-1400 48 + - rc-d680-dmb 49 + - rc-delock-61959 50 + - rc-dib0700-nec 51 + - rc-dib0700-rc5 52 + - rc-digitalnow-tinytwin 53 + - rc-digittrade 54 + - rc-dm1105-nec 55 + - rc-dntv-live-dvb-t 56 + - rc-dntv-live-dvbt-pro 57 + - rc-dtt200u 58 + - rc-dvbsky 59 + - rc-dvico-mce 60 + - rc-dvico-portable 61 + - rc-em-terratec 62 + - rc-empty 63 + - rc-encore-enltv 64 + - rc-encore-enltv-fm53 65 + - rc-encore-enltv2 66 + - rc-evga-indtube 67 + - rc-eztv 68 + - rc-flydvb 69 + - rc-flyvideo 70 + - rc-fusionhdtv-mce 71 + - rc-gadmei-rm008z 72 + - rc-geekbox 73 + - rc-genius-tvgo-a11mce 74 + - rc-gotview7135 75 + - rc-hauppauge 76 + - rc-hisi-poplar 77 + - rc-hisi-tv-demo 78 + - rc-imon-mce 79 + - rc-imon-pad 80 + - rc-imon-rsc 81 + - rc-iodata-bctv7e 82 + - rc-it913x-v1 83 + - rc-it913x-v2 84 + - rc-kaiomy 85 + - rc-khadas 86 + - rc-kworld-315u 87 + - rc-kworld-pc150u 88 + - rc-kworld-plus-tv-analog 89 + - rc-leadtek-y04g0051 90 + - rc-lme2510 91 + - rc-manli 92 + - rc-medion-x10 93 + - rc-medion-x10-digitainer 94 + - rc-medion-x10-or2x 95 + - rc-msi-digivox-ii 96 + - rc-msi-digivox-iii 97 + - rc-msi-tvanywhere 98 + - rc-msi-tvanywhere-plus 99 + - rc-nebula 100 + - rc-nec-terratec-cinergy-xs 101 + - rc-norwood 102 + - rc-npgtech 103 + - rc-odroid 104 + - rc-pctv-sedna 105 + - rc-pinnacle-color 106 + - rc-pinnacle-grey 107 + - rc-pinnacle-pctv-hd 108 + - rc-pixelview 109 + - rc-pixelview-002t 110 + - rc-pixelview-mk12 111 + - rc-pixelview-new 112 + - rc-powercolor-real-angel 113 + - rc-proteus-2309 114 + - rc-purpletv 115 + - rc-pv951 116 + - rc-rc5-tv 117 + - rc-rc6-mce 118 + - rc-real-audio-220-32-keys 119 + - rc-reddo 120 + - rc-snapstream-firefly 121 + - rc-streamzap 122 + - rc-su3000 123 + - rc-tango 124 + - rc-tanix-tx3mini 125 + - rc-tanix-tx5max 126 + - rc-tbs-nec 127 + - rc-technisat-ts35 128 + - rc-technisat-usb2 129 + - rc-terratec-cinergy-c-pci 130 + - rc-terratec-cinergy-s2-hd 131 + - rc-terratec-cinergy-xs 132 + - rc-terratec-slim 133 + - rc-terratec-slim-2 134 + - rc-tevii-nec 135 + - rc-tivo 136 + - rc-total-media-in-hand 137 + - rc-total-media-in-hand-02 138 + - rc-trekstor 139 + - rc-tt-1500 140 + - rc-twinhan-dtv-cab-ci 141 + - rc-twinhan1027 142 + - rc-videomate-k100 143 + - rc-videomate-s350 144 + - rc-videomate-tv-pvr 145 + - rc-videostrong-kii-pro 146 + - rc-wetek-hub 147 + - rc-wetek-play2 148 + - rc-winfast 149 + - rc-winfast-usbii-deluxe 150 + - rc-x96max 151 + - rc-xbox-dvd 152 + - rc-zx-irdec
+24 -13
Documentation/devicetree/bindings/media/renesas,ceu.yaml
··· 27 27 interrupts: 28 28 maxItems: 1 29 29 30 + clocks: 31 + maxItems: 1 32 + 33 + power-domains: 34 + maxItems: 1 35 + 30 36 port: 31 37 type: object 32 38 additionalProperties: false 33 39 34 40 properties: 35 - endpoint: 36 - type: object 37 - additionalProperties: false 41 + endpoint: 42 + type: object 43 + additionalProperties: false 38 44 39 45 # Properties described in 40 46 # Documentation/devicetree/bindings/media/video-interfaces.txt 41 - properties: 42 - remote-endpoint: true 43 - hsync-active: true 44 - vsync-active: true 45 - field-even-active: false 46 - bus-width: 47 - enum: [8, 16] 48 - default: 8 47 + properties: 48 + remote-endpoint: true 49 + hsync-active: true 50 + vsync-active: true 51 + field-even-active: false 52 + bus-width: 53 + enum: [8, 16] 54 + default: 8 49 55 50 - required: 51 - - remote-endpoint 56 + required: 57 + - remote-endpoint 52 58 53 59 required: 54 60 - endpoint ··· 63 57 - compatible 64 58 - reg 65 59 - interrupts 60 + - clocks 61 + - power-domains 66 62 - port 67 63 68 64 additionalProperties: false ··· 72 64 examples: 73 65 - | 74 66 #include <dt-bindings/interrupt-controller/arm-gic.h> 67 + #include <dt-bindings/clock/r7s72100-clock.h> 75 68 76 69 ceu: ceu@e8210000 { 77 70 reg = <0xe8210000 0x209c>; 78 71 compatible = "renesas,r7s72100-ceu"; 79 72 interrupts = <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>; 73 + clocks = <&mstp6_clks R7S72100_CLK_CEU>; 74 + power-domains = <&cpg_clocks>; 80 75 81 76 port { 82 77 ceu_in: endpoint {
+1 -1
Documentation/devicetree/bindings/media/renesas,csi2.yaml
··· 135 135 136 136 csi20: csi2@fea80000 { 137 137 compatible = "renesas,r8a7796-csi2"; 138 - reg = <0 0xfea80000 0 0x10000>; 138 + reg = <0xfea80000 0x10000>; 139 139 interrupts = <0 184 IRQ_TYPE_LEVEL_HIGH>; 140 140 clocks = <&cpg CPG_MOD 714>; 141 141 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
+10 -11
Documentation/devicetree/bindings/media/renesas,vin.yaml
··· 116 116 #The per-board settings for Gen3 and RZ/G2 platforms: 117 117 renesas,id: 118 118 description: VIN channel number 119 - allOf: 120 - - $ref: /schemas/types.yaml#/definitions/uint32 121 - - minimum: 0 122 - - maximum: 15 119 + $ref: /schemas/types.yaml#/definitions/uint32 120 + minimum: 0 121 + maximum: 15 123 122 124 123 ports: 125 124 type: object ··· 260 261 261 262 anyOf: 262 263 - required: 263 - - endpoint@0 264 + - endpoint@0 264 265 - required: 265 - - endpoint@1 266 + - endpoint@1 266 267 - required: 267 - - endpoint@2 268 + - endpoint@2 268 269 - required: 269 - - endpoint@3 270 + - endpoint@3 270 271 271 272 additionalProperties: false 272 273 ··· 306 307 vin1: vin@e6ef1000 { 307 308 compatible = "renesas,vin-r8a7790", 308 309 "renesas,rcar-gen2-vin"; 309 - reg = <0 0xe6ef1000 0 0x1000>; 310 + reg = <0xe6ef1000 0x1000>; 310 311 interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; 311 312 clocks = <&cpg CPG_MOD 810>; 312 313 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; ··· 328 329 329 330 vin0: video@e6ef0000 { 330 331 compatible = "renesas,vin-r8a7795"; 331 - reg = <0 0xe6ef0000 0 0x1000>; 332 + reg = <0xe6ef0000 0x1000>; 332 333 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; 333 334 clocks = <&cpg CPG_MOD 811>; 334 335 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; ··· 365 366 366 367 vin2: video@e6ef2000 { 367 368 compatible = "renesas,vin-r8a77970"; 368 - reg = <0 0xe6ef2000 0 0x1000>; 369 + reg = <0xe6ef2000 0x1000>; 369 370 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>; 370 371 clocks = <&cpg CPG_MOD 809>; 371 372 power-domains = <&sysc R8A77970_PD_ALWAYS_ON>;
+1 -1
Documentation/devicetree/bindings/media/ti,vpe.yaml
··· 17 17 18 18 properties: 19 19 compatible: 20 - const: ti,dra7-vpe 20 + const: ti,dra7-vpe 21 21 22 22 reg: 23 23 items:
-16
Documentation/devicetree/bindings/memory-controllers/calxeda-ddr-ctrlr.txt
··· 1 - Calxeda DDR memory controller 2 - 3 - Properties: 4 - - compatible : Should be: 5 - - "calxeda,hb-ddr-ctrl" for ECX-1000 6 - - "calxeda,ecx-2000-ddr-ctrl" for ECX-2000 7 - - reg : Address and size for DDR controller registers. 8 - - interrupts : Interrupt for DDR controller. 9 - 10 - Example: 11 - 12 - memory-controller@fff00000 { 13 - compatible = "calxeda,hb-ddr-ctrl"; 14 - reg = <0xfff00000 0x1000>; 15 - interrupts = <0 91 4>; 16 - };
+42
Documentation/devicetree/bindings/memory-controllers/calxeda-ddr-ctrlr.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/memory-controllers/calxeda-ddr-ctrlr.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Calxeda DDR memory controller binding 8 + 9 + description: | 10 + The Calxeda DDR memory controller is initialised and programmed by the 11 + firmware, but an OS might want to read its registers for error reporting 12 + purposes and to learn about the DRAM topology. 13 + 14 + maintainers: 15 + - Andre Przywara <andre.przywara@arm.com> 16 + 17 + properties: 18 + compatible: 19 + enum: 20 + - calxeda,hb-ddr-ctrl 21 + - calxeda,ecx-2000-ddr-ctrl 22 + 23 + reg: 24 + maxItems: 1 25 + 26 + interrupts: 27 + maxItems: 1 28 + 29 + required: 30 + - compatible 31 + - reg 32 + - interrupts 33 + 34 + additionalProperties: false 35 + 36 + examples: 37 + - | 38 + memory-controller@fff00000 { 39 + compatible = "calxeda,hb-ddr-ctrl"; 40 + reg = <0xfff00000 0x1000>; 41 + interrupts = <0 91 4>; 42 + };
+5 -8
Documentation/devicetree/bindings/memory-controllers/exynos-srom.yaml
··· 51 51 maxItems: 1 52 52 53 53 reg-io-width: 54 - allOf: 55 - - $ref: /schemas/types.yaml#/definitions/uint32 56 - - enum: [1, 2] 54 + enum: [1, 2] 57 55 description: 58 56 Data width in bytes (1 or 2). If omitted, default of 1 is used. 59 57 ··· 62 64 type: boolean 63 65 64 66 samsung,srom-timing: 65 - allOf: 66 - - $ref: /schemas/types.yaml#/definitions/uint32-array 67 - - items: 68 - minItems: 6 69 - maxItems: 6 67 + $ref: /schemas/types.yaml#/definitions/uint32-array 68 + items: 69 + minItems: 6 70 + maxItems: 6 70 71 description: | 71 72 Array of 6 integers, specifying bank timings in the following order: 72 73 Tacp, Tcah, Tcoh, Tacc, Tcos, Tacs.
+3 -3
Documentation/devicetree/bindings/memory-controllers/fsl/imx8m-ddrc.yaml
··· 25 25 compatible: 26 26 items: 27 27 - enum: 28 - - fsl,imx8mn-ddrc 29 - - fsl,imx8mm-ddrc 30 - - fsl,imx8mq-ddrc 28 + - fsl,imx8mn-ddrc 29 + - fsl,imx8mm-ddrc 30 + - fsl,imx8mq-ddrc 31 31 - const: fsl,imx8m-ddrc 32 32 33 33 reg:
-76
Documentation/devicetree/bindings/memory-controllers/ingenic,jz4780-nemc.txt
··· 1 - * Ingenic JZ4780 NAND/external memory controller (NEMC) 2 - 3 - This file documents the device tree bindings for the NEMC external memory 4 - controller in Ingenic JZ4780 5 - 6 - Required properties: 7 - - compatible: Should be set to one of: 8 - "ingenic,jz4740-nemc" (JZ4740) 9 - "ingenic,jz4780-nemc" (JZ4780) 10 - - reg: Should specify the NEMC controller registers location and length. 11 - - clocks: Clock for the NEMC controller. 12 - - #address-cells: Must be set to 2. 13 - - #size-cells: Must be set to 1. 14 - - ranges: A set of ranges for each bank describing the physical memory layout. 15 - Each should specify the following 4 integer values: 16 - 17 - <cs number> 0 <physical address of mapping> <size of mapping> 18 - 19 - Each child of the NEMC node describes a device connected to the NEMC. 20 - 21 - Required child node properties: 22 - - reg: Should contain at least one register specifier, given in the following 23 - format: 24 - 25 - <cs number> <offset> <size> 26 - 27 - Multiple registers can be specified across multiple banks. This is needed, 28 - for example, for packaged NAND devices with multiple dies. Such devices 29 - should be grouped into a single node. 30 - 31 - Optional child node properties: 32 - - ingenic,nemc-bus-width: Specifies the bus width in bits. Defaults to 8 bits. 33 - - ingenic,nemc-tAS: Address setup time in nanoseconds. 34 - - ingenic,nemc-tAH: Address hold time in nanoseconds. 35 - - ingenic,nemc-tBP: Burst pitch time in nanoseconds. 36 - - ingenic,nemc-tAW: Access wait time in nanoseconds. 37 - - ingenic,nemc-tSTRV: Static memory recovery time in nanoseconds. 38 - 39 - If a child node references multiple banks in its "reg" property, the same value 40 - for all optional parameters will be configured for all banks. If any optional 41 - parameters are omitted, they will be left unchanged from whatever they are 42 - configured to when the NEMC device is probed (which may be the reset value as 43 - given in the hardware reference manual, or a value configured by the boot 44 - loader). 45 - 46 - Example (NEMC node with a NAND child device attached at CS1): 47 - 48 - nemc: nemc@13410000 { 49 - compatible = "ingenic,jz4780-nemc"; 50 - reg = <0x13410000 0x10000>; 51 - 52 - #address-cells = <2>; 53 - #size-cells = <1>; 54 - 55 - ranges = <1 0 0x1b000000 0x1000000 56 - 2 0 0x1a000000 0x1000000 57 - 3 0 0x19000000 0x1000000 58 - 4 0 0x18000000 0x1000000 59 - 5 0 0x17000000 0x1000000 60 - 6 0 0x16000000 0x1000000>; 61 - 62 - clocks = <&cgu JZ4780_CLK_NEMC>; 63 - 64 - nand: nand@1 { 65 - compatible = "ingenic,jz4780-nand"; 66 - reg = <1 0 0x1000000>; 67 - 68 - ingenic,nemc-tAS = <10>; 69 - ingenic,nemc-tAH = <5>; 70 - ingenic,nemc-tBP = <10>; 71 - ingenic,nemc-tAW = <15>; 72 - ingenic,nemc-tSTRV = <100>; 73 - 74 - ... 75 - }; 76 - };
+126
Documentation/devicetree/bindings/memory-controllers/ingenic,nemc.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/memory-controllers/ingenic,nemc.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Ingenic SoCs NAND / External Memory Controller (NEMC) devicetree bindings 8 + 9 + maintainers: 10 + - Paul Cercueil <paul@crapouillou.net> 11 + 12 + properties: 13 + $nodename: 14 + pattern: "^memory-controller@[0-9a-f]+$" 15 + 16 + compatible: 17 + oneOf: 18 + - enum: 19 + - ingenic,jz4740-nemc 20 + - ingenic,jz4780-nemc 21 + - items: 22 + - const: ingenic,jz4725b-nemc 23 + - const: ingenic,jz4740-nemc 24 + 25 + "#address-cells": 26 + const: 2 27 + 28 + "#size-cells": 29 + const: 1 30 + 31 + ranges: true 32 + 33 + reg: 34 + maxItems: 1 35 + 36 + clocks: 37 + maxItems: 1 38 + 39 + patternProperties: 40 + ".*@[0-9]+$": 41 + type: object 42 + properties: 43 + reg: 44 + minItems: 1 45 + maxItems: 255 46 + 47 + ingenic,nemc-bus-width: 48 + allOf: 49 + - $ref: /schemas/types.yaml#/definitions/uint32 50 + - enum: [8, 16] 51 + description: Specifies the bus width in bits. 52 + 53 + ingenic,nemc-tAS: 54 + $ref: /schemas/types.yaml#/definitions/uint32 55 + description: Address setup time in nanoseconds. 56 + 57 + ingenic,nemc-tAH: 58 + $ref: /schemas/types.yaml#/definitions/uint32 59 + description: Address hold time in nanoseconds. 60 + 61 + ingenic,nemc-tBP: 62 + $ref: /schemas/types.yaml#/definitions/uint32 63 + description: Burst pitch time in nanoseconds. 64 + 65 + ingenic,nemc-tAW: 66 + $ref: /schemas/types.yaml#/definitions/uint32 67 + description: Address wait time in nanoseconds. 68 + 69 + ingenic,nemc-tSTRV: 70 + $ref: /schemas/types.yaml#/definitions/uint32 71 + description: Static memory recovery time in nanoseconds. 72 + 73 + required: 74 + - reg 75 + 76 + required: 77 + - compatible 78 + - "#address-cells" 79 + - "#size-cells" 80 + - ranges 81 + - reg 82 + - clocks 83 + 84 + additionalProperties: false 85 + 86 + examples: 87 + - | 88 + #include <dt-bindings/clock/jz4780-cgu.h> 89 + #include <dt-bindings/gpio/gpio.h> 90 + nemc: memory-controller@13410000 { 91 + compatible = "ingenic,jz4780-nemc"; 92 + reg = <0x13410000 0x10000>; 93 + #address-cells = <2>; 94 + #size-cells = <1>; 95 + ranges = <1 0 0x1b000000 0x1000000>, 96 + <2 0 0x1a000000 0x1000000>, 97 + <3 0 0x19000000 0x1000000>, 98 + <4 0 0x18000000 0x1000000>, 99 + <5 0 0x17000000 0x1000000>, 100 + <6 0 0x16000000 0x1000000>; 101 + 102 + clocks = <&cgu JZ4780_CLK_NEMC>; 103 + 104 + ethernet@6 { 105 + compatible = "davicom,dm9000"; 106 + davicom,no-eeprom; 107 + 108 + pinctrl-names = "default"; 109 + pinctrl-0 = <&pins_nemc_cs6>; 110 + 111 + reg = <6 0 1>, /* addr */ 112 + <6 2 1>; /* data */ 113 + 114 + ingenic,nemc-tAS = <15>; 115 + ingenic,nemc-tAH = <10>; 116 + ingenic,nemc-tBP = <20>; 117 + ingenic,nemc-tAW = <50>; 118 + ingenic,nemc-tSTRV = <100>; 119 + 120 + reset-gpios = <&gpf 12 GPIO_ACTIVE_HIGH>; 121 + vcc-supply = <&eth0_power>; 122 + 123 + interrupt-parent = <&gpe>; 124 + interrupts = <19 4>; 125 + }; 126 + };
+5 -8
Documentation/devicetree/bindings/memory-controllers/nvidia,tegra124-emc.yaml
··· 73 73 timings 74 74 75 75 nvidia,emc-auto-cal-interval: 76 - allOf: 77 - - $ref: /schemas/types.yaml#/definitions/uint32 78 76 description: 79 77 pad calibration interval in microseconds 78 + $ref: /schemas/types.yaml#/definitions/uint32 80 79 minimum: 0 81 80 maximum: 2097151 82 81 ··· 135 136 value of the EMC_XM2DQSPADCTRL2 register for this set of timings 136 137 137 138 nvidia,emc-zcal-cnt-long: 138 - allOf: 139 - - $ref: /schemas/types.yaml#/definitions/uint32 140 139 description: 141 140 number of EMC clocks to wait before issuing any commands after 142 141 clock change 142 + $ref: /schemas/types.yaml#/definitions/uint32 143 143 minimum: 0 144 144 maximum: 1023 145 145 ··· 148 150 value of the EMC_ZCAL_INTERVAL register for this set of timings 149 151 150 152 nvidia,emc-configuration: 151 - allOf: 152 - - $ref: /schemas/types.yaml#/definitions/uint32-array 153 153 description: 154 154 EMC timing characterization data. These are the registers (see 155 155 section "15.6.2 EMC Registers" in the TRM) whose values need to 156 156 be specified, according to the board documentation. 157 + $ref: /schemas/types.yaml#/definitions/uint32-array 157 158 items: 158 159 - description: EMC_RC 159 160 - description: EMC_RFC ··· 337 340 338 341 mc: memory-controller@70019000 { 339 342 compatible = "nvidia,tegra124-mc"; 340 - reg = <0x0 0x70019000 0x0 0x1000>; 343 + reg = <0x70019000 0x1000>; 341 344 clocks = <&tegra_car TEGRA124_CLK_MC>; 342 345 clock-names = "mc"; 343 346 ··· 349 352 350 353 external-memory-controller@7001b000 { 351 354 compatible = "nvidia,tegra124-emc"; 352 - reg = <0x0 0x7001b000 0x0 0x1000>; 355 + reg = <0x7001b000 0x1000>; 353 356 clocks = <&car TEGRA124_CLK_EMC>; 354 357 clock-names = "emc"; 355 358
+2 -3
Documentation/devicetree/bindings/memory-controllers/nvidia,tegra124-mc.yaml
··· 60 60 maximum: 1066000000 61 61 62 62 nvidia,emem-configuration: 63 - allOf: 64 - - $ref: /schemas/types.yaml#/definitions/uint32-array 63 + $ref: /schemas/types.yaml#/definitions/uint32-array 65 64 description: | 66 65 Values to be written to the EMEM register block. See section 67 66 "15.6.1 MC Registers" in the TRM. ··· 111 112 - | 112 113 memory-controller@70019000 { 113 114 compatible = "nvidia,tegra124-mc"; 114 - reg = <0x0 0x70019000 0x0 0x1000>; 115 + reg = <0x70019000 0x1000>; 115 116 clocks = <&tegra_car 32>; 116 117 clock-names = "mc"; 117 118
+3 -6
Documentation/devicetree/bindings/memory-controllers/nvidia,tegra30-emc.yaml
··· 56 56 maximum: 900000000 57 57 58 58 nvidia,emc-auto-cal-interval: 59 - allOf: 60 - - $ref: /schemas/types.yaml#/definitions/uint32 61 59 description: 62 60 Pad calibration interval in microseconds. 61 + $ref: /schemas/types.yaml#/definitions/uint32 63 62 minimum: 0 64 63 maximum: 2097151 65 64 ··· 78 79 Mode Register 0. 79 80 80 81 nvidia,emc-zcal-cnt-long: 81 - allOf: 82 - - $ref: /schemas/types.yaml#/definitions/uint32 83 82 description: 84 83 Number of EMC clocks to wait before issuing any commands after 85 84 sending ZCAL_MRW_CMD. 85 + $ref: /schemas/types.yaml#/definitions/uint32 86 86 minimum: 0 87 87 maximum: 1023 88 88 ··· 96 98 FBIO "read" FIFO periodic resetting enabled. 97 99 98 100 nvidia,emc-configuration: 99 - allOf: 100 - - $ref: /schemas/types.yaml#/definitions/uint32-array 101 101 description: 102 102 EMC timing characterization data. These are the registers 103 103 (see section "18.13.2 EMC Registers" in the TRM) whose values 104 104 need to be specified, according to the board documentation. 105 + $ref: /schemas/types.yaml#/definitions/uint32-array 105 106 items: 106 107 - description: EMC_RC 107 108 - description: EMC_RFC
+1 -2
Documentation/devicetree/bindings/memory-controllers/nvidia,tegra30-mc.yaml
··· 77 77 maximum: 900000000 78 78 79 79 nvidia,emem-configuration: 80 - allOf: 81 - - $ref: /schemas/types.yaml#/definitions/uint32-array 80 + $ref: /schemas/types.yaml#/definitions/uint32-array 82 81 description: | 83 82 Values to be written to the EMEM register block. See section 84 83 "18.13.1 MC Registers" in the TRM.
-44
Documentation/devicetree/bindings/memory-controllers/renesas,dbsc.txt
··· 1 - DT bindings for Renesas R-Mobile and SH-Mobile memory controllers 2 - ================================================================= 3 - 4 - Renesas R-Mobile and SH-Mobile SoCs contain one or more memory controllers. 5 - These memory controllers differ from one SoC variant to another, and are called 6 - by different names ("DDR Bus Controller (DBSC)", "DDR3 Bus State Controller 7 - (DBSC3)", "SDRAM Bus State Controller (SBSC)"). 8 - 9 - Currently memory controller device nodes are used only to reference PM 10 - domains, and prevent these PM domains from being powered down, which would 11 - crash the system. 12 - 13 - As there exist no actual drivers for these controllers yet, these bindings 14 - should be considered EXPERIMENTAL for now. 15 - 16 - Required properties: 17 - - compatible: Must be one of the following SoC-specific values: 18 - - "renesas,dbsc-r8a73a4" (R-Mobile APE6) 19 - - "renesas,dbsc3-r8a7740" (R-Mobile A1) 20 - - "renesas,sbsc-sh73a0" (SH-Mobile AG5) 21 - - reg: Must contain the base address and length of the memory controller's 22 - registers. 23 - 24 - Optional properties: 25 - - interrupts: Must contain a list of interrupt specifiers for memory 26 - controller interrupts, if available. 27 - - interrupt-names: Must contain a list of interrupt names corresponding to 28 - the interrupts in the interrupts property, if available. 29 - Valid interrupt names are: 30 - - "sec" (secure interrupt) 31 - - "temp" (normal (temperature) interrupt) 32 - - power-domains: Must contain a reference to the PM domain that the memory 33 - controller belongs to, if available. 34 - 35 - Example: 36 - 37 - sbsc1: memory-controller@fe400000 { 38 - compatible = "renesas,sbsc-sh73a0"; 39 - reg = <0xfe400000 0x400>; 40 - interrupts = <0 35 IRQ_TYPE_LEVEL_HIGH>, 41 - <0 36 IRQ_TYPE_LEVEL_HIGH>; 42 - interrupt-names = "sec", "temp"; 43 - power-domains = <&pd_a4bc0>; 44 - };
+56
Documentation/devicetree/bindings/memory-controllers/renesas,dbsc.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: "http://devicetree.org/schemas/memory-controllers/renesas,dbsc.yaml#" 5 + $schema: "http://devicetree.org/meta-schemas/core.yaml#" 6 + 7 + title: Renesas DDR Bus Controllers 8 + 9 + maintainers: 10 + - Geert Uytterhoeven <geert+renesas@glider.be> 11 + 12 + description: | 13 + Renesas SoCs contain one or more memory controllers. These memory 14 + controllers differ from one SoC variant to another, and are called by 15 + different names, e.g. "DDR Bus Controller (DBSC)", "DDR3 Bus State Controller 16 + (DBSC3)", or "SDRAM Bus State Controller (SBSC)"). 17 + 18 + properties: 19 + compatible: 20 + enum: 21 + - renesas,dbsc-r8a73a4 # R-Mobile APE6 22 + - renesas,dbsc3-r8a7740 # R-Mobile A1 23 + - renesas,sbsc-sh73a0 # SH-Mobile AG5 24 + 25 + reg: 26 + maxItems: 1 27 + 28 + interrupts: 29 + maxItems: 2 30 + 31 + interrupt-names: 32 + items: 33 + - const: sec # secure interrupt 34 + - const: temp # normal (temperature) interrupt 35 + 36 + power-domains: 37 + maxItems: 1 38 + 39 + required: 40 + - compatible 41 + - reg 42 + - power-domains 43 + 44 + additionalProperties: false 45 + 46 + examples: 47 + - | 48 + #include <dt-bindings/interrupt-controller/arm-gic.h> 49 + sbsc1: memory-controller@fe400000 { 50 + compatible = "renesas,sbsc-sh73a0"; 51 + reg = <0xfe400000 0x400>; 52 + interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>, 53 + <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 54 + interrupt-names = "sec", "temp"; 55 + power-domains = <&pd_a4bc0>; 56 + };
+10 -10
Documentation/devicetree/bindings/mfd/allwinner,sun4i-a10-ts.yaml
··· 31 31 description: A touchscreen is attached to the controller 32 32 33 33 allwinner,tp-sensitive-adjust: 34 - allOf: 35 - - $ref: /schemas/types.yaml#/definitions/uint32 36 - - minimum: 0 37 - maximum: 15 38 - default: 15 34 + $ref: /schemas/types.yaml#/definitions/uint32 35 + minimum: 0 36 + maximum: 15 37 + default: 15 38 + 39 39 description: Sensitivity of pen down detection 40 40 41 41 allwinner,filter-type: 42 - allOf: 43 - - $ref: /schemas/types.yaml#/definitions/uint32 44 - - minimum: 0 45 - maximum: 3 46 - default: 1 42 + $ref: /schemas/types.yaml#/definitions/uint32 43 + minimum: 0 44 + maximum: 3 45 + default: 1 46 + 47 47 description: | 48 48 Select median and averaging filter. Sample used for median / 49 49 averaging filter:
-101
Documentation/devicetree/bindings/mfd/arizona.txt
··· 1 - Cirrus Logic/Wolfson Microelectronics Arizona class audio SoCs 2 - 3 - These devices are audio SoCs with extensive digital capabilities and a range 4 - of analogue I/O. 5 - 6 - Required properties: 7 - 8 - - compatible : One of the following chip-specific strings: 9 - "cirrus,cs47l24" 10 - "wlf,wm5102" 11 - "wlf,wm5110" 12 - "wlf,wm8280" 13 - "wlf,wm8997" 14 - "wlf,wm8998" 15 - "wlf,wm1814" 16 - "wlf,wm1831" 17 - 18 - - reg : I2C slave address when connected using I2C, chip select number when 19 - using SPI. 20 - 21 - - interrupts : The interrupt line the /IRQ signal for the device is 22 - connected to. 23 - - interrupt-controller : Arizona class devices contain interrupt controllers 24 - and may provide interrupt services to other devices. 25 - - #interrupt-cells: the number of cells to describe an IRQ, this should be 2. 26 - The first cell is the IRQ number. 27 - The second cell is the flags, encoded as the trigger masks from 28 - Documentation/devicetree/bindings/interrupt-controller/interrupts.txt 29 - 30 - - gpio-controller : Indicates this device is a GPIO controller. 31 - - #gpio-cells : Must be 2. The first cell is the pin number and the 32 - second cell is used to specify optional parameters, see ../gpio/gpio.txt 33 - for details. 34 - 35 - - AVDD-supply, DBVDD1-supply, CPVDD-supply : Power supplies for the device, 36 - as covered in Documentation/devicetree/bindings/regulator/regulator.txt 37 - 38 - - DBVDD2-supply, DBVDD3-supply : Additional databus power supplies (wm5102, 39 - wm5110, wm8280, wm8998, wm1814) 40 - 41 - - SPKVDDL-supply, SPKVDDR-supply : Speaker driver power supplies (wm5102, 42 - wm5110, wm8280, wm8998, wm1814) 43 - 44 - - SPKVDD-supply : Speaker driver power supply (wm8997) 45 - 46 - - DCVDD-supply : Main power supply (cs47l24, wm1831) 47 - 48 - - MICVDD-supply : Microphone power supply (cs47l24, wm1831) 49 - 50 - Optional properties: 51 - 52 - - reset-gpios : GPIO specifier for the GPIO controlling /RESET 53 - 54 - - clocks: Should reference the clocks supplied on MCLK1 and MCLK2 55 - - clock-names: Should contains two strings: 56 - "mclk1" for the clock supplied on MCLK1, recommended to be a high 57 - quality audio reference clock 58 - "mclk2" for the clock supplied on MCLK2, recommended to be an always on 59 - 32k clock 60 - 61 - - wlf,gpio-defaults : A list of GPIO configuration register values. Defines 62 - for the appropriate values can found in <dt-bindings/mfd/arizona.txt>. If 63 - absent, no configuration of these registers is performed. If any entry has 64 - a value that is out of range for a 16 bit register then the chip default 65 - will be used. If present exactly five values must be specified. 66 - 67 - - DCVDD-supply, MICVDD-supply : Power supplies, only need to be specified if 68 - they are being externally supplied. As covered in 69 - Documentation/devicetree/bindings/regulator/regulator.txt 70 - (wm5102, wm5110, wm8280, wm8997, wm8998, wm1814) 71 - 72 - Deprecated properties: 73 - 74 - - wlf,reset : GPIO specifier for the GPIO controlling /RESET 75 - 76 - Also see child specific device properties: 77 - Regulator - ../regulator/arizona-regulator.txt 78 - Extcon - ../extcon/extcon-arizona.txt 79 - Sound - ../sound/wlf,arizona.txt 80 - 81 - Example: 82 - 83 - codec: wm5102@1a { 84 - compatible = "wlf,wm5102"; 85 - reg = <0x1a>; 86 - interrupts = <347>; 87 - interrupt-controller; 88 - #interrupt-cells = <2>; 89 - interrupt-parent = <&gic>; 90 - 91 - gpio-controller; 92 - #gpio-cells = <2>; 93 - 94 - wlf,gpio-defaults = < 95 - ARIZONA_GP_FN_TXLRCLK 96 - ARIZONA_GP_DEFAULT 97 - ARIZONA_GP_DEFAULT 98 - ARIZONA_GP_DEFAULT 99 - ARIZONA_GP_DEFAULT 100 - >; 101 - };
-85
Documentation/devicetree/bindings/mfd/cirrus,lochnagar.txt
··· 1 - Cirrus Logic Lochnagar Audio Development Board 2 - 3 - Lochnagar is an evaluation and development board for Cirrus Logic 4 - Smart CODEC and Amp devices. It allows the connection of most Cirrus 5 - Logic devices on mini-cards, as well as allowing connection of 6 - various application processor systems to provide a full evaluation 7 - platform. Audio system topology, clocking and power can all be 8 - controlled through the Lochnagar, allowing the device under test 9 - to be used in a variety of possible use cases. 10 - 11 - Also see these documents for generic binding information: 12 - [1] GPIO : ../gpio/gpio.txt 13 - 14 - And these for relevant defines: 15 - [2] include/dt-bindings/pinctrl/lochnagar.h 16 - [3] include/dt-bindings/clock/lochnagar.h 17 - 18 - And these documents for the required sub-node binding details: 19 - [4] Clock: ../clock/cirrus,lochnagar.txt 20 - [5] Pinctrl: ../pinctrl/cirrus,lochnagar.txt 21 - [6] Regulator: ../regulator/cirrus,lochnagar.txt 22 - [7] Sound: ../sound/cirrus,lochnagar.txt 23 - [8] Hardware Monitor: ../hwmon/cirrus,lochnagar.txt 24 - 25 - Required properties: 26 - 27 - - compatible : One of the following strings: 28 - "cirrus,lochnagar1" 29 - "cirrus,lochnagar2" 30 - 31 - - reg : I2C slave address 32 - 33 - - reset-gpios : Reset line to the Lochnagar, see [1]. 34 - 35 - Required sub-nodes: 36 - 37 - - lochnagar-clk : Binding for the clocking components, see [4]. 38 - 39 - - lochnagar-pinctrl : Binding for the pin control components, see [5]. 40 - 41 - Optional sub-nodes: 42 - 43 - - Bindings for the regulator components, see [6]. Only available on 44 - Lochnagar 2. 45 - 46 - - lochnagar-sc : Binding for the sound card components, see [7]. 47 - Only available on Lochnagar 2. 48 - - lochnagar-hwmon : Binding for the hardware monitor components, see [8]. 49 - Only available on Lochnagar 2. 50 - 51 - Optional properties: 52 - 53 - - present-gpios : Host present line, indicating the presence of a 54 - host system, see [1]. This can be omitted if the present line is 55 - tied in hardware. 56 - 57 - Example: 58 - 59 - lochnagar: lochnagar@22 { 60 - compatible = "cirrus,lochnagar2"; 61 - reg = <0x22>; 62 - 63 - reset-gpios = <&gpio0 55 0>; 64 - present-gpios = <&gpio0 60 0>; 65 - 66 - lochnagar-clk { 67 - compatible = "cirrus,lochnagar2-clk"; 68 - ... 69 - }; 70 - 71 - lochnagar-pinctrl { 72 - compatible = "cirrus,lochnagar-pinctrl"; 73 - ... 74 - }; 75 - 76 - lochnagar-sc { 77 - compatible = "cirrus,lochnagar2-soundcard"; 78 - ... 79 - }; 80 - 81 - lochnagar-hwmon { 82 - compatible = "cirrus,lochnagar2-hwmon"; 83 - ... 84 - }; 85 - };
+352
Documentation/devicetree/bindings/mfd/cirrus,lochnagar.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/mfd/cirrus,lochnagar.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Cirrus Logic Lochnagar Audio Development Board 8 + 9 + maintainers: 10 + - patches@opensource.cirrus.com 11 + 12 + description: | 13 + Lochnagar is an evaluation and development board for Cirrus Logic 14 + Smart CODEC and Amp devices. It allows the connection of most Cirrus 15 + Logic devices on mini-cards, as well as allowing connection of 16 + various application processor systems to provide a full evaluation 17 + platform. Audio system topology, clocking and power can all be 18 + controlled through the Lochnagar, allowing the device under test 19 + to be used in a variety of possible use cases. 20 + 21 + Also see these documents for generic binding information: 22 + [1] GPIO : ../gpio/gpio.txt 23 + 24 + And these for relevant defines: 25 + [2] include/dt-bindings/pinctrl/lochnagar.h 26 + [3] include/dt-bindings/clock/lochnagar.h 27 + 28 + And these documents for the required sub-node binding details: 29 + [4] Clock: ../clock/cirrus,lochnagar.yaml 30 + [5] Pinctrl: ../pinctrl/cirrus,lochnagar.yaml 31 + [6] Sound: ../sound/cirrus,lochnagar.yaml 32 + [7] Hardware Monitor: ../hwmon/cirrus,lochnagar.yaml 33 + 34 + allOf: 35 + - if: 36 + properties: 37 + compatible: 38 + enum: 39 + - cirrus,lochnagar2 40 + then: 41 + properties: 42 + lochnagar-hwmon: 43 + type: object 44 + $ref: /schemas/hwmon/cirrus,lochnagar.yaml# 45 + 46 + lochnagar-sc: 47 + type: object 48 + $ref: /schemas/sound/cirrus,lochnagar.yaml# 49 + 50 + properties: 51 + compatible: 52 + enum: 53 + - cirrus,lochnagar1 54 + - cirrus,lochnagar2 55 + 56 + reg: 57 + const: 0x22 58 + 59 + reset-gpios: 60 + maxItems: 1 61 + 62 + present-gpios: 63 + description: | 64 + Host present line, indicating the presence of a 65 + host system, see [1]. This can be omitted if the present line is 66 + tied in hardware. 67 + maxItems: 1 68 + 69 + lochnagar-clk: 70 + type: object 71 + $ref: /schemas/clock/cirrus,lochnagar.yaml# 72 + 73 + lochnagar-pmic32k: 74 + type: object 75 + $ref: /schemas/clock/fixed-clock.yaml# 76 + properties: 77 + clock-frequency: 78 + const: 32768 79 + 80 + lochnagar-clk12m: 81 + type: object 82 + $ref: /schemas/clock/fixed-clock.yaml# 83 + properties: 84 + clock-frequency: 85 + const: 12288000 86 + 87 + lochnagar-clk11m: 88 + type: object 89 + $ref: /schemas/clock/fixed-clock.yaml# 90 + properties: 91 + clock-frequency: 92 + const: 11298600 93 + 94 + lochnagar-clk24m: 95 + type: object 96 + $ref: /schemas/clock/fixed-clock.yaml# 97 + properties: 98 + clock-frequency: 99 + const: 24576000 100 + 101 + lochnagar-clk22m: 102 + type: object 103 + $ref: /schemas/clock/fixed-clock.yaml# 104 + properties: 105 + clock-frequency: 106 + const: 22579200 107 + 108 + lochnagar-clk8m: 109 + type: object 110 + $ref: /schemas/clock/fixed-clock.yaml# 111 + properties: 112 + clock-frequency: 113 + const: 8192000 114 + 115 + lochnagar-usb24m: 116 + type: object 117 + $ref: /schemas/clock/fixed-clock.yaml# 118 + properties: 119 + clock-frequency: 120 + const: 24576000 121 + 122 + lochnagar-usb12m: 123 + type: object 124 + $ref: /schemas/clock/fixed-clock.yaml# 125 + properties: 126 + clock-frequency: 127 + const: 12288000 128 + 129 + lochnagar-pinctrl: 130 + type: object 131 + $ref: /schemas/pinctrl/cirrus,lochnagar.yaml# 132 + 133 + VDDCORE: 134 + description: 135 + Initialisation data for the VDDCORE regulator, which supplies the 136 + CODECs digital core if not being provided by an internal regulator. 137 + type: object 138 + $ref: /schemas/regulator/regulator.yaml# 139 + properties: 140 + compatible: 141 + enum: 142 + - cirrus,lochnagar2-vddcore 143 + 144 + SYSVDD-supply: 145 + description: 146 + Primary power supply for the Lochnagar. 147 + required: 148 + - compatible 149 + 150 + MICVDD: 151 + description: 152 + Initialisation data for the MICVDD regulator, which supplies the 153 + CODECs MICVDD. 154 + type: object 155 + $ref: /schemas/regulator/regulator.yaml# 156 + properties: 157 + compatible: 158 + enum: 159 + - cirrus,lochnagar2-micvdd 160 + 161 + SYSVDD-supply: 162 + description: 163 + Primary power supply for the Lochnagar. 164 + required: 165 + - compatible 166 + 167 + MIC1VDD: 168 + description: 169 + Initialisation data for the MIC1VDD supplies. 170 + type: object 171 + $ref: /schemas/regulator/regulator.yaml# 172 + properties: 173 + compatible: 174 + enum: 175 + - cirrus,lochnagar2-mic1vdd 176 + 177 + cirrus,micbias-input: 178 + description: 179 + A property selecting which of the CODEC minicard micbias outputs 180 + should be used. 181 + $ref: /schemas/types.yaml#/definitions/uint32 182 + minimum: 1 183 + maximum: 4 184 + 185 + MICBIAS1-supply: 186 + description: 187 + Regulator supplies for the MIC1VDD outputs, supplying the digital 188 + microphones, normally supplied from the attached CODEC. 189 + required: 190 + - compatible 191 + 192 + MIC2VDD: 193 + description: 194 + Initialisation data for the MIC2VDD supplies. 195 + type: object 196 + $ref: /schemas/regulator/regulator.yaml# 197 + properties: 198 + compatible: 199 + enum: 200 + - cirrus,lochnagar2-mic2vdd 201 + 202 + cirrus,micbias-input: 203 + description: 204 + A property selecting which of the CODEC minicard micbias outputs 205 + should be used. 206 + $ref: /schemas/types.yaml#/definitions/uint32 207 + minimum: 1 208 + maximum: 4 209 + 210 + MICBIAS2-supply: 211 + description: 212 + Regulator supplies for the MIC2VDD outputs, supplying the digital 213 + microphones, normally supplied from the attached CODEC. 214 + required: 215 + - compatible 216 + 217 + VDD1V8: 218 + description: 219 + Recommended fixed regulator for the VDD1V8 regulator, which supplies 220 + the CODECs analog and 1.8V digital supplies. 221 + type: object 222 + $ref: /schemas/regulator/regulator.yaml# 223 + properties: 224 + compatible: 225 + enum: 226 + - regulator-fixed 227 + 228 + regulator-min-microvolt: 229 + const: 1800000 230 + 231 + regulator-max-microvolt: 232 + const: 1800000 233 + 234 + vin-supply: 235 + description: 236 + Should be set to same supply as SYSVDD 237 + required: 238 + - compatible 239 + - regulator-min-microvolt 240 + - regulator-max-microvolt 241 + - regulator-boot-on 242 + - regulator-always-on 243 + - vin-supply 244 + 245 + required: 246 + - compatible 247 + - reg 248 + - reset-gpios 249 + - lochnagar-clk 250 + - lochnagar-pinctrl 251 + 252 + unevaluatedProperties: false 253 + 254 + examples: 255 + - | 256 + #include <dt-bindings/clk/lochnagar.h> 257 + #include <dt-bindings/pinctrl/lochnagar.h> 258 + i2c@e0004000 { 259 + #address-cells = <1>; 260 + #size-cells = <0>; 261 + reg = <0xe0004000 0x1000>; 262 + 263 + lochnagar: lochnagar@22 { 264 + compatible = "cirrus,lochnagar2"; 265 + reg = <0x22>; 266 + 267 + reset-gpios = <&gpio0 55 0>; 268 + present-gpios = <&gpio0 60 0>; 269 + 270 + lochnagarclk: lochnagar-clk { 271 + compatible = "cirrus,lochnagar2-clk"; 272 + 273 + #clock-cells = <1>; 274 + clocks = <&clkaudio>, <&clkpmic>; 275 + clock-names = "ln-gf-mclk2", "ln-pmic-32k"; 276 + 277 + assigned-clocks = <&lochnagarclk LOCHNAGAR_CDC_MCLK1>, 278 + <&lochnagarclk LOCHNAGAR_CDC_MCLK2>; 279 + assigned-clock-parents = <&clkaudio>, <&clkpmic>; 280 + }; 281 + 282 + clkpmic: lochnagar-pmic32k { 283 + compatible = "fixed-clock"; 284 + #clock-cells = <0>; 285 + clock-frequency = <32768>; 286 + }; 287 + 288 + lochnagar-pinctrl { 289 + compatible = "cirrus,lochnagar-pinctrl"; 290 + 291 + gpio-controller; 292 + #gpio-cells = <2>; 293 + gpio-ranges = <&lochnagar 0 0 LOCHNAGAR2_PIN_NUM_GPIOS>; 294 + 295 + pinctrl-names = "default"; 296 + pinctrl-0 = <&pinsettings>; 297 + 298 + pinsettings: pin-settings { 299 + ap2aif-pins { 300 + input-enable; 301 + groups = "gf-aif1"; 302 + function = "codec-aif3"; 303 + }; 304 + codec2aif-pins { 305 + output-enable; 306 + groups = "codec-aif3"; 307 + function = "gf-aif1"; 308 + }; 309 + }; 310 + }; 311 + 312 + lochnagar-sc { 313 + compatible = "cirrus,lochnagar2-soundcard"; 314 + 315 + #sound-dai-cells = <1>; 316 + 317 + clocks = <&lochnagarclk LOCHNAGAR_SOUNDCARD_MCLK>; 318 + clock-names = "mclk"; 319 + }; 320 + 321 + lochnagar-hwmon { 322 + compatible = "cirrus,lochnagar2-hwmon"; 323 + }; 324 + 325 + MIC1VDD { 326 + compatible = "cirrus,lochnagar2-mic1vdd"; 327 + 328 + cirrus,micbias-input = <3>; 329 + }; 330 + 331 + MICVDD { 332 + compatible = "cirrus,lochnagar2-micvdd"; 333 + 334 + SYSVDD-supply = <&wallvdd>; 335 + 336 + regulator-min-microvolt = <3300000>; 337 + regulator-max-microvolt = <3300000>; 338 + }; 339 + 340 + VDD1V8 { 341 + compatible = "regulator-fixed"; 342 + 343 + regulator-name = "VDD1V8"; 344 + regulator-min-microvolt = <1800000>; 345 + regulator-max-microvolt = <1800000>; 346 + regulator-boot-on; 347 + regulator-always-on; 348 + 349 + vin-supply = <&wallvdd>; 350 + }; 351 + }; 352 + };
+299
Documentation/devicetree/bindings/mfd/cirrus,madera.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/mfd/cirrus,madera.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Cirrus Logic Madera class audio CODECs Multi-Functional Device 8 + 9 + maintainers: 10 + - patches@opensource.cirrus.com 11 + 12 + description: | 13 + These devices are audio SoCs with extensive digital capabilities and a range 14 + of analogue I/O. 15 + 16 + See also the child driver bindings in: 17 + 18 + bindings/pinctrl/cirrus,madera.yaml 19 + bindings/regulator/wlf,arizona.yaml 20 + bindings/sound/cirrus,madera.yaml 21 + 22 + allOf: 23 + - $ref: /schemas/pinctrl/cirrus,madera.yaml# 24 + - $ref: /schemas/regulator/wlf,arizona.yaml# 25 + - $ref: /schemas/sound/cirrus,madera.yaml# 26 + - if: 27 + properties: 28 + compatible: 29 + contains: 30 + enum: 31 + - cirrus,cs47l85 32 + - wlf,wm1840 33 + then: 34 + properties: 35 + SPKVDDL-supply: 36 + description: 37 + Left speaker driver power supply. 38 + 39 + SPKVDDR-supply: 40 + description: 41 + Right speaker driver power supply. 42 + 43 + required: 44 + - SPKVDDL-supply 45 + - SPKVDDR-supply 46 + else: 47 + required: 48 + - DCVDD-supply 49 + - if: 50 + properties: 51 + compatible: 52 + contains: 53 + enum: 54 + - cirrus,cs47l15 55 + - cirrus,cs47l35 56 + then: 57 + properties: 58 + SPKVDD-supply: 59 + description: 60 + Mono speaker driver power supply. 61 + 62 + required: 63 + - SPKVDD-supply 64 + - if: 65 + properties: 66 + compatible: 67 + contains: 68 + enum: 69 + - cirrus,cs47l35 70 + - cirrus,cs47l85 71 + - cirrus,cs47l90 72 + - cirrus,cs47l91 73 + - wlf,wm1840 74 + then: 75 + properties: 76 + DBVDD2-supply: 77 + description: 78 + Databus power supply. 79 + 80 + required: 81 + - DBVDD2-supply 82 + - if: 83 + properties: 84 + compatible: 85 + contains: 86 + enum: 87 + - cirrus,cs47l85 88 + - cirrus,cs47l90 89 + - cirrus,cs47l91 90 + - wlf,wm1840 91 + then: 92 + properties: 93 + DBVDD3-supply: 94 + description: 95 + Databus power supply. 96 + 97 + DBVDD4-supply: 98 + description: 99 + Databus power supply. 100 + - if: 101 + properties: 102 + compatible: 103 + contains: 104 + enum: 105 + - cirrus,cs47l15 106 + then: 107 + required: 108 + - MICVDD-supply 109 + else: 110 + properties: 111 + CPVDD2-supply: 112 + description: 113 + Secondary charge pump power supply. 114 + 115 + required: 116 + - CPVDD2-supply 117 + 118 + properties: 119 + compatible: 120 + enum: 121 + - cirrus,cs47l15 122 + - cirrus,cs47l35 123 + - cirrus,cs47l85 124 + - cirrus,cs47l90 125 + - cirrus,cs47l91 126 + - cirrus,cs42l92 127 + - cirrus,cs47l92 128 + - cirrus,cs47l93 129 + - cirrus,wm1840 130 + 131 + reg: 132 + maxItems: 1 133 + 134 + gpio-controller: true 135 + 136 + '#gpio-cells': 137 + description: 138 + The first cell is the pin number. The second cell is reserved for 139 + future use and must be zero 140 + const: 2 141 + 142 + interrupt-controller: true 143 + 144 + '#interrupt-cells': 145 + description: 146 + The first cell is the IRQ number. 147 + The second cell is the flags, encoded as the trigger masks from 148 + bindings/interrupt-controller/interrupts.txt 149 + const: 2 150 + 151 + interrupts: 152 + maxItems: 1 153 + 154 + reset-gpios: 155 + description: 156 + One entry specifying the GPIO controlling /RESET. As defined in 157 + bindings/gpio.txt. Although optional, it is strongly recommended 158 + to use a hardware reset. 159 + maxItems: 1 160 + 161 + clocks: 162 + description: 163 + Should reference the clocks supplied on MCLK1, MCLK2 and MCLK3. 164 + minItems: 1 165 + maxItems: 3 166 + 167 + clock-names: 168 + description: | 169 + May contain up to three strings: 170 + "mclk1" For the clock supplied on MCLK1, recommended to be a 171 + high quality audio reference clock. 172 + "mclk2" For the clock supplied on MCLK2, required to be an 173 + always on 32k clock. 174 + "mclk3" For the clock supplied on MCLK3. 175 + oneOf: 176 + - items: 177 + - const: mclk1 178 + - items: 179 + - const: mclk2 180 + - items: 181 + - const: mclk3 182 + - items: 183 + - const: mclk1 184 + - const: mclk2 185 + - items: 186 + - const: mclk1 187 + - const: mclk3 188 + - items: 189 + - const: mclk2 190 + - const: mclk3 191 + - items: 192 + - const: mclk1 193 + - const: mclk2 194 + - const: mclk3 195 + 196 + AVDD-supply: 197 + description: 198 + Analogue power supply. 199 + 200 + DBVDD1-supply: 201 + description: 202 + Databus power supply. 203 + 204 + CPVDD1-supply: 205 + description: 206 + Charge pump power supply. 207 + 208 + DCVDD-supply: 209 + description: 210 + Digital power supply, optional on CS47L85, WM1840 where it can 211 + be supplied internally. 212 + 213 + MICVDD-supply: 214 + description: 215 + Microphone power supply, normally supplied internally except on 216 + cs47l24, wm1831 where it is mandatory. 217 + 218 + required: 219 + - compatible 220 + - gpio-controller 221 + - '#gpio-cells' 222 + - interrupt-controller 223 + - '#interrupt-cells' 224 + - interrupt-parent 225 + - interrupts 226 + - AVDD-supply 227 + - DBVDD1-supply 228 + - CPVDD1-supply 229 + 230 + unevaluatedProperties: false 231 + 232 + examples: 233 + - | 234 + #include <dt-bindings/sound/madera.h> 235 + i2c@e0004000 { 236 + #address-cells = <1>; 237 + #size-cells = <0>; 238 + reg = <0xe0004000 0x1000>; 239 + 240 + cs47l85: codec@1a { 241 + compatible = "cirrus,cs47l85"; 242 + reg = <0x1a>; 243 + 244 + reset-gpios = <&gpio 0>; 245 + wlf,ldoena = <&gpio 1>; 246 + 247 + interrupt-controller; 248 + #interrupt-cells = <2>; 249 + interrupts = <&host_irq1>; 250 + interrupt-parent = <&gic>; 251 + 252 + gpio-controller; 253 + #gpio-cells = <2>; 254 + 255 + AVDD-supply = <&vdd1v8>; 256 + DBVDD1-supply = <&vdd1v8>; 257 + DBVDD2-supply = <&vdd1v8>; 258 + DBVDD3-supply = <&vdd1v8>; 259 + DBVDD4-supply = <&vdd1v8>; 260 + CPVDD1-supply = <&vdd1v8>; 261 + CPVDD2-supply = <&vdd1v2>; 262 + SPKVDDL-supply = <&vdd5v>; 263 + SPKVDDR-supply = <&vdd5v>; 264 + 265 + clocks = <&clks 0>, <&clks 1>, <&clks 2>; 266 + clock-names = "mclk1", "mclk2", "mclk3"; 267 + 268 + cirrus,dmic-ref = <0 0 MADERA_DMIC_REF_MICBIAS1>; 269 + cirrus,inmode = < 270 + MADERA_INMODE_SE MADERA_INMODE_SE 271 + MADERA_INMODE_SE MADERA_INMODE_SE 272 + MADERA_INMODE_DIFF MADERA_INMODE_DIFF 273 + >; 274 + cirrus,max-channels-clocked = <2 0 0>; 275 + 276 + pinctrl-names = "default"; 277 + pinctrl-0 = <&pinsettings>; 278 + 279 + pinsettings: pin-settings { 280 + aif1-pins { 281 + groups = "aif1"; 282 + function = "aif1"; 283 + bias-bus-hold; 284 + }; 285 + 286 + aif2-pins { 287 + groups = "aif2"; 288 + function = "aif2"; 289 + bias-bus-hold; 290 + }; 291 + 292 + aif3-pins { 293 + groups = "aif3"; 294 + function = "aif3"; 295 + bias-bus-hold; 296 + }; 297 + }; 298 + }; 299 + };
-114
Documentation/devicetree/bindings/mfd/madera.txt
··· 1 - Cirrus Logic Madera class audio codecs Multi-Functional Device 2 - 3 - These devices are audio SoCs with extensive digital capabilities and a range 4 - of analogue I/O. 5 - 6 - See also the child driver bindings in: 7 - bindings/pinctrl/cirrus,madera-pinctrl.txt 8 - bindings/regulator/arizona-regulator.txt 9 - bindings/sound/madera.txt 10 - 11 - Required properties: 12 - 13 - - compatible : One of the following chip-specific strings: 14 - "cirrus,cs47l15" 15 - "cirrus,cs47l35" 16 - "cirrus,cs47l85" 17 - "cirrus,cs47l90" 18 - "cirrus,cs47l91" 19 - "cirrus,cs42l92" 20 - "cirrus,cs47l92" 21 - "cirrus,cs47l93" 22 - "cirrus,wm1840" 23 - 24 - - reg : I2C slave address when connected using I2C, chip select number when 25 - using SPI. 26 - 27 - - DCVDD-supply : Power supply for the device as defined in 28 - bindings/regulator/regulator.txt 29 - Mandatory on CS47L15, CS47L35, CS47L90, CS47L91, CS42L92, CS47L92, CS47L93 30 - Optional on CS47L85, WM1840 31 - 32 - - AVDD-supply, DBVDD1-supply, DBVDD2-supply, CPVDD1-supply, CPVDD2-supply : 33 - Power supplies for the device 34 - 35 - - DBVDD3-supply, DBVDD4-supply : Power supplies for the device 36 - (CS47L85, CS47L90, CS47L91, WM1840) 37 - 38 - - SPKVDDL-supply, SPKVDDR-supply : Power supplies for the device 39 - (CS47L85, WM1840) 40 - 41 - - SPKVDD-supply : Power supply for the device 42 - (CS47L15, CS47L35) 43 - 44 - - interrupt-controller : Indicates that this device is an interrupt controller 45 - 46 - - #interrupt-cells: the number of cells to describe an IRQ, must be 2. 47 - The first cell is the IRQ number. 48 - The second cell is the flags, encoded as the trigger masks from 49 - bindings/interrupt-controller/interrupts.txt 50 - 51 - - gpio-controller : Indicates this device is a GPIO controller. 52 - 53 - - #gpio-cells : Must be 2. The first cell is the pin number. The second cell 54 - is reserved for future use and must be zero 55 - 56 - - interrupt-parent : The parent interrupt controller. 57 - 58 - - interrupts : The interrupt line the /IRQ signal for the device is 59 - connected to. 60 - 61 - Optional properties: 62 - 63 - - MICVDD-supply : Power supply, only need to be specified if 64 - powered externally 65 - 66 - - reset-gpios : One entry specifying the GPIO controlling /RESET. 67 - As defined in bindings/gpio.txt. 68 - Although optional, it is strongly recommended to use a hardware reset 69 - 70 - - clocks: Should reference the clocks supplied on MCLK1, MCLK2 and MCLK3 71 - - clock-names: May contain up to three strings: 72 - "mclk1" for the clock supplied on MCLK1, recommended to be a high 73 - quality audio reference clock 74 - "mclk2" for the clock supplied on MCLK2, required to be an always on 75 - 32k clock 76 - "mclk3" for the clock supplied on MCLK3 77 - 78 - - MICBIASx : Initial data for the MICBIAS regulators, as covered in 79 - Documentation/devicetree/bindings/regulator/regulator.txt. 80 - One for each MICBIAS generator (MICBIAS1, MICBIAS2, ...) 81 - (all codecs) 82 - 83 - One for each output pin (MICBIAS1A, MIBCIAS1B, MICBIAS2A, ...) 84 - (all except CS47L85, WM1840) 85 - 86 - The following following additional property is supported for the generator 87 - nodes: 88 - - cirrus,ext-cap : Set to 1 if the MICBIAS has external decoupling 89 - capacitors attached. 90 - 91 - Optional child nodes: 92 - micvdd : Node containing initialization data for the micvdd regulator 93 - See bindings/regulator/arizona-regulator.txt 94 - 95 - ldo1 : Node containing initialization data for the LDO1 regulator 96 - See bindings/regulator/arizona-regulator.txt 97 - (cs47l85, wm1840) 98 - 99 - Example: 100 - 101 - cs47l85@0 { 102 - compatible = "cirrus,cs47l85"; 103 - reg = <0>; 104 - 105 - reset-gpios = <&gpio 0>; 106 - 107 - interrupt-controller; 108 - #interrupt-cells = <2>; 109 - interrupts = <&host_irq1>; 110 - interrupt-parent = <&gic>; 111 - 112 - gpio-controller; 113 - #gpio-cells = <2>; 114 - };
+2 -2
Documentation/devicetree/bindings/mfd/st,stm32-lptimer.yaml
··· 66 66 reg: 67 67 description: Identify trigger hardware block. 68 68 items: 69 - minimum: 0 70 - maximum: 2 69 + minimum: 0 70 + maximum: 2 71 71 72 72 required: 73 73 - compatible
+18 -19
Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml
··· 67 67 description: 68 68 One or two <index level filter> to describe break input 69 69 configurations. 70 - allOf: 71 - - $ref: /schemas/types.yaml#/definitions/uint32-matrix 72 - - items: 73 - items: 74 - - description: | 75 - "index" indicates on which break input (0 or 1) the 76 - configuration should be applied. 77 - enum: [ 0 , 1] 78 - - description: | 79 - "level" gives the active level (0=low or 1=high) of the 80 - input signal for this configuration 81 - enum: [ 0, 1 ] 82 - - description: | 83 - "filter" gives the filtering value (up to 15) to be applied. 84 - maximum: 15 85 - minItems: 1 86 - maxItems: 2 70 + $ref: /schemas/types.yaml#/definitions/uint32-matrix 71 + items: 72 + items: 73 + - description: | 74 + "index" indicates on which break input (0 or 1) the 75 + configuration should be applied. 76 + enum: [0, 1] 77 + - description: | 78 + "level" gives the active level (0=low or 1=high) of the 79 + input signal for this configuration 80 + enum: [0, 1] 81 + - description: | 82 + "filter" gives the filtering value (up to 15) to be applied. 83 + maximum: 15 84 + minItems: 1 85 + maxItems: 2 87 86 88 87 required: 89 88 - "#pwm-cells" ··· 101 102 reg: 102 103 description: Identify trigger hardware block. 103 104 items: 104 - minimum: 0 105 - maximum: 16 105 + minimum: 0 106 + maximum: 16 106 107 107 108 required: 108 109 - compatible
+3 -6
Documentation/devicetree/bindings/mfd/st,stpmic1.yaml
··· 29 29 onkey: 30 30 type: object 31 31 32 - allOf: 33 - - $ref: ../input/input.yaml 32 + $ref: ../input/input.yaml 34 33 35 34 properties: 36 35 compatible: ··· 67 68 watchdog: 68 69 type: object 69 70 70 - allOf: 71 - - $ref: ../watchdog/watchdog.yaml 71 + $ref: ../watchdog/watchdog.yaml 72 72 73 73 properties: 74 74 compatible: ··· 188 190 description: STPMIC1 voltage regulators supplies 189 191 190 192 "^(buck[1-4]|ldo[1-6]|boost|vref_ddr|pwr_sw[1-2])$": 191 - allOf: 192 - - $ref: ../regulator/regulator.yaml 193 + $ref: ../regulator/regulator.yaml 193 194 194 195 "^ldo[1-2,5-6]$": 195 196 type: object
+8 -9
Documentation/devicetree/bindings/mfd/syscon.yaml
··· 33 33 compatible: 34 34 anyOf: 35 35 - items: 36 - - enum: 37 - - allwinner,sun8i-a83t-system-controller 38 - - allwinner,sun8i-h3-system-controller 39 - - allwinner,sun8i-v3s-system-controller 40 - - allwinner,sun50i-a64-system-controller 36 + - enum: 37 + - allwinner,sun8i-a83t-system-controller 38 + - allwinner,sun8i-h3-system-controller 39 + - allwinner,sun8i-v3s-system-controller 40 + - allwinner,sun50i-a64-system-controller 41 41 42 - - const: syscon 42 + - const: syscon 43 43 44 44 - contains: 45 45 const: syscon ··· 52 52 description: | 53 53 The size (in bytes) of the IO accesses that should be performed 54 54 on the device. 55 - allOf: 56 - - $ref: /schemas/types.yaml#/definitions/uint32 57 - - enum: [ 1, 2, 4, 8 ] 55 + $ref: /schemas/types.yaml#/definitions/uint32 56 + enum: [1, 2, 4, 8] 58 57 59 58 hwlocks: 60 59 maxItems: 1
+280
Documentation/devicetree/bindings/mfd/wlf,arizona.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/mfd/wlf,arizona.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Cirrus Logic/Wolfson Microelectronics Arizona class audio SoCs 8 + 9 + maintainers: 10 + - patches@opensource.cirrus.com 11 + 12 + description: | 13 + These devices are audio SoCs with extensive digital capabilities and a 14 + range of analogue I/O. 15 + 16 + allOf: 17 + - $ref: /schemas/sound/wlf,arizona.yaml# 18 + - $ref: /schemas/regulator/wlf,arizona.yaml# 19 + - $ref: /schemas/extcon/wlf,arizona.yaml# 20 + - if: 21 + properties: 22 + compatible: 23 + contains: 24 + enum: 25 + - cirrus,cs47l24 26 + - wlf,wm1831 27 + then: 28 + required: 29 + - DCVDD-supply 30 + - MICVDD-supply 31 + else: 32 + properties: 33 + LDOVDD-supply: 34 + description: 35 + Digital power supply, used internally to generate DCVDD when 36 + internally supplied. 37 + 38 + - if: 39 + properties: 40 + compatible: 41 + contains: 42 + enum: 43 + - wlf,wm1814 44 + - wlf,wm5102 45 + - wlf,wm5110 46 + - wlf,wm8280 47 + - wlf,wm8997 48 + - wlf,wm8998 49 + then: 50 + properties: 51 + DBVDD2-supply: 52 + description: 53 + Databus power supply. 54 + 55 + required: 56 + - DBVDD2-supply 57 + - if: 58 + properties: 59 + compatible: 60 + contains: 61 + enum: 62 + - wlf,wm1814 63 + - wlf,wm5102 64 + - wlf,wm5110 65 + - wlf,wm8280 66 + - wlf,wm8998 67 + then: 68 + properties: 69 + DBVDD3-supply: 70 + description: 71 + Databus power supply. 72 + 73 + required: 74 + - DBVDD3-supply 75 + - if: 76 + properties: 77 + compatible: 78 + contains: 79 + enum: 80 + - cirrus,cs47l24 81 + - wlf,wm1831 82 + - wlf,wm8997 83 + then: 84 + properties: 85 + SPKVDD-supply: 86 + description: 87 + Mono speaker driver power supply. 88 + 89 + required: 90 + - SPKVDD-supply 91 + else: 92 + properties: 93 + SPKVDDL-supply: 94 + description: 95 + Left speaker driver power supply. 96 + 97 + SPKVDDR-supply: 98 + description: 99 + Right speaker driver power supply. 100 + 101 + required: 102 + - SPKVDDL-supply 103 + - SPKVDDR-supply 104 + 105 + properties: 106 + compatible: 107 + enum: 108 + - cirrus,cs47l24 109 + - wlf,wm1814 110 + - wlf,wm1831 111 + - wlf,wm5102 112 + - wlf,wm5110 113 + - wlf,wm8280 114 + - wlf,wm8997 115 + - wlf,wm8998 116 + 117 + reg: 118 + maxItems: 1 119 + 120 + AVDD-supply: 121 + description: 122 + Analogue power supply. 123 + 124 + CPVDD-supply: 125 + description: 126 + Charge pump power supply. 127 + 128 + DBVDD1-supply: 129 + description: 130 + Databus power supply. 131 + 132 + DCVDD-supply: 133 + description: 134 + Digital power supply, normally supplied internally except on cs47l24, 135 + wm1831 where it is mandatory. 136 + 137 + MICVDD-supply: 138 + description: 139 + Microphone power supply, normally supplied internally except on 140 + cs47l24, wm1831 where it is mandatory. 141 + 142 + gpio-controller: true 143 + 144 + '#gpio-cells': 145 + description: 146 + The first cell is the pin number and the second cell is used to 147 + specify optional parameters. 148 + const: 2 149 + 150 + wlf,gpio-defaults: 151 + description: 152 + A list of GPIO configuration register values. Defines for the 153 + appropriate values can found in dt-bindings/mfd/arizona.h. If 154 + absent, no configuration of these registers is performed. If any 155 + entry has a value that is out of range for a 16 bit register then the 156 + chip default will be used. If present exactly five values must be 157 + specified. 158 + $ref: "/schemas/types.yaml#/definitions/uint32-array" 159 + minItems: 1 160 + maxItems: 5 161 + 162 + interrupt-controller: true 163 + 164 + '#interrupt-cells': 165 + description: 166 + The first cell is the IRQ number. The second cell is the flags, 167 + encoded as trigger masks. 168 + const: 2 169 + 170 + interrupts: 171 + maxItems: 1 172 + 173 + clocks: 174 + description: 175 + Should reference the clocks supplied on MCLK1 and MCLK2. 176 + minItems: 1 177 + maxItems: 2 178 + 179 + clock-names: 180 + description: 181 + Should contains two strings mclk1 for the clock supplied on MCLK1, 182 + recommended to be a high quality audio reference clock mclk2 for the 183 + clock supplied on MCLK2, recommended to be an always on 32k clock. 184 + oneOf: 185 + - items: 186 + - const: mclk1 187 + - items: 188 + - const: mclk2 189 + - items: 190 + - const: mclk1 191 + - const: mclk2 192 + 193 + reset-gpios: 194 + maxItems: 1 195 + 196 + wlf,reset: 197 + description: 198 + GPIO specifier for the GPIO controlling RESET 199 + deprecated: true 200 + $ref: /schemas/types.yaml#/definitions/phandle-array 201 + maxItems: 1 202 + 203 + required: 204 + - compatible 205 + - AVDD-supply 206 + - CPVDD-supply 207 + - DBVDD1-supply 208 + - gpio-controller 209 + - '#gpio-cells' 210 + - interrupt-controller 211 + - '#interrupt-cells' 212 + - interrupts 213 + 214 + unevaluatedProperties: false 215 + 216 + examples: 217 + - | 218 + #include <dt-bindings/mfd/arizona.h> 219 + i2c@e0004000 { 220 + #address-cells = <1>; 221 + #size-cells = <0>; 222 + reg = <0xe0004000 0x1000>; 223 + 224 + wm5102: codec@1a { 225 + compatible = "wlf,wm5102"; 226 + reg = <0x1a>; 227 + 228 + reset-gpios = <&gpio 0>; 229 + wlf,ldoena = <&gpio 1>; 230 + 231 + AVDD-supply = <&vdd1v8>; 232 + DBVDD1-supply = <&vdd1v8>; 233 + DBVDD2-supply = <&vdd1v8>; 234 + DBVDD3-supply = <&vdd1v8>; 235 + CPVDD-supply = <&vdd1v8>; 236 + LDOVDD-supply = <&vdd1v8>; 237 + SPKVDDL-supply = <&vdd5v>; 238 + SPKVDDR-supply = <&vdd5v>; 239 + 240 + interrupts = <347>; 241 + interrupt-controller; 242 + #interrupt-cells = <2>; 243 + interrupt-parent = <&gic>; 244 + 245 + gpio-controller; 246 + #gpio-cells = <2>; 247 + 248 + #sound-dai-cells = <1>; 249 + 250 + wlf,gpio-defaults = < 251 + ARIZONA_GP_FN_TXLRCLK 252 + ARIZONA_GP_DEFAULT 253 + ARIZONA_GP_DEFAULT 254 + ARIZONA_GP_DEFAULT 255 + ARIZONA_GP_DEFAULT 256 + >; 257 + 258 + clocks = <&clks 0>, <&clks 1>; 259 + clock-names = "mclk1", "mclk2"; 260 + 261 + wlf,inmode = <ARIZONA_INMODE_DIFF ARIZONA_INMODE_DMIC>; 262 + wlf,dmic-ref = <ARIZONA_DMIC_MICBIAS1 ARIZONA_DMIC_MICBIAS3>; 263 + 264 + wlf,use-jd2; 265 + wlf,use-jd2-nopull; 266 + wlf,jd-invert; 267 + 268 + wlf,micd-software-compare; 269 + wlf,micd-detect-debounce = <0>; 270 + wlf,micd-pol-gpio = <&codec 2 0>; 271 + wlf,micd-rate = <ARIZONA_MICD_TIME_8MS>; 272 + wlf,micd-dbtime = <4>; 273 + wlf,micd-timeout-ms = <100>; 274 + wlf,micd-force-micbias; 275 + wlf,micd-configs = <0 ARIZONA_DMIC_MICBIAS1 0>, 276 + <0x2000 ARIZONA_DMIC_MICBIAS2 1>; 277 + 278 + wlf,gpsw = <ARIZONA_GPSW_OPEN>; 279 + }; 280 + };
+4
Documentation/devicetree/bindings/mips/ingenic/devices.yaml
··· 20 20 - description: Qi Hardware Ben NanoNote 21 21 items: 22 22 - const: qi,lb60 23 + - const: ingenic,jz4740 23 24 24 25 - description: Game Consoles Worldwide GCW Zero 25 26 items: 26 27 - const: gcw,zero 28 + - const: ingenic,jz4770 27 29 28 30 - description: MIPS Creator CI20 29 31 items: 30 32 - const: img,ci20 33 + - const: ingenic,jz4780 31 34 32 35 - description: YSH & ATIL General Board CU Neo 33 36 items: 34 37 - const: yna,cu1000-neo 38 + - const: ingenic,x1000 35 39 ...
+2 -2
Documentation/devicetree/bindings/mmc/aspeed,sdhci.yaml
··· 41 41 patternProperties: 42 42 "^sdhci@[0-9a-f]+$": 43 43 type: object 44 - allOf: 45 - - $ref: mmc-controller.yaml 44 + $ref: mmc-controller.yaml 45 + 46 46 properties: 47 47 compatible: 48 48 enum:
+34 -45
Documentation/devicetree/bindings/mmc/cdns,sdhci.yaml
··· 17 17 compatible: 18 18 items: 19 19 - enum: 20 - - socionext,uniphier-sd4hc 20 + - socionext,uniphier-sd4hc 21 21 - const: cdns,sd4hc 22 22 23 23 reg: ··· 36 36 37 37 cdns,phy-input-delay-sd-highspeed: 38 38 description: Value of the delay in the input path for SD high-speed timing 39 - allOf: 40 - - $ref: "/schemas/types.yaml#/definitions/uint32" 41 - - minimum: 0 42 - - maximum: 0x1f 39 + $ref: "/schemas/types.yaml#/definitions/uint32" 40 + minimum: 0 41 + maximum: 0x1f 43 42 44 43 cdns,phy-input-delay-legacy: 45 44 description: Value of the delay in the input path for legacy timing 46 - allOf: 47 - - $ref: "/schemas/types.yaml#/definitions/uint32" 48 - - minimum: 0 49 - - maximum: 0x1f 45 + $ref: "/schemas/types.yaml#/definitions/uint32" 46 + minimum: 0 47 + maximum: 0x1f 50 48 51 49 cdns,phy-input-delay-sd-uhs-sdr12: 52 50 description: Value of the delay in the input path for SD UHS SDR12 timing 53 - allOf: 54 - - $ref: "/schemas/types.yaml#/definitions/uint32" 55 - - minimum: 0 56 - - maximum: 0x1f 51 + $ref: "/schemas/types.yaml#/definitions/uint32" 52 + minimum: 0 53 + maximum: 0x1f 57 54 58 55 cdns,phy-input-delay-sd-uhs-sdr25: 59 56 description: Value of the delay in the input path for SD UHS SDR25 timing 60 - allOf: 61 - - $ref: "/schemas/types.yaml#/definitions/uint32" 62 - - minimum: 0 63 - - maximum: 0x1f 57 + $ref: "/schemas/types.yaml#/definitions/uint32" 58 + minimum: 0 59 + maximum: 0x1f 64 60 65 61 cdns,phy-input-delay-sd-uhs-sdr50: 66 62 description: Value of the delay in the input path for SD UHS SDR50 timing 67 - allOf: 68 - - $ref: "/schemas/types.yaml#/definitions/uint32" 69 - - minimum: 0 70 - - maximum: 0x1f 63 + $ref: "/schemas/types.yaml#/definitions/uint32" 64 + minimum: 0 65 + maximum: 0x1f 71 66 72 67 cdns,phy-input-delay-sd-uhs-ddr50: 73 68 description: Value of the delay in the input path for SD UHS DDR50 timing 74 - allOf: 75 - - $ref: "/schemas/types.yaml#/definitions/uint32" 76 - - minimum: 0 77 - - maximum: 0x1f 69 + $ref: "/schemas/types.yaml#/definitions/uint32" 70 + minimum: 0 71 + maximum: 0x1f 78 72 79 73 cdns,phy-input-delay-mmc-highspeed: 80 74 description: Value of the delay in the input path for MMC high-speed timing 81 - allOf: 82 - - $ref: "/schemas/types.yaml#/definitions/uint32" 83 - - minimum: 0 84 - - maximum: 0x1f 75 + $ref: "/schemas/types.yaml#/definitions/uint32" 76 + minimum: 0 77 + maximum: 0x1f 85 78 86 79 cdns,phy-input-delay-mmc-ddr: 87 80 description: Value of the delay in the input path for eMMC high-speed DDR timing 88 - allOf: 89 - - $ref: "/schemas/types.yaml#/definitions/uint32" 90 - - minimum: 0 91 - - maximum: 0x1f 92 81 93 82 # PHY DLL clock delays: 94 83 # Each delay property represents the fraction of the clock period. 95 84 # The approximate delay value will be 96 85 # (<delay property value>/128)*sdmclk_clock_period. 86 + $ref: "/schemas/types.yaml#/definitions/uint32" 87 + minimum: 0 88 + maximum: 0x1f 97 89 98 90 cdns,phy-dll-delay-sdclk: 99 91 description: | 100 92 Value of the delay introduced on the sdclk output for all modes except 101 93 HS200, HS400 and HS400_ES. 102 - allOf: 103 - - $ref: "/schemas/types.yaml#/definitions/uint32" 104 - - minimum: 0 105 - - maximum: 0x7f 94 + $ref: "/schemas/types.yaml#/definitions/uint32" 95 + minimum: 0 96 + maximum: 0x7f 106 97 107 98 cdns,phy-dll-delay-sdclk-hsmmc: 108 99 description: | 109 100 Value of the delay introduced on the sdclk output for HS200, HS400 and 110 101 HS400_ES speed modes. 111 - allOf: 112 - - $ref: "/schemas/types.yaml#/definitions/uint32" 113 - - minimum: 0 114 - - maximum: 0x7f 102 + $ref: "/schemas/types.yaml#/definitions/uint32" 103 + minimum: 0 104 + maximum: 0x7f 115 105 116 106 cdns,phy-dll-delay-strobe: 117 107 description: | 118 108 Value of the delay introduced on the dat_strobe input used in 119 109 HS400 / HS400_ES speed modes. 120 - allOf: 121 - - $ref: "/schemas/types.yaml#/definitions/uint32" 122 - - minimum: 0 123 - - maximum: 0x7f 110 + $ref: "/schemas/types.yaml#/definitions/uint32" 111 + minimum: 0 112 + maximum: 0x7f 124 113 125 114 required: 126 115 - compatible
+79
Documentation/devicetree/bindings/mmc/ingenic,mmc.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/mmc/ingenic,mmc.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Ingenic SoCs MMC Controller DT bindings 8 + 9 + maintainers: 10 + - Paul Cercueil <paul@crapouillou.net> 11 + 12 + allOf: 13 + - $ref: mmc-controller.yaml# 14 + 15 + properties: 16 + compatible: 17 + oneOf: 18 + - enum: 19 + - ingenic,jz4740-mmc 20 + - ingenic,jz4725b-mmc 21 + - ingenic,jz4760-mmc 22 + - ingenic,jz4780-mmc 23 + - ingenic,x1000-mmc 24 + - items: 25 + - const: ingenic,jz4770-mmc 26 + - const: ingenic,jz4760-mmc 27 + 28 + reg: 29 + maxItems: 1 30 + 31 + interrupts: 32 + maxItems: 1 33 + 34 + clocks: 35 + maxItems: 1 36 + 37 + clock-names: 38 + const: mmc 39 + 40 + dmas: 41 + items: 42 + - description: DMA controller phandle and request line for RX 43 + - description: DMA controller phandle and request line for TX 44 + 45 + dma-names: 46 + items: 47 + - const: rx 48 + - const: tx 49 + 50 + required: 51 + - compatible 52 + - reg 53 + - interrupts 54 + - clocks 55 + - clock-names 56 + - dmas 57 + - dma-names 58 + 59 + examples: 60 + - | 61 + #include <dt-bindings/clock/jz4780-cgu.h> 62 + #include <dt-bindings/dma/jz4780-dma.h> 63 + mmc0: mmc@13450000 { 64 + compatible = "ingenic,jz4780-mmc"; 65 + reg = <0x13450000 0x1000>; 66 + 67 + interrupt-parent = <&intc>; 68 + interrupts = <37>; 69 + 70 + clocks = <&cgu JZ4780_CLK_MSC0>; 71 + clock-names = "mmc"; 72 + 73 + cap-sd-highspeed; 74 + cap-mmc-highspeed; 75 + cap-sdio-irq; 76 + dmas = <&dma JZ4780_DMA_MSC0_RX 0xffffffff>, 77 + <&dma JZ4780_DMA_MSC0_TX 0xffffffff>; 78 + dma-names = "rx", "tx"; 79 + };
-41
Documentation/devicetree/bindings/mmc/jz4740.txt
··· 1 - * Ingenic XBurst MMC controllers 2 - 3 - This file documents the device tree properties used for the MMC controller in 4 - Ingenic JZ4740/JZ4760/JZ4780/X1000 SoCs. These are in addition to the core MMC 5 - properties described in mmc.txt. 6 - 7 - Required properties: 8 - - compatible: Should be one of the following: 9 - - "ingenic,jz4740-mmc" for the JZ4740 10 - - "ingenic,jz4725b-mmc" for the JZ4725B 11 - - "ingenic,jz4760-mmc" for the JZ4760 12 - - "ingenic,jz4780-mmc" for the JZ4780 13 - - "ingenic,x1000-mmc" for the X1000 14 - - reg: Should contain the MMC controller registers location and length. 15 - - interrupts: Should contain the interrupt specifier of the MMC controller. 16 - - clocks: Clock for the MMC controller. 17 - 18 - Optional properties: 19 - - dmas: List of DMA specifiers with the controller specific format 20 - as described in the generic DMA client binding. A tx and rx 21 - specifier is required. 22 - - dma-names: RX and TX DMA request names. 23 - Should be "rx" and "tx", in that order. 24 - 25 - For additional details on DMA client bindings see ../dma/dma.txt. 26 - 27 - Example: 28 - 29 - mmc0: mmc@13450000 { 30 - compatible = "ingenic,jz4780-mmc"; 31 - reg = <0x13450000 0x1000>; 32 - 33 - interrupt-parent = <&intc>; 34 - interrupts = <37>; 35 - 36 - clocks = <&cgu JZ4780_CLK_MSC0>; 37 - clock-names = "mmc"; 38 - 39 - dmas = <&dma JZ4780_DMA_MSC0_RX 0xffffffff>, <&dma JZ4780_DMA_MSC0_TX 0xffffffff>; 40 - dma-names = "rx", "tx"; 41 - };
+16 -21
Documentation/devicetree/bindings/mmc/mmc-controller.yaml
··· 76 76 # Other properties 77 77 78 78 bus-width: 79 - allOf: 80 - - $ref: /schemas/types.yaml#/definitions/uint32 81 - - enum: [1, 4, 8] 82 - default: 1 83 79 description: 84 80 Number of data lines. 81 + $ref: /schemas/types.yaml#/definitions/uint32 82 + enum: [1, 4, 8] 83 + default: 1 85 84 86 85 max-frequency: 87 - allOf: 88 - - $ref: /schemas/types.yaml#/definitions/uint32 89 - - minimum: 400000 90 - - maximum: 200000000 91 86 description: 92 87 Maximum operating frequency of the bus. 88 + $ref: /schemas/types.yaml#/definitions/uint32 89 + minimum: 400000 90 + maximum: 200000000 93 91 94 92 disable-wp: 95 93 $ref: /schemas/types.yaml#/definitions/flag ··· 210 212 eMMC HS400 enhanced strobe mode is supported 211 213 212 214 dsr: 213 - allOf: 214 - - $ref: /schemas/types.yaml#/definitions/uint32 215 - - minimum: 0 216 - - maximum: 0xffff 217 215 description: 218 216 Value the card Driver Stage Register (DSR) should be programmed 219 217 with. 218 + $ref: /schemas/types.yaml#/definitions/uint32 219 + minimum: 0 220 + maximum: 0xffff 220 221 221 222 no-sdio: 222 223 $ref: /schemas/types.yaml#/definitions/flag ··· 235 238 initialization. 236 239 237 240 fixed-emmc-driver-type: 238 - allOf: 239 - - $ref: /schemas/types.yaml#/definitions/uint32 240 - - minimum: 0 241 - - maximum: 4 242 241 description: 243 242 For non-removable eMMC, enforce this driver type. The value is 244 243 the driver type as specified in the eMMC specification (table 245 244 206 in spec version 5.1) 245 + $ref: /schemas/types.yaml#/definitions/uint32 246 + minimum: 0 247 + maximum: 4 246 248 247 249 post-power-on-delay-ms: 248 - allOf: 249 - - $ref: /schemas/types.yaml#/definitions/uint32 250 - - default: 10 251 250 description: 252 251 It was invented for MMC pwrseq-simple which could be referred to 253 252 mmc-pwrseq-simple.txt. But now it\'s reused as a tunable delay 254 253 waiting for I/O signalling and card power supply to be stable, 255 254 regardless of whether pwrseq-simple is used. Default to 10ms if 256 255 no available. 256 + $ref: /schemas/types.yaml#/definitions/uint32 257 + default: 10 257 258 258 259 supports-cqe: 259 260 $ref: /schemas/types.yaml#/definitions/flag ··· 328 333 - reg 329 334 330 335 "^clk-phase-(legacy|sd-hs|mmc-(hs|hs[24]00|ddr52)|uhs-(sdr(12|25|50|104)|ddr50))$": 331 - allOf: 332 - - $ref: /schemas/types.yaml#/definitions/uint32-array 336 + $ref: /schemas/types.yaml#/definitions/uint32-array 337 + 333 338 minItems: 2 334 339 maxItems: 2 335 340 items:
+1 -1
Documentation/devicetree/bindings/mmc/owl-mmc.yaml
··· 47 47 - | 48 48 mmc0: mmc@e0330000 { 49 49 compatible = "actions,owl-mmc"; 50 - reg = <0x0 0xe0330000 0x0 0x4000>; 50 + reg = <0xe0330000 0x4000>; 51 51 interrupts = <0 42 4>; 52 52 clocks = <&cmu 56>; 53 53 resets = <&cmu 23>;
+11 -13
Documentation/devicetree/bindings/mmc/rockchip-dw-mshc.yaml
··· 30 30 - items: 31 31 - enum: 32 32 # for Rockchip PX30 33 - - rockchip,px30-dw-mshc 33 + - rockchip,px30-dw-mshc 34 34 # for Rockchip RK3036 35 - - rockchip,rk3036-dw-mshc 35 + - rockchip,rk3036-dw-mshc 36 36 # for Rockchip RK322x 37 - - rockchip,rk3228-dw-mshc 37 + - rockchip,rk3228-dw-mshc 38 38 # for Rockchip RK3308 39 - - rockchip,rk3308-dw-mshc 39 + - rockchip,rk3308-dw-mshc 40 40 # for Rockchip RK3328 41 - - rockchip,rk3328-dw-mshc 41 + - rockchip,rk3328-dw-mshc 42 42 # for Rockchip RK3368 43 - - rockchip,rk3368-dw-mshc 43 + - rockchip,rk3368-dw-mshc 44 44 # for Rockchip RK3399 45 - - rockchip,rk3399-dw-mshc 45 + - rockchip,rk3399-dw-mshc 46 46 # for Rockchip RV1108 47 - - rockchip,rv1108-dw-mshc 47 + - rockchip,rv1108-dw-mshc 48 48 - const: rockchip,rk3288-dw-mshc 49 49 50 50 reg: ··· 76 76 high speed modes. 77 77 78 78 rockchip,default-sample-phase: 79 - allOf: 80 - - $ref: /schemas/types.yaml#/definitions/uint32 79 + $ref: /schemas/types.yaml#/definitions/uint32 81 80 minimum: 0 82 81 maximum: 360 83 82 default: 0 ··· 86 87 If not specified 0 deg will be used. 87 88 88 89 rockchip,desired-num-phases: 89 - allOf: 90 - - $ref: /schemas/types.yaml#/definitions/uint32 90 + $ref: /schemas/types.yaml#/definitions/uint32 91 91 minimum: 0 92 92 maximum: 360 93 93 default: 360 ··· 109 111 #include <dt-bindings/interrupt-controller/irq.h> 110 112 sdmmc: mmc@ff0c0000 { 111 113 compatible = "rockchip,rk3288-dw-mshc"; 112 - reg = <0x0 0xff0c0000 0x0 0x4000>; 114 + reg = <0xff0c0000 0x4000>; 113 115 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 114 116 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>, 115 117 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
+7 -7
Documentation/devicetree/bindings/mmc/socionext,uniphier-sd.yaml
··· 35 35 oneOf: 36 36 - const: host 37 37 - items: 38 - - const: host 39 - - const: bridge 38 + - const: host 39 + - const: bridge 40 40 - items: 41 - - const: host 42 - - const: hw 41 + - const: host 42 + - const: hw 43 43 - items: 44 - - const: host 45 - - const: bridge 46 - - const: hw 44 + - const: host 45 + - const: bridge 46 + - const: hw 47 47 48 48 resets: 49 49 minItems: 1
+5 -9
Documentation/devicetree/bindings/mmc/synopsys-dw-mshc-common.yaml
··· 27 27 clock to this at probe time. 28 28 29 29 fifo-depth: 30 - allOf: 31 - - $ref: /schemas/types.yaml#/definitions/uint32 32 30 description: 33 31 The maximum size of the tx/rx fifo's. If this property is not 34 32 specified, the default value of the fifo size is determined from the 35 33 controller registers. 34 + $ref: /schemas/types.yaml#/definitions/uint32 36 35 37 36 card-detect-delay: 38 - allOf: 39 - - $ref: /schemas/types.yaml#/definitions/uint32 40 - - default: 0 41 37 description: 42 38 Delay in milli-seconds before detecting card after card 43 39 insert event. The default value is 0. 40 + $ref: /schemas/types.yaml#/definitions/uint32 41 + default: 0 44 42 45 43 data-addr: 46 - allOf: 47 - - $ref: /schemas/types.yaml#/definitions/uint32 48 44 description: 49 45 Override fifo address with value provided by DT. The default FIFO reg 50 46 offset is assumed as 0x100 (version < 0x240A) and 0x200(version >= 0x240A) 51 47 by driver. If the controller does not follow this rule, please use 52 48 this property to set fifo address in device tree. 49 + $ref: /schemas/types.yaml#/definitions/uint32 53 50 54 51 fifo-watermark-aligned: 55 - allOf: 56 - - $ref: /schemas/types.yaml#/definitions/flag 57 52 description: 58 53 Data done irq is expected if data length is less than 59 54 watermark in PIO mode. But fifo watermark is requested to be aligned 60 55 with data length in some SoC so that TX/RX irq can be generated with 61 56 data done irq. Add this watermark quirk to mark this requirement and 62 57 force fifo watermark setting accordingly. 58 + $ref: /schemas/types.yaml#/definitions/flag 63 59 64 60 dmas: 65 61 maxItems: 1
+6 -7
Documentation/devicetree/bindings/mtd/allwinner,sun4i-a10-nand.yaml
··· 75 75 allwinner,rb: 76 76 description: 77 77 Contains the native Ready/Busy IDs. 78 - allOf: 79 - - $ref: /schemas/types.yaml#/definitions/uint32-array 80 - - minItems: 1 81 - maxItems: 2 82 - items: 83 - minimum: 0 84 - maximum: 1 78 + $ref: /schemas/types.yaml#/definitions/uint32-array 79 + minItems: 1 80 + maxItems: 2 81 + items: 82 + minimum: 0 83 + maximum: 1 85 84 86 85 additionalProperties: false 87 86
+2 -2
Documentation/devicetree/bindings/mtd/denali,nand.yaml
··· 54 54 reg: register reset 55 55 oneOf: 56 56 - items: 57 - - const: nand 58 - - const: reg 57 + - const: nand 58 + - const: reg 59 59 - const: nand 60 60 - const: reg 61 61
-92
Documentation/devicetree/bindings/mtd/ingenic,jz4780-nand.txt
··· 1 - * Ingenic JZ4780 NAND/ECC 2 - 3 - This file documents the device tree bindings for NAND flash devices on the 4 - JZ4780. NAND devices are connected to the NEMC controller (described in 5 - memory-controllers/ingenic,jz4780-nemc.txt), and thus NAND device nodes must 6 - be children of the NEMC node. 7 - 8 - Required NAND controller device properties: 9 - - compatible: Should be one of: 10 - * ingenic,jz4740-nand 11 - * ingenic,jz4725b-nand 12 - * ingenic,jz4780-nand 13 - - reg: For each bank with a NAND chip attached, should specify a bank number, 14 - an offset of 0 and a size of 0x1000000 (i.e. the whole NEMC bank). 15 - 16 - Optional NAND controller device properties: 17 - - ecc-engine: To make use of the hardware ECC controller, this 18 - property must contain a phandle for the ECC controller node. The required 19 - properties for this node are described below. If this is not specified, 20 - software ECC will be used instead. 21 - 22 - Optional children nodes: 23 - - Individual NAND chips are children of the NAND controller node. 24 - 25 - Required children node properties: 26 - - reg: An integer ranging from 1 to 6 representing the CS line to use. 27 - 28 - Optional children node properties: 29 - - nand-ecc-step-size: ECC block size in bytes. 30 - - nand-ecc-strength: ECC strength (max number of correctable bits). 31 - - nand-ecc-mode: String, operation mode of the NAND ecc mode. "hw" by default 32 - - nand-on-flash-bbt: boolean to enable on flash bbt option, if not present false 33 - - rb-gpios: GPIO specifier for the busy pin. 34 - - wp-gpios: GPIO specifier for the write protect pin. 35 - 36 - Optional child node of NAND chip nodes: 37 - - partitions: see Documentation/devicetree/bindings/mtd/partition.txt 38 - 39 - Example: 40 - 41 - nemc: nemc@13410000 { 42 - ... 43 - 44 - nandc: nand-controller@1 { 45 - compatible = "ingenic,jz4780-nand"; 46 - reg = <1 0 0x1000000>; /* Bank 1 */ 47 - 48 - #address-cells = <1>; 49 - #size-cells = <0>; 50 - 51 - ecc-engine = <&bch>; 52 - 53 - nand@1 { 54 - reg = <1>; 55 - 56 - nand-ecc-step-size = <1024>; 57 - nand-ecc-strength = <24>; 58 - nand-ecc-mode = "hw"; 59 - nand-on-flash-bbt; 60 - 61 - rb-gpios = <&gpa 20 GPIO_ACTIVE_LOW>; 62 - wp-gpios = <&gpf 22 GPIO_ACTIVE_LOW>; 63 - 64 - partitions { 65 - #address-cells = <2>; 66 - #size-cells = <2>; 67 - ... 68 - } 69 - }; 70 - }; 71 - }; 72 - 73 - The ECC controller is a separate SoC component used for error correction on 74 - NAND devices. The following is a description of the device properties for a 75 - ECC controller. 76 - 77 - Required ECC properties: 78 - - compatible: Should be one of: 79 - * ingenic,jz4740-ecc 80 - * ingenic,jz4725b-bch 81 - * ingenic,jz4780-bch 82 - - reg: Should specify the ECC controller registers location and length. 83 - - clocks: Clock for the ECC controller. 84 - 85 - Example: 86 - 87 - bch: bch@134d0000 { 88 - compatible = "ingenic,jz4780-bch"; 89 - reg = <0x134d0000 0x10000>; 90 - 91 - clocks = <&cgu JZ4780_CLK_BCH>; 92 - };
+132
Documentation/devicetree/bindings/mtd/ingenic,nand.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/mtd/ingenic,nand.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Ingenic SoCs NAND controller devicetree bindings 8 + 9 + maintainers: 10 + - Paul Cercueil <paul@crapouillou.net> 11 + 12 + allOf: 13 + - $ref: nand-controller.yaml# 14 + 15 + properties: 16 + compatible: 17 + enum: 18 + - ingenic,jz4740-nand 19 + - ingenic,jz4725b-nand 20 + - ingenic,jz4780-nand 21 + 22 + reg: 23 + items: 24 + - description: Bank number, offset and size of first attached NAND chip 25 + - description: Bank number, offset and size of second attached NAND chip 26 + - description: Bank number, offset and size of third attached NAND chip 27 + - description: Bank number, offset and size of fourth attached NAND chip 28 + minItems: 1 29 + 30 + ecc-engine: true 31 + 32 + partitions: 33 + type: object 34 + description: 35 + Node containing description of fixed partitions. 36 + See Documentation/devicetree/bindings/mtd/partition.txt 37 + 38 + patternProperties: 39 + "^nand@[a-f0-9]$": 40 + type: object 41 + properties: 42 + rb-gpios: 43 + description: GPIO specifier for the busy pin. 44 + maxItems: 1 45 + 46 + wp-gpios: 47 + description: GPIO specifier for the write-protect pin. 48 + maxItems: 1 49 + 50 + required: 51 + - compatible 52 + - reg 53 + 54 + examples: 55 + - | 56 + #include <dt-bindings/clock/jz4780-cgu.h> 57 + memory-controller@13410000 { 58 + compatible = "ingenic,jz4780-nemc"; 59 + reg = <0x13410000 0x10000>; 60 + #address-cells = <2>; 61 + #size-cells = <1>; 62 + ranges = <1 0 0x1b000000 0x1000000>, 63 + <2 0 0x1a000000 0x1000000>, 64 + <3 0 0x19000000 0x1000000>, 65 + <4 0 0x18000000 0x1000000>, 66 + <5 0 0x17000000 0x1000000>, 67 + <6 0 0x16000000 0x1000000>; 68 + 69 + clocks = <&cgu JZ4780_CLK_NEMC>; 70 + 71 + nand-controller@1 { 72 + compatible = "ingenic,jz4780-nand"; 73 + reg = <1 0 0x1000000>; 74 + 75 + #address-cells = <1>; 76 + #size-cells = <0>; 77 + 78 + ecc-engine = <&bch>; 79 + 80 + ingenic,nemc-tAS = <10>; 81 + ingenic,nemc-tAH = <5>; 82 + ingenic,nemc-tBP = <10>; 83 + ingenic,nemc-tAW = <15>; 84 + ingenic,nemc-tSTRV = <100>; 85 + 86 + pinctrl-names = "default"; 87 + pinctrl-0 = <&pins_nemc>; 88 + 89 + nand@1 { 90 + reg = <1>; 91 + 92 + nand-ecc-step-size = <1024>; 93 + nand-ecc-strength = <24>; 94 + nand-ecc-mode = "hw"; 95 + nand-on-flash-bbt; 96 + 97 + pinctrl-names = "default"; 98 + pinctrl-0 = <&pins_nemc_cs1>; 99 + 100 + partitions { 101 + compatible = "fixed-partitions"; 102 + #address-cells = <2>; 103 + #size-cells = <2>; 104 + 105 + partition@0 { 106 + label = "u-boot-spl"; 107 + reg = <0x0 0x0 0x0 0x800000>; 108 + }; 109 + 110 + partition@800000 { 111 + label = "u-boot"; 112 + reg = <0x0 0x800000 0x0 0x200000>; 113 + }; 114 + 115 + partition@a00000 { 116 + label = "u-boot-env"; 117 + reg = <0x0 0xa00000 0x0 0x200000>; 118 + }; 119 + 120 + partition@c00000 { 121 + label = "boot"; 122 + reg = <0x0 0xc00000 0x0 0x4000000>; 123 + }; 124 + 125 + partition@4c00000 { 126 + label = "system"; 127 + reg = <0x0 0x4c00000 0x1 0xfb400000>; 128 + }; 129 + }; 130 + }; 131 + }; 132 + };
+11 -16
Documentation/devicetree/bindings/mtd/nand-controller.yaml
··· 47 47 Contains the native Ready/Busy IDs. 48 48 49 49 nand-ecc-mode: 50 - allOf: 51 - - $ref: /schemas/types.yaml#/definitions/string 52 - - enum: [ none, soft, hw, hw_syndrome, hw_oob_first, on-die ] 53 50 description: 54 51 Desired ECC engine, either hardware (most of the time 55 52 embedded in the NAND controller) or software correction 56 53 (Linux will handle the calculations). soft_bch is deprecated 57 54 and should be replaced by soft and nand-ecc-algo. 55 + $ref: /schemas/types.yaml#/definitions/string 56 + enum: [none, soft, hw, hw_syndrome, hw_oob_first, on-die] 58 57 59 58 nand-ecc-algo: 60 - allOf: 61 - - $ref: /schemas/types.yaml#/definitions/string 62 - - enum: [ hamming, bch, rs ] 63 59 description: 64 60 Desired ECC algorithm. 61 + $ref: /schemas/types.yaml#/definitions/string 62 + enum: [hamming, bch, rs] 65 63 66 64 nand-bus-width: 67 - allOf: 68 - - $ref: /schemas/types.yaml#/definitions/uint32 69 - - enum: [ 8, 16 ] 70 - - default: 8 71 65 description: 72 66 Bus width to the NAND chip 67 + $ref: /schemas/types.yaml#/definitions/uint32 68 + enum: [8, 16] 69 + default: 8 73 70 74 71 nand-on-flash-bbt: 75 72 $ref: /schemas/types.yaml#/definitions/flag ··· 80 83 build a volatile BBT in RAM. 81 84 82 85 nand-ecc-strength: 83 - allOf: 84 - - $ref: /schemas/types.yaml#/definitions/uint32 85 - - minimum: 1 86 86 description: 87 87 Maximum number of bits that can be corrected per ECC step. 88 + $ref: /schemas/types.yaml#/definitions/uint32 89 + minimum: 1 88 90 89 91 nand-ecc-step-size: 90 - allOf: 91 - - $ref: /schemas/types.yaml#/definitions/uint32 92 - - minimum: 1 93 92 description: 94 93 Number of data bytes covered by a single ECC step. 94 + $ref: /schemas/types.yaml#/definitions/uint32 95 + minimum: 1 95 96 96 97 nand-ecc-maximize: 97 98 $ref: /schemas/types.yaml#/definitions/flag
+2 -2
Documentation/devicetree/bindings/net/allwinner,sun8i-a83t-emac.yaml
··· 19 19 - const: allwinner,sun8i-v3s-emac 20 20 - const: allwinner,sun50i-a64-emac 21 21 - items: 22 - - const: allwinner,sun50i-h6-emac 23 - - const: allwinner,sun50i-a64-emac 22 + - const: allwinner,sun50i-h6-emac 23 + - const: allwinner,sun50i-a64-emac 24 24 25 25 reg: 26 26 maxItems: 1
-18
Documentation/devicetree/bindings/net/calxeda-xgmac.txt
··· 1 - * Calxeda Highbank 10Gb XGMAC Ethernet 2 - 3 - Required properties: 4 - - compatible : Should be "calxeda,hb-xgmac" 5 - - reg : Address and length of the register set for the device 6 - - interrupts : Should contain 3 xgmac interrupts. The 1st is main interrupt. 7 - The 2nd is pwr mgt interrupt. The 3rd is low power state interrupt. 8 - 9 - Optional properties: 10 - - dma-coherent : Present if dma operations are coherent 11 - 12 - Example: 13 - 14 - ethernet@fff50000 { 15 - compatible = "calxeda,hb-xgmac"; 16 - reg = <0xfff50000 0x1000>; 17 - interrupts = <0 77 4 0 78 4 0 79 4>; 18 - };
+49
Documentation/devicetree/bindings/net/calxeda-xgmac.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/net/calxeda-xgmac.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Calxeda Highbank 10Gb XGMAC Ethernet controller 8 + 9 + description: | 10 + The Calxeda XGMAC Ethernet controllers are directly connected to the 11 + internal machine "network fabric", which is set up, initialised and 12 + managed by the firmware. So there are no PHY properties in this 13 + binding. Switches in the fabric take care of routing and mapping the 14 + traffic to external network ports. 15 + 16 + maintainers: 17 + - Andre Przywara <andre.przywara@arm.com> 18 + 19 + properties: 20 + compatible: 21 + const: calxeda,hb-xgmac 22 + 23 + reg: 24 + maxItems: 1 25 + 26 + interrupts: 27 + description: | 28 + Can point to at most 3 xgmac interrupts. The 1st one is the main 29 + interrupt, the 2nd one is used for power management. The optional 30 + 3rd one is the low power state interrupt. 31 + minItems: 2 32 + maxItems: 3 33 + 34 + dma-coherent: true 35 + 36 + required: 37 + - compatible 38 + - reg 39 + - interrupts 40 + 41 + additionalProperties: false 42 + 43 + examples: 44 + - | 45 + ethernet@fff50000 { 46 + compatible = "calxeda,hb-xgmac"; 47 + reg = <0xfff50000 0x1000>; 48 + interrupts = <0 77 4>, <0 78 4>, <0 79 4>; 49 + };
+52 -53
Documentation/devicetree/bindings/net/can/bosch,m_can.yaml
··· 9 9 description: Bosch MCAN controller for CAN bus 10 10 11 11 maintainers: 12 - - Sriram Dash <sriram.dash@samsung.com> 12 + - Sriram Dash <sriram.dash@samsung.com> 13 13 14 14 properties: 15 15 compatible: ··· 51 51 52 52 bosch,mram-cfg: 53 53 description: | 54 - Message RAM configuration data. 55 - Multiple M_CAN instances can share the same Message RAM 56 - and each element(e.g Rx FIFO or Tx Buffer and etc) number 57 - in Message RAM is also configurable, so this property is 58 - telling driver how the shared or private Message RAM are 59 - used by this M_CAN controller. 54 + Message RAM configuration data. 55 + Multiple M_CAN instances can share the same Message RAM 56 + and each element(e.g Rx FIFO or Tx Buffer and etc) number 57 + in Message RAM is also configurable, so this property is 58 + telling driver how the shared or private Message RAM are 59 + used by this M_CAN controller. 60 60 61 - The format should be as follows: 62 - <offset sidf_elems xidf_elems rxf0_elems rxf1_elems rxb_elems txe_elems txb_elems> 63 - The 'offset' is an address offset of the Message RAM where 64 - the following elements start from. This is usually set to 65 - 0x0 if you're using a private Message RAM. The remain cells 66 - are used to specify how many elements are used for each FIFO/Buffer. 61 + The format should be as follows: 62 + <offset sidf_elems xidf_elems rxf0_elems rxf1_elems rxb_elems txe_elems txb_elems> 63 + The 'offset' is an address offset of the Message RAM where 64 + the following elements start from. This is usually set to 65 + 0x0 if you're using a private Message RAM. The remain cells 66 + are used to specify how many elements are used for each FIFO/Buffer. 67 67 68 - M_CAN includes the following elements according to user manual: 69 - 11-bit Filter 0-128 elements / 0-128 words 70 - 29-bit Filter 0-64 elements / 0-128 words 71 - Rx FIFO 0 0-64 elements / 0-1152 words 72 - Rx FIFO 1 0-64 elements / 0-1152 words 73 - Rx Buffers 0-64 elements / 0-1152 words 74 - Tx Event FIFO 0-32 elements / 0-64 words 75 - Tx Buffers 0-32 elements / 0-576 words 68 + M_CAN includes the following elements according to user manual: 69 + 11-bit Filter 0-128 elements / 0-128 words 70 + 29-bit Filter 0-64 elements / 0-128 words 71 + Rx FIFO 0 0-64 elements / 0-1152 words 72 + Rx FIFO 1 0-64 elements / 0-1152 words 73 + Rx Buffers 0-64 elements / 0-1152 words 74 + Tx Event FIFO 0-32 elements / 0-64 words 75 + Tx Buffers 0-32 elements / 0-576 words 76 76 77 - Please refer to 2.4.1 Message RAM Configuration in Bosch 78 - M_CAN user manual for details. 79 - allOf: 80 - - $ref: /schemas/types.yaml#/definitions/int32-array 81 - - items: 82 - items: 83 - - description: The 'offset' is an address offset of the Message RAM 84 - where the following elements start from. This is usually 85 - set to 0x0 if you're using a private Message RAM. 86 - default: 0 87 - - description: 11-bit Filter 0-128 elements / 0-128 words 88 - minimum: 0 89 - maximum: 128 90 - - description: 29-bit Filter 0-64 elements / 0-128 words 91 - minimum: 0 92 - maximum: 64 93 - - description: Rx FIFO 0 0-64 elements / 0-1152 words 94 - minimum: 0 95 - maximum: 64 96 - - description: Rx FIFO 1 0-64 elements / 0-1152 words 97 - minimum: 0 98 - maximum: 64 99 - - description: Rx Buffers 0-64 elements / 0-1152 words 100 - minimum: 0 101 - maximum: 64 102 - - description: Tx Event FIFO 0-32 elements / 0-64 words 103 - minimum: 0 104 - maximum: 32 105 - - description: Tx Buffers 0-32 elements / 0-576 words 106 - minimum: 0 107 - maximum: 32 108 - maxItems: 1 77 + Please refer to 2.4.1 Message RAM Configuration in Bosch 78 + M_CAN user manual for details. 79 + $ref: /schemas/types.yaml#/definitions/int32-array 80 + items: 81 + items: 82 + - description: The 'offset' is an address offset of the Message RAM where 83 + the following elements start from. This is usually set to 0x0 if 84 + you're using a private Message RAM. 85 + default: 0 86 + - description: 11-bit Filter 0-128 elements / 0-128 words 87 + minimum: 0 88 + maximum: 128 89 + - description: 29-bit Filter 0-64 elements / 0-128 words 90 + minimum: 0 91 + maximum: 64 92 + - description: Rx FIFO 0 0-64 elements / 0-1152 words 93 + minimum: 0 94 + maximum: 64 95 + - description: Rx FIFO 1 0-64 elements / 0-1152 words 96 + minimum: 0 97 + maximum: 64 98 + - description: Rx Buffers 0-64 elements / 0-1152 words 99 + minimum: 0 100 + maximum: 64 101 + - description: Tx Event FIFO 0-32 elements / 0-64 words 102 + minimum: 0 103 + maximum: 32 104 + - description: Tx Buffers 0-32 elements / 0-576 words 105 + minimum: 0 106 + maximum: 32 107 + maxItems: 1 109 108 110 109 can-transceiver: 111 110 $ref: can-transceiver.yaml#
+15 -19
Documentation/devicetree/bindings/net/ethernet-controller.yaml
··· 14 14 pattern: "^ethernet(@.*)?$" 15 15 16 16 local-mac-address: 17 - allOf: 18 - - $ref: /schemas/types.yaml#definitions/uint8-array 19 - - items: 20 - - minItems: 6 21 - maxItems: 6 22 17 description: 23 18 Specifies the MAC address that was assigned to the network device. 19 + $ref: /schemas/types.yaml#definitions/uint8-array 20 + items: 21 + - minItems: 6 22 + maxItems: 6 24 23 25 24 mac-address: 26 - allOf: 27 - - $ref: /schemas/types.yaml#definitions/uint8-array 28 - - items: 29 - - minItems: 6 30 - maxItems: 6 31 25 description: 32 26 Specifies the MAC address that was last used by the boot 33 27 program; should be used in cases where the MAC address assigned 34 28 to the device by the boot program is different from the 35 29 local-mac-address property. 30 + $ref: /schemas/types.yaml#definitions/uint8-array 31 + items: 32 + - minItems: 6 33 + maxItems: 6 36 34 37 35 max-frame-size: 38 36 $ref: /schemas/types.yaml#definitions/uint32 ··· 131 133 is used for components that can have configurable fifo sizes. 132 134 133 135 managed: 134 - allOf: 135 - - $ref: /schemas/types.yaml#definitions/string 136 - - default: auto 137 - enum: 138 - - auto 139 - - in-band-status 140 136 description: 141 137 Specifies the PHY management type. If auto is set and fixed-link 142 138 is not specified, it uses MDIO for management. 139 + $ref: /schemas/types.yaml#definitions/string 140 + default: auto 141 + enum: 142 + - auto 143 + - in-band-status 143 144 144 145 fixed-link: 145 146 allOf: ··· 180 183 then: 181 184 properties: 182 185 speed: 183 - allOf: 184 - - $ref: /schemas/types.yaml#definitions/uint32 185 - - enum: [10, 100, 1000] 186 186 description: 187 187 Link speed. 188 + $ref: /schemas/types.yaml#definitions/uint32 189 + enum: [10, 100, 1000] 188 190 189 191 full-duplex: 190 192 $ref: /schemas/types.yaml#definitions/flag
+6 -11
Documentation/devicetree/bindings/net/qca,ar803x.yaml
··· 20 20 properties: 21 21 qca,clk-out-frequency: 22 22 description: Clock output frequency in Hertz. 23 - allOf: 24 - - $ref: /schemas/types.yaml#/definitions/uint32 25 - - enum: [ 25000000, 50000000, 62500000, 125000000 ] 23 + $ref: /schemas/types.yaml#/definitions/uint32 24 + enum: [25000000, 50000000, 62500000, 125000000] 26 25 27 26 qca,clk-out-strength: 28 27 description: Clock output driver strength. 29 - allOf: 30 - - $ref: /schemas/types.yaml#/definitions/uint32 31 - - enum: [ 0, 1, 2 ] 28 + $ref: /schemas/types.yaml#/definitions/uint32 29 + enum: [0, 1, 2] 32 30 33 31 qca,keep-pll-enabled: 34 32 description: | ··· 50 52 type: object 51 53 description: 52 54 Initial data for the VDDIO regulator. Set this to 1.5V or 1.8V. 53 - allOf: 54 - - $ref: /schemas/regulator/regulator.yaml 55 + $ref: /schemas/regulator/regulator.yaml 55 56 56 57 vddh-regulator: 57 58 type: object 58 59 description: 59 60 Dummy subnode to model the external connection of the PHY VDDH 60 61 regulator to VDDIO. 61 - allOf: 62 - - $ref: /schemas/regulator/regulator.yaml 63 - 62 + $ref: /schemas/regulator/regulator.yaml 64 63 65 64 examples: 66 65 - |
+5 -7
Documentation/devicetree/bindings/net/qcom,ipa.yaml
··· 93 93 - const: config 94 94 95 95 qcom,smem-states: 96 - allOf: 97 - - $ref: /schemas/types.yaml#/definitions/phandle-array 96 + $ref: /schemas/types.yaml#/definitions/phandle-array 98 97 description: State bits used in by the AP to signal the modem. 99 98 items: 100 99 - description: Whether the "ipa-clock-enabled" state bit is valid 101 100 - description: Whether the IPA clock is enabled (if valid) 102 101 103 102 qcom,smem-state-names: 104 - allOf: 105 - - $ref: /schemas/types.yaml#/definitions/string-array 103 + $ref: /schemas/types.yaml#/definitions/string-array 106 104 description: The names of the state bits used for SMP2P output 107 105 items: 108 106 - const: ipa-clock-enabled-valid ··· 170 172 modem-remoteproc = <&mss_pil>; 171 173 172 174 iommus = <&apps_smmu 0x720 0x3>; 173 - reg = <0 0x1e40000 0 0x7000>, 174 - <0 0x1e47000 0 0x2000>, 175 - <0 0x1e04000 0 0x2c000>; 175 + reg = <0x1e40000 0x7000>, 176 + <0x1e47000 0x2000>, 177 + <0x1e04000 0x2c000>; 176 178 reg-names = "ipa-reg", 177 179 "ipa-shared", 178 180 "gsi";
+5 -4
Documentation/devicetree/bindings/net/renesas,ether.yaml
··· 29 29 - renesas,rcar-gen1-ether # a generic R-Car Gen1 device 30 30 - items: 31 31 - enum: 32 - - renesas,ether-r8a7745 # device is a part of R8A7745 SoC 32 + - renesas,ether-r8a7742 # device is a part of R8A7742 SoC 33 33 - renesas,ether-r8a7743 # device is a part of R8A7743 SoC 34 + - renesas,ether-r8a7745 # device is a part of R8A7745 SoC 34 35 - renesas,ether-r8a7790 # device is a part of R8A7790 SoC 35 36 - renesas,ether-r8a7791 # device is a part of R8A7791 SoC 36 37 - renesas,ether-r8a7793 # device is a part of R8A7793 SoC ··· 41 40 42 41 reg: 43 42 items: 44 - - description: E-DMAC/feLic registers 45 - - description: TSU registers 43 + - description: E-DMAC/feLic registers 44 + - description: TSU registers 46 45 minItems: 1 47 46 48 47 interrupts: ··· 93 92 94 93 ethernet@ee700000 { 95 94 compatible = "renesas,ether-r8a7790", "renesas,rcar-gen2-ether"; 96 - reg = <0 0xee700000 0 0x400>; 95 + reg = <0xee700000 0x400>; 97 96 interrupt-parent = <&gic>; 98 97 interrupts = <0 162 IRQ_TYPE_LEVEL_HIGH>; 99 98 clocks = <&mstp8_clks R8A7790_CLK_ETHER>;
+1
Documentation/devicetree/bindings/net/renesas,ravb.txt
··· 5 5 6 6 Required properties: 7 7 - compatible: Must contain one or more of the following: 8 + - "renesas,etheravb-r8a7742" for the R8A7742 SoC. 8 9 - "renesas,etheravb-r8a7743" for the R8A7743 SoC. 9 10 - "renesas,etheravb-r8a7744" for the R8A7744 SoC. 10 11 - "renesas,etheravb-r8a7745" for the R8A7745 SoC.
+16 -14
Documentation/devicetree/bindings/net/snps,dwmac.yaml
··· 27 27 - snps,dwmac-3.710 28 28 - snps,dwmac-4.00 29 29 - snps,dwmac-4.10a 30 + - snps,dwmac-4.20a 30 31 - snps,dwxgmac 31 32 - snps,dwxgmac-2.10 32 33 ··· 63 62 - snps,dwmac-3.710 64 63 - snps,dwmac-4.00 65 64 - snps,dwmac-4.10a 65 + - snps,dwmac-4.20a 66 66 - snps,dwxgmac 67 67 - snps,dwxgmac-2.10 68 68 ··· 89 87 90 88 clocks: 91 89 minItems: 1 92 - maxItems: 3 90 + maxItems: 5 91 + additionalItems: true 93 92 items: 94 93 - description: GMAC main clock 95 94 - description: Peripheral registers interface clock ··· 100 97 clock will be used and this is fine on some platforms. 101 98 102 99 clock-names: 100 + minItems: 1 101 + maxItems: 5 103 102 additionalItems: true 104 103 contains: 105 104 enum: ··· 204 199 205 200 snps,reset-delays-us: 206 201 deprecated: true 207 - allOf: 208 - - $ref: /schemas/types.yaml#definitions/uint32-array 209 - - minItems: 3 210 - maxItems: 3 211 202 description: 212 203 Triplet of delays. The 1st cell is reset pre-delay in micro 213 204 seconds. The 2nd cell is reset pulse in micro seconds. The 3rd 214 205 cell is reset post-delay in micro seconds. 206 + $ref: /schemas/types.yaml#definitions/uint32-array 207 + minItems: 3 208 + maxItems: 3 215 209 216 210 snps,aal: 217 211 $ref: /schemas/types.yaml#definitions/flag ··· 305 301 then: 306 302 properties: 307 303 snps,pbl: 308 - allOf: 309 - - $ref: /schemas/types.yaml#definitions/uint32 310 - - enum: [2, 4, 8] 311 304 description: 312 305 Programmable Burst Length (tx and rx) 306 + $ref: /schemas/types.yaml#definitions/uint32 307 + enum: [2, 4, 8] 313 308 314 309 snps,txpbl: 315 - allOf: 316 - - $ref: /schemas/types.yaml#definitions/uint32 317 - - enum: [2, 4, 8] 318 310 description: 319 311 Tx Programmable Burst Length. If set, DMA tx will use this 320 312 value rather than snps,pbl. 313 + $ref: /schemas/types.yaml#definitions/uint32 314 + enum: [2, 4, 8] 321 315 322 316 snps,rxpbl: 323 - allOf: 324 - - $ref: /schemas/types.yaml#definitions/uint32 325 - - enum: [2, 4, 8] 326 317 description: 327 318 Rx Programmable Burst Length. If set, DMA rx will use this 328 319 value rather than snps,pbl. 320 + $ref: /schemas/types.yaml#definitions/uint32 321 + enum: [2, 4, 8] 329 322 330 323 snps,no-pbl-x8: 331 324 $ref: /schemas/types.yaml#definitions/flag ··· 343 342 - allwinner,sun50i-a64-emac 344 343 - snps,dwmac-4.00 345 344 - snps,dwmac-4.10a 345 + - snps,dwmac-4.20a 346 346 - snps,dwxgmac 347 347 - snps,dwxgmac-2.10 348 348 - st,spear600-gmac
-44
Documentation/devicetree/bindings/net/stm32-dwmac.txt
··· 1 - STMicroelectronics STM32 / MCU DWMAC glue layer controller 2 - 3 - This file documents platform glue layer for stmmac. 4 - Please see stmmac.txt for the other unchanged properties. 5 - 6 - The device node has following properties. 7 - 8 - Required properties: 9 - - compatible: For MCU family should be "st,stm32-dwmac" to select glue, and 10 - "snps,dwmac-3.50a" to select IP version. 11 - For MPU family should be "st,stm32mp1-dwmac" to select 12 - glue, and "snps,dwmac-4.20a" to select IP version. 13 - - clocks: Must contain a phandle for each entry in clock-names. 14 - - clock-names: Should be "stmmaceth" for the host clock. 15 - Should be "mac-clk-tx" for the MAC TX clock. 16 - Should be "mac-clk-rx" for the MAC RX clock. 17 - For MPU family need to add also "ethstp" for power mode clock 18 - - interrupt-names: Should contain a list of interrupt names corresponding to 19 - the interrupts in the interrupts property, if available. 20 - Should be "macirq" for the main MAC IRQ 21 - Should be "eth_wake_irq" for the IT which wake up system 22 - - st,syscon : Should be phandle/offset pair. The phandle to the syscon node which 23 - encompases the glue register, and the offset of the control register. 24 - 25 - Optional properties: 26 - - clock-names: For MPU family "eth-ck" for PHY without quartz 27 - - st,eth-clk-sel (boolean) : set this property in RGMII PHY when you want to select RCC clock instead of ETH_CLK125. 28 - - st,eth-ref-clk-sel (boolean) : set this property in RMII mode when you have PHY without crystal 50MHz and want to select RCC clock instead of ETH_REF_CLK. 29 - 30 - Example: 31 - 32 - ethernet@40028000 { 33 - compatible = "st,stm32-dwmac", "snps,dwmac-3.50a"; 34 - reg = <0x40028000 0x8000>; 35 - reg-names = "stmmaceth"; 36 - interrupts = <0 61 0>, <0 62 0>; 37 - interrupt-names = "macirq", "eth_wake_irq"; 38 - clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx"; 39 - clocks = <&rcc 0 25>, <&rcc 0 26>, <&rcc 0 27>; 40 - st,syscon = <&syscfg 0x4>; 41 - snps,pbl = <8>; 42 - snps,mixed-burst; 43 - dma-ranges; 44 - };
+148
Documentation/devicetree/bindings/net/stm32-dwmac.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + # Copyright 2019 BayLibre, SAS 3 + %YAML 1.2 4 + --- 5 + $id: "http://devicetree.org/schemas/net/stm32-dwmac.yaml#" 6 + $schema: "http://devicetree.org/meta-schemas/core.yaml#" 7 + 8 + title: STMicroelectronics STM32 / MCU DWMAC glue layer controller 9 + 10 + maintainers: 11 + - Alexandre Torgue <alexandre.torgue@st.com> 12 + - Christophe Roullier <christophe.roullier@st.com> 13 + 14 + description: 15 + This file documents platform glue layer for stmmac. 16 + 17 + # We need a select here so we don't match all nodes with 'snps,dwmac' 18 + select: 19 + properties: 20 + compatible: 21 + contains: 22 + enum: 23 + - st,stm32-dwmac 24 + - st,stm32mp1-dwmac 25 + required: 26 + - compatible 27 + 28 + allOf: 29 + - $ref: "snps,dwmac.yaml#" 30 + 31 + properties: 32 + compatible: 33 + oneOf: 34 + - items: 35 + - enum: 36 + - st,stm32mp1-dwmac 37 + - const: snps,dwmac-4.20a 38 + - items: 39 + - enum: 40 + - st,stm32-dwmac 41 + - const: snps,dwmac-4.10a 42 + - items: 43 + - enum: 44 + - st,stm32-dwmac 45 + - const: snps,dwmac-3.50a 46 + 47 + clocks: 48 + minItems: 3 49 + maxItems: 5 50 + items: 51 + - description: GMAC main clock 52 + - description: MAC TX clock 53 + - description: MAC RX clock 54 + - description: For MPU family, used for power mode 55 + - description: For MPU family, used for PHY without quartz 56 + 57 + clock-names: 58 + minItems: 3 59 + maxItems: 5 60 + contains: 61 + enum: 62 + - stmmaceth 63 + - mac-clk-tx 64 + - mac-clk-rx 65 + - ethstp 66 + - eth-ck 67 + 68 + st,syscon: 69 + $ref: "/schemas/types.yaml#/definitions/phandle-array" 70 + description: 71 + Should be phandle/offset pair. The phandle to the syscon node which 72 + encompases the glue register, and the offset of the control register 73 + 74 + st,eth-clk-sel: 75 + description: 76 + set this property in RGMII PHY when you want to select RCC clock instead of ETH_CLK125. 77 + type: boolean 78 + 79 + st,eth-ref-clk-sel: 80 + description: 81 + set this property in RMII mode when you have PHY without crystal 50MHz and want to 82 + select RCC clock instead of ETH_REF_CLK. 83 + type: boolean 84 + 85 + required: 86 + - compatible 87 + - clocks 88 + - clock-names 89 + - st,syscon 90 + 91 + examples: 92 + - | 93 + #include <dt-bindings/interrupt-controller/arm-gic.h> 94 + #include <dt-bindings/clock/stm32mp1-clks.h> 95 + #include <dt-bindings/reset/stm32mp1-resets.h> 96 + #include <dt-bindings/mfd/stm32h7-rcc.h> 97 + //Example 1 98 + ethernet0: ethernet@5800a000 { 99 + compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a"; 100 + reg = <0x5800a000 0x2000>; 101 + reg-names = "stmmaceth"; 102 + interrupts = <&intc GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 103 + interrupt-names = "macirq"; 104 + clock-names = "stmmaceth", 105 + "mac-clk-tx", 106 + "mac-clk-rx", 107 + "ethstp", 108 + "eth-ck"; 109 + clocks = <&rcc ETHMAC>, 110 + <&rcc ETHTX>, 111 + <&rcc ETHRX>, 112 + <&rcc ETHSTP>, 113 + <&rcc ETHCK_K>; 114 + st,syscon = <&syscfg 0x4>; 115 + snps,pbl = <2>; 116 + snps,axi-config = <&stmmac_axi_config_0>; 117 + snps,tso; 118 + phy-mode = "rgmii"; 119 + }; 120 + 121 + //Example 2 (MCU example) 122 + ethernet1: ethernet@40028000 { 123 + compatible = "st,stm32-dwmac", "snps,dwmac-3.50a"; 124 + reg = <0x40028000 0x8000>; 125 + reg-names = "stmmaceth"; 126 + interrupts = <0 61 0>, <0 62 0>; 127 + interrupt-names = "macirq", "eth_wake_irq"; 128 + clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx"; 129 + clocks = <&rcc 0 25>, <&rcc 0 26>, <&rcc 0 27>; 130 + st,syscon = <&syscfg 0x4>; 131 + snps,pbl = <8>; 132 + snps,mixed-burst; 133 + phy-mode = "mii"; 134 + }; 135 + 136 + //Example 3 137 + ethernet2: ethernet@40027000 { 138 + compatible = "st,stm32-dwmac", "snps,dwmac-4.10a"; 139 + reg = <0x40028000 0x8000>; 140 + reg-names = "stmmaceth"; 141 + interrupts = <61>; 142 + interrupt-names = "macirq"; 143 + clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx"; 144 + clocks = <&rcc 62>, <&rcc 61>, <&rcc 60>; 145 + st,syscon = <&syscfg 0x4>; 146 + snps,pbl = <8>; 147 + phy-mode = "mii"; 148 + };
+8 -10
Documentation/devicetree/bindings/net/ti,cpsw-switch.yaml
··· 23 23 oneOf: 24 24 - const: ti,cpsw-switch 25 25 - items: 26 - - const: ti,am335x-cpsw-switch 27 - - const: ti,cpsw-switch 26 + - const: ti,am335x-cpsw-switch 27 + - const: ti,cpsw-switch 28 28 - items: 29 - - const: ti,am4372-cpsw-switch 30 - - const: ti,cpsw-switch 29 + - const: ti,am4372-cpsw-switch 30 + - const: ti,cpsw-switch 31 31 - items: 32 - - const: ti,dra7-cpsw-switch 33 - - const: ti,cpsw-switch 32 + - const: ti,dra7-cpsw-switch 33 + - const: ti,cpsw-switch 34 34 35 35 reg: 36 36 maxItems: 1 ··· 105 105 description: label associated with this port 106 106 107 107 ti,dual-emac-pvid: 108 - allOf: 109 - - $ref: /schemas/types.yaml#/definitions/uint32 108 + $ref: /schemas/types.yaml#/definitions/uint32 110 109 minimum: 1 111 110 maximum: 1024 112 111 description: ··· 149 150 patternProperties: 150 151 "^mdio@": 151 152 type: object 152 - allOf: 153 - - $ref: "ti,davinci-mdio.yaml#" 154 153 description: 155 154 CPSW MDIO bus. 155 + $ref: "ti,davinci-mdio.yaml#" 156 156 157 157 158 158 required:
+16 -18
Documentation/devicetree/bindings/net/ti,davinci-mdio.yaml
··· 18 18 properties: 19 19 compatible: 20 20 oneOf: 21 - - const: ti,davinci_mdio 22 - - items: 23 - - const: ti,keystone_mdio 24 - - const: ti,davinci_mdio 25 - - items: 26 - - const: ti,cpsw-mdio 27 - - const: ti,davinci_mdio 28 - - items: 29 - - const: ti,am4372-mdio 30 - - const: ti,cpsw-mdio 31 - - const: ti,davinci_mdio 21 + - const: ti,davinci_mdio 22 + - items: 23 + - const: ti,keystone_mdio 24 + - const: ti,davinci_mdio 25 + - items: 26 + - const: ti,cpsw-mdio 27 + - const: ti,davinci_mdio 28 + - items: 29 + - const: ti,am4372-mdio 30 + - const: ti,cpsw-mdio 31 + - const: ti,davinci_mdio 32 32 33 33 reg: 34 34 maxItems: 1 35 35 36 36 bus_freq: 37 - maximum: 2500000 38 - description: 39 - MDIO Bus frequency 37 + maximum: 2500000 38 + description: MDIO Bus frequency 40 39 41 40 ti,hwmods: 42 41 description: TI hwmod name 43 42 deprecated: true 44 - allOf: 45 - - $ref: /schemas/types.yaml#/definitions/string-array 46 - - items: 47 - const: davinci_mdio 43 + $ref: /schemas/types.yaml#/definitions/string-array 44 + items: 45 + const: davinci_mdio 48 46 49 47 if: 50 48 properties:
+46 -42
Documentation/devicetree/bindings/net/ti,k3-am654-cpsw-nuss.yaml
··· 103 103 type: object 104 104 description: CPSW2G NUSS external ports 105 105 106 - allOf: 107 - - $ref: ethernet-controller.yaml# 106 + $ref: ethernet-controller.yaml# 108 107 109 108 properties: 110 109 reg: ··· 138 139 patternProperties: 139 140 "^mdio@[0-9a-f]+$": 140 141 type: object 141 - allOf: 142 - - $ref: "ti,davinci-mdio.yaml#" 142 + $ref: "ti,davinci-mdio.yaml#" 143 + 143 144 description: 144 145 CPSW MDIO bus. 145 146 ··· 173 174 #include <dt-bindings/interrupt-controller/irq.h> 174 175 #include <dt-bindings/interrupt-controller/arm-gic.h> 175 176 176 - mcu_cpsw: ethernet@46000000 { 177 - compatible = "ti,am654-cpsw-nuss"; 177 + bus { 178 178 #address-cells = <2>; 179 179 #size-cells = <2>; 180 - reg = <0x0 0x46000000 0x0 0x200000>; 181 - reg-names = "cpsw_nuss"; 182 - ranges = <0x0 0x0 0x46000000 0x0 0x200000>; 183 - dma-coherent; 184 - clocks = <&k3_clks 5 10>; 185 - clock-names = "fck"; 186 - power-domains = <&k3_pds 5 TI_SCI_PD_EXCLUSIVE>; 187 - pinctrl-names = "default"; 188 - pinctrl-0 = <&mcu_cpsw_pins_default &mcu_mdio_pins_default>; 189 180 190 - dmas = <&mcu_udmap 0xf000>, 191 - <&mcu_udmap 0xf001>, 192 - <&mcu_udmap 0xf002>, 193 - <&mcu_udmap 0xf003>, 194 - <&mcu_udmap 0xf004>, 195 - <&mcu_udmap 0xf005>, 196 - <&mcu_udmap 0xf006>, 197 - <&mcu_udmap 0xf007>, 198 - <&mcu_udmap 0x7000>; 199 - dma-names = "tx0", "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7", 200 - "rx"; 181 + mcu_cpsw: ethernet@46000000 { 182 + compatible = "ti,am654-cpsw-nuss"; 183 + #address-cells = <2>; 184 + #size-cells = <2>; 185 + reg = <0x0 0x46000000 0x0 0x200000>; 186 + reg-names = "cpsw_nuss"; 187 + ranges = <0x0 0x0 0x0 0x46000000 0x0 0x200000>; 188 + dma-coherent; 189 + clocks = <&k3_clks 5 10>; 190 + clock-names = "fck"; 191 + power-domains = <&k3_pds 5 TI_SCI_PD_EXCLUSIVE>; 192 + pinctrl-names = "default"; 193 + pinctrl-0 = <&mcu_cpsw_pins_default &mcu_mdio_pins_default>; 201 194 202 - ethernet-ports { 203 - #address-cells = <1>; 204 - #size-cells = <0>; 195 + dmas = <&mcu_udmap 0xf000>, 196 + <&mcu_udmap 0xf001>, 197 + <&mcu_udmap 0xf002>, 198 + <&mcu_udmap 0xf003>, 199 + <&mcu_udmap 0xf004>, 200 + <&mcu_udmap 0xf005>, 201 + <&mcu_udmap 0xf006>, 202 + <&mcu_udmap 0xf007>, 203 + <&mcu_udmap 0x7000>; 204 + dma-names = "tx0", "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7", 205 + "rx"; 205 206 206 - cpsw_port1: port@1 { 207 + ethernet-ports { 208 + #address-cells = <1>; 209 + #size-cells = <0>; 210 + 211 + cpsw_port1: port@1 { 207 212 reg = <1>; 208 213 ti,mac-only; 209 214 label = "port1"; ··· 216 213 217 214 phy-mode = "rgmii-rxid"; 218 215 phy-handle = <&phy0>; 219 - }; 220 - }; 216 + }; 217 + }; 221 218 222 - davinci_mdio: mdio@f00 { 223 - compatible = "ti,cpsw-mdio","ti,davinci_mdio"; 224 - reg = <0x0 0xf00 0x0 0x100>; 225 - #address-cells = <1>; 226 - #size-cells = <0>; 227 - clocks = <&k3_clks 5 10>; 228 - clock-names = "fck"; 229 - bus_freq = <1000000>; 219 + davinci_mdio: mdio@f00 { 220 + compatible = "ti,cpsw-mdio","ti,davinci_mdio"; 221 + reg = <0x0 0xf00 0x0 0x100>; 222 + #address-cells = <1>; 223 + #size-cells = <0>; 224 + clocks = <&k3_clks 5 10>; 225 + clock-names = "fck"; 226 + bus_freq = <1000000>; 230 227 231 - phy0: ethernet-phy@0 { 228 + phy0: ethernet-phy@0 { 232 229 reg = <0>; 233 230 ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>; 234 231 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>; 235 - }; 232 + }; 233 + }; 236 234 }; 237 235 238 236 cpts@3d000 {
-22
Documentation/devicetree/bindings/nvmem/imx-iim.txt
··· 1 - Freescale i.MX IC Identification Module (IIM) device tree bindings 2 - 3 - This binding represents the IC Identification Module (IIM) found on 4 - i.MX25, i.MX27, i.MX31, i.MX35, i.MX51 and i.MX53 SoCs. 5 - 6 - Required properties: 7 - - compatible: should be one of 8 - "fsl,imx25-iim", "fsl,imx27-iim", 9 - "fsl,imx31-iim", "fsl,imx35-iim", 10 - "fsl,imx51-iim", "fsl,imx53-iim", 11 - - reg: Should contain the register base and length. 12 - - interrupts: Should contain the interrupt for the IIM 13 - - clocks: Should contain a phandle pointing to the gated peripheral clock. 14 - 15 - Example: 16 - 17 - iim: iim@63f98000 { 18 - compatible = "fsl,imx53-iim", "fsl,imx27-iim"; 19 - reg = <0x63f98000 0x4000>; 20 - interrupts = <69>; 21 - clocks = <&clks IMX5_CLK_IIM_GATE>; 22 - };
+57
Documentation/devicetree/bindings/nvmem/imx-iim.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/nvmem/imx-iim.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Freescale i.MX IC Identification Module (IIM) device tree bindings 8 + 9 + maintainers: 10 + - Anson Huang <Anson.Huang@nxp.com> 11 + 12 + description: | 13 + This binding represents the IC Identification Module (IIM) found on 14 + i.MX25, i.MX27, i.MX31, i.MX35, i.MX51 and i.MX53 SoCs. 15 + 16 + allOf: 17 + - $ref: "nvmem.yaml#" 18 + 19 + properties: 20 + compatible: 21 + enum: 22 + - fsl,imx25-iim 23 + - fsl,imx27-iim 24 + - fsl,imx31-iim 25 + - fsl,imx35-iim 26 + - fsl,imx51-iim 27 + - fsl,imx53-iim 28 + 29 + reg: 30 + maxItems: 1 31 + 32 + interrupts: 33 + maxItems: 1 34 + 35 + clocks: 36 + maxItems: 1 37 + 38 + required: 39 + - compatible 40 + - reg 41 + - interrupts 42 + - clocks 43 + 44 + additionalProperties: false 45 + 46 + examples: 47 + - | 48 + #include <dt-bindings/clock/imx5-clock.h> 49 + 50 + iim: efuse@63f98000 { 51 + compatible = "fsl,imx53-iim"; 52 + reg = <0x63f98000 0x4000>; 53 + interrupts = <69>; 54 + clocks = <&clks IMX5_CLK_IIM_GATE>; 55 + }; 56 + 57 + ...
-50
Documentation/devicetree/bindings/nvmem/imx-ocotp.txt
··· 1 - Freescale i.MX6 On-Chip OTP Controller (OCOTP) device tree bindings 2 - 3 - This binding represents the on-chip eFuse OTP controller found on 4 - i.MX6Q/D, i.MX6DL/S, i.MX6SL, i.MX6SX, i.MX6UL, i.MX6ULL/ULZ, i.MX6SLL, 5 - i.MX7D/S, i.MX7ULP, i.MX8MQ, i.MX8MM, i.MX8MN and i.MX8MP SoCs. 6 - 7 - Required properties: 8 - - compatible: should be one of 9 - "fsl,imx6q-ocotp" (i.MX6Q/D/DL/S), 10 - "fsl,imx6sl-ocotp" (i.MX6SL), or 11 - "fsl,imx6sx-ocotp" (i.MX6SX), 12 - "fsl,imx6ul-ocotp" (i.MX6UL), 13 - "fsl,imx6ull-ocotp" (i.MX6ULL/ULZ), 14 - "fsl,imx7d-ocotp" (i.MX7D/S), 15 - "fsl,imx6sll-ocotp" (i.MX6SLL), 16 - "fsl,imx7ulp-ocotp" (i.MX7ULP), 17 - "fsl,imx8mq-ocotp" (i.MX8MQ), 18 - "fsl,imx8mm-ocotp" (i.MX8MM), 19 - "fsl,imx8mn-ocotp" (i.MX8MN), 20 - "fsl,imx8mp-ocotp" (i.MX8MP), 21 - followed by "syscon". 22 - - #address-cells : Should be 1 23 - - #size-cells : Should be 1 24 - - reg: Should contain the register base and length. 25 - - clocks: Should contain a phandle pointing to the gated peripheral clock. 26 - 27 - Optional properties: 28 - - read-only: disable write access 29 - 30 - Optional Child nodes: 31 - 32 - - Data cells of ocotp: 33 - Detailed bindings are described in bindings/nvmem/nvmem.txt 34 - 35 - Example: 36 - ocotp: ocotp@21bc000 { 37 - #address-cells = <1>; 38 - #size-cells = <1>; 39 - compatible = "fsl,imx6sx-ocotp", "syscon"; 40 - reg = <0x021bc000 0x4000>; 41 - clocks = <&clks IMX6SX_CLK_OCOTP>; 42 - 43 - tempmon_calib: calib@38 { 44 - reg = <0x38 4>; 45 - }; 46 - 47 - tempmon_temp_grade: temp-grade@20 { 48 - reg = <0x20 4>; 49 - }; 50 - };
+95
Documentation/devicetree/bindings/nvmem/imx-ocotp.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/nvmem/imx-ocotp.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Freescale i.MX6 On-Chip OTP Controller (OCOTP) device tree bindings 8 + 9 + maintainers: 10 + - Anson Huang <Anson.Huang@nxp.com> 11 + 12 + description: | 13 + This binding represents the on-chip eFuse OTP controller found on 14 + i.MX6Q/D, i.MX6DL/S, i.MX6SL, i.MX6SX, i.MX6UL, i.MX6ULL/ULZ, i.MX6SLL, 15 + i.MX7D/S, i.MX7ULP, i.MX8MQ, i.MX8MM, i.MX8MN and i.MX8MP SoCs. 16 + 17 + allOf: 18 + - $ref: "nvmem.yaml#" 19 + 20 + properties: 21 + compatible: 22 + items: 23 + - enum: 24 + - fsl,imx6q-ocotp 25 + - fsl,imx6sl-ocotp 26 + - fsl,imx6sx-ocotp 27 + - fsl,imx6ul-ocotp 28 + - fsl,imx6ull-ocotp 29 + - fsl,imx7d-ocotp 30 + - fsl,imx6sll-ocotp 31 + - fsl,imx7ulp-ocotp 32 + - fsl,imx8mq-ocotp 33 + - fsl,imx8mm-ocotp 34 + - fsl,imx8mn-ocotp 35 + - fsl,imx8mp-ocotp 36 + - const: syscon 37 + 38 + reg: 39 + maxItems: 1 40 + 41 + "#address-cells": 42 + const: 1 43 + 44 + "#size-cells": 45 + const: 1 46 + 47 + clocks: 48 + maxItems: 1 49 + 50 + required: 51 + - "#address-cells" 52 + - "#size-cells" 53 + - compatible 54 + - reg 55 + 56 + patternProperties: 57 + "^.*@[0-9a-f]+$": 58 + type: object 59 + 60 + properties: 61 + reg: 62 + maxItems: 1 63 + description: 64 + Offset and size in bytes within the storage device. 65 + 66 + required: 67 + - reg 68 + 69 + additionalProperties: false 70 + 71 + examples: 72 + - | 73 + #include <dt-bindings/clock/imx6sx-clock.h> 74 + 75 + ocotp: efuse@21bc000 { 76 + #address-cells = <1>; 77 + #size-cells = <1>; 78 + compatible = "fsl,imx6sx-ocotp", "syscon"; 79 + reg = <0x021bc000 0x4000>; 80 + clocks = <&clks IMX6SX_CLK_OCOTP>; 81 + 82 + cpu_speed_grade: speed-grade@10 { 83 + reg = <0x10 4>; 84 + }; 85 + 86 + tempmon_calib: calib@38 { 87 + reg = <0x38 4>; 88 + }; 89 + 90 + tempmon_temp_grade: temp-grade@20 { 91 + reg = <0x20 4>; 92 + }; 93 + }; 94 + 95 + ...
-24
Documentation/devicetree/bindings/nvmem/mxs-ocotp.txt
··· 1 - On-Chip OTP Memory for Freescale i.MX23/i.MX28 2 - 3 - Required properties : 4 - - compatible : 5 - - "fsl,imx23-ocotp" for i.MX23 6 - - "fsl,imx28-ocotp" for i.MX28 7 - - #address-cells : Should be 1 8 - - #size-cells : Should be 1 9 - - reg : Address and length of OTP controller registers 10 - - clocks : Should contain a reference to the hbus clock 11 - 12 - = Data cells = 13 - Are child nodes of mxs-ocotp, bindings of which as described in 14 - bindings/nvmem/nvmem.txt 15 - 16 - Example for i.MX28: 17 - 18 - ocotp: ocotp@8002c000 { 19 - compatible = "fsl,imx28-ocotp", "fsl,ocotp"; 20 - #address-cells = <1>; 21 - #size-cells = <1>; 22 - reg = <0x8002c000 0x2000>; 23 - clocks = <&clks 25>; 24 - };
+50
Documentation/devicetree/bindings/nvmem/mxs-ocotp.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/nvmem/mxs-ocotp.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: On-Chip OTP Memory for Freescale i.MX23/i.MX28 8 + 9 + maintainers: 10 + - Anson Huang <Anson.Huang@nxp.com> 11 + 12 + allOf: 13 + - $ref: "nvmem.yaml#" 14 + 15 + properties: 16 + compatible: 17 + enum: 18 + - fsl,imx23-ocotp 19 + - fsl,imx28-ocotp 20 + 21 + "#address-cells": 22 + const: 1 23 + 24 + "#size-cells": 25 + const: 1 26 + 27 + reg: 28 + maxItems: 1 29 + 30 + clocks: 31 + maxItems: 1 32 + 33 + required: 34 + - compatible 35 + - reg 36 + - clocks 37 + 38 + additionalProperties: false 39 + 40 + examples: 41 + - | 42 + ocotp: efuse@8002c000 { 43 + compatible = "fsl,imx28-ocotp"; 44 + #address-cells = <1>; 45 + #size-cells = <1>; 46 + reg = <0x8002c000 0x2000>; 47 + clocks = <&clks 25>; 48 + }; 49 + 50 + ...
-2
Documentation/devicetree/bindings/nvmem/nvmem.yaml
··· 67 67 required: 68 68 - reg 69 69 70 - additionalProperties: false 71 - 72 70 examples: 73 71 - | 74 72 #include <dt-bindings/gpio/gpio.h>
-54
Documentation/devicetree/bindings/nvmem/rockchip-efuse.txt
··· 1 - = Rockchip eFuse device tree bindings = 2 - 3 - Required properties: 4 - - compatible: Should be one of the following. 5 - - "rockchip,rk3066a-efuse" - for RK3066a SoCs. 6 - - "rockchip,rk3188-efuse" - for RK3188 SoCs. 7 - - "rockchip,rk3228-efuse" - for RK3228 SoCs. 8 - - "rockchip,rk3288-efuse" - for RK3288 SoCs. 9 - - "rockchip,rk3328-efuse" - for RK3328 SoCs. 10 - - "rockchip,rk3368-efuse" - for RK3368 SoCs. 11 - - "rockchip,rk3399-efuse" - for RK3399 SoCs. 12 - - reg: Should contain the registers location and exact eFuse size 13 - - clocks: Should be the clock id of eFuse 14 - - clock-names: Should be "pclk_efuse" 15 - 16 - Optional properties: 17 - - rockchip,efuse-size: Should be exact eFuse size in byte, the eFuse 18 - size in property <reg> will be invalid if define this property. 19 - 20 - Deprecated properties: 21 - - compatible: "rockchip,rockchip-efuse" 22 - Old efuse compatible value compatible to rk3066a, rk3188 and rk3288 23 - efuses 24 - 25 - = Data cells = 26 - Are child nodes of eFuse, bindings of which as described in 27 - bindings/nvmem/nvmem.txt 28 - 29 - Example: 30 - 31 - efuse: efuse@ffb40000 { 32 - compatible = "rockchip,rk3288-efuse"; 33 - reg = <0xffb40000 0x20>; 34 - #address-cells = <1>; 35 - #size-cells = <1>; 36 - clocks = <&cru PCLK_EFUSE256>; 37 - clock-names = "pclk_efuse"; 38 - 39 - /* Data cells */ 40 - cpu_leakage: cpu_leakage { 41 - reg = <0x17 0x1>; 42 - }; 43 - }; 44 - 45 - = Data consumers = 46 - Are device nodes which consume nvmem data cells. 47 - 48 - Example: 49 - 50 - cpu_leakage { 51 - ... 52 - nvmem-cells = <&cpu_leakage>; 53 - nvmem-cell-names = "cpu_leakage"; 54 - };
+70
Documentation/devicetree/bindings/nvmem/rockchip-efuse.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-or-later OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/nvmem/rockchip-efuse.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Rockchip eFuse device tree bindings 8 + 9 + maintainers: 10 + - Heiko Stuebner <heiko@sntech.de> 11 + 12 + allOf: 13 + - $ref: "nvmem.yaml#" 14 + 15 + properties: 16 + compatible: 17 + enum: 18 + - rockchip,rk3066a-efuse 19 + - rockchip,rk3188-efuse 20 + - rockchip,rk3228-efuse 21 + - rockchip,rk3288-efuse 22 + - rockchip,rk3328-efuse 23 + - rockchip,rk3368-efuse 24 + - rockchip,rk3399-efuse 25 + 26 + # Deprecated: old compatible value for rk3066a, rk3188 and rk3288 27 + - rockchip,rockchip-efuse 28 + 29 + reg: 30 + description: 31 + Registers location and eFuse size. 32 + maxItems: 1 33 + 34 + clocks: 35 + description: 36 + eFuse clock id. 37 + maxItems: 1 38 + 39 + clock-names: 40 + const: pclk_efuse 41 + 42 + rockchip,efuse-size: 43 + description: 44 + eFuse size in bytes. The eFuse size in property <reg> will be invalid if 45 + this property is defined. 46 + $ref: /schemas/types.yaml#/definitions/uint32 47 + 48 + required: 49 + - compatible 50 + - reg 51 + - clocks 52 + - clock-names 53 + 54 + examples: 55 + - | 56 + #include <dt-bindings/clock/rk3288-cru.h> 57 + efuse: efuse@ffb40000 { 58 + compatible = "rockchip,rk3288-efuse"; 59 + reg = <0xffb40000 0x20>; 60 + #address-cells = <1>; 61 + #size-cells = <1>; 62 + clocks = <&cru PCLK_EFUSE256>; 63 + clock-names = "pclk_efuse"; 64 + 65 + /* Data cells */ 66 + cpu_leakage: cpu_leakage@17 { 67 + reg = <0x17 0x1>; 68 + }; 69 + }; 70 + ...
+17
Documentation/devicetree/bindings/nvmem/st,stm32-romem.yaml
··· 24 24 - st,stm32f4-otp 25 25 - st,stm32mp15-bsec 26 26 27 + patternProperties: 28 + "^.*@[0-9a-f]+$": 29 + type: object 30 + 31 + properties: 32 + st,non-secure-otp: 33 + description: | 34 + This property explicits a factory programmed area that both secure 35 + and non-secure worlds can access. It is needed when, by default, the 36 + related area can only be reached by the secure world. 37 + type: boolean 38 + 27 39 required: 28 40 - "#address-cells" 29 41 - "#size-cells" ··· 52 40 53 41 calib@22c { 54 42 reg = <0x22c 0x2>; 43 + }; 44 + 45 + mac_addr@e4 { 46 + reg = <0xe4 0x8>; 47 + st,non-secure-otp; 55 48 }; 56 49 }; 57 50
+1 -2
Documentation/devicetree/bindings/pci/cdns-pcie-host.yaml
··· 18 18 description: 19 19 Set into the no BAR match register to configure the number of least 20 20 significant bits kept during inbound (PCIe -> AXI) address translations 21 - allOf: 22 - - $ref: /schemas/types.yaml#/definitions/uint32 21 + $ref: /schemas/types.yaml#/definitions/uint32 23 22 minimum: 0 24 23 maximum: 64 25 24 default: 32
+1 -2
Documentation/devicetree/bindings/pci/cdns-pcie.yaml
··· 12 12 properties: 13 13 cdns,max-outbound-regions: 14 14 description: maximum number of outbound regions 15 - allOf: 16 - - $ref: /schemas/types.yaml#/definitions/uint32 15 + $ref: /schemas/types.yaml#/definitions/uint32 17 16 minimum: 1 18 17 maximum: 32 19 18 default: 32
+3 -4
Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml
··· 71 71 72 72 max-link-speed: 73 73 description: Specify PCI Gen for link capability. 74 - allOf: 75 - - $ref: /schemas/types.yaml#/definitions/uint32 76 - - enum: [ 1, 2, 3, 4 ] 77 - - default: 1 74 + $ref: /schemas/types.yaml#/definitions/uint32 75 + enum: [1, 2, 3, 4] 76 + default: 1 78 77 79 78 bus-range: 80 79 description: Range of bus numbers associated with this controller.
+3 -6
Documentation/devicetree/bindings/pci/pci-ep.yaml
··· 18 18 19 19 max-functions: 20 20 description: Maximum number of functions that can be configured 21 - allOf: 22 - - $ref: /schemas/types.yaml#/definitions/uint8 21 + $ref: /schemas/types.yaml#/definitions/uint8 23 22 minimum: 1 24 23 default: 1 25 24 maximum: 255 26 25 27 26 max-link-speed: 28 - allOf: 29 - - $ref: /schemas/types.yaml#/definitions/uint32 27 + $ref: /schemas/types.yaml#/definitions/uint32 30 28 enum: [ 1, 2, 3, 4 ] 31 29 32 30 num-lanes: 33 31 description: maximum number of lanes 34 - allOf: 35 - - $ref: /schemas/types.yaml#/definitions/uint32 32 + $ref: /schemas/types.yaml#/definitions/uint32 36 33 minimum: 1 37 34 default: 1 38 35 maximum: 16
+2 -1
Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt
··· 6 6 OHCI and EHCI controllers. 7 7 8 8 Required properties: 9 - - compatible: "renesas,pci-r8a7743" for the R8A7743 SoC; 9 + - compatible: "renesas,pci-r8a7742" for the R8A7742 SoC; 10 + "renesas,pci-r8a7743" for the R8A7743 SoC; 10 11 "renesas,pci-r8a7744" for the R8A7744 SoC; 11 12 "renesas,pci-r8a7745" for the R8A7745 SoC; 12 13 "renesas,pci-r8a7790" for the R8A7790 SoC;
+1 -1
Documentation/devicetree/bindings/phy/amlogic,meson-axg-mipi-pcie-analog.yaml
··· 30 30 - | 31 31 mpphy: phy@0 { 32 32 compatible = "amlogic,axg-mipi-pcie-analog-phy"; 33 - reg = <0x0 0x0 0x0 0xc>; 33 + reg = <0x0 0xc>; 34 34 #phy-cells = <1>; 35 35 };
+1 -1
Documentation/devicetree/bindings/phy/amlogic,meson-axg-pcie.yaml
··· 44 44 #include <dt-bindings/phy/phy.h> 45 45 pcie_phy: pcie-phy@ff644000 { 46 46 compatible = "amlogic,axg-pcie-phy"; 47 - reg = <0x0 0xff644000 0x0 0x1c>; 47 + reg = <0xff644000 0x1c>; 48 48 resets = <&reset RESET_PCIE_PHY>; 49 49 phys = <&mipi_analog_phy PHY_TYPE_PCIE>; 50 50 phy-names = "analog";
-17
Documentation/devicetree/bindings/phy/calxeda-combophy.txt
··· 1 - Calxeda Highbank Combination Phys for SATA 2 - 3 - Properties: 4 - - compatible : Should be "calxeda,hb-combophy" 5 - - #phy-cells: Should be 1. 6 - - reg : Address and size for Combination Phy registers. 7 - - phydev: device ID for programming the combophy. 8 - 9 - Example: 10 - 11 - combophy5: combo-phy@fff5d000 { 12 - compatible = "calxeda,hb-combophy"; 13 - #phy-cells = <1>; 14 - reg = <0xfff5d000 0x1000>; 15 - phydev = <31>; 16 - }; 17 -
+51
Documentation/devicetree/bindings/phy/calxeda-combophy.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/phy/calxeda-combophy.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Calxeda Highbank Combination PHYs binding for SATA 8 + 9 + description: | 10 + The Calxeda Combination PHYs connect the SoC to the internal fabric 11 + and to SATA connectors. The PHYs support multiple protocols (SATA, 12 + SGMII, PCIe) and can be assigned to different devices (SATA or XGMAC 13 + controller). 14 + Programming the PHYs is typically handled by those device drivers, 15 + not by a dedicated PHY driver. 16 + 17 + maintainers: 18 + - Andre Przywara <andre.przywara@arm.com> 19 + 20 + properties: 21 + compatible: 22 + const: calxeda,hb-combophy 23 + 24 + '#phy-cells': 25 + const: 1 26 + 27 + reg: 28 + maxItems: 1 29 + 30 + phydev: 31 + description: device ID for programming the ComboPHY. 32 + allOf: 33 + - $ref: /schemas/types.yaml#/definitions/uint32 34 + - maximum: 31 35 + 36 + required: 37 + - compatible 38 + - reg 39 + - phydev 40 + - '#phy-cells' 41 + 42 + additionalProperties: false 43 + 44 + examples: 45 + - | 46 + combophy5: combo-phy@fff5d000 { 47 + compatible = "calxeda,hb-combophy"; 48 + #phy-cells = <1>; 49 + reg = <0xfff5d000 0x1000>; 50 + phydev = <31>; 51 + };
+1 -1
Documentation/devicetree/bindings/phy/intel,lgm-emmc-phy.yaml
··· 23 23 24 24 properties: 25 25 compatible: 26 - const: intel,lgm-emmc-phy 26 + const: intel,lgm-emmc-phy 27 27 28 28 "#phy-cells": 29 29 const: 0
+31 -28
Documentation/devicetree/bindings/phy/phy-cadence-torrent.yaml
··· 77 77 description: 78 78 Specifies the type of PHY for which the group of PHY lanes is used. 79 79 Refer include/dt-bindings/phy/phy.h. Constants from the header should be used. 80 - allOf: 81 - - $ref: /schemas/types.yaml#/definitions/uint32 82 - - enum: [1, 2, 3, 4, 5, 6] 80 + $ref: /schemas/types.yaml#/definitions/uint32 81 + enum: [1, 2, 3, 4, 5, 6] 83 82 84 83 cdns,num-lanes: 85 84 description: 86 85 Number of DisplayPort lanes. 87 - allOf: 88 - - $ref: /schemas/types.yaml#/definitions/uint32 89 - - enum: [1, 2, 4] 86 + $ref: /schemas/types.yaml#/definitions/uint32 87 + enum: [1, 2, 4] 90 88 default: 4 91 89 92 90 cdns,max-bit-rate: 93 91 description: 94 92 Maximum DisplayPort link bit rate to use, in Mbps 95 - allOf: 96 - - $ref: /schemas/types.yaml#/definitions/uint32 97 - - enum: [2160, 2430, 2700, 3240, 4320, 5400, 8100] 93 + $ref: /schemas/types.yaml#/definitions/uint32 94 + enum: [2160, 2430, 2700, 3240, 4320, 5400, 8100] 98 95 default: 8100 99 96 100 97 required: ··· 117 120 examples: 118 121 - | 119 122 #include <dt-bindings/phy/phy.h> 120 - torrent_phy: torrent-phy@f0fb500000 { 121 - compatible = "cdns,torrent-phy"; 122 - reg = <0xf0 0xfb500000 0x0 0x00100000>, 123 - <0xf0 0xfb030a00 0x0 0x00000040>; 124 - reg-names = "torrent_phy", "dptx_phy"; 125 - resets = <&phyrst 0>; 126 - clocks = <&ref_clk>; 127 - clock-names = "refclk"; 128 - #address-cells = <1>; 129 - #size-cells = <0>; 130 - torrent_phy_dp: phy@0 { 131 - reg = <0>; 132 - resets = <&phyrst 1>, <&phyrst 2>, 133 - <&phyrst 3>, <&phyrst 4>; 134 - #phy-cells = <0>; 135 - cdns,phy-type = <PHY_TYPE_DP>; 136 - cdns,num-lanes = <4>; 137 - cdns,max-bit-rate = <8100>; 138 - }; 123 + 124 + bus { 125 + #address-cells = <2>; 126 + #size-cells = <2>; 127 + 128 + torrent-phy@f0fb500000 { 129 + compatible = "cdns,torrent-phy"; 130 + reg = <0xf0 0xfb500000 0x0 0x00100000>, 131 + <0xf0 0xfb030a00 0x0 0x00000040>; 132 + reg-names = "torrent_phy", "dptx_phy"; 133 + resets = <&phyrst 0>; 134 + clocks = <&ref_clk>; 135 + clock-names = "refclk"; 136 + #address-cells = <1>; 137 + #size-cells = <0>; 138 + phy@0 { 139 + reg = <0>; 140 + resets = <&phyrst 1>, <&phyrst 2>, 141 + <&phyrst 3>, <&phyrst 4>; 142 + #phy-cells = <0>; 143 + cdns,phy-type = <PHY_TYPE_DP>; 144 + cdns,num-lanes = <4>; 145 + cdns,max-bit-rate = <8100>; 146 + }; 147 + }; 139 148 }; 140 149 ...
+29 -36
Documentation/devicetree/bindings/phy/qcom,qusb2-phy.yaml
··· 83 83 It is a 6 bit value that specifies offset to be 84 84 added to PHY refgen RESCODE via IMP_CTRL1 register. It is a PHY 85 85 tuning parameter that may vary for different boards of same SOC. 86 - allOf: 87 - - $ref: /schemas/types.yaml#/definitions/uint32 88 - - minimum: 0 89 - maximum: 63 90 - default: 0 86 + $ref: /schemas/types.yaml#/definitions/uint32 87 + minimum: 0 88 + maximum: 63 89 + default: 0 91 90 92 91 qcom,bias-ctrl-value: 93 92 description: 94 93 It is a 6 bit value that specifies bias-ctrl-value. It is a PHY 95 94 tuning parameter that may vary for different boards of same SOC. 96 - allOf: 97 - - $ref: /schemas/types.yaml#/definitions/uint32 98 - - minimum: 0 99 - maximum: 63 100 - default: 32 95 + $ref: /schemas/types.yaml#/definitions/uint32 96 + minimum: 0 97 + maximum: 63 98 + default: 32 101 99 102 100 qcom,charge-ctrl-value: 103 - description: 101 + description: 104 102 It is a 2 bit value that specifies charge-ctrl-value. It is a PHY 105 103 tuning parameter that may vary for different boards of same SOC. 106 - allOf: 107 - - $ref: /schemas/types.yaml#/definitions/uint32 108 - - minimum: 0 109 - maximum: 3 110 - default: 0 104 + $ref: /schemas/types.yaml#/definitions/uint32 105 + minimum: 0 106 + maximum: 3 107 + default: 0 111 108 112 109 qcom,hstx-trim-value: 113 110 description: ··· 112 115 output current. 113 116 Possible range is - 15mA to 24mA (stepsize of 600 uA). 114 117 See dt-bindings/phy/phy-qcom-qusb2.h for applicable values. 115 - allOf: 116 - - $ref: /schemas/types.yaml#/definitions/uint32 117 - - minimum: 0 118 - maximum: 15 119 - default: 3 118 + $ref: /schemas/types.yaml#/definitions/uint32 119 + minimum: 0 120 + maximum: 15 121 + default: 3 120 122 121 123 qcom,preemphasis-level: 122 124 description: 123 125 It is a 2 bit value that specifies pre-emphasis level. 124 126 Possible range is 0 to 15% (stepsize of 5%). 125 127 See dt-bindings/phy/phy-qcom-qusb2.h for applicable values. 126 - allOf: 127 - - $ref: /schemas/types.yaml#/definitions/uint32 128 - - minimum: 0 129 - maximum: 3 130 - default: 0 128 + $ref: /schemas/types.yaml#/definitions/uint32 129 + minimum: 0 130 + maximum: 3 131 + default: 2 131 132 132 133 qcom,preemphasis-width: 133 134 description: ··· 133 138 pre-emphasis (specified using qcom,preemphasis-level) must be in 134 139 effect. Duration could be half-bit of full-bit. 135 140 See dt-bindings/phy/phy-qcom-qusb2.h for applicable values. 136 - allOf: 137 - - $ref: /schemas/types.yaml#/definitions/uint32 138 - - minimum: 0 139 - maximum: 1 140 - default: 0 141 + $ref: /schemas/types.yaml#/definitions/uint32 142 + minimum: 0 143 + maximum: 1 144 + default: 0 141 145 142 146 qcom,hsdisc-trim-value: 143 147 description: 144 148 It is a 2 bit value tuning parameter that control disconnect 145 149 threshold and may vary for different boards of same SOC. 146 - allOf: 147 - - $ref: /schemas/types.yaml#/definitions/uint32 148 - - minimum: 0 149 - maximum: 3 150 - default: 1 150 + $ref: /schemas/types.yaml#/definitions/uint32 151 + minimum: 0 152 + maximum: 3 153 + default: 0 151 154 152 155 required: 153 156 - compatible
+2 -1
Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt
··· 4 4 2 USB PHY contains. 5 5 6 6 Required properties: 7 - - compatible: "renesas,usb-phy-r8a7743" if the device is a part of R8A7743 SoC. 7 + - compatible: "renesas,usb-phy-r8a7742" if the device is a part of R8A7742 SoC. 8 + "renesas,usb-phy-r8a7743" if the device is a part of R8A7743 SoC. 8 9 "renesas,usb-phy-r8a7744" if the device is a part of R8A7744 SoC. 9 10 "renesas,usb-phy-r8a7745" if the device is a part of R8A7745 SoC. 10 11 "renesas,usb-phy-r8a77470" if the device is a part of R8A77470 SoC.
+1 -1
Documentation/devicetree/bindings/phy/rockchip,px30-dsi-dphy.yaml
··· 59 59 - | 60 60 dsi_dphy: phy@ff2e0000 { 61 61 compatible = "rockchip,px30-dsi-dphy"; 62 - reg = <0x0 0xff2e0000 0x0 0x10000>; 62 + reg = <0xff2e0000 0x10000>; 63 63 clocks = <&pmucru 13>, <&cru 12>; 64 64 clock-names = "ref", "pclk"; 65 65 resets = <&cru 12>;
+77
Documentation/devicetree/bindings/phy/socionext,uniphier-pcie-phy.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/phy/socionext,uniphier-pcie-phy.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Socionext UniPhier PCIe PHY 8 + 9 + description: | 10 + This describes the devicetree bindings for PHY interface built into 11 + PCIe controller implemented on Socionext UniPhier SoCs. 12 + 13 + maintainers: 14 + - Kunihiko Hayashi <hayashi.kunihiko@socionext.com> 15 + 16 + properties: 17 + compatible: 18 + enum: 19 + - socionext,uniphier-pro5-pcie-phy 20 + - socionext,uniphier-ld20-pcie-phy 21 + - socionext,uniphier-pxs3-pcie-phy 22 + 23 + reg: 24 + description: PHY register region (offset and length) 25 + 26 + "#phy-cells": 27 + const: 0 28 + 29 + clocks: 30 + minItems: 1 31 + maxItems: 2 32 + 33 + clock-names: 34 + oneOf: 35 + - items: # for Pro5 36 + - const: gio 37 + - const: link 38 + - const: link # for others 39 + 40 + resets: 41 + minItems: 1 42 + maxItems: 2 43 + 44 + reset-names: 45 + oneOf: 46 + - items: # for Pro5 47 + - const: gio 48 + - const: link 49 + - const: link # for others 50 + 51 + socionext,syscon: 52 + $ref: /schemas/types.yaml#/definitions/phandle 53 + description: A phandle to system control to set configurations for phy 54 + 55 + required: 56 + - compatible 57 + - reg 58 + - "#phy-cells" 59 + - clocks 60 + - clock-names 61 + - resets 62 + - reset-names 63 + 64 + additionalProperties: false 65 + 66 + examples: 67 + - | 68 + pcie_phy: phy@66038000 { 69 + compatible = "socionext,uniphier-ld20-pcie-phy"; 70 + reg = <0x66038000 0x4000>; 71 + #phy-cells = <0>; 72 + clock-names = "link"; 73 + clocks = <&sys_clk 24>; 74 + reset-names = "link"; 75 + resets = <&sys_rst 24>; 76 + socionext,syscon = <&soc_glue>; 77 + };
+85
Documentation/devicetree/bindings/phy/socionext,uniphier-usb2-phy.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/phy/socionext,uniphier-usb2-phy.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Socionext UniPhier USB2 PHY 8 + 9 + description: | 10 + This describes the devicetree bindings for PHY interface built into 11 + USB2 controller implemented on Socionext UniPhier SoCs. 12 + Pro4 SoC has both USB2 and USB3 host controllers, however, this USB3 13 + controller doesn't include its own High-Speed PHY. This needs to specify 14 + USB2 PHY instead of USB3 HS-PHY. 15 + 16 + maintainers: 17 + - Kunihiko Hayashi <hayashi.kunihiko@socionext.com> 18 + 19 + properties: 20 + compatible: 21 + enum: 22 + - socionext,uniphier-pro4-usb2-phy 23 + - socionext,uniphier-ld11-usb2-phy 24 + 25 + "#address-cells": 26 + const: 1 27 + 28 + "#size-cells": 29 + const: 0 30 + 31 + patternProperties: 32 + "^phy@[0-9]+$": 33 + type: object 34 + additionalProperties: false 35 + 36 + properties: 37 + reg: 38 + minimum: 0 39 + maximum: 3 40 + description: 41 + The ID number for the PHY 42 + 43 + "#phy-cells": 44 + const: 0 45 + 46 + required: 47 + - reg 48 + - "#phy-cells" 49 + 50 + required: 51 + - compatible 52 + - "#address-cells" 53 + - "#size-cells" 54 + 55 + additionalProperties: false 56 + 57 + examples: 58 + - | 59 + // The UniPhier usb2-phy should be a subnode of a "syscon" compatible node. 60 + 61 + soc-glue@5f800000 { 62 + compatible = "socionext,uniphier-ld11-soc-glue", "simple-mfd", "syscon"; 63 + reg = <0x5f800000 0x2000>; 64 + 65 + usb-controller { 66 + compatible = "socionext,uniphier-ld11-usb2-phy"; 67 + #address-cells = <1>; 68 + #size-cells = <0>; 69 + 70 + usb_phy0: phy@0 { 71 + reg = <0>; 72 + #phy-cells = <0>; 73 + }; 74 + 75 + usb_phy1: phy@1 { 76 + reg = <1>; 77 + #phy-cells = <0>; 78 + }; 79 + 80 + usb_phy2: phy@2 { 81 + reg = <2>; 82 + #phy-cells = <0>; 83 + }; 84 + }; 85 + };
+103
Documentation/devicetree/bindings/phy/socionext,uniphier-usb3hs-phy.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/phy/socionext,uniphier-usb3hs-phy.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Socionext UniPhier USB3 High-Speed (HS) PHY 8 + 9 + description: | 10 + This describes the devicetree bindings for PHY interfaces built into 11 + USB3 controller implemented on Socionext UniPhier SoCs. 12 + Although the controller includes High-Speed PHY and Super-Speed PHY, 13 + this describes about High-Speed PHY. 14 + 15 + maintainers: 16 + - Kunihiko Hayashi <hayashi.kunihiko@socionext.com> 17 + 18 + properties: 19 + compatible: 20 + enum: 21 + - socionext,uniphier-pro5-usb3-hsphy 22 + - socionext,uniphier-pxs2-usb3-hsphy 23 + - socionext,uniphier-ld20-usb3-hsphy 24 + - socionext,uniphier-pxs3-usb3-hsphy 25 + 26 + reg: 27 + description: PHY register region (offset and length) 28 + 29 + "#phy-cells": 30 + const: 0 31 + 32 + clocks: 33 + minItems: 1 34 + maxItems: 2 35 + 36 + clock-names: 37 + oneOf: 38 + - const: link # for PXs2 39 + - items: # for PXs3 40 + - const: link 41 + - const: phy 42 + 43 + resets: 44 + maxItems: 2 45 + 46 + reset-names: 47 + items: 48 + - const: link 49 + - const: phy 50 + 51 + vbus-supply: 52 + description: A phandle to the regulator for USB VBUS 53 + 54 + nvmem-cells: 55 + maxItems: 3 56 + description: 57 + Phandles to nvmem cell that contains the trimming data. 58 + Available only for HS-PHY implemented on LD20 and PXs3, and 59 + if unspecified, default value is used. 60 + 61 + nvmem-cell-names: 62 + items: 63 + - const: rterm 64 + - const: sel_t 65 + - const: hs_i 66 + description: 67 + Should be the following names, which correspond to each nvmem-cells. 68 + All of the 3 parameters associated with the above names are 69 + required for each port, if any one is omitted, the trimming data 70 + of the port will not be set at all. 71 + 72 + required: 73 + - compatible 74 + - reg 75 + - "#phy-cells" 76 + - clocks 77 + - clock-names 78 + - resets 79 + - reset-names 80 + 81 + additionalProperties: false 82 + 83 + examples: 84 + - | 85 + usb-glue@65b00000 { 86 + compatible = "socionext,uniphier-ld20-dwc3-glue", "simple-mfd"; 87 + #address-cells = <1>; 88 + #size-cells = <1>; 89 + ranges = <0 0x65b00000 0x400>; 90 + 91 + usb_hsphy0: hs-phy@200 { 92 + compatible = "socionext,uniphier-ld20-usb3-hsphy"; 93 + reg = <0x200 0x10>; 94 + #phy-cells = <0>; 95 + clock-names = "link", "phy"; 96 + clocks = <&sys_clk 14>, <&sys_clk 16>; 97 + reset-names = "link", "phy"; 98 + resets = <&sys_rst 14>, <&sys_rst 16>; 99 + vbus-supply = <&usb_vbus0>; 100 + nvmem-cell-names = "rterm", "sel_t", "hs_i"; 101 + nvmem-cells = <&usb_rterm0>, <&usb_sel_t0>, <&usb_hs_i0>; 102 + }; 103 + };
+96
Documentation/devicetree/bindings/phy/socionext,uniphier-usb3ss-phy.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/phy/socionext,uniphier-usb3ss-phy.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Socionext UniPhier USB3 Super-Speed (SS) PHY 8 + 9 + description: | 10 + This describes the devicetree bindings for PHY interfaces built into 11 + USB3 controller implemented on Socionext UniPhier SoCs. 12 + Although the controller includes High-Speed PHY and Super-Speed PHY, 13 + this describes about Super-Speed PHY. 14 + 15 + maintainers: 16 + - Kunihiko Hayashi <hayashi.kunihiko@socionext.com> 17 + 18 + properties: 19 + compatible: 20 + enum: 21 + - socionext,uniphier-pro4-usb3-ssphy 22 + - socionext,uniphier-pro5-usb3-ssphy 23 + - socionext,uniphier-pxs2-usb3-ssphy 24 + - socionext,uniphier-ld20-usb3-ssphy 25 + - socionext,uniphier-pxs3-usb3-ssphy 26 + 27 + reg: 28 + description: PHY register region (offset and length) 29 + 30 + "#phy-cells": 31 + const: 0 32 + 33 + clocks: 34 + minItems: 2 35 + maxItems: 3 36 + 37 + clock-names: 38 + oneOf: 39 + - items: # for Pro4, Pro5 40 + - const: gio 41 + - const: link 42 + - items: # for PXs3 with phy-ext 43 + - const: link 44 + - const: phy 45 + - const: phy-ext 46 + - items: # for others 47 + - const: link 48 + - const: phy 49 + 50 + resets: 51 + maxItems: 2 52 + 53 + reset-names: 54 + oneOf: 55 + - items: # for Pro4,Pro5 56 + - const: gio 57 + - const: link 58 + - items: # for others 59 + - const: link 60 + - const: phy 61 + 62 + vbus-supply: 63 + description: A phandle to the regulator for USB VBUS 64 + 65 + required: 66 + - compatible 67 + - reg 68 + - "#phy-cells" 69 + - clocks 70 + - clock-names 71 + - resets 72 + - reset-names 73 + - vbus-supply 74 + 75 + additionalProperties: false 76 + 77 + examples: 78 + - | 79 + usb-glue@65b00000 { 80 + compatible = "socionext,uniphier-ld20-dwc3-glue", 81 + "simple-mfd"; 82 + #address-cells = <1>; 83 + #size-cells = <1>; 84 + ranges = <0 0x65b00000 0x400>; 85 + 86 + usb_ssphy0: ss-phy@300 { 87 + compatible = "socionext,uniphier-ld20-usb3-ssphy"; 88 + reg = <0x300 0x10>; 89 + #phy-cells = <0>; 90 + clock-names = "link", "phy"; 91 + clocks = <&sys_clk 14>, <&sys_clk 16>; 92 + reset-names = "link", "phy"; 93 + resets = <&sys_rst 14>, <&sys_rst 16>; 94 + vbus-supply = <&usb_vbus0>; 95 + }; 96 + };
-36
Documentation/devicetree/bindings/phy/uniphier-pcie-phy.txt
··· 1 - Socionext UniPhier PCIe PHY bindings 2 - 3 - This describes the devicetree bindings for PHY interface built into 4 - PCIe controller implemented on Socionext UniPhier SoCs. 5 - 6 - Required properties: 7 - - compatible: Should contain one of the following: 8 - "socionext,uniphier-pro5-pcie-phy" - for Pro5 PHY 9 - "socionext,uniphier-ld20-pcie-phy" - for LD20 PHY 10 - "socionext,uniphier-pxs3-pcie-phy" - for PXs3 PHY 11 - - reg: Specifies offset and length of the register set for the device. 12 - - #phy-cells: Must be zero. 13 - - clocks: A list of phandles to the clock gate for PCIe glue layer 14 - including this phy. 15 - - clock-names: For Pro5 only, should contain the following: 16 - "gio", "link" - for Pro5 SoC 17 - - resets: A list of phandles to the reset line for PCIe glue layer 18 - including this phy. 19 - - reset-names: For Pro5 only, should contain the following: 20 - "gio", "link" - for Pro5 SoC 21 - 22 - Optional properties: 23 - - socionext,syscon: A phandle to system control to set configurations 24 - for phy. 25 - 26 - Refer to phy/phy-bindings.txt for the generic PHY binding properties. 27 - 28 - Example: 29 - pcie_phy: phy@66038000 { 30 - compatible = "socionext,uniphier-ld20-pcie-phy"; 31 - reg = <0x66038000 0x4000>; 32 - #phy-cells = <0>; 33 - clocks = <&sys_clk 24>; 34 - resets = <&sys_rst 24>; 35 - socionext,syscon = <&soc_glue>; 36 - };
-45
Documentation/devicetree/bindings/phy/uniphier-usb2-phy.txt
··· 1 - Socionext UniPhier USB2 PHY 2 - 3 - This describes the devicetree bindings for PHY interface built into 4 - USB2 controller implemented on Socionext UniPhier SoCs. 5 - 6 - Pro4 SoC has both USB2 and USB3 host controllers, however, this USB3 7 - controller doesn't include its own High-Speed PHY. This needs to specify 8 - USB2 PHY instead of USB3 HS-PHY. 9 - 10 - Required properties: 11 - - compatible: Should contain one of the following: 12 - "socionext,uniphier-pro4-usb2-phy" - for Pro4 SoC 13 - "socionext,uniphier-ld11-usb2-phy" - for LD11 SoC 14 - 15 - Sub-nodes: 16 - Each PHY should be represented as a sub-node. 17 - 18 - Sub-nodes required properties: 19 - - #phy-cells: Should be 0. 20 - - reg: The number of the PHY. 21 - 22 - Sub-nodes optional properties: 23 - - vbus-supply: A phandle to the regulator for USB VBUS. 24 - 25 - Refer to phy/phy-bindings.txt for the generic PHY binding properties. 26 - 27 - Example: 28 - soc-glue@5f800000 { 29 - ... 30 - usb-phy { 31 - compatible = "socionext,uniphier-ld11-usb2-phy"; 32 - usb_phy0: phy@0 { 33 - reg = <0>; 34 - #phy-cells = <0>; 35 - }; 36 - ... 37 - }; 38 - }; 39 - 40 - usb@5a800100 { 41 - compatible = "socionext,uniphier-ehci", "generic-ehci"; 42 - ... 43 - phy-names = "usb"; 44 - phys = <&usb_phy0>; 45 - };
-69
Documentation/devicetree/bindings/phy/uniphier-usb3-hsphy.txt
··· 1 - Socionext UniPhier USB3 High-Speed (HS) PHY 2 - 3 - This describes the devicetree bindings for PHY interfaces built into 4 - USB3 controller implemented on Socionext UniPhier SoCs. 5 - Although the controller includes High-Speed PHY and Super-Speed PHY, 6 - this describes about High-Speed PHY. 7 - 8 - Required properties: 9 - - compatible: Should contain one of the following: 10 - "socionext,uniphier-pro5-usb3-hsphy" - for Pro5 SoC 11 - "socionext,uniphier-pxs2-usb3-hsphy" - for PXs2 SoC 12 - "socionext,uniphier-ld20-usb3-hsphy" - for LD20 SoC 13 - "socionext,uniphier-pxs3-usb3-hsphy" - for PXs3 SoC 14 - - reg: Specifies offset and length of the register set for the device. 15 - - #phy-cells: Should be 0. 16 - - clocks: A list of phandles to the clock gate for USB3 glue layer. 17 - According to the clock-names, appropriate clocks are required. 18 - - clock-names: Should contain the following: 19 - "gio", "link" - for Pro5 SoC 20 - "phy", "phy-ext", "link" - for PXs3 SoC, "phy-ext" is optional. 21 - "phy", "link" - for others 22 - - resets: A list of phandles to the reset control for USB3 glue layer. 23 - According to the reset-names, appropriate resets are required. 24 - - reset-names: Should contain the following: 25 - "gio", "link" - for Pro5 SoC 26 - "phy", "link" - for others 27 - 28 - Optional properties: 29 - - vbus-supply: A phandle to the regulator for USB VBUS. 30 - - nvmem-cells: Phandles to nvmem cell that contains the trimming data. 31 - Available only for HS-PHY implemented on LD20 and PXs3, and 32 - if unspecified, default value is used. 33 - - nvmem-cell-names: Should be the following names, which correspond to 34 - each nvmem-cells. 35 - All of the 3 parameters associated with the following names are 36 - required for each port, if any one is omitted, the trimming data 37 - of the port will not be set at all. 38 - "rterm", "sel_t", "hs_i" - Each cell name for phy parameters 39 - 40 - Refer to phy/phy-bindings.txt for the generic PHY binding properties. 41 - 42 - Example: 43 - 44 - usb-glue@65b00000 { 45 - compatible = "socionext,uniphier-ld20-dwc3-glue", 46 - "simple-mfd"; 47 - #address-cells = <1>; 48 - #size-cells = <1>; 49 - ranges = <0 0x65b00000 0x400>; 50 - 51 - usb_vbus0: regulator { 52 - ... 53 - }; 54 - 55 - usb_hsphy0: hs-phy@200 { 56 - compatible = "socionext,uniphier-ld20-usb3-hsphy"; 57 - reg = <0x200 0x10>; 58 - #phy-cells = <0>; 59 - clock-names = "link", "phy"; 60 - clocks = <&sys_clk 14>, <&sys_clk 16>; 61 - reset-names = "link", "phy"; 62 - resets = <&sys_rst 14>, <&sys_rst 16>; 63 - vbus-supply = <&usb_vbus0>; 64 - nvmem-cell-names = "rterm", "sel_t", "hs_i"; 65 - nvmem-cells = <&usb_rterm0>, <&usb_sel_t0>, 66 - <&usb_hs_i0>; 67 - }; 68 - ... 69 - };
-58
Documentation/devicetree/bindings/phy/uniphier-usb3-ssphy.txt
··· 1 - Socionext UniPhier USB3 Super-Speed (SS) PHY 2 - 3 - This describes the devicetree bindings for PHY interfaces built into 4 - USB3 controller implemented on Socionext UniPhier SoCs. 5 - Although the controller includes High-Speed PHY and Super-Speed PHY, 6 - this describes about Super-Speed PHY. 7 - 8 - Required properties: 9 - - compatible: Should contain one of the following: 10 - "socionext,uniphier-pro4-usb3-ssphy" - for Pro4 SoC 11 - "socionext,uniphier-pro5-usb3-ssphy" - for Pro5 SoC 12 - "socionext,uniphier-pxs2-usb3-ssphy" - for PXs2 SoC 13 - "socionext,uniphier-ld20-usb3-ssphy" - for LD20 SoC 14 - "socionext,uniphier-pxs3-usb3-ssphy" - for PXs3 SoC 15 - - reg: Specifies offset and length of the register set for the device. 16 - - #phy-cells: Should be 0. 17 - - clocks: A list of phandles to the clock gate for USB3 glue layer. 18 - According to the clock-names, appropriate clocks are required. 19 - - clock-names: 20 - "gio", "link" - for Pro4 and Pro5 SoC 21 - "phy", "phy-ext", "link" - for PXs3 SoC, "phy-ext" is optional. 22 - "phy", "link" - for others 23 - - resets: A list of phandles to the reset control for USB3 glue layer. 24 - According to the reset-names, appropriate resets are required. 25 - - reset-names: 26 - "gio", "link" - for Pro4 and Pro5 SoC 27 - "phy", "link" - for others 28 - 29 - Optional properties: 30 - - vbus-supply: A phandle to the regulator for USB VBUS. 31 - 32 - Refer to phy/phy-bindings.txt for the generic PHY binding properties. 33 - 34 - Example: 35 - 36 - usb-glue@65b00000 { 37 - compatible = "socionext,uniphier-ld20-dwc3-glue", 38 - "simple-mfd"; 39 - #address-cells = <1>; 40 - #size-cells = <1>; 41 - ranges = <0 0x65b00000 0x400>; 42 - 43 - usb_vbus0: regulator { 44 - ... 45 - }; 46 - 47 - usb_ssphy0: ss-phy@300 { 48 - compatible = "socionext,uniphier-ld20-usb3-ssphy"; 49 - reg = <0x300 0x10>; 50 - #phy-cells = <0>; 51 - clock-names = "link", "phy"; 52 - clocks = <&sys_clk 14>, <&sys_clk 16>; 53 - reset-names = "link", "phy"; 54 - resets = <&sys_rst 14>, <&sys_rst 16>; 55 - vbus-supply = <&usb_vbus0>; 56 - }; 57 - ... 58 - };
+5 -7
Documentation/devicetree/bindings/pinctrl/allwinner,sun4i-a10-pinctrl.yaml
··· 84 84 gpio-line-names: true 85 85 86 86 input-debounce: 87 - allOf: 88 - - $ref: /schemas/types.yaml#/definitions/uint32-array 89 - - minItems: 1 90 - maxItems: 5 91 87 description: 92 88 Debouncing periods in microseconds, one period per interrupt 93 89 bank found in the controller 90 + $ref: /schemas/types.yaml#/definitions/uint32-array 91 + minItems: 1 92 + maxItems: 5 94 93 95 94 patternProperties: 96 95 # It's pretty scary, but the basic idea is that: ··· 114 115 bias-pull-down: true 115 116 116 117 drive-strength: 117 - allOf: 118 - - $ref: /schemas/types.yaml#/definitions/uint32 119 - - enum: [ 10, 20, 30, 40 ] 118 + $ref: /schemas/types.yaml#/definitions/uint32 119 + enum: [10, 20, 30, 40] 120 120 121 121 required: 122 122 - pins
+17 -20
Documentation/devicetree/bindings/pinctrl/aspeed,ast2400-pinctrl.yaml
··· 33 33 then: 34 34 patternProperties: 35 35 "^function|groups$": 36 - allOf: 37 - - $ref: "/schemas/types.yaml#/definitions/string" 38 - - enum: [ ACPI, ADC0, ADC1, ADC10, ADC11, ADC12, ADC13, ADC14, 39 - ADC15, ADC2, ADC3, ADC4, ADC5, ADC6, ADC7, ADC8, ADC9, BMCINT, 40 - DDCCLK, DDCDAT, EXTRST, FLACK, FLBUSY, FLWP, GPID, GPID0, GPID2, 41 - GPID4, GPID6, GPIE0, GPIE2, GPIE4, GPIE6, I2C10, I2C11, I2C12, 42 - I2C13, I2C14, I2C3, I2C4, I2C5, I2C6, I2C7, I2C8, I2C9, LPCPD, 43 - LPCPME, LPCRST, LPCSMI, MAC1LINK, MAC2LINK, MDIO1, MDIO2, NCTS1, 44 - NCTS2, NCTS3, NCTS4, NDCD1, NDCD2, NDCD3, NDCD4, NDSR1, NDSR2, 45 - NDSR3, NDSR4, NDTR1, NDTR2, NDTR3, NDTR4, NDTS4, NRI1, NRI2, 46 - NRI3, NRI4, NRTS1, NRTS2, NRTS3, OSCCLK, PWM0, PWM1, PWM2, PWM3, 47 - PWM4, PWM5, PWM6, PWM7, RGMII1, RGMII2, RMII1, RMII2, ROM16, 48 - ROM8, ROMCS1, ROMCS2, ROMCS3, ROMCS4, RXD1, RXD2, RXD3, RXD4, 49 - SALT1, SALT2, SALT3, SALT4, SD1, SD2, SGPMCK, SGPMI, SGPMLD, 50 - SGPMO, SGPSCK, SGPSI0, SGPSI1, SGPSLD, SIOONCTRL, SIOPBI, SIOPBO, 51 - SIOPWREQ, SIOPWRGD, SIOS3, SIOS5, SIOSCI, SPI1, SPI1DEBUG, 52 - SPI1PASSTHRU, SPICS1, TIMER3, TIMER4, TIMER5, TIMER6, TIMER7, 53 - TIMER8, TXD1, TXD2, TXD3, TXD4, UART6, USB11D1, USB11H2, USB2D1, 54 - USB2H1, USBCKI, VGABIOS_ROM, VGAHS, VGAVS, VPI18, VPI24, VPI30, 55 - VPO12, VPO24, WDTRST1, WDTRST2 ] 36 + $ref: "/schemas/types.yaml#/definitions/string" 37 + enum: [ACPI, ADC0, ADC1, ADC10, ADC11, ADC12, ADC13, ADC14, ADC15, 38 + ADC2, ADC3, ADC4, ADC5, ADC6, ADC7, ADC8, ADC9, BMCINT, DDCCLK, DDCDAT, 39 + EXTRST, FLACK, FLBUSY, FLWP, GPID, GPID0, GPID2, GPID4, GPID6, GPIE0, 40 + GPIE2, GPIE4, GPIE6, I2C10, I2C11, I2C12, I2C13, I2C14, I2C3, I2C4, 41 + I2C5, I2C6, I2C7, I2C8, I2C9, LPCPD, LPCPME, LPCRST, LPCSMI, MAC1LINK, 42 + MAC2LINK, MDIO1, MDIO2, NCTS1, NCTS2, NCTS3, NCTS4, NDCD1, NDCD2, 43 + NDCD3, NDCD4, NDSR1, NDSR2, NDSR3, NDSR4, NDTR1, NDTR2, NDTR3, NDTR4, 44 + NDTS4, NRI1, NRI2, NRI3, NRI4, NRTS1, NRTS2, NRTS3, OSCCLK, PWM0, 45 + PWM1, PWM2, PWM3, PWM4, PWM5, PWM6, PWM7, RGMII1, RGMII2, RMII1, 46 + RMII2, ROM16, ROM8, ROMCS1, ROMCS2, ROMCS3, ROMCS4, RXD1, RXD2, RXD3, 47 + RXD4, SALT1, SALT2, SALT3, SALT4, SD1, SD2, SGPMCK, SGPMI, SGPMLD, 48 + SGPMO, SGPSCK, SGPSI0, SGPSI1, SGPSLD, SIOONCTRL, SIOPBI, SIOPBO, 49 + SIOPWREQ, SIOPWRGD, SIOS3, SIOS5, SIOSCI, SPI1, SPI1DEBUG, SPI1PASSTHRU, 50 + SPICS1, TIMER3, TIMER4, TIMER5, TIMER6, TIMER7, TIMER8, TXD1, TXD2, 51 + TXD3, TXD4, UART6, USB11D1, USB11H2, USB2D1, USB2H1, USBCKI, VGABIOS_ROM, 52 + VGAHS, VGAVS, VPI18, VPI24, VPI30, VPO12, VPO24, WDTRST1, WDTRST2] 56 53 57 54 required: 58 55 - compatible
+21 -25
Documentation/devicetree/bindings/pinctrl/aspeed,ast2500-pinctrl.yaml
··· 29 29 aspeed,external-nodes: 30 30 minItems: 2 31 31 maxItems: 2 32 - allOf: 33 - - $ref: /schemas/types.yaml#/definitions/phandle-array 32 + $ref: /schemas/types.yaml#/definitions/phandle-array 34 33 description: | 35 34 A cell of phandles to external controller nodes: 36 35 0: compatible with "aspeed,ast2500-gfx", "syscon" ··· 42 43 then: 43 44 patternProperties: 44 45 "^function|groups$": 45 - allOf: 46 - - $ref: "/schemas/types.yaml#/definitions/string" 47 - - enum: [ ACPI, ADC0, ADC1, ADC10, ADC11, ADC12, ADC13, ADC14, 48 - ADC15, ADC2, ADC3, ADC4, ADC5, ADC6, ADC7, ADC8, ADC9, BMCINT, 49 - DDCCLK, DDCDAT, ESPI, FWSPICS1, FWSPICS2, GPID0, GPID2, GPID4, 50 - GPID6, GPIE0, GPIE2, GPIE4, GPIE6, I2C10, I2C11, I2C12, I2C13, 51 - I2C14, I2C3, I2C4, I2C5, I2C6, I2C7, I2C8, I2C9, LAD0, LAD1, 52 - LAD2, LAD3, LCLK, LFRAME, LPCHC, LPCPD, LPCPLUS, LPCPME, LPCRST, 53 - LPCSMI, LSIRQ, MAC1LINK, MAC2LINK, MDIO1, MDIO2, NCTS1, NCTS2, 54 - NCTS3, NCTS4, NDCD1, NDCD2, NDCD3, NDCD4, NDSR1, NDSR2, NDSR3, 55 - NDSR4, NDTR1, NDTR2, NDTR3, NDTR4, NRI1, NRI2, NRI3, NRI4, NRTS1, 56 - NRTS2, NRTS3, NRTS4, OSCCLK, PEWAKE, PNOR, PWM0, PWM1, PWM2, 57 - PWM3, PWM4, PWM5, PWM6, PWM7, RGMII1, RGMII2, RMII1, RMII2, RXD1, 58 - RXD2, RXD3, RXD4, SALT1, SALT10, SALT11, SALT12, SALT13, SALT14, 59 - SALT2, SALT3, SALT4, SALT5, SALT6, SALT7, SALT8, SALT9, SCL1, 60 - SCL2, SD1, SD2, SDA1, SDA2, SGPS1, SGPS2, SIOONCTRL, SIOPBI, 61 - SIOPBO, SIOPWREQ, SIOPWRGD, SIOS3, SIOS5, SIOSCI, SPI1, SPI1CS1, 62 - SPI1DEBUG, SPI1PASSTHRU, SPI2CK, SPI2CS0, SPI2CS1, SPI2MISO, 63 - SPI2MOSI, TIMER3, TIMER4, TIMER5, TIMER6, TIMER7, TIMER8, TXD1, 64 - TXD2, TXD3, TXD4, UART6, USB11BHID, USB2AD, USB2AH, USB2BD, 65 - USB2BH, USBCKI, VGABIOSROM, VGAHS, VGAVS, VPI24, VPO, WDTRST1, 66 - WDTRST2, ] 46 + $ref: "/schemas/types.yaml#/definitions/string" 47 + enum: [ACPI, ADC0, ADC1, ADC10, ADC11, ADC12, ADC13, ADC14, ADC15, 48 + ADC2, ADC3, ADC4, ADC5, ADC6, ADC7, ADC8, ADC9, BMCINT, DDCCLK, DDCDAT, 49 + ESPI, FWSPICS1, FWSPICS2, GPID0, GPID2, GPID4, GPID6, GPIE0, GPIE2, 50 + GPIE4, GPIE6, I2C10, I2C11, I2C12, I2C13, I2C14, I2C3, I2C4, I2C5, 51 + I2C6, I2C7, I2C8, I2C9, LAD0, LAD1, LAD2, LAD3, LCLK, LFRAME, LPCHC, 52 + LPCPD, LPCPLUS, LPCPME, LPCRST, LPCSMI, LSIRQ, MAC1LINK, MAC2LINK, 53 + MDIO1, MDIO2, NCTS1, NCTS2, NCTS3, NCTS4, NDCD1, NDCD2, NDCD3, NDCD4, 54 + NDSR1, NDSR2, NDSR3, NDSR4, NDTR1, NDTR2, NDTR3, NDTR4, NRI1, NRI2, 55 + NRI3, NRI4, NRTS1, NRTS2, NRTS3, NRTS4, OSCCLK, PEWAKE, PNOR, PWM0, 56 + PWM1, PWM2, PWM3, PWM4, PWM5, PWM6, PWM7, RGMII1, RGMII2, RMII1, 57 + RMII2, RXD1, RXD2, RXD3, RXD4, SALT1, SALT10, SALT11, SALT12, SALT13, 58 + SALT14, SALT2, SALT3, SALT4, SALT5, SALT6, SALT7, SALT8, SALT9, SCL1, 59 + SCL2, SD1, SD2, SDA1, SDA2, SGPS1, SGPS2, SIOONCTRL, SIOPBI, SIOPBO, 60 + SIOPWREQ, SIOPWRGD, SIOS3, SIOS5, SIOSCI, SPI1, SPI1CS1, SPI1DEBUG, 61 + SPI1PASSTHRU, SPI2CK, SPI2CS0, SPI2CS1, SPI2MISO, SPI2MOSI, TIMER3, 62 + TIMER4, TIMER5, TIMER6, TIMER7, TIMER8, TXD1, TXD2, TXD3, TXD4, UART6, 63 + USB11BHID, USB2AD, USB2AH, USB2BD, USB2BH, USBCKI, VGABIOSROM, VGAHS, 64 + VGAVS, VPI24, VPO, WDTRST1, WDTRST2] 67 65 68 66 required: 69 67 - compatible ··· 121 125 122 126 lhc: lhc@20 { 123 127 compatible = "aspeed,ast2500-lhc"; 124 - reg = <0x20 0x24 0x48 0x8>; 128 + reg = <0x20 0x24>, <0x48 0x8>; 125 129 }; 126 130 }; 127 131 };
+51 -57
Documentation/devicetree/bindings/pinctrl/aspeed,ast2600-pinctrl.yaml
··· 30 30 then: 31 31 properties: 32 32 function: 33 - allOf: 34 - - $ref: "/schemas/types.yaml#/definitions/string" 35 - - enum: [ ADC0, ADC1, ADC10, ADC11, ADC12, ADC13, ADC14, ADC15, 36 - ADC2, ADC3, ADC4, ADC5, ADC6, ADC7, ADC8, ADC9, BMCINT, EMMC, 37 - ESPI, ESPIALT, FSI1, FSI2, FWSPIABR, FWSPID, FWSPIWP, GPIT0, 38 - GPIT1, GPIT2, GPIT3, GPIT4, GPIT5, GPIT6, GPIT7, GPIU0, GPIU1, 39 - GPIU2, GPIU3, GPIU4, GPIU5, GPIU6, GPIU7, I2C1, I2C10, I2C11, 40 - I2C12, I2C13, I2C14, I2C15, I2C16, I2C2, I2C3, I2C4, I2C5, I2C6, 41 - I2C7, I2C8, I2C9, I3C3, I3C4, I3C5, I3C6, JTAGM, LHPD, LHSIRQ, 42 - LPC, LPCHC, LPCPD, LPCPME, LPCSMI, LSIRQ, MACLINK1, MACLINK2, 43 - MACLINK3, MACLINK4, MDIO1, MDIO2, MDIO3, MDIO4, NCTS1, NCTS2, 44 - NCTS3, NCTS4, NDCD1, NDCD2, NDCD3, NDCD4, NDSR1, NDSR2, NDSR3, 45 - NDSR4, NDTR1, NDTR2, NDTR3, NDTR4, NRI1, NRI2, NRI3, NRI4, NRTS1, 46 - NRTS2, NRTS3, NRTS4, OSCCLK, PEWAKE, PWM0, PWM1, PWM10, PWM11, 47 - PWM12, PWM13, PWM14, PWM15, PWM2, PWM3, PWM4, PWM5, PWM6, PWM7, 48 - PWM8, PWM9, RGMII1, RGMII2, RGMII3, RGMII4, RMII1, RMII2, RMII3, 49 - RMII4, RXD1, RXD2, RXD3, RXD4, SALT1, SALT10, SALT11, SALT12, 50 - SALT13, SALT14, SALT15, SALT16, SALT2, SALT3, SALT4, SALT5, 51 - SALT6, SALT7, SALT8, SALT9, SD1, SD2, SGPM1, SGPS1, SIOONCTRL, 52 - SIOPBI, SIOPBO, SIOPWREQ, SIOPWRGD, SIOS3, SIOS5, SIOSCI, SPI1, 53 - SPI1ABR, SPI1CS1, SPI1WP, SPI2, SPI2CS1, SPI2CS2, TACH0, TACH1, 54 - TACH10, TACH11, TACH12, TACH13, TACH14, TACH15, TACH2, TACH3, 55 - TACH4, TACH5, TACH6, TACH7, TACH8, TACH9, THRU0, THRU1, THRU2, 56 - THRU3, TXD1, TXD2, TXD3, TXD4, UART10, UART11, UART12, UART13, 57 - UART6, UART7, UART8, UART9, USBAD, USBADP, USB2AH, USB2AHP, 58 - USB2BD, USB2BH, VB, VGAHS, VGAVS, WDTRST1, WDTRST2, WDTRST3, 59 - WDTRST4, ] 33 + $ref: "/schemas/types.yaml#/definitions/string" 34 + enum: [ADC0, ADC1, ADC10, ADC11, ADC12, ADC13, ADC14, ADC15, ADC2, 35 + ADC3, ADC4, ADC5, ADC6, ADC7, ADC8, ADC9, BMCINT, EMMC, ESPI, ESPIALT, 36 + FSI1, FSI2, FWSPIABR, FWSPID, FWSPIWP, GPIT0, GPIT1, GPIT2, GPIT3, 37 + GPIT4, GPIT5, GPIT6, GPIT7, GPIU0, GPIU1, GPIU2, GPIU3, GPIU4, GPIU5, 38 + GPIU6, GPIU7, I2C1, I2C10, I2C11, I2C12, I2C13, I2C14, I2C15, I2C16, 39 + I2C2, I2C3, I2C4, I2C5, I2C6, I2C7, I2C8, I2C9, I3C3, I3C4, I3C5, 40 + I3C6, JTAGM, LHPD, LHSIRQ, LPC, LPCHC, LPCPD, LPCPME, LPCSMI, LSIRQ, 41 + MACLINK1, MACLINK2, MACLINK3, MACLINK4, MDIO1, MDIO2, MDIO3, MDIO4, 42 + NCTS1, NCTS2, NCTS3, NCTS4, NDCD1, NDCD2, NDCD3, NDCD4, NDSR1, NDSR2, 43 + NDSR3, NDSR4, NDTR1, NDTR2, NDTR3, NDTR4, NRI1, NRI2, NRI3, NRI4, 44 + NRTS1, NRTS2, NRTS3, NRTS4, OSCCLK, PEWAKE, PWM0, PWM1, PWM10, PWM11, 45 + PWM12, PWM13, PWM14, PWM15, PWM2, PWM3, PWM4, PWM5, PWM6, PWM7, PWM8, 46 + PWM9, RGMII1, RGMII2, RGMII3, RGMII4, RMII1, RMII2, RMII3, RMII4, 47 + RXD1, RXD2, RXD3, RXD4, SALT1, SALT10, SALT11, SALT12, SALT13, SALT14, 48 + SALT15, SALT16, SALT2, SALT3, SALT4, SALT5, SALT6, SALT7, SALT8, 49 + SALT9, SD1, SD2, SGPM1, SGPS1, SIOONCTRL, SIOPBI, SIOPBO, SIOPWREQ, 50 + SIOPWRGD, SIOS3, SIOS5, SIOSCI, SPI1, SPI1ABR, SPI1CS1, SPI1WP, SPI2, 51 + SPI2CS1, SPI2CS2, TACH0, TACH1, TACH10, TACH11, TACH12, TACH13, TACH14, 52 + TACH15, TACH2, TACH3, TACH4, TACH5, TACH6, TACH7, TACH8, TACH9, THRU0, 53 + THRU1, THRU2, THRU3, TXD1, TXD2, TXD3, TXD4, UART10, UART11, UART12, 54 + UART13, UART6, UART7, UART8, UART9, USBAD, USBADP, USB2AH, USB2AHP, 55 + USB2BD, USB2BH, VB, VGAHS, VGAVS, WDTRST1, WDTRST2, WDTRST3, WDTRST4] 56 + 60 57 groups: 61 - allOf: 62 - - $ref: "/schemas/types.yaml#/definitions/string" 63 - - enum: [ ADC0, ADC1, ADC10, ADC11, ADC12, ADC13, ADC14, ADC15, 64 - ADC2, ADC3, ADC4, ADC5, ADC6, ADC7, ADC8, ADC9, BMCINT, EMMCG1, 65 - EMMCG4, EMMCG8, ESPI, ESPIALT, FSI1, FSI2, FWSPIABR, FWSPID, 66 - FWQSPID, FWSPIWP, GPIT0, GPIT1, GPIT2, GPIT3, GPIT4, GPIT5, 67 - GPIT6, GPIT7, GPIU0, GPIU1, GPIU2, GPIU3, GPIU4, GPIU5, GPIU6, 68 - GPIU7, HVI3C3, HVI3C4, I2C1, I2C10, I2C11, I2C12, I2C13, I2C14, 69 - I2C15, I2C16, I2C2, I2C3, I2C4, I2C5, I2C6, I2C7, I2C8, I2C9, 70 - I3C3, I3C4, I3C5, I3C6, JTAGM, LHPD, LHSIRQ, LPC, LPCHC, LPCPD, 71 - LPCPME, LPCSMI, LSIRQ, MACLINK1, MACLINK2, MACLINK3, MACLINK4, 72 - MDIO1, MDIO2, MDIO3, MDIO4, NCTS1, NCTS2, NCTS3, NCTS4, NDCD1, 73 - NDCD2, NDCD3, NDCD4, NDSR1, NDSR2, NDSR3, NDSR4, NDTR1, NDTR2, 74 - NDTR3, NDTR4, NRI1, NRI2, NRI3, NRI4, NRTS1, NRTS2, NRTS3, NRTS4, 75 - OSCCLK, PEWAKE, PWM0, PWM1, PWM10G0, PWM10G1, PWM11G0, PWM11G1, 76 - PWM12G0, PWM12G1, PWM13G0, PWM13G1, PWM14G0, PWM14G1, PWM15G0, 77 - PWM15G1, PWM2, PWM3, PWM4, PWM5, PWM6, PWM7, PWM8G0, PWM8G1, 78 - PWM9G0, PWM9G1, QSPI1, QSPI2, RGMII1, RGMII2, RGMII3, RGMII4, 79 - RMII1, RMII2, RMII3, RMII4, RXD1, RXD2, RXD3, RXD4, SALT1, 80 - SALT10G0, SALT10G1, SALT11G0, SALT11G1, SALT12G0, SALT12G1, 81 - SALT13G0, SALT13G1, SALT14G0, SALT14G1, SALT15G0, SALT15G1, 82 - SALT16G0, SALT16G1, SALT2, SALT3, SALT4, SALT5, SALT6, SALT7, 83 - SALT8, SALT9G0, SALT9G1, SD1, SD2, SD3, SGPM1, SGPS1, SIOONCTRL, 84 - SIOPBI, SIOPBO, SIOPWREQ, SIOPWRGD, SIOS3, SIOS5, SIOSCI, SPI1, 85 - SPI1ABR, SPI1CS1, SPI1WP, SPI2, SPI2CS1, SPI2CS2, TACH0, TACH1, 86 - TACH10, TACH11, TACH12, TACH13, TACH14, TACH15, TACH2, TACH3, 87 - TACH4, TACH5, TACH6, TACH7, TACH8, TACH9, THRU0, THRU1, THRU2, 88 - THRU3, TXD1, TXD2, TXD3, TXD4, UART10, UART11, UART12G0, 89 - UART12G1, UART13G0, UART13G1, UART6, UART7, UART8, UART9, USBA, 90 - USBB, VB, VGAHS, VGAVS, WDTRST1, WDTRST2, WDTRST3, WDTRST4, ] 58 + $ref: "/schemas/types.yaml#/definitions/string" 59 + enum: [ADC0, ADC1, ADC10, ADC11, ADC12, ADC13, ADC14, ADC15, ADC2, 60 + ADC3, ADC4, ADC5, ADC6, ADC7, ADC8, ADC9, BMCINT, EMMCG1, EMMCG4, 61 + EMMCG8, ESPI, ESPIALT, FSI1, FSI2, FWSPIABR, FWSPID, FWQSPID, FWSPIWP, 62 + GPIT0, GPIT1, GPIT2, GPIT3, GPIT4, GPIT5, GPIT6, GPIT7, GPIU0, GPIU1, 63 + GPIU2, GPIU3, GPIU4, GPIU5, GPIU6, GPIU7, HVI3C3, HVI3C4, I2C1, I2C10, 64 + I2C11, I2C12, I2C13, I2C14, I2C15, I2C16, I2C2, I2C3, I2C4, I2C5, 65 + I2C6, I2C7, I2C8, I2C9, I3C3, I3C4, I3C5, I3C6, JTAGM, LHPD, LHSIRQ, 66 + LPC, LPCHC, LPCPD, LPCPME, LPCSMI, LSIRQ, MACLINK1, MACLINK2, MACLINK3, 67 + MACLINK4, MDIO1, MDIO2, MDIO3, MDIO4, NCTS1, NCTS2, NCTS3, NCTS4, 68 + NDCD1, NDCD2, NDCD3, NDCD4, NDSR1, NDSR2, NDSR3, NDSR4, NDTR1, NDTR2, 69 + NDTR3, NDTR4, NRI1, NRI2, NRI3, NRI4, NRTS1, NRTS2, NRTS3, NRTS4, 70 + OSCCLK, PEWAKE, PWM0, PWM1, PWM10G0, PWM10G1, PWM11G0, PWM11G1, PWM12G0, 71 + PWM12G1, PWM13G0, PWM13G1, PWM14G0, PWM14G1, PWM15G0, PWM15G1, PWM2, 72 + PWM3, PWM4, PWM5, PWM6, PWM7, PWM8G0, PWM8G1, PWM9G0, PWM9G1, QSPI1, 73 + QSPI2, RGMII1, RGMII2, RGMII3, RGMII4, RMII1, RMII2, RMII3, RMII4, 74 + RXD1, RXD2, RXD3, RXD4, SALT1, SALT10G0, SALT10G1, SALT11G0, SALT11G1, 75 + SALT12G0, SALT12G1, SALT13G0, SALT13G1, SALT14G0, SALT14G1, SALT15G0, 76 + SALT15G1, SALT16G0, SALT16G1, SALT2, SALT3, SALT4, SALT5, SALT6, 77 + SALT7, SALT8, SALT9G0, SALT9G1, SD1, SD2, SD3, SGPM1, SGPS1, SIOONCTRL, 78 + SIOPBI, SIOPBO, SIOPWREQ, SIOPWRGD, SIOS3, SIOS5, SIOSCI, SPI1, SPI1ABR, 79 + SPI1CS1, SPI1WP, SPI2, SPI2CS1, SPI2CS2, TACH0, TACH1, TACH10, TACH11, 80 + TACH12, TACH13, TACH14, TACH15, TACH2, TACH3, TACH4, TACH5, TACH6, 81 + TACH7, TACH8, TACH9, THRU0, THRU1, THRU2, THRU3, TXD1, TXD2, TXD3, 82 + TXD4, UART10, UART11, UART12G0, UART12G1, UART13G0, UART13G1, UART6, 83 + UART7, UART8, UART9, USBA, USBB, VB, VGAHS, VGAVS, WDTRST1, WDTRST2, 84 + WDTRST3, WDTRST4] 91 85 92 86 required: 93 87 - compatible
-141
Documentation/devicetree/bindings/pinctrl/cirrus,lochnagar.txt
··· 1 - Cirrus Logic Lochnagar Audio Development Board 2 - 3 - Lochnagar is an evaluation and development board for Cirrus Logic 4 - Smart CODEC and Amp devices. It allows the connection of most Cirrus 5 - Logic devices on mini-cards, as well as allowing connection of 6 - various application processor systems to provide a full evaluation 7 - platform. Audio system topology, clocking and power can all be 8 - controlled through the Lochnagar, allowing the device under test 9 - to be used in a variety of possible use cases. 10 - 11 - This binding document describes the binding for the pinctrl portion 12 - of the driver. 13 - 14 - Also see these documents for generic binding information: 15 - [1] GPIO : ../gpio/gpio.txt 16 - [2] Pinctrl: ../pinctrl/pinctrl-bindings.txt 17 - 18 - And these for relevant defines: 19 - [3] include/dt-bindings/pinctrl/lochnagar.h 20 - 21 - This binding must be part of the Lochnagar MFD binding: 22 - [4] ../mfd/cirrus,lochnagar.txt 23 - 24 - Required properties: 25 - 26 - - compatible : One of the following strings: 27 - "cirrus,lochnagar-pinctrl" 28 - 29 - - gpio-controller : Indicates this device is a GPIO controller. 30 - - #gpio-cells : Must be 2. The first cell is the pin number, see 31 - [3] for available pins and the second cell is used to specify 32 - optional parameters, see [1]. 33 - - gpio-ranges : Range of pins managed by the GPIO controller, see 34 - [1]. Both the GPIO and Pinctrl base should be set to zero and the 35 - count to the appropriate of the LOCHNAGARx_PIN_NUM_GPIOS define, 36 - see [3]. 37 - 38 - - pinctrl-names : A pinctrl state named "default" must be defined. 39 - - pinctrl-0 : A phandle to the default pinctrl state. 40 - 41 - Required sub-nodes: 42 - 43 - The pin configurations are defined as a child of the pinctrl states 44 - node, see [2]. Each sub-node can have the following properties: 45 - - groups : A list of groups to select (either this or "pins" must be 46 - specified), available groups: 47 - codec-aif1, codec-aif2, codec-aif3, dsp-aif1, dsp-aif2, psia1, 48 - psia2, gf-aif1, gf-aif2, gf-aif3, gf-aif4, spdif-aif, usb-aif1, 49 - usb-aif2, adat-aif, soundcard-aif 50 - - pins : A list of pin names to select (either this or "groups" must 51 - be specified), available pins: 52 - fpga-gpio1, fpga-gpio2, fpga-gpio3, fpga-gpio4, fpga-gpio5, 53 - fpga-gpio6, codec-gpio1, codec-gpio2, codec-gpio3, codec-gpio4, 54 - codec-gpio5, codec-gpio6, codec-gpio7, codec-gpio8, dsp-gpio1, 55 - dsp-gpio2, dsp-gpio3, dsp-gpio4, dsp-gpio5, dsp-gpio6, gf-gpio2, 56 - gf-gpio3, gf-gpio7, codec-aif1-bclk, codec-aif1-rxdat, 57 - codec-aif1-lrclk, codec-aif1-txdat, codec-aif2-bclk, 58 - codec-aif2-rxdat, codec-aif2-lrclk, codec-aif2-txdat, 59 - codec-aif3-bclk, codec-aif3-rxdat, codec-aif3-lrclk, 60 - codec-aif3-txdat, dsp-aif1-bclk, dsp-aif1-rxdat, dsp-aif1-lrclk, 61 - dsp-aif1-txdat, dsp-aif2-bclk, dsp-aif2-rxdat, 62 - dsp-aif2-lrclk, dsp-aif2-txdat, psia1-bclk, psia1-rxdat, 63 - psia1-lrclk, psia1-txdat, psia2-bclk, psia2-rxdat, psia2-lrclk, 64 - psia2-txdat, gf-aif3-bclk, gf-aif3-rxdat, gf-aif3-lrclk, 65 - gf-aif3-txdat, gf-aif4-bclk, gf-aif4-rxdat, gf-aif4-lrclk, 66 - gf-aif4-txdat, gf-aif1-bclk, gf-aif1-rxdat, gf-aif1-lrclk, 67 - gf-aif1-txdat, gf-aif2-bclk, gf-aif2-rxdat, gf-aif2-lrclk, 68 - gf-aif2-txdat, dsp-uart1-rx, dsp-uart1-tx, dsp-uart2-rx, 69 - dsp-uart2-tx, gf-uart2-rx, gf-uart2-tx, usb-uart-rx, 70 - codec-pdmclk1, codec-pdmdat1, codec-pdmclk2, codec-pdmdat2, 71 - codec-dmicclk1, codec-dmicdat1, codec-dmicclk2, codec-dmicdat2, 72 - codec-dmicclk3, codec-dmicdat3, codec-dmicclk4, codec-dmicdat4, 73 - dsp-dmicclk1, dsp-dmicdat1, dsp-dmicclk2, dsp-dmicdat2, i2c2-scl, 74 - i2c2-sda, i2c3-scl, i2c3-sda, i2c4-scl, i2c4-sda, dsp-standby, 75 - codec-mclk1, codec-mclk2, dsp-clkin, psia1-mclk, psia2-mclk, 76 - gf-gpio1, gf-gpio5, dsp-gpio20, led1, led2 77 - - function : The mux function to select, available functions: 78 - aif, fpga-gpio1, fpga-gpio2, fpga-gpio3, fpga-gpio4, fpga-gpio5, 79 - fpga-gpio6, codec-gpio1, codec-gpio2, codec-gpio3, codec-gpio4, 80 - codec-gpio5, codec-gpio6, codec-gpio7, codec-gpio8, dsp-gpio1, 81 - dsp-gpio2, dsp-gpio3, dsp-gpio4, dsp-gpio5, dsp-gpio6, gf-gpio2, 82 - gf-gpio3, gf-gpio7, gf-gpio1, gf-gpio5, dsp-gpio20, codec-clkout, 83 - dsp-clkout, pmic-32k, spdif-clkout, clk-12m288, clk-11m2986, 84 - clk-24m576, clk-22m5792, xmos-mclk, gf-clkout1, gf-mclk1, 85 - gf-mclk3, gf-mclk2, gf-clkout2, codec-mclk1, codec-mclk2, 86 - dsp-clkin, psia1-mclk, psia2-mclk, spdif-mclk, codec-irq, 87 - codec-reset, dsp-reset, dsp-irq, dsp-standby, codec-pdmclk1, 88 - codec-pdmdat1, codec-pdmclk2, codec-pdmdat2, codec-dmicclk1, 89 - codec-dmicdat1, codec-dmicclk2, codec-dmicdat2, codec-dmicclk3, 90 - codec-dmicdat3, codec-dmicclk4, codec-dmicdat4, dsp-dmicclk1, 91 - dsp-dmicdat1, dsp-dmicclk2, dsp-dmicdat2, dsp-uart1-rx, 92 - dsp-uart1-tx, dsp-uart2-rx, dsp-uart2-tx, gf-uart2-rx, 93 - gf-uart2-tx, usb-uart-rx, usb-uart-tx, i2c2-scl, i2c2-sda, 94 - i2c3-scl, i2c3-sda, i2c4-scl, i2c4-sda, spdif-aif, psia1, 95 - psia1-bclk, psia1-lrclk, psia1-rxdat, psia1-txdat, psia2, 96 - psia2-bclk, psia2-lrclk, psia2-rxdat, psia2-txdat, codec-aif1, 97 - codec-aif1-bclk, codec-aif1-lrclk, codec-aif1-rxdat, 98 - codec-aif1-txdat, codec-aif2, codec-aif2-bclk, codec-aif2-lrclk, 99 - codec-aif2-rxdat, codec-aif2-txdat, codec-aif3, codec-aif3-bclk, 100 - codec-aif3-lrclk, codec-aif3-rxdat, codec-aif3-txdat, dsp-aif1, 101 - dsp-aif1-bclk, dsp-aif1-lrclk, dsp-aif1-rxdat, dsp-aif1-txdat, 102 - dsp-aif2, dsp-aif2-bclk, dsp-aif2-lrclk, dsp-aif2-rxdat, 103 - dsp-aif2-txdat, gf-aif3, gf-aif3-bclk, gf-aif3-lrclk, 104 - gf-aif3-rxdat, gf-aif3-txdat, gf-aif4, gf-aif4-bclk, 105 - gf-aif4-lrclk, gf-aif4-rxdat, gf-aif4-txdat, gf-aif1, 106 - gf-aif1-bclk, gf-aif1-lrclk, gf-aif1-rxdat, gf-aif1-txdat, 107 - gf-aif2, gf-aif2-bclk, gf-aif2-lrclk, gf-aif2-rxdat, 108 - gf-aif2-txdat, usb-aif1, usb-aif2, adat-aif, soundcard-aif, 109 - 110 - - output-enable : Specifies that an AIF group will be used as a master 111 - interface (either this or input-enable is required if a group is 112 - being muxed to an AIF) 113 - - input-enable : Specifies that an AIF group will be used as a slave 114 - interface (either this or output-enable is required if a group is 115 - being muxed to an AIF) 116 - 117 - Example: 118 - 119 - lochnagar-pinctrl { 120 - compatible = "cirrus,lochnagar-pinctrl"; 121 - 122 - gpio-controller; 123 - #gpio-cells = <2>; 124 - gpio-ranges = <&lochnagar 0 0 LOCHNAGAR2_PIN_NUM_GPIOS>; 125 - 126 - pinctrl-names = "default"; 127 - pinctrl-0 = <&pin-settings>; 128 - 129 - pin-settings: pin-settings { 130 - ap-aif { 131 - input-enable; 132 - groups = "gf-aif1"; 133 - function = "codec-aif3"; 134 - }; 135 - codec-aif { 136 - output-enable; 137 - groups = "codec-aif3"; 138 - function = "gf-aif1"; 139 - }; 140 - }; 141 - };
+190
Documentation/devicetree/bindings/pinctrl/cirrus,lochnagar.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/pinctrl/cirrus,lochnagar.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Cirrus Logic Lochnagar Audio Development Board 8 + 9 + maintainers: 10 + - patches@opensource.cirrus.com 11 + 12 + description: | 13 + Lochnagar is an evaluation and development board for Cirrus Logic 14 + Smart CODEC and Amp devices. It allows the connection of most Cirrus 15 + Logic devices on mini-cards, as well as allowing connection of various 16 + application processor systems to provide a full evaluation platform. 17 + Audio system topology, clocking and power can all be controlled through 18 + the Lochnagar, allowing the device under test to be used in a variety of 19 + possible use cases. 20 + 21 + This binding document describes the binding for the pinctrl portion of 22 + the driver. 23 + 24 + Also see these documents for generic binding information: 25 + [1] GPIO : ../gpio/gpio.txt 26 + [2] Pinctrl: ../pinctrl/pinctrl-bindings.txt 27 + 28 + And these for relevant defines: 29 + [3] include/dt-bindings/pinctrl/lochnagar.h 30 + 31 + This binding must be part of the Lochnagar MFD binding: 32 + [4] ../mfd/cirrus,lochnagar.yaml 33 + 34 + properties: 35 + compatible: 36 + enum: 37 + - cirrus,lochnagar-pinctrl 38 + 39 + gpio-controller: true 40 + 41 + '#gpio-cells': 42 + description: 43 + The first cell is the pin number and the second cell is used 44 + to specify optional parameters. 45 + const: 2 46 + 47 + gpio-ranges: 48 + description: 49 + Range of pins managed by the GPIO controller, see [1]. Both the 50 + GPIO and Pinctrl base should be set to zero and the count to the 51 + appropriate of the LOCHNAGARx_PIN_NUM_GPIOS define, see [3]. 52 + maxItems: 1 53 + 54 + pinctrl-0: 55 + description: 56 + A phandle to the default pinctrl state. 57 + 58 + pinctrl-names: 59 + description: 60 + A pinctrl state named "default" must be defined. 61 + const: default 62 + 63 + pin-settings: 64 + type: object 65 + patternProperties: 66 + '-pins$': 67 + description: 68 + The pin configurations are defined as a child of the pinctrl 69 + states node, see [2]. Each sub-node can have the following 70 + properties. 71 + type: object 72 + allOf: 73 + - $ref: pincfg-node.yaml# 74 + - $ref: pinmux-node.yaml# 75 + 76 + properties: 77 + groups: 78 + description: 79 + A list of groups to select (either this or "pins" must be 80 + specified), available groups. 81 + enum: [ codec-aif1, codec-aif2, codec-aif3, dsp-aif1, 82 + dsp-aif2, psia1, psia2, gf-aif1, gf-aif2, gf-aif3, 83 + gf-aif4, spdif-aif, usb-aif1, usb-aif2, adat-aif, 84 + soundcard-aif ] 85 + 86 + pins: 87 + description: 88 + A list of pin names to select (either this or "groups" must 89 + be specified), available pins. 90 + enum: [ fpga-gpio1, fpga-gpio2, fpga-gpio3, fpga-gpio4, 91 + fpga-gpio5, fpga-gpio6, codec-gpio1, codec-gpio2, 92 + codec-gpio3, codec-gpio4, codec-gpio5, codec-gpio6, 93 + codec-gpio7, codec-gpio8, dsp-gpio1, dsp-gpio2, 94 + dsp-gpio3, dsp-gpio4, dsp-gpio5, dsp-gpio6, 95 + gf-gpio2, gf-gpio3, gf-gpio7, codec-aif1-bclk, 96 + codec-aif1-rxdat, codec-aif1-lrclk, codec-aif1-txdat, 97 + codec-aif2-bclk, codec-aif2-rxdat, codec-aif2-lrclk, 98 + codec-aif2-txdat, codec-aif3-bclk, codec-aif3-rxdat, 99 + codec-aif3-lrclk, codec-aif3-txdat, dsp-aif1-bclk, 100 + dsp-aif1-rxdat, dsp-aif1-lrclk, dsp-aif1-txdat, 101 + dsp-aif2-bclk, dsp-aif2-rxdat, dsp-aif2-lrclk, 102 + dsp-aif2-txdat, psia1-bclk, psia1-rxdat, psia1-lrclk, 103 + psia1-txdat, psia2-bclk, psia2-rxdat, psia2-lrclk, 104 + psia2-txdat, gf-aif3-bclk, gf-aif3-rxdat, 105 + gf-aif3-lrclk, gf-aif3-txdat, gf-aif4-bclk, 106 + gf-aif4-rxdat, gf-aif4-lrclk, gf-aif4-txdat, 107 + gf-aif1-bclk, gf-aif1-rxdat, gf-aif1-lrclk, 108 + gf-aif1-txdat, gf-aif2-bclk, gf-aif2-rxdat, 109 + gf-aif2-lrclk, gf-aif2-txdat, dsp-uart1-rx, 110 + dsp-uart1-tx, dsp-uart2-rx, dsp-uart2-tx, 111 + gf-uart2-rx, gf-uart2-tx, usb-uart-rx, codec-pdmclk1, 112 + codec-pdmdat1, codec-pdmclk2, codec-pdmdat2, 113 + codec-dmicclk1, codec-dmicdat1, codec-dmicclk2, 114 + codec-dmicdat2, codec-dmicclk3, codec-dmicdat3, 115 + codec-dmicclk4, codec-dmicdat4, dsp-dmicclk1, 116 + dsp-dmicdat1, dsp-dmicclk2, dsp-dmicdat2, i2c2-scl, 117 + i2c2-sda, i2c3-scl, i2c3-sda, i2c4-scl, i2c4-sda, 118 + dsp-standby, codec-mclk1, codec-mclk2, dsp-clkin, 119 + psia1-mclk, psia2-mclk, gf-gpio1, gf-gpio5, 120 + dsp-gpio20, led1, led2 ] 121 + 122 + function: 123 + description: 124 + The mux function to select, available functions. 125 + enum: [ aif, fpga-gpio1, fpga-gpio2, fpga-gpio3, fpga-gpio4, 126 + fpga-gpio5, fpga-gpio6, codec-gpio1, codec-gpio2, 127 + codec-gpio3, codec-gpio4, codec-gpio5, codec-gpio6, 128 + codec-gpio7, codec-gpio8, dsp-gpio1, dsp-gpio2, 129 + dsp-gpio3, dsp-gpio4, dsp-gpio5, dsp-gpio6, 130 + gf-gpio2, gf-gpio3, gf-gpio7, gf-gpio1, gf-gpio5, 131 + dsp-gpio20, codec-clkout, dsp-clkout, pmic-32k, 132 + spdif-clkout, clk-12m288, clk-11m2986, clk-24m576, 133 + clk-22m5792, xmos-mclk, gf-clkout1, gf-mclk1, 134 + gf-mclk3, gf-mclk2, gf-clkout2, codec-mclk1, 135 + codec-mclk2, dsp-clkin, psia1-mclk, psia2-mclk, 136 + spdif-mclk, codec-irq, codec-reset, dsp-reset, 137 + dsp-irq, dsp-standby, codec-pdmclk1, codec-pdmdat1, 138 + codec-pdmclk2, codec-pdmdat2, codec-dmicclk1, 139 + codec-dmicdat1, codec-dmicclk2, codec-dmicdat2, 140 + codec-dmicclk3, codec-dmicdat3, codec-dmicclk4, 141 + codec-dmicdat4, dsp-dmicclk1, dsp-dmicdat1, 142 + dsp-dmicclk2, dsp-dmicdat2, dsp-uart1-rx, 143 + dsp-uart1-tx, dsp-uart2-rx, dsp-uart2-tx, 144 + gf-uart2-rx, gf-uart2-tx, usb-uart-rx, usb-uart-tx, 145 + i2c2-scl, i2c2-sda, i2c3-scl, i2c3-sda, i2c4-scl, 146 + i2c4-sda, spdif-aif, psia1, psia1-bclk, psia1-lrclk, 147 + psia1-rxdat, psia1-txdat, psia2, psia2-bclk, 148 + psia2-lrclk, psia2-rxdat, psia2-txdat, codec-aif1, 149 + codec-aif1-bclk, codec-aif1-lrclk, codec-aif1-rxdat, 150 + codec-aif1-txdat, codec-aif2, codec-aif2-bclk, 151 + codec-aif2-lrclk, codec-aif2-rxdat, codec-aif2-txdat, 152 + codec-aif3, codec-aif3-bclk, codec-aif3-lrclk, 153 + codec-aif3-rxdat, codec-aif3-txdat, dsp-aif1, 154 + dsp-aif1-bclk, dsp-aif1-lrclk, dsp-aif1-rxdat, 155 + dsp-aif1-txdat, dsp-aif2, dsp-aif2-bclk, 156 + dsp-aif2-lrclk, dsp-aif2-rxdat, dsp-aif2-txdat, 157 + gf-aif3, gf-aif3-bclk, gf-aif3-lrclk, gf-aif3-rxdat, 158 + gf-aif3-txdat, gf-aif4, gf-aif4-bclk, gf-aif4-lrclk, 159 + gf-aif4-rxdat, gf-aif4-txdat, gf-aif1, gf-aif1-bclk, 160 + gf-aif1-lrclk, gf-aif1-rxdat, gf-aif1-txdat, gf-aif2, 161 + gf-aif2-bclk, gf-aif2-lrclk, gf-aif2-rxdat, 162 + gf-aif2-txdat, usb-aif1, usb-aif2, adat-aif, 163 + soundcard-aif ] 164 + 165 + output-enable: 166 + description: 167 + Specifies that an AIF group will be used as a master 168 + interface (either this or input-enable is required if a 169 + group is being muxed to an AIF) 170 + 171 + input-enable: 172 + description: 173 + Specifies that an AIF group will be used as a slave 174 + interface (either this or output-enable is required if a 175 + group is being muxed to an AIF) 176 + 177 + additionalProperties: false 178 + 179 + required: 180 + - function 181 + 182 + additionalProperties: false 183 + 184 + required: 185 + - compatible 186 + - gpio-controller 187 + - '#gpio-cells' 188 + - gpio-ranges 189 + - pinctrl-0 190 + - pinctrl-names
-99
Documentation/devicetree/bindings/pinctrl/cirrus,madera-pinctrl.txt
··· 1 - Cirrus Logic Madera class audio codecs pinctrl driver 2 - 3 - The Cirrus Logic Madera codecs provide a number of GPIO functions for 4 - interfacing to external hardware and to provide logic outputs to other devices. 5 - Certain groups of GPIO pins also have an alternate function, normally as an 6 - audio interface. 7 - 8 - The set of available GPIOs, functions and alternate function groups differs 9 - between codecs so refer to the datasheet for the codec for further information 10 - on what is supported on that device. 11 - 12 - The properties for this driver exist within the parent MFD driver node. 13 - 14 - See also 15 - the core bindings for the parent MFD driver: 16 - Documentation/devicetree/bindings/mfd/madera.txt 17 - 18 - the generic pinmix bindings: 19 - Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt 20 - 21 - Required properties of parent mfd node: 22 - - pinctrl-names : must be "default" 23 - - pinctrl-0 : a phandle to the node containing the subnodes containing default 24 - configurations 25 - 26 - Required subnodes: 27 - One subnode is required to contain the default settings. It contains an 28 - arbitrary number of configuration subnodes, one for each group or pin 29 - configuration you want to apply as a default. 30 - 31 - Required properties of configuration subnodes: 32 - - groups : name of one pin group to configure. One of: 33 - aif1, aif2, aif3, aif4, mif1, mif2, mif3, pdmspk1, pdmspk2, 34 - dmic4, dmic5, dmic6, 35 - gpio1, gpio2, ..., gpio40 36 - The gpioN groups select the single pin of this name for configuration 37 - 38 - Optional properties of configuration subnodes: 39 - Any configuration option not explicitly listed in the dts will be left at 40 - chip default setting. 41 - 42 - - function : name of function to assign to this group. One of: 43 - aif1, aif2, aif3, aif4, mif1, mif2, mif3, pdmspk1, pdmspk2, 44 - dmic3, dmic4, dmic5, dmic6, 45 - io, dsp-gpio, irq1, irq2, 46 - fll1-clk, fll1-lock, fll2-clk, fll2-lock, fll3-clk, fll3-lock, 47 - fllao-clk, fllao-lock, 48 - opclk, opclk-async, pwm1, pwm2, spdif, 49 - asrc1-in1-lock, asrc1-in2-lock, asrc2-in1-lock, asrc2-in2-lock, 50 - spkl-short-circuit, spkr-short-circuit, spk-shutdown, 51 - spk-overheat-shutdown, spk-overheat-warn, 52 - timer1-sts, timer2-sts, timer3-sts, timer4-sts, timer5-sts, timer6-sts, 53 - timer7-sts, timer8-sts, 54 - log1-fifo-ne, log2-fifo-ne, log3-fifo-ne, log4-fifo-ne, log5-fifo-ne, 55 - log6-fifo-ne, log7-fifo-ne, log8-fifo-ne, 56 - 57 - - bias-disable : disable pull-up and pull-down 58 - - bias-bus-hold : enable buskeeper 59 - - bias-pull-up : output is pulled-up 60 - - bias-pull-down : output is pulled-down 61 - - drive-push-pull : CMOS output 62 - - drive-open-drain : open-drain output 63 - - drive-strength : drive strength in mA. Valid values are 4 or 8 64 - - input-schmitt-enable : enable schmitt-trigger mode 65 - - input-schmitt-disable : disable schmitt-trigger mode 66 - - input-debounce : A value of 0 disables debounce, a value !=0 enables 67 - debounce 68 - - output-low : set the pin to output mode with low level 69 - - output-high : set the pin to output mode with high level 70 - 71 - Example: 72 - 73 - cs47l85@0 { 74 - compatible = "cirrus,cs47l85"; 75 - 76 - pinctrl-names = "default"; 77 - pinctrl-0 = <&cs47l85_defaults>; 78 - 79 - cs47l85_defaults: cs47l85-gpio-defaults { 80 - aif1 { 81 - groups = "aif1"; 82 - function = "aif1"; 83 - bias-bus-hold; 84 - }; 85 - 86 - aif2 { 87 - groups = "aif2"; 88 - function = "aif2"; 89 - bias-bus-hold; 90 - }; 91 - 92 - opclk { 93 - groups = "gpio1"; 94 - function = "opclk"; 95 - bias-pull-up; 96 - drive-strength = <8>; 97 - }; 98 - }; 99 - };
+122
Documentation/devicetree/bindings/pinctrl/cirrus,madera.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/pinctrl/cirrus,madera.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Cirrus Logic Madera class audio CODECs pinctrl driver 8 + 9 + maintainers: 10 + - patches@opensource.cirrus.com 11 + 12 + description: | 13 + The Cirrus Logic Madera codecs provide a number of GPIO functions for 14 + interfacing to external hardware and to provide logic outputs to other devices. 15 + Certain groups of GPIO pins also have an alternate function, normally as an 16 + audio interface. 17 + 18 + The set of available GPIOs, functions and alternate function groups differs 19 + between CODECs so refer to the datasheet for the CODEC for further information 20 + on what is supported on that device. 21 + 22 + The properties for this driver exist within the parent MFD driver node. 23 + 24 + See also the core bindings for the parent MFD driver: 25 + 26 + Documentation/devicetree/bindings/mfd/cirrus,madera.yaml 27 + 28 + And the generic pinmix bindings: 29 + 30 + Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt 31 + 32 + properties: 33 + pinctrl-0: 34 + description: 35 + A phandle to the node containing the subnodes containing default 36 + configurations. 37 + 38 + pinctrl-names: 39 + description: 40 + A pinctrl state named "default" must be defined. 41 + const: default 42 + 43 + pin-settings: 44 + description: 45 + One subnode is required to contain the default settings. It 46 + contains an arbitrary number of configuration subnodes, one for 47 + each group or pin configuration you want to apply as a default. 48 + type: object 49 + patternProperties: 50 + '-pins$': 51 + type: object 52 + allOf: 53 + - $ref: "pincfg-node.yaml#" 54 + - $ref: "pinmux-node.yaml#" 55 + properties: 56 + groups: 57 + description: 58 + Name of one pin group to configure. 59 + enum: [ aif1, aif2, aif3, aif4, mif1, mif2, mif3, pdmspk1, 60 + pdmspk2, dmic4, dmic5, dmic6, gpio1, gpio2, gpio3, 61 + gpio4, gpio5, gpio6, gpio7, gpio7, gpio8, gpio9, 62 + gpio10, gpio11, gpio12, gpio13, gpio14, gpio15, 63 + gpio16, gpio17, gpio17, gpio18, gpio19, gpio20, 64 + gpio21, gpio22, gpio23, gpio24, gpio25, gpio26, 65 + gpio27, gpio27, gpio28, gpio29, gpio30, gpio31, 66 + gpio32, gpio33, gpio34, gpio35, gpio36, gpio37, 67 + gpio37, gpio38, gpio39 ] 68 + 69 + function: 70 + description: 71 + Name of function to assign to this group. 72 + enum: [ aif1, aif2, aif3, aif4, mif1, mif2, mif3, 73 + pdmspk1, pdmspk2, dmic3, dmic4, dmic5, 74 + dmic6, io, dsp-gpio, irq1, irq2, fll1-clk, 75 + fll1-lock, fll2-clk, fll2-lock, fll3-clk, 76 + fll3-lock, fllao-clk, fllao-lock, opclk, 77 + opclk-async, pwm1, pwm2, spdif, asrc1-in1-lock, 78 + asrc1-in2-lock, asrc2-in1-lock, asrc2-in2-lock, 79 + spkl-short-circuit, spkr-short-circuit, 80 + spk-shutdown, spk-overheat-shutdown, 81 + spk-overheat-warn, timer1-sts, timer2-sts, 82 + timer3-sts, timer4-sts, timer5-sts, timer6-sts, 83 + timer7-sts, timer8-sts, log1-fifo-ne, 84 + log2-fifo-ne, log3-fifo-ne, log4-fifo-ne, 85 + log5-fifo-ne, log6-fifo-ne, log7-fifo-ne, 86 + log8-fifo-ne ] 87 + 88 + bias-disable: true 89 + 90 + bias-bus-hold: true 91 + 92 + bias-pull-up: true 93 + 94 + bias-pull-down: true 95 + 96 + drive-push-pull: true 97 + 98 + drive-open-drain: true 99 + 100 + drive-strength: 101 + enum: [ 4, 8 ] 102 + 103 + input-schmitt-enable: true 104 + 105 + input-schmitt-disable: true 106 + 107 + input-debounce: true 108 + 109 + output-low: true 110 + 111 + output-high: true 112 + 113 + additionalProperties: false 114 + 115 + required: 116 + - groups 117 + 118 + additionalProperties: false 119 + 120 + required: 121 + - pinctrl-0 122 + - pinctrl-names
+15 -16
Documentation/devicetree/bindings/pinctrl/fsl,imx8mm-pinctrl.yaml
··· 37 37 be found in <arch/arm64/boot/dts/freescale/imx8mm-pinfunc.h>. The last 38 38 integer CONFIG is the pad setting value like pull-up on this pin. Please 39 39 refer to i.MX8M Mini Reference Manual for detailed CONFIG settings. 40 - allOf: 41 - - $ref: /schemas/types.yaml#/definitions/uint32-matrix 42 - - items: 43 - items: 44 - - description: | 45 - "mux_reg" indicates the offset of mux register. 46 - - description: | 47 - "conf_reg" indicates the offset of pad configuration register. 48 - - description: | 49 - "input_reg" indicates the offset of select input register. 50 - - description: | 51 - "mux_val" indicates the mux value to be applied. 52 - - description: | 53 - "input_val" indicates the select input value to be applied. 54 - - description: | 55 - "pad_setting" indicates the pad configuration value to be applied. 40 + $ref: /schemas/types.yaml#/definitions/uint32-matrix 41 + items: 42 + items: 43 + - description: | 44 + "mux_reg" indicates the offset of mux register. 45 + - description: | 46 + "conf_reg" indicates the offset of pad configuration register. 47 + - description: | 48 + "input_reg" indicates the offset of select input register. 49 + - description: | 50 + "mux_val" indicates the mux value to be applied. 51 + - description: | 52 + "input_val" indicates the select input value to be applied. 53 + - description: | 54 + "pad_setting" indicates the pad configuration value to be applied. 56 55 57 56 required: 58 57 - fsl,pins
+15 -16
Documentation/devicetree/bindings/pinctrl/fsl,imx8mn-pinctrl.yaml
··· 37 37 be found in <arch/arm64/boot/dts/freescale/imx8mn-pinfunc.h>. The last 38 38 integer CONFIG is the pad setting value like pull-up on this pin. Please 39 39 refer to i.MX8M Nano Reference Manual for detailed CONFIG settings. 40 - allOf: 41 - - $ref: /schemas/types.yaml#/definitions/uint32-matrix 42 - - items: 43 - items: 44 - - description: | 45 - "mux_reg" indicates the offset of mux register. 46 - - description: | 47 - "conf_reg" indicates the offset of pad configuration register. 48 - - description: | 49 - "input_reg" indicates the offset of select input register. 50 - - description: | 51 - "mux_val" indicates the mux value to be applied. 52 - - description: | 53 - "input_val" indicates the select input value to be applied. 54 - - description: | 55 - "pad_setting" indicates the pad configuration value to be applied. 40 + $ref: /schemas/types.yaml#/definitions/uint32-matrix 41 + items: 42 + items: 43 + - description: | 44 + "mux_reg" indicates the offset of mux register. 45 + - description: | 46 + "conf_reg" indicates the offset of pad configuration register. 47 + - description: | 48 + "input_reg" indicates the offset of select input register. 49 + - description: | 50 + "mux_val" indicates the mux value to be applied. 51 + - description: | 52 + "input_val" indicates the select input value to be applied. 53 + - description: | 54 + "pad_setting" indicates the pad configuration value to be applied. 56 55 57 56 required: 58 57 - fsl,pins
+15 -16
Documentation/devicetree/bindings/pinctrl/fsl,imx8mp-pinctrl.yaml
··· 37 37 be found in <arch/arm64/boot/dts/freescale/imx8mp-pinfunc.h>. The last 38 38 integer CONFIG is the pad setting value like pull-up on this pin. Please 39 39 refer to i.MX8M Plus Reference Manual for detailed CONFIG settings. 40 - allOf: 41 - - $ref: /schemas/types.yaml#/definitions/uint32-matrix 42 - - items: 43 - items: 44 - - description: | 45 - "mux_reg" indicates the offset of mux register. 46 - - description: | 47 - "conf_reg" indicates the offset of pad configuration register. 48 - - description: | 49 - "input_reg" indicates the offset of select input register. 50 - - description: | 51 - "mux_val" indicates the mux value to be applied. 52 - - description: | 53 - "input_val" indicates the select input value to be applied. 54 - - description: | 55 - "pad_setting" indicates the pad configuration value to be applied. 40 + $ref: /schemas/types.yaml#/definitions/uint32-matrix 41 + items: 42 + items: 43 + - description: | 44 + "mux_reg" indicates the offset of mux register. 45 + - description: | 46 + "conf_reg" indicates the offset of pad configuration register. 47 + - description: | 48 + "input_reg" indicates the offset of select input register. 49 + - description: | 50 + "mux_val" indicates the mux value to be applied. 51 + - description: | 52 + "input_val" indicates the select input value to be applied. 53 + - description: | 54 + "pad_setting" indicates the pad configuration value to be applied. 56 55 57 56 required: 58 57 - fsl,pins
+15 -16
Documentation/devicetree/bindings/pinctrl/fsl,imx8mq-pinctrl.yaml
··· 37 37 be found in <arch/arm64/boot/dts/freescale/imx8mq-pinfunc.h>. The last 38 38 integer CONFIG is the pad setting value like pull-up on this pin. Please 39 39 refer to i.MX8M Quad Reference Manual for detailed CONFIG settings. 40 - allOf: 41 - - $ref: /schemas/types.yaml#/definitions/uint32-matrix 42 - - items: 43 - items: 44 - - description: | 45 - "mux_reg" indicates the offset of mux register. 46 - - description: | 47 - "conf_reg" indicates the offset of pad configuration register. 48 - - description: | 49 - "input_reg" indicates the offset of select input register. 50 - - description: | 51 - "mux_val" indicates the mux value to be applied. 52 - - description: | 53 - "input_val" indicates the select input value to be applied. 54 - - description: | 55 - "pad_setting" indicates the pad configuration value to be applied. 40 + $ref: /schemas/types.yaml#/definitions/uint32-matrix 41 + items: 42 + items: 43 + - description: | 44 + "mux_reg" indicates the offset of mux register. 45 + - description: | 46 + "conf_reg" indicates the offset of pad configuration register. 47 + - description: | 48 + "input_reg" indicates the offset of select input register. 49 + - description: | 50 + "mux_val" indicates the mux value to be applied. 51 + - description: | 52 + "input_val" indicates the select input value to be applied. 53 + - description: | 54 + "pad_setting" indicates the pad configuration value to be applied. 56 55 57 56 required: 58 57 - fsl,pins
+1 -3
Documentation/devicetree/bindings/pinctrl/intel,lgm-io.yaml
··· 24 24 patternProperties: 25 25 '-pins$': 26 26 type: object 27 - allOf: 28 - - $ref: pincfg-node.yaml# 29 - - $ref: pinmux-node.yaml# 30 27 description: 31 28 Pinctrl node's client devices use subnodes for desired pin configuration. 32 29 Client device subnodes use below standard properties. 30 + $ref: pinmux-node.yaml# 33 31 34 32 properties: 35 33 function: true
+1 -2
Documentation/devicetree/bindings/pinctrl/pinmux-node.yaml
··· 122 122 this, "pins" or "pinmux" has to be specified) 123 123 124 124 pinmux: 125 - allOf: 126 - - $ref: /schemas/types.yaml#/definitions/uint32-array 127 125 description: 128 126 The list of numeric pin ids and their mux settings that properties in the 129 127 node apply to (either this, "pins" or "groups" have to be specified) 128 + $ref: /schemas/types.yaml#/definitions/uint32-array 130 129 131 130 pinctrl-pin-array: 132 131 $ref: /schemas/types.yaml#/definitions/uint32-array
+1 -2
Documentation/devicetree/bindings/pinctrl/qcom,ipq6018-pinctrl.yaml
··· 49 49 description: 50 50 Pinctrl node's client devices use subnodes for desired pin configuration. 51 51 Client device subnodes use below standard properties. 52 - allOf: 53 - - $ref: "/schemas/pinctrl/pincfg-node.yaml" 52 + $ref: "/schemas/pinctrl/pincfg-node.yaml" 54 53 55 54 properties: 56 55 pins:
+23 -31
Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml
··· 37 37 hwlocks: true 38 38 39 39 st,syscfg: 40 - allOf: 41 - - $ref: "/schemas/types.yaml#/definitions/phandle-array" 42 40 description: Should be phandle/offset/mask 43 41 - Phandle to the syscon node which includes IRQ mux selection. 44 42 - The offset of the IRQ mux selection register. 45 43 - The field mask of IRQ mux, needed if different of 0xf. 44 + $ref: "/schemas/types.yaml#/definitions/phandle-array" 46 45 47 46 st,package: 48 - allOf: 49 - - $ref: /schemas/types.yaml#/definitions/uint32 50 - - enum: [1, 2, 4, 8] 51 47 description: 52 48 Indicates the SOC package used. 53 49 More details in include/dt-bindings/pinctrl/stm32-pinfunc.h 54 - 50 + $ref: /schemas/types.yaml#/definitions/uint32 51 + enum: [1, 2, 4, 8] 55 52 56 53 patternProperties: 57 54 '^gpio@[0-9a-f]*$': ··· 75 78 maximum: 16 76 79 77 80 st,bank-name: 78 - allOf: 79 - - $ref: "/schemas/types.yaml#/definitions/string" 80 - - enum: 81 - - GPIOA 82 - - GPIOB 83 - - GPIOC 84 - - GPIOD 85 - - GPIOE 86 - - GPIOF 87 - - GPIOG 88 - - GPIOH 89 - - GPIOI 90 - - GPIOJ 91 - - GPIOK 92 - - GPIOZ 93 81 description: 94 82 Should be a name string for this bank as specified in the datasheet. 83 + $ref: "/schemas/types.yaml#/definitions/string" 84 + enum: 85 + - GPIOA 86 + - GPIOB 87 + - GPIOC 88 + - GPIOD 89 + - GPIOE 90 + - GPIOF 91 + - GPIOG 92 + - GPIOH 93 + - GPIOI 94 + - GPIOJ 95 + - GPIOK 96 + - GPIOZ 95 97 96 98 st,bank-ioport: 97 - allOf: 98 - - $ref: "/schemas/types.yaml#/definitions/uint32" 99 - - minimum: 0 100 - - maximum: 11 101 - 102 99 description: 103 100 Should correspond to the EXTI IOport selection (EXTI line used 104 101 to select GPIOs as interrupts). 102 + $ref: "/schemas/types.yaml#/definitions/uint32" 103 + minimum: 0 104 + maximum: 11 105 105 106 106 required: 107 107 - gpio-controller ··· 119 125 configuration, pullups, drive, output high/low and output speed. 120 126 properties: 121 127 pinmux: 122 - allOf: 123 - - $ref: "/schemas/types.yaml#/definitions/uint32-array" 128 + $ref: "/schemas/types.yaml#/definitions/uint32-array" 124 129 description: | 125 130 Integer array, represents gpio pin number and mux setting. 126 131 Supported pin number and mux varies for different SoCs, and are ··· 173 180 1: Medium speed 174 181 2: Fast speed 175 182 3: High speed 176 - allOf: 177 - - $ref: /schemas/types.yaml#/definitions/uint32 178 - - enum: [0, 1, 2, 3] 183 + $ref: /schemas/types.yaml#/definitions/uint32 184 + enum: [0, 1, 2, 3] 179 185 180 186 required: 181 187 - pinmux
+1 -2
Documentation/devicetree/bindings/power/amlogic,meson-ee-pwrc.yaml
··· 54 54 55 55 amlogic,ao-sysctrl: 56 56 description: phandle to the AO sysctrl node 57 - allOf: 58 - - $ref: /schemas/types.yaml#/definitions/phandle 57 + $ref: /schemas/types.yaml#/definitions/phandle 59 58 60 59 allOf: 61 60 - if:
-91
Documentation/devicetree/bindings/power/fsl,imx-gpc.txt
··· 1 - Freescale i.MX General Power Controller 2 - ======================================= 3 - 4 - The i.MX6 General Power Control (GPC) block contains DVFS load tracking 5 - counters and Power Gating Control (PGC). 6 - 7 - Required properties: 8 - - compatible: Should be one of the following: 9 - - fsl,imx6q-gpc 10 - - fsl,imx6qp-gpc 11 - - fsl,imx6sl-gpc 12 - - fsl,imx6sx-gpc 13 - - reg: should be register base and length as documented in the 14 - datasheet 15 - - interrupts: Should contain one interrupt specifier for the GPC interrupt 16 - - clocks: Must contain an entry for each entry in clock-names. 17 - See Documentation/devicetree/bindings/clock/clock-bindings.txt for details. 18 - - clock-names: Must include the following entries: 19 - - ipg 20 - 21 - The power domains are generic power domain providers as documented in 22 - Documentation/devicetree/bindings/power/power-domain.yaml. They are described as 23 - subnodes of the power gating controller 'pgc' node of the GPC and should 24 - contain the following: 25 - 26 - Required properties: 27 - - reg: Must contain the DOMAIN_INDEX of this power domain 28 - The following DOMAIN_INDEX values are valid for i.MX6Q: 29 - ARM_DOMAIN 0 30 - PU_DOMAIN 1 31 - The following additional DOMAIN_INDEX value is valid for i.MX6SL: 32 - DISPLAY_DOMAIN 2 33 - The following additional DOMAIN_INDEX value is valid for i.MX6SX: 34 - PCI_DOMAIN 3 35 - 36 - - #power-domain-cells: Should be 0 37 - 38 - Optional properties: 39 - - clocks: a number of phandles to clocks that need to be enabled during domain 40 - power-up sequencing to ensure reset propagation into devices located inside 41 - this power domain 42 - - power-supply: a phandle to the regulator powering this domain 43 - 44 - Example: 45 - 46 - gpc: gpc@20dc000 { 47 - compatible = "fsl,imx6q-gpc"; 48 - reg = <0x020dc000 0x4000>; 49 - interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>, 50 - <0 90 IRQ_TYPE_LEVEL_HIGH>; 51 - clocks = <&clks IMX6QDL_CLK_IPG>; 52 - clock-names = "ipg"; 53 - 54 - pgc { 55 - #address-cells = <1>; 56 - #size-cells = <0>; 57 - 58 - power-domain@0 { 59 - reg = <0>; 60 - #power-domain-cells = <0>; 61 - }; 62 - 63 - pd_pu: power-domain@1 { 64 - reg = <1>; 65 - #power-domain-cells = <0>; 66 - power-supply = <&reg_pu>; 67 - clocks = <&clks IMX6QDL_CLK_GPU3D_CORE>, 68 - <&clks IMX6QDL_CLK_GPU3D_SHADER>, 69 - <&clks IMX6QDL_CLK_GPU2D_CORE>, 70 - <&clks IMX6QDL_CLK_GPU2D_AXI>, 71 - <&clks IMX6QDL_CLK_OPENVG_AXI>, 72 - <&clks IMX6QDL_CLK_VPU_AXI>; 73 - }; 74 - }; 75 - }; 76 - 77 - 78 - Specifying power domain for IP modules 79 - ====================================== 80 - 81 - IP cores belonging to a power domain should contain a 'power-domains' property 82 - that is a phandle pointing to the power domain the device belongs to. 83 - 84 - Example of a device that is part of the PU power domain: 85 - 86 - vpu: vpu@2040000 { 87 - reg = <0x02040000 0x3c000>; 88 - /* ... */ 89 - power-domains = <&pd_pu>; 90 - /* ... */ 91 - };
+124
Documentation/devicetree/bindings/power/fsl,imx-gpc.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/power/fsl,imx-gpc.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Freescale i.MX General Power Controller 8 + 9 + maintainers: 10 + - Philipp Zabel <p.zabel@pengutronix.de> 11 + 12 + description: | 13 + The i.MX6 General Power Control (GPC) block contains DVFS load tracking 14 + counters and Power Gating Control (PGC). 15 + 16 + The power domains are generic power domain providers as documented in 17 + Documentation/devicetree/bindings/power/power-domain.yaml. They are 18 + described as subnodes of the power gating controller 'pgc' node of the GPC. 19 + 20 + IP cores belonging to a power domain should contain a 'power-domains' 21 + property that is a phandle pointing to the power domain the device belongs 22 + to. 23 + 24 + properties: 25 + compatible: 26 + enum: 27 + - fsl,imx6q-gpc 28 + - fsl,imx6qp-gpc 29 + - fsl,imx6sl-gpc 30 + - fsl,imx6sx-gpc 31 + 32 + reg: 33 + maxItems: 1 34 + 35 + interrupts: 36 + maxItems: 1 37 + 38 + clocks: 39 + maxItems: 1 40 + 41 + clock-names: 42 + const: ipg 43 + 44 + pgc: 45 + type: object 46 + description: list of power domains provided by this controller. 47 + 48 + patternProperties: 49 + "power-domain@[0-9]$": 50 + type: object 51 + properties: 52 + 53 + '#power-domain-cells': 54 + const: 0 55 + 56 + reg: 57 + description: | 58 + The following DOMAIN_INDEX values are valid for i.MX6Q: 59 + ARM_DOMAIN 0 60 + PU_DOMAIN 1 61 + The following additional DOMAIN_INDEX value is valid for i.MX6SL: 62 + DISPLAY_DOMAIN 2 63 + The following additional DOMAIN_INDEX value is valid for i.MX6SX: 64 + PCI_DOMAIN 3 65 + maxItems: 1 66 + 67 + clocks: 68 + description: | 69 + A number of phandles to clocks that need to be enabled during domain 70 + power-up sequencing to ensure reset propagation into devices located 71 + inside this power domain. 72 + minItems: 1 73 + maxItems: 7 74 + 75 + power-supply: true 76 + 77 + required: 78 + - '#power-domain-cells' 79 + - reg 80 + 81 + required: 82 + - compatible 83 + - reg 84 + - interrupts 85 + - clocks 86 + - clock-names 87 + - pgc 88 + 89 + additionalProperties: false 90 + 91 + examples: 92 + - | 93 + #include <dt-bindings/clock/imx6qdl-clock.h> 94 + #include <dt-bindings/interrupt-controller/arm-gic.h> 95 + 96 + gpc@20dc000 { 97 + compatible = "fsl,imx6q-gpc"; 98 + reg = <0x020dc000 0x4000>; 99 + interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>; 100 + clocks = <&clks IMX6QDL_CLK_IPG>; 101 + clock-names = "ipg"; 102 + 103 + pgc { 104 + #address-cells = <1>; 105 + #size-cells = <0>; 106 + 107 + power-domain@0 { 108 + reg = <0>; 109 + #power-domain-cells = <0>; 110 + }; 111 + 112 + pd_pu: power-domain@1 { 113 + reg = <1>; 114 + #power-domain-cells = <0>; 115 + power-supply = <&reg_pu>; 116 + clocks = <&clks IMX6QDL_CLK_GPU3D_CORE>, 117 + <&clks IMX6QDL_CLK_GPU3D_SHADER>, 118 + <&clks IMX6QDL_CLK_GPU2D_CORE>, 119 + <&clks IMX6QDL_CLK_GPU2D_AXI>, 120 + <&clks IMX6QDL_CLK_OPENVG_AXI>, 121 + <&clks IMX6QDL_CLK_VPU_AXI>; 122 + }; 123 + }; 124 + };
-77
Documentation/devicetree/bindings/power/fsl,imx-gpcv2.txt
··· 1 - Freescale i.MX General Power Controller v2 2 - ========================================== 3 - 4 - The i.MX7S/D General Power Control (GPC) block contains Power Gating 5 - Control (PGC) for various power domains. 6 - 7 - Required properties: 8 - 9 - - compatible: Should be one of: 10 - - "fsl,imx7d-gpc" 11 - - "fsl,imx8mq-gpc" 12 - 13 - - reg: should be register base and length as documented in the 14 - datasheet 15 - 16 - - interrupts: Should contain GPC interrupt request 1 17 - 18 - Power domains contained within GPC node are generic power domain 19 - providers, documented in 20 - Documentation/devicetree/bindings/power/power-domain.yaml, which are 21 - described as subnodes of the power gating controller 'pgc' node, 22 - which, in turn, is expected to contain the following: 23 - 24 - Required properties: 25 - 26 - - reg: Power domain index. Valid values are defined in 27 - include/dt-bindings/power/imx7-power.h for fsl,imx7d-gpc and 28 - include/dt-bindings/power/imx8m-power.h for fsl,imx8mq-gpc 29 - 30 - - #power-domain-cells: Should be 0 31 - 32 - Optional properties: 33 - 34 - - power-supply: Power supply used to power the domain 35 - - clocks: a number of phandles to clocks that need to be enabled during 36 - domain power-up sequencing to ensure reset propagation into devices 37 - located inside this power domain 38 - 39 - Example: 40 - 41 - gpc: gpc@303a0000 { 42 - compatible = "fsl,imx7d-gpc"; 43 - reg = <0x303a0000 0x1000>; 44 - interrupt-controller; 45 - interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; 46 - #interrupt-cells = <3>; 47 - interrupt-parent = <&intc>; 48 - 49 - pgc { 50 - #address-cells = <1>; 51 - #size-cells = <0>; 52 - 53 - pgc_pcie_phy: power-domain@1 { 54 - #power-domain-cells = <0>; 55 - 56 - reg = <1>; 57 - power-supply = <&reg_1p0d>; 58 - }; 59 - }; 60 - }; 61 - 62 - 63 - Specifying power domain for IP modules 64 - ====================================== 65 - 66 - IP cores belonging to a power domain should contain a 'power-domains' 67 - property that is a phandle for PGC node representing the domain. 68 - 69 - Example of a device that is part of the PCIE_PHY power domain: 70 - 71 - pcie: pcie@33800000 { 72 - reg = <0x33800000 0x4000>, 73 - <0x4ff00000 0x80000>; 74 - /* ... */ 75 - power-domains = <&pgc_pcie_phy>; 76 - /* ... */ 77 - };
+108
Documentation/devicetree/bindings/power/fsl,imx-gpcv2.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/power/fsl,imx-gpcv2.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Freescale i.MX General Power Controller v2 8 + 9 + maintainers: 10 + - Andrey Smirnov <andrew.smirnov@gmail.com> 11 + 12 + description: | 13 + The i.MX7S/D General Power Control (GPC) block contains Power Gating 14 + Control (PGC) for various power domains. 15 + 16 + Power domains contained within GPC node are generic power domain 17 + providers, documented in 18 + Documentation/devicetree/bindings/power/power-domain.yaml, which are 19 + described as subnodes of the power gating controller 'pgc' node. 20 + 21 + IP cores belonging to a power domain should contain a 'power-domains' 22 + property that is a phandle for PGC node representing the domain. 23 + 24 + properties: 25 + compatible: 26 + enum: 27 + - fsl,imx7d-gpc 28 + - fsl,imx8mq-gpc 29 + 30 + reg: 31 + maxItems: 1 32 + 33 + interrupts: 34 + maxItems: 1 35 + 36 + pgc: 37 + type: object 38 + description: list of power domains provided by this controller. 39 + 40 + patternProperties: 41 + "power-domain@[0-9]$": 42 + type: object 43 + properties: 44 + 45 + '#power-domain-cells': 46 + const: 0 47 + 48 + reg: 49 + description: | 50 + Power domain index. Valid values are defined in 51 + include/dt-bindings/power/imx7-power.h for fsl,imx7d-gpc and 52 + include/dt-bindings/power/imx8m-power.h for fsl,imx8mq-gpc 53 + maxItems: 1 54 + 55 + clocks: 56 + description: | 57 + A number of phandles to clocks that need to be enabled during domain 58 + power-up sequencing to ensure reset propagation into devices located 59 + inside this power domain. 60 + minItems: 1 61 + maxItems: 5 62 + 63 + power-supply: true 64 + 65 + required: 66 + - '#power-domain-cells' 67 + - reg 68 + 69 + required: 70 + - compatible 71 + - reg 72 + - interrupts 73 + - pgc 74 + 75 + additionalProperties: false 76 + 77 + examples: 78 + - | 79 + #include <dt-bindings/interrupt-controller/arm-gic.h> 80 + 81 + gpc@303a0000 { 82 + compatible = "fsl,imx7d-gpc"; 83 + reg = <0x303a0000 0x1000>; 84 + interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; 85 + 86 + pgc { 87 + #address-cells = <1>; 88 + #size-cells = <0>; 89 + 90 + pgc_mipi_phy: power-domain@0 { 91 + #power-domain-cells = <0>; 92 + reg = <0>; 93 + power-supply = <&reg_1p0d>; 94 + }; 95 + 96 + pgc_pcie_phy: power-domain@1 { 97 + #power-domain-cells = <0>; 98 + reg = <1>; 99 + power-supply = <&reg_1p0d>; 100 + }; 101 + 102 + pgc_hsic_phy: power-domain@2 { 103 + #power-domain-cells = <0>; 104 + reg = <2>; 105 + power-supply = <&reg_1p2>; 106 + }; 107 + }; 108 + };
+1
Documentation/devicetree/bindings/power/renesas,apmu.yaml
··· 18 18 compatible: 19 19 items: 20 20 - enum: 21 + - renesas,r8a7742-apmu # RZ/G1H 21 22 - renesas,r8a7743-apmu # RZ/G1M 22 23 - renesas,r8a7744-apmu # RZ/G1N 23 24 - renesas,r8a7745-apmu # RZ/G1E
-27
Documentation/devicetree/bindings/pwm/imx-pwm.txt
··· 1 - Freescale i.MX PWM controller 2 - 3 - Required properties: 4 - - compatible : should be "fsl,<soc>-pwm" and one of the following 5 - compatible strings: 6 - - "fsl,imx1-pwm" for PWM compatible with the one integrated on i.MX1 7 - - "fsl,imx27-pwm" for PWM compatible with the one integrated on i.MX27 8 - - reg: physical base address and length of the controller's registers 9 - - #pwm-cells: 2 for i.MX1 and 3 for i.MX27 and newer SoCs. See pwm.yaml 10 - in this directory for a description of the cells format. 11 - - clocks : Clock specifiers for both ipg and per clocks. 12 - - clock-names : Clock names should include both "ipg" and "per" 13 - See the clock consumer binding, 14 - Documentation/devicetree/bindings/clock/clock-bindings.txt 15 - - interrupts: The interrupt for the pwm controller 16 - 17 - Example: 18 - 19 - pwm1: pwm@53fb4000 { 20 - #pwm-cells = <3>; 21 - compatible = "fsl,imx53-pwm", "fsl,imx27-pwm"; 22 - reg = <0x53fb4000 0x4000>; 23 - clocks = <&clks IMX5_CLK_PWM1_IPG_GATE>, 24 - <&clks IMX5_CLK_PWM1_HF_GATE>; 25 - clock-names = "ipg", "per"; 26 - interrupts = <61>; 27 - };
+66
Documentation/devicetree/bindings/pwm/imx-pwm.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/pwm/imx-pwm.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Freescale i.MX PWM controller 8 + 9 + maintainers: 10 + - Philipp Zabel <p.zabel@pengutronix.de> 11 + 12 + properties: 13 + "#pwm-cells": 14 + description: | 15 + Should be 2 for i.MX1 and 3 for i.MX27 and newer SoCs. See pwm.yaml 16 + in this directory for a description of the cells format. 17 + enum: 18 + - 2 19 + - 3 20 + 21 + compatible: 22 + enum: 23 + - fsl,imx1-pwm 24 + - fsl,imx27-pwm 25 + 26 + reg: 27 + maxItems: 1 28 + 29 + clocks: 30 + items: 31 + - description: SoC PWM ipg clock 32 + - description: SoC PWM per clock 33 + maxItems: 2 34 + 35 + clock-names: 36 + items: 37 + - const: ipg 38 + - const: per 39 + maxItems: 2 40 + 41 + interrupts: 42 + maxItems: 1 43 + 44 + required: 45 + - "#pwm-cells" 46 + - compatible 47 + - reg 48 + - clocks 49 + - clock-names 50 + - interrupts 51 + 52 + additionalProperties: false 53 + 54 + examples: 55 + - | 56 + #include <dt-bindings/clock/imx5-clock.h> 57 + 58 + pwm@53fb4000 { 59 + #pwm-cells = <3>; 60 + compatible = "fsl,imx27-pwm"; 61 + reg = <0x53fb4000 0x4000>; 62 + clocks = <&clks IMX5_CLK_PWM1_IPG_GATE>, 63 + <&clks IMX5_CLK_PWM1_HF_GATE>; 64 + clock-names = "ipg", "per"; 65 + interrupts = <61>; 66 + };
-22
Documentation/devicetree/bindings/pwm/imx-tpm-pwm.txt
··· 1 - Freescale i.MX TPM PWM controller 2 - 3 - Required properties: 4 - - compatible : Should be "fsl,imx7ulp-pwm". 5 - - reg: Physical base address and length of the controller's registers. 6 - - #pwm-cells: Should be 3. See pwm.yaml in this directory for a description of the cells format. 7 - - clocks : The clock provided by the SoC to drive the PWM. 8 - - interrupts: The interrupt for the PWM controller. 9 - 10 - Note: The TPM counter and period counter are shared between multiple channels, so all channels 11 - should use same period setting. 12 - 13 - Example: 14 - 15 - tpm4: pwm@40250000 { 16 - compatible = "fsl,imx7ulp-pwm"; 17 - reg = <0x40250000 0x1000>; 18 - assigned-clocks = <&pcc2 IMX7ULP_CLK_LPTPM4>; 19 - assigned-clock-parents = <&scg1 IMX7ULP_CLK_SOSC_BUS_CLK>; 20 - clocks = <&pcc2 IMX7ULP_CLK_LPTPM4>; 21 - #pwm-cells = <3>; 22 - };
+55
Documentation/devicetree/bindings/pwm/imx-tpm-pwm.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/pwm/imx-tpm-pwm.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Freescale i.MX TPM PWM controller 8 + 9 + maintainers: 10 + - Anson Huang <anson.huang@nxp.com> 11 + 12 + description: | 13 + The TPM counter and period counter are shared between multiple 14 + channels, so all channels should use same period setting. 15 + 16 + properties: 17 + "#pwm-cells": 18 + const: 3 19 + 20 + compatible: 21 + enum: 22 + - fsl,imx7ulp-pwm 23 + 24 + reg: 25 + maxItems: 1 26 + 27 + assigned-clocks: 28 + maxItems: 1 29 + 30 + assigned-clock-parents: 31 + maxItems: 1 32 + 33 + clocks: 34 + maxItems: 1 35 + 36 + required: 37 + - "#pwm-cells" 38 + - compatible 39 + - reg 40 + - clocks 41 + 42 + additionalProperties: false 43 + 44 + examples: 45 + - | 46 + #include <dt-bindings/clock/imx7ulp-clock.h> 47 + 48 + pwm@40250000 { 49 + compatible = "fsl,imx7ulp-pwm"; 50 + reg = <0x40250000 0x1000>; 51 + assigned-clocks = <&pcc2 IMX7ULP_CLK_LPTPM4>; 52 + assigned-clock-parents = <&scg1 IMX7ULP_CLK_SOSC_BUS_CLK>; 53 + clocks = <&pcc2 IMX7ULP_CLK_LPTPM4>; 54 + #pwm-cells = <3>; 55 + };
-17
Documentation/devicetree/bindings/pwm/mxs-pwm.txt
··· 1 - Freescale MXS PWM controller 2 - 3 - Required properties: 4 - - compatible: should be "fsl,imx23-pwm" 5 - - reg: physical base address and length of the controller's registers 6 - - #pwm-cells: should be 3. See pwm.yaml in this directory for a description of 7 - the cells format. 8 - - fsl,pwm-number: the number of PWM devices 9 - 10 - Example: 11 - 12 - pwm: pwm@80064000 { 13 - compatible = "fsl,imx28-pwm", "fsl,imx23-pwm"; 14 - reg = <0x80064000 0x2000>; 15 - #pwm-cells = <3>; 16 - fsl,pwm-number = <8>; 17 - };
+43
Documentation/devicetree/bindings/pwm/mxs-pwm.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/pwm/mxs-pwm.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Freescale MXS PWM controller 8 + 9 + maintainers: 10 + - Shawn Guo <shawn.guo@linaro.org> 11 + - Anson Huang <anson.huang@nxp.com> 12 + 13 + properties: 14 + compatible: 15 + enum: 16 + - fsl,imx23-pwm 17 + 18 + reg: 19 + maxItems: 1 20 + 21 + "#pwm-cells": 22 + const: 3 23 + 24 + fsl,pwm-number: 25 + $ref: '/schemas/types.yaml#/definitions/uint32' 26 + description: u32 value representing the number of PWM devices 27 + 28 + required: 29 + - compatible 30 + - reg 31 + - "#pwm-cells" 32 + - fsl,pwm-number 33 + 34 + additionalProperties: false 35 + 36 + examples: 37 + - | 38 + pwm@80064000 { 39 + compatible = "fsl,imx23-pwm"; 40 + reg = <0x80064000 0x2000>; 41 + #pwm-cells = <3>; 42 + fsl,pwm-number = <8>; 43 + };
+13 -14
Documentation/devicetree/bindings/pwm/pwm-samsung.yaml
··· 49 49 are available. 50 50 oneOf: 51 51 - items: 52 - - const: timers 52 + - const: timers 53 53 - items: 54 - - const: timers 55 - - const: pwm-tclk0 54 + - const: timers 55 + - const: pwm-tclk0 56 56 - items: 57 - - const: timers 58 - - const: pwm-tclk1 57 + - const: timers 58 + - const: pwm-tclk1 59 59 - items: 60 - - const: timers 61 - - const: pwm-tclk0 62 - - const: pwm-tclk1 60 + - const: timers 61 + - const: pwm-tclk0 62 + - const: pwm-tclk1 63 63 64 64 interrupts: 65 65 description: ··· 78 78 A list of PWM channels used as PWM outputs on particular platform. 79 79 It is an array of up to 5 elements being indices of PWM channels 80 80 (from 0 to 4), the order does not matter. 81 - allOf: 82 - - $ref: /schemas/types.yaml#/definitions/uint32-array 83 - - uniqueItems: true 84 - - items: 85 - minimum: 0 86 - maximum: 4 81 + $ref: /schemas/types.yaml#/definitions/uint32-array 82 + uniqueItems: true 83 + items: 84 + minimum: 0 85 + maximum: 4 87 86 88 87 required: 89 88 - clocks
+1 -1
Documentation/devicetree/bindings/pwm/renesas,pwm-rcar.yaml
··· 68 68 69 69 pwm0: pwm@e6e30000 { 70 70 compatible = "renesas,pwm-r8a7743", "renesas,pwm-rcar"; 71 - reg = <0 0xe6e30000 0 0x8>; 71 + reg = <0xe6e30000 0x8>; 72 72 clocks = <&cpg CPG_MOD 523>; 73 73 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; 74 74 resets = <&cpg 523>;
-18
Documentation/devicetree/bindings/regulator/arizona-regulator.txt
··· 1 - Cirrus Logic Arizona class audio SoCs 2 - 3 - These devices are audio SoCs with extensive digital capabilities and a range 4 - of analogue I/O. 5 - 6 - This document lists regulator specific bindings, see the primary binding 7 - document: 8 - For Wolfson Microelectronic Arizona codecs: ../mfd/arizona.txt 9 - For Cirrus Logic Madera codecs: ../mfd/madera.txt 10 - 11 - Optional properties: 12 - - wlf,ldoena : GPIO specifier for the GPIO controlling LDOENA 13 - 14 - Optional subnodes: 15 - - ldo1 : Initial data for the LDO1 regulator, as covered in 16 - Documentation/devicetree/bindings/regulator/regulator.txt 17 - - micvdd : Initial data for the MICVDD regulator, as covered in 18 - Documentation/devicetree/bindings/regulator/regulator.txt
-82
Documentation/devicetree/bindings/regulator/cirrus,lochnagar.txt
··· 1 - Cirrus Logic Lochnagar Audio Development Board 2 - 3 - Lochnagar is an evaluation and development board for Cirrus Logic 4 - Smart CODEC and Amp devices. It allows the connection of most Cirrus 5 - Logic devices on mini-cards, as well as allowing connection of 6 - various application processor systems to provide a full evaluation 7 - platform. Audio system topology, clocking and power can all be 8 - controlled through the Lochnagar, allowing the device under test 9 - to be used in a variety of possible use cases. 10 - 11 - This binding document describes the binding for the regulator portion 12 - of the driver. 13 - 14 - Also see these documents for generic binding information: 15 - [1] Regulator: ../regulator/regulator.txt 16 - 17 - This binding must be part of the Lochnagar MFD binding: 18 - [2] ../mfd/cirrus,lochnagar.txt 19 - 20 - Optional sub-nodes: 21 - 22 - - VDDCORE : Initialisation data for the VDDCORE regulator, which 23 - supplies the CODECs digital core if it has no build regulator for that 24 - purpose. 25 - Required Properties: 26 - - compatible : One of the following strings: 27 - "cirrus,lochnagar2-vddcore" 28 - - SYSVDD-supply: Primary power supply for the Lochnagar. 29 - 30 - - MICVDD : Initialisation data for the MICVDD regulator, which 31 - supplies the CODECs MICVDD. 32 - Required Properties: 33 - - compatible : One of the following strings: 34 - "cirrus,lochnagar2-micvdd" 35 - - SYSVDD-supply: Primary power supply for the Lochnagar. 36 - 37 - - MIC1VDD, MIC2VDD : Initialisation data for the MICxVDD supplies. 38 - Required Properties: 39 - - compatible : One of the following strings: 40 - "cirrus,lochnagar2-mic1vdd", "cirrus,lochnagar2-mic2vdd" 41 - Optional Properties: 42 - - cirrus,micbias-input : A property selecting which of the CODEC 43 - minicard micbias outputs should be used, valid values are 1 - 4. 44 - - MICBIAS1-supply, MICBIAS2-supply: Regulator supplies for the 45 - MICxVDD outputs, supplying the digital microphones, normally 46 - supplied from the attached CODEC. 47 - 48 - - VDD1V8 : Recommended fixed regulator for the VDD1V8 regulator, which supplies the 49 - CODECs analog and 1.8V digital supplies. 50 - Required Properties: 51 - - compatible : Should be set to "regulator-fixed" 52 - - regulator-min-microvolt : Should be set to 1.8V 53 - - regulator-max-microvolt : Should be set to 1.8V 54 - - regulator-boot-on 55 - - regulator-always-on 56 - - vin-supply : Should be set to same supply as SYSVDD 57 - 58 - Example: 59 - 60 - lochnagar { 61 - lochnagar-micvdd: MICVDD { 62 - compatible = "cirrus,lochnagar2-micvdd"; 63 - 64 - SYSVDD-supply = <&wallvdd>; 65 - 66 - regulator-min-microvolt = <3300000>; 67 - regulator-max-microvolt = <3300000>; 68 - }; 69 - 70 - lochnagar-vdd1v8: VDD1V8 { 71 - compatible = "regulator-fixed"; 72 - 73 - regulator-name = "VDD1V8"; 74 - regulator-min-microvolt = <1800000>; 75 - regulator-max-microvolt = <1800000>; 76 - regulator-boot-on; 77 - regulator-always-on; 78 - 79 - vin-supply = <&wallvdd>; 80 - }; 81 - }; 82 -
+16 -19
Documentation/devicetree/bindings/regulator/gpio-regulator.yaml
··· 46 46 0: LOW 47 47 1: HIGH 48 48 Default is LOW if nothing else is specified. 49 - allOf: 50 - - $ref: /schemas/types.yaml#/definitions/uint32-array 51 - - maxItems: 8 52 - items: 53 - enum: [ 0, 1 ] 54 - default: 0 49 + $ref: /schemas/types.yaml#/definitions/uint32-array 50 + maxItems: 8 51 + items: 52 + enum: [0, 1] 53 + default: 0 55 54 56 55 states: 57 56 description: Selection of available voltages/currents provided by this 58 57 regulator and matching GPIO configurations to achieve them. If there are 59 58 no states in the "states" array, use a fixed regulator instead. 60 - allOf: 61 - - $ref: /schemas/types.yaml#/definitions/uint32-matrix 62 - - maxItems: 8 63 - items: 64 - items: 65 - - description: Voltage in microvolts 66 - - description: GPIO group state value 59 + $ref: /schemas/types.yaml#/definitions/uint32-matrix 60 + maxItems: 8 61 + items: 62 + items: 63 + - description: Voltage in microvolts 64 + - description: GPIO group state value 67 65 68 66 startup-delay-us: 69 67 description: startup time in microseconds ··· 79 81 80 82 regulator-type: 81 83 description: Specifies what is being regulated. 82 - allOf: 83 - - $ref: /schemas/types.yaml#/definitions/string 84 - - enum: 85 - - voltage 86 - - current 87 - default: voltage 84 + $ref: /schemas/types.yaml#/definitions/string 85 + enum: 86 + - voltage 87 + - current 88 + default: voltage 88 89 89 90 required: 90 91 - compatible
+2 -4
Documentation/devicetree/bindings/regulator/mps,mp5416.yaml
··· 27 27 28 28 patternProperties: 29 29 "^buck[1-4]$": 30 - allOf: 31 - - $ref: "regulator.yaml#" 30 + $ref: "regulator.yaml#" 32 31 type: object 33 32 34 33 "^ldo[1-4]$": 35 - allOf: 36 - - $ref: "regulator.yaml#" 34 + $ref: "regulator.yaml#" 37 35 type: object 38 36 39 37 additionalProperties: false
+11 -17
Documentation/devicetree/bindings/regulator/mps,mpq7920.yaml
··· 21 21 22 22 regulators: 23 23 type: object 24 - allOf: 25 - - $ref: regulator.yaml# 24 + $ref: regulator.yaml# 25 + 26 26 description: | 27 27 list of regulators provided by this controller, must be named 28 28 after their hardware counterparts BUCK[1-4], one LDORTC, and LDO[2-5] 29 29 30 30 properties: 31 31 mps,switch-freq: 32 - allOf: 33 - - $ref: "/schemas/types.yaml#/definitions/uint8" 34 - enum: [ 0, 1, 2, 3 ] 32 + $ref: "/schemas/types.yaml#/definitions/uint8" 33 + enum: [0, 1, 2, 3] 35 34 default: 2 36 35 description: | 37 36 switching frequency must be one of following corresponding value ··· 39 40 patternProperties: 40 41 "^ldo[1-4]$": 41 42 type: object 42 - allOf: 43 - - $ref: regulator.yaml# 43 + $ref: regulator.yaml# 44 44 45 45 "^ldortc$": 46 46 type: object 47 - allOf: 48 - - $ref: regulator.yaml# 47 + $ref: regulator.yaml# 49 48 50 49 "^buck[1-4]$": 51 50 type: object 52 - allOf: 53 - - $ref: regulator.yaml# 51 + $ref: regulator.yaml# 54 52 55 53 properties: 56 54 mps,buck-softstart: 57 - allOf: 58 - - $ref: "/schemas/types.yaml#/definitions/uint8" 59 - enum: [ 0, 1, 2, 3 ] 55 + $ref: "/schemas/types.yaml#/definitions/uint8" 56 + enum: [0, 1, 2, 3] 60 57 description: | 61 58 defines the soft start time of this buck, must be one of the following 62 59 corresponding values 150us, 300us, 610us, 920us 63 60 64 61 mps,buck-phase-delay: 65 - allOf: 66 - - $ref: "/schemas/types.yaml#/definitions/uint8" 67 - enum: [ 0, 1, 2, 3 ] 62 + $ref: "/schemas/types.yaml#/definitions/uint8" 63 + enum: [0, 1, 2, 3] 68 64 description: | 69 65 defines the phase delay of this buck, must be one of the following 70 66 corresponding values 0deg, 90deg, 180deg, 270deg
+2 -3
Documentation/devicetree/bindings/regulator/regulator.yaml
··· 123 123 0: Disable active discharge. 124 124 1: Enable active discharge. 125 125 Absence of this property will leave configuration to default. 126 - allOf: 127 - - $ref: "/schemas/types.yaml#/definitions/uint32" 128 - - enum: [ 0, 1 ] 126 + $ref: "/schemas/types.yaml#/definitions/uint32" 127 + enum: [0, 1] 129 128 130 129 regulator-coupled-with: 131 130 description: Regulators with which the regulator is coupled. The linkage
+14 -20
Documentation/devicetree/bindings/regulator/rohm,bd71828-regulator.yaml
··· 24 24 patternProperties: 25 25 "^LDO[1-7]$": 26 26 type: object 27 - allOf: 28 - - $ref: regulator.yaml# 29 27 description: 30 28 Properties for single LDO regulator. 29 + $ref: regulator.yaml# 31 30 32 31 properties: 33 32 regulator-name: ··· 38 39 39 40 "^BUCK[1-7]$": 40 41 type: object 41 - allOf: 42 - - $ref: regulator.yaml# 43 42 description: 44 43 Properties for single BUCK regulator. 44 + $ref: regulator.yaml# 45 45 46 46 properties: 47 47 regulator-name: ··· 49 51 should be "buck1", ..., "buck7" 50 52 51 53 rohm,dvs-run-voltage: 52 - allOf: 53 - - $ref: "/schemas/types.yaml#/definitions/uint32" 54 - - minimum: 0 55 - maximum: 3300000 56 54 description: 57 55 PMIC default "RUN" state voltage in uV. See below table for 58 56 bucks which support this. 0 means disabled. 57 + $ref: "/schemas/types.yaml#/definitions/uint32" 58 + minimum: 0 59 + maximum: 3300000 59 60 60 61 rohm,dvs-idle-voltage: 61 - allOf: 62 - - $ref: "/schemas/types.yaml#/definitions/uint32" 63 - - minimum: 0 64 - maximum: 3300000 65 62 description: 66 63 PMIC default "IDLE" state voltage in uV. See below table for 67 64 bucks which support this. 0 means disabled. 65 + $ref: "/schemas/types.yaml#/definitions/uint32" 66 + minimum: 0 67 + maximum: 3300000 68 68 69 69 rohm,dvs-suspend-voltage: 70 - allOf: 71 - - $ref: "/schemas/types.yaml#/definitions/uint32" 72 - - minimum: 0 73 - maximum: 3300000 74 70 description: 75 71 PMIC default "SUSPEND" state voltage in uV. See below table for 76 72 bucks which support this. 0 means disabled. 73 + $ref: "/schemas/types.yaml#/definitions/uint32" 74 + minimum: 0 75 + maximum: 3300000 77 76 78 77 rohm,dvs-lpsr-voltage: 79 - allOf: 80 - - $ref: "/schemas/types.yaml#/definitions/uint32" 81 - - minimum: 0 82 - maximum: 3300000 83 78 description: 84 79 PMIC default "LPSR" state voltage in uV. See below table for 85 80 bucks which support this. 0 means disabled. 81 + $ref: "/schemas/types.yaml#/definitions/uint32" 82 + minimum: 0 83 + maximum: 3300000 86 84 87 85 # Supported default DVS states: 88 86 # buck | run | idle | suspend | lpsr
+11 -16
Documentation/devicetree/bindings/regulator/rohm,bd71837-regulator.yaml
··· 30 30 patternProperties: 31 31 "^LDO[1-7]$": 32 32 type: object 33 - allOf: 34 - - $ref: regulator.yaml# 33 + $ref: regulator.yaml# 35 34 description: 36 35 Properties for single LDO regulator. 37 36 ··· 44 45 45 46 "^BUCK[1-8]$": 46 47 type: object 47 - allOf: 48 - - $ref: regulator.yaml# 48 + $ref: regulator.yaml# 49 49 description: 50 50 Properties for single BUCK regulator. 51 51 ··· 55 57 should be "buck1", ..., "buck8" 56 58 57 59 rohm,dvs-run-voltage: 58 - allOf: 59 - - $ref: "/schemas/types.yaml#/definitions/uint32" 60 - - minimum: 0 61 - maximum: 1300000 60 + $ref: "/schemas/types.yaml#/definitions/uint32" 61 + minimum: 0 62 + maximum: 1300000 62 63 description: 63 64 PMIC default "RUN" state voltage in uV. See below table for 64 65 bucks which support this. 0 means disabled. 65 66 66 67 rohm,dvs-idle-voltage: 67 - allOf: 68 - - $ref: "/schemas/types.yaml#/definitions/uint32" 69 - - minimum: 0 70 - maximum: 1300000 68 + $ref: "/schemas/types.yaml#/definitions/uint32" 69 + minimum: 0 70 + maximum: 1300000 71 71 description: 72 72 PMIC default "IDLE" state voltage in uV. See below table for 73 73 bucks which support this. 0 means disabled. 74 74 75 75 rohm,dvs-suspend-voltage: 76 - allOf: 77 - - $ref: "/schemas/types.yaml#/definitions/uint32" 78 - - minimum: 0 79 - maximum: 1300000 76 + $ref: "/schemas/types.yaml#/definitions/uint32" 77 + minimum: 0 78 + maximum: 1300000 80 79 description: 81 80 PMIC default "SUSPEND" state voltage in uV. See below table for 82 81 bucks which support this. 0 means disabled.
+1 -2
Documentation/devicetree/bindings/regulator/st,stm32-booster.yaml
··· 23 23 - st,stm32mp1-booster 24 24 25 25 st,syscfg: 26 - allOf: 27 - - $ref: "/schemas/types.yaml#/definitions/phandle-array" 26 + $ref: "/schemas/types.yaml#/definitions/phandle-array" 28 27 description: phandle to system configuration controller. 29 28 30 29 vdda-supply:
+1 -2
Documentation/devicetree/bindings/regulator/st,stm32mp1-pwr-reg.yaml
··· 26 26 "^(reg11|reg18|usb33)$": 27 27 type: object 28 28 29 - allOf: 30 - - $ref: "regulator.yaml#" 29 + $ref: "regulator.yaml#" 31 30 32 31 required: 33 32 - compatible
+37
Documentation/devicetree/bindings/regulator/wlf,arizona.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/regulator/wlf,arizona.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Cirrus Logic/Wolfson Microelectronics Arizona/Madera class audio SoCs 8 + 9 + maintainers: 10 + - patches@opensource.cirrus.com 11 + 12 + description: | 13 + These devices are audio SoCs with extensive digital capabilities and a 14 + range of analogue I/O. 15 + 16 + This document lists regulator specific bindings, see the primary binding 17 + document. For Wolfson Microelectronic Arizona codecs ../mfd/wlf,arizona.yaml 18 + and for Cirrus Logic Madera codecs ../mfd/madera.txt 19 + 20 + properties: 21 + wlf,ldoena: 22 + description: 23 + GPIO specifier for the GPIO controlling LDOENA. 24 + $ref: "/schemas/types.yaml#/definitions/phandle-array" 25 + maxItems: 1 26 + 27 + ldo1: 28 + description: 29 + Initial data for the LDO1 regulator. 30 + $ref: "regulator.yaml#" 31 + type: object 32 + 33 + micvdd: 34 + description: 35 + Initial data for the MICVDD regulator. 36 + $ref: "regulator.yaml#" 37 + type: object
+4 -7
Documentation/devicetree/bindings/remoteproc/st,stm32-rproc.yaml
··· 25 25 maxItems: 3 26 26 27 27 resets: 28 - maxItems: 1 28 + maxItems: 1 29 29 30 30 st,syscfg-holdboot: 31 - allOf: 32 - - $ref: "/schemas/types.yaml#/definitions/phandle-array" 33 31 description: remote processor reset hold boot 34 32 - Phandle of syscon block. 35 33 - The offset of the hold boot setting register. 36 34 - The field mask of the hold boot. 35 + $ref: "/schemas/types.yaml#/definitions/phandle-array" 37 36 maxItems: 1 38 37 39 38 st,syscfg-tz: 40 - allOf: 41 - - $ref: "/schemas/types.yaml#/definitions/phandle-array" 42 39 description: 43 40 Reference to the system configuration which holds the RCC trust zone mode 44 41 - Phandle of syscon block. 45 42 - The offset of the RCC trust zone mode register. 46 43 - The field mask of the RCC trust zone mode. 44 + $ref: "/schemas/types.yaml#/definitions/phandle-array" 47 45 maxItems: 1 48 46 49 47 interrupts: ··· 88 90 (see ../reserved-memory/reserved-memory.txt) 89 91 90 92 st,syscfg-pdds: 91 - allOf: 92 - - $ref: "/schemas/types.yaml#/definitions/phandle-array" 93 + $ref: "/schemas/types.yaml#/definitions/phandle-array" 93 94 description: | 94 95 Reference to the system configuration which holds the remote 95 96 1st cell: phandle to syscon block
+2
Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
··· 77 77 nodes by adding a memory-region property to the device node. 78 78 79 79 memory-region (optional) - phandle, specifier pairs to children of /reserved-memory 80 + memory-region-names (optional) - a list of names, one for each corresponding 81 + entry in the memory-region property 80 82 81 83 Example 82 84 -------
+3 -1
Documentation/devicetree/bindings/reset/brcm,bcm7216-pcie-sata-rescal.yaml
··· 7 7 8 8 title: BCM7216 RESCAL reset controller 9 9 10 - description: This document describes the BCM7216 RESCAL reset controller which is responsible for controlling the reset of the SATA and PCIe0/1 instances on BCM7216. 10 + description: This document describes the BCM7216 RESCAL reset controller 11 + which is responsible for controlling the reset of the SATA and PCIe0/1 12 + instances on BCM7216. 11 13 12 14 maintainers: 13 15 - Florian Fainelli <f.fainelli@gmail.com>
+1 -2
Documentation/devicetree/bindings/reset/intel,rcu-gw.yaml
··· 21 21 22 22 intel,global-reset: 23 23 description: Global reset register offset and bit offset. 24 - allOf: 25 - - $ref: /schemas/types.yaml#/definitions/uint32-array 24 + $ref: /schemas/types.yaml#/definitions/uint32-array 26 25 items: 27 26 - description: Register offset 28 27 - description: Register bit offset
+9 -11
Documentation/devicetree/bindings/riscv/cpus.yaml
··· 40 40 and identifies the type of the hart. 41 41 42 42 mmu-type: 43 - allOf: 44 - - $ref: "/schemas/types.yaml#/definitions/string" 45 - - enum: 46 - - riscv,sv32 47 - - riscv,sv39 48 - - riscv,sv48 49 43 description: 50 44 Identifies the MMU address translation mode used on this 51 45 hart. These values originate from the RISC-V Privileged 52 46 Specification document, available from 53 47 https://riscv.org/specifications/ 48 + $ref: "/schemas/types.yaml#/definitions/string" 49 + enum: 50 + - riscv,sv32 51 + - riscv,sv39 52 + - riscv,sv48 54 53 55 54 riscv,isa: 56 - allOf: 57 - - $ref: "/schemas/types.yaml#/definitions/string" 58 - - enum: 59 - - rv64imac 60 - - rv64imafdc 61 55 description: 62 56 Identifies the specific RISC-V instruction set architecture 63 57 supported by the hart. These are documented in the RISC-V ··· 61 67 While the isa strings in ISA specification are case 62 68 insensitive, letters in the riscv,isa string must be all 63 69 lowercase to simplify parsing. 70 + $ref: "/schemas/types.yaml#/definitions/string" 71 + enum: 72 + - rv64imac 73 + - rv64imafdc 64 74 65 75 # RISC-V requires 'timebase-frequency' in /cpus, so disallow it here 66 76 timebase-frequency: false
+5
Documentation/devicetree/bindings/rtc/renesas,sh-rtc.yaml
··· 43 43 items: 44 44 enum: [ fck, rtc_x1, rtc_x3, extal ] 45 45 46 + power-domains: 47 + maxItems: 1 48 + 46 49 required: 47 50 - compatible 48 51 - reg ··· 53 50 - interrupt-names 54 51 - clocks 55 52 - clock-names 53 + - power-domains 56 54 57 55 additionalProperties: false 58 56 ··· 72 68 interrupt-names = "alarm", "period", "carry"; 73 69 clocks = <&mstp6_clks R7S72100_CLK_RTC>, <&rtc_x1_clk>, 74 70 <&rtc_x3_clk>, <&extal_clk>; 71 + power-domains = <&cpg_clocks>; 75 72 clock-names = "fck", "rtc_x1", "rtc_x3", "extal"; 76 73 };
-26
Documentation/devicetree/bindings/rtc/rtc-mxc.txt
··· 1 - * Real Time Clock of the i.MX SoCs 2 - 3 - RTC controller for the i.MX SoCs 4 - 5 - Required properties: 6 - - compatible: Should be "fsl,imx1-rtc" or "fsl,imx21-rtc". 7 - - reg: physical base address of the controller and length of memory mapped 8 - region. 9 - - interrupts: IRQ line for the RTC. 10 - - clocks: should contain two entries: 11 - * one for the input reference 12 - * one for the the SoC RTC 13 - - clock-names: should contain: 14 - * "ref" for the input reference clock 15 - * "ipg" for the SoC RTC clock 16 - 17 - Example: 18 - 19 - rtc@10007000 { 20 - compatible = "fsl,imx21-rtc"; 21 - reg = <0x10007000 0x1000>; 22 - interrupts = <22>; 23 - clocks = <&clks IMX27_CLK_CKIL>, 24 - <&clks IMX27_CLK_RTC_IPG_GATE>; 25 - clock-names = "ref", "ipg"; 26 - };
+57
Documentation/devicetree/bindings/rtc/rtc-mxc.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/rtc/rtc-mxc.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Real Time Clock of the i.MX SoCs 8 + 9 + allOf: 10 + - $ref: "rtc.yaml#" 11 + 12 + maintainers: 13 + - Philippe Reynes <tremyfr@gmail.com> 14 + 15 + properties: 16 + compatible: 17 + enum: 18 + - fsl,imx1-rtc 19 + - fsl,imx21-rtc 20 + 21 + reg: 22 + maxItems: 1 23 + 24 + interrupts: 25 + maxItems: 1 26 + 27 + clocks: 28 + items: 29 + - description: input reference 30 + - description: the SoC RTC clock 31 + 32 + clock-names: 33 + items: 34 + - const: ref 35 + - const: ipg 36 + 37 + required: 38 + - compatible 39 + - reg 40 + - interrupts 41 + - clocks 42 + - clock-names 43 + 44 + additionalProperties: false 45 + 46 + examples: 47 + - | 48 + #include <dt-bindings/clock/imx27-clock.h> 49 + 50 + rtc@10007000 { 51 + compatible = "fsl,imx21-rtc"; 52 + reg = <0x10007000 0x1000>; 53 + interrupts = <22>; 54 + clocks = <&clks IMX27_CLK_CKIL>, 55 + <&clks IMX27_CLK_RTC_IPG_GATE>; 56 + clock-names = "ref", "ipg"; 57 + };
-17
Documentation/devicetree/bindings/rtc/rtc-mxc_v2.txt
··· 1 - * i.MX53 Secure Real Time Clock (SRTC) 2 - 3 - Required properties: 4 - - compatible: should be: "fsl,imx53-rtc" 5 - - reg: physical base address of the controller and length of memory mapped 6 - region. 7 - - clocks: should contain the phandle for the rtc clock 8 - - interrupts: rtc alarm interrupt 9 - 10 - Example: 11 - 12 - rtc@53fa4000 { 13 - compatible = "fsl,imx53-rtc"; 14 - reg = <0x53fa4000 0x4000>; 15 - interrupts = <24>; 16 - clocks = <&clks IMX5_CLK_SRTC_GATE>; 17 - };
+46
Documentation/devicetree/bindings/rtc/rtc-mxc_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/rtc/rtc-mxc_v2.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: i.MX53 Secure Real Time Clock (SRTC) 8 + 9 + allOf: 10 + - $ref: "rtc.yaml#" 11 + 12 + maintainers: 13 + - Patrick Bruenn <p.bruenn@beckhoff.com> 14 + 15 + properties: 16 + compatible: 17 + enum: 18 + - fsl,imx53-rtc 19 + 20 + reg: 21 + maxItems: 1 22 + 23 + clocks: 24 + maxItems: 1 25 + 26 + interrupts: 27 + maxItems: 1 28 + 29 + required: 30 + - compatible 31 + - reg 32 + - clocks 33 + - interrupts 34 + 35 + additionalProperties: false 36 + 37 + examples: 38 + - | 39 + #include <dt-bindings/clock/imx5-clock.h> 40 + 41 + rtc@53fa4000 { 42 + compatible = "fsl,imx53-rtc"; 43 + reg = <0x53fa4000 0x4000>; 44 + interrupts = <24>; 45 + clocks = <&clks IMX5_CLK_SRTC_GATE>; 46 + };
+23 -24
Documentation/devicetree/bindings/rtc/st,stm32-rtc.yaml
··· 32 32 maxItems: 1 33 33 34 34 st,syscfg: 35 - allOf: 36 - - $ref: "/schemas/types.yaml#/definitions/phandle-array" 37 - - items: 38 - minItems: 3 39 - maxItems: 3 35 + $ref: "/schemas/types.yaml#/definitions/phandle-array" 36 + items: 37 + minItems: 3 38 + maxItems: 3 40 39 description: | 41 - Phandle/offset/mask triplet. The phandle to pwrcfg used to 42 - access control register at offset, and change the dbp (Disable Backup 43 - Protection) bit represented by the mask, mandatory to disable/enable backup 44 - domain (RTC registers) write protection. 40 + Phandle/offset/mask triplet. The phandle to pwrcfg used to 41 + access control register at offset, and change the dbp (Disable Backup 42 + Protection) bit represented by the mask, mandatory to disable/enable backup 43 + domain (RTC registers) write protection. 45 44 46 45 assigned-clocks: 47 46 description: | ··· 77 78 const: st,stm32h7-rtc 78 79 79 80 then: 80 - properties: 81 - clocks: 82 - minItems: 2 83 - maxItems: 2 81 + properties: 82 + clocks: 83 + minItems: 2 84 + maxItems: 2 84 85 85 - required: 86 - - clock-names 87 - - st,syscfg 86 + required: 87 + - clock-names 88 + - st,syscfg 88 89 89 90 - if: 90 91 properties: ··· 93 94 const: st,stm32mp1-rtc 94 95 95 96 then: 96 - properties: 97 - clocks: 98 - minItems: 2 99 - maxItems: 2 97 + properties: 98 + clocks: 99 + minItems: 2 100 + maxItems: 2 100 101 101 - assigned-clocks: false 102 - assigned-clock-parents: false 102 + assigned-clocks: false 103 + assigned-clock-parents: false 103 104 104 - required: 105 - - clock-names 105 + required: 106 + - clock-names 106 107 107 108 required: 108 109 - compatible
-100
Documentation/devicetree/bindings/serial/8250.txt
··· 1 - * UART (Universal Asynchronous Receiver/Transmitter) 2 - 3 - Required properties: 4 - - compatible : one of: 5 - - "ns8250" 6 - - "ns16450" 7 - - "ns16550a" 8 - - "ns16550" 9 - - "ns16750" 10 - - "ns16850" 11 - - For Tegra20, must contain "nvidia,tegra20-uart" 12 - - For other Tegra, must contain '"nvidia,<chip>-uart", 13 - "nvidia,tegra20-uart"' where <chip> is tegra30, tegra114, tegra124, 14 - tegra132, or tegra210. 15 - - "nxp,lpc3220-uart" 16 - - "ralink,rt2880-uart" 17 - - For MediaTek BTIF, must contain '"mediatek,<chip>-btif", 18 - "mediatek,mtk-btif"' where <chip> is mt7622, mt7623. 19 - - "altr,16550-FIFO32" 20 - - "altr,16550-FIFO64" 21 - - "altr,16550-FIFO128" 22 - - "fsl,16550-FIFO64" 23 - - "fsl,ns16550" 24 - - "intel,xscale-uart" 25 - - "ti,da830-uart" 26 - - "aspeed,ast2400-vuart" 27 - - "aspeed,ast2500-vuart" 28 - - "nuvoton,npcm750-uart" 29 - - "serial" if the port type is unknown. 30 - - reg : offset and length of the register set for the device. 31 - - interrupts : should contain uart interrupt. 32 - - clock-frequency : the input clock frequency for the UART 33 - or 34 - clocks phandle to refer to the clk used as per Documentation/devicetree 35 - /bindings/clock/clock-bindings.txt 36 - 37 - Optional properties: 38 - - current-speed : the current active speed of the UART. 39 - - reg-offset : offset to apply to the mapbase from the start of the registers. 40 - - reg-shift : quantity to shift the register offsets by. 41 - - reg-io-width : the size (in bytes) of the IO accesses that should be 42 - performed on the device. There are some systems that require 32-bit 43 - accesses to the UART (e.g. TI davinci). 44 - - used-by-rtas : set to indicate that the port is in use by the OpenFirmware 45 - RTAS and should not be registered. 46 - - no-loopback-test: set to indicate that the port does not implements loopback 47 - test mode 48 - - fifo-size: the fifo size of the UART. 49 - - auto-flow-control: one way to enable automatic flow control support. The 50 - driver is allowed to detect support for the capability even without this 51 - property. 52 - - tx-threshold: Specify the TX FIFO low water indication for parts with 53 - programmable TX FIFO thresholds. 54 - - resets : phandle + reset specifier pairs 55 - - overrun-throttle-ms : how long to pause uart rx when input overrun is encountered. 56 - - {rts,cts,dtr,dsr,rng,dcd}-gpios: specify a GPIO for RTS/CTS/DTR/DSR/RI/DCD 57 - line respectively. It will use specified GPIO instead of the peripheral 58 - function pin for the UART feature. If unsure, don't specify this property. 59 - - aspeed,sirq-polarity-sense: Only applicable to aspeed,ast2500-vuart. 60 - phandle to aspeed,ast2500-scu compatible syscon alongside register offset 61 - and bit number to identify how the SIRQ polarity should be configured. 62 - One possible data source is the LPC/eSPI mode bit. 63 - Example: aspeed,sirq-polarity-sense = <&syscon 0x70 25> 64 - 65 - Note: 66 - * fsl,ns16550: 67 - ------------ 68 - Freescale DUART is very similar to the PC16552D (and to a 69 - pair of NS16550A), albeit with some nonstandard behavior such as 70 - erratum A-004737 (relating to incorrect BRK handling). 71 - 72 - Represents a single port that is compatible with the DUART found 73 - on many Freescale chips (examples include mpc8349, mpc8548, 74 - mpc8641d, p4080 and ls2085a). 75 - 76 - Example: 77 - 78 - uart@80230000 { 79 - compatible = "ns8250"; 80 - reg = <0x80230000 0x100>; 81 - clock-frequency = <3686400>; 82 - interrupts = <10>; 83 - reg-shift = <2>; 84 - }; 85 - 86 - Example for OMAP UART using GPIO-based modem control signals: 87 - 88 - uart4: serial@49042000 { 89 - compatible = "ti,omap3-uart"; 90 - reg = <0x49042000 0x400>; 91 - interrupts = <80>; 92 - ti,hwmods = "uart4"; 93 - clock-frequency = <48000000>; 94 - cts-gpios = <&gpio3 5 GPIO_ACTIVE_LOW>; 95 - rts-gpios = <&gpio3 6 GPIO_ACTIVE_LOW>; 96 - dtr-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>; 97 - dsr-gpios = <&gpio1 13 GPIO_ACTIVE_LOW>; 98 - dcd-gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; 99 - rng-gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; 100 - };
+233
Documentation/devicetree/bindings/serial/8250.yaml
··· 1 + # Copyright 2020 Lubomir Rintel <lkundrak@v3.sk> 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/serial/8250.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: UART (Universal Asynchronous Receiver/Transmitter) bindings 8 + 9 + maintainers: 10 + - devicetree@vger.kernel.org 11 + 12 + allOf: 13 + - $ref: /schemas/serial.yaml# 14 + - if: 15 + required: 16 + - aspeed,sirq-polarity-sense 17 + then: 18 + properties: 19 + compatible: 20 + const: aspeed,ast2500-vuart 21 + - if: 22 + properties: 23 + compatible: 24 + const: mrvl,mmp-uart 25 + then: 26 + properties: 27 + reg-shift: 28 + const: 2 29 + required: 30 + - reg-shift 31 + - if: 32 + not: 33 + properties: 34 + compatible: 35 + items: 36 + - enum: 37 + - ns8250 38 + - ns16450 39 + - ns16550 40 + - ns16550a 41 + then: 42 + anyOf: 43 + - required: [ clock-frequency ] 44 + - required: [ clocks ] 45 + 46 + properties: 47 + compatible: 48 + oneOf: 49 + - const: ns8250 50 + - const: ns16450 51 + - const: ns16550 52 + - const: ns16550a 53 + - const: ns16850 54 + - const: aspeed,ast2400-vuart 55 + - const: aspeed,ast2500-vuart 56 + - const: intel,xscale-uart 57 + - const: mrvl,pxa-uart 58 + - const: nuvoton,npcm750-uart 59 + - const: nvidia,tegra20-uart 60 + - const: nxp,lpc3220-uart 61 + - items: 62 + - enum: 63 + - altr,16550-FIFO32 64 + - altr,16550-FIFO64 65 + - altr,16550-FIFO128 66 + - fsl,16550-FIFO64 67 + - fsl,ns16550 68 + - andestech,uart16550 69 + - nxp,lpc1850-uart 70 + - opencores,uart16550-rtlsvn105 71 + - ti,da830-uart 72 + - const: ns16550a 73 + - items: 74 + - enum: 75 + - ns16750 76 + - cavium,octeon-3860-uart 77 + - xlnx,xps-uart16550-2.00.b 78 + - ralink,rt2880-uart 79 + - enum: 80 + - ns16550 # Deprecated, unless the FIFO really is broken 81 + - ns16550a 82 + - items: 83 + - enum: 84 + - ralink,mt7620a-uart 85 + - ralink,rt3052-uart 86 + - ralink,rt3883-uart 87 + - const: ralink,rt2880-uart 88 + - enum: 89 + - ns16550 # Deprecated, unless the FIFO really is broken 90 + - ns16550a 91 + - items: 92 + - enum: 93 + - mediatek,mt7622-btif 94 + - mediatek,mt7623-btif 95 + - const: mediatek,mtk-btif 96 + - items: 97 + - enum: 98 + - mediatek,mt7622-btif 99 + - mediatek,mt7623-btif 100 + - const: mediatek,mtk-btif 101 + - items: 102 + - const: mrvl,mmp-uart 103 + - const: intel,xscale-uart 104 + - items: 105 + - enum: 106 + - nvidia,tegra30-uart 107 + - nvidia,tegra114-uart 108 + - nvidia,tegra124-uart 109 + - nvidia,tegra186-uart 110 + - nvidia,tegra194-uart 111 + - nvidia,tegra210-uart 112 + - const: nvidia,tegra20-uart 113 + 114 + reg: 115 + maxItems: 1 116 + 117 + interrupts: 118 + maxItems: 1 119 + 120 + clock-frequency: true 121 + 122 + clocks: 123 + maxItems: 1 124 + 125 + resets: 126 + maxItems: 1 127 + 128 + current-speed: 129 + $ref: /schemas/types.yaml#definitions/uint32 130 + description: The current active speed of the UART. 131 + 132 + reg-offset: 133 + description: | 134 + Offset to apply to the mapbase from the start of the registers. 135 + 136 + reg-shift: 137 + description: Quantity to shift the register offsets by. 138 + 139 + reg-io-width: 140 + description: | 141 + The size (in bytes) of the IO accesses that should be performed on the 142 + device. There are some systems that require 32-bit accesses to the 143 + UART (e.g. TI davinci). 144 + 145 + used-by-rtas: 146 + type: boolean 147 + description: | 148 + Set to indicate that the port is in use by the OpenFirmware RTAS and 149 + should not be registered. 150 + 151 + no-loopback-test: 152 + type: boolean 153 + description: | 154 + Set to indicate that the port does not implement loopback test mode. 155 + 156 + fifo-size: 157 + $ref: /schemas/types.yaml#definitions/uint32 158 + description: The fifo size of the UART. 159 + 160 + auto-flow-control: 161 + type: boolean 162 + description: | 163 + One way to enable automatic flow control support. The driver is 164 + allowed to detect support for the capability even without this 165 + property. 166 + 167 + tx-threshold: 168 + $ref: /schemas/types.yaml#definitions/uint32 169 + description: | 170 + Specify the TX FIFO low water indication for parts with programmable 171 + TX FIFO thresholds. 172 + 173 + overrun-throttle-ms: 174 + description: | 175 + How long to pause uart rx when input overrun is encountered. 176 + 177 + rts-gpios: true 178 + cts-gpios: true 179 + dtr-gpios: true 180 + dsr-gpios: true 181 + rng-gpios: true 182 + dcd-gpios: true 183 + 184 + aspeed,sirq-polarity-sense: 185 + $ref: /schemas/types.yaml#/definitions/phandle-array 186 + description: | 187 + Phandle to aspeed,ast2500-scu compatible syscon alongside register 188 + offset and bit number to identify how the SIRQ polarity should be 189 + configured. One possible data source is the LPC/eSPI mode bit. Only 190 + applicable to aspeed,ast2500-vuart. 191 + 192 + required: 193 + - reg 194 + - interrupts 195 + 196 + unevaluatedProperties: false 197 + 198 + examples: 199 + - | 200 + serial@80230000 { 201 + compatible = "ns8250"; 202 + reg = <0x80230000 0x100>; 203 + interrupts = <10>; 204 + reg-shift = <2>; 205 + clock-frequency = <48000000>; 206 + }; 207 + - | 208 + #include <dt-bindings/gpio/gpio.h> 209 + serial@49042000 { 210 + compatible = "andestech,uart16550", "ns16550a"; 211 + reg = <0x49042000 0x400>; 212 + interrupts = <80>; 213 + clock-frequency = <48000000>; 214 + cts-gpios = <&gpio3 5 GPIO_ACTIVE_LOW>; 215 + rts-gpios = <&gpio3 6 GPIO_ACTIVE_LOW>; 216 + dtr-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>; 217 + dsr-gpios = <&gpio1 13 GPIO_ACTIVE_LOW>; 218 + dcd-gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; 219 + rng-gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; 220 + }; 221 + - | 222 + #include <dt-bindings/clock/aspeed-clock.h> 223 + serial@1e787000 { 224 + compatible = "aspeed,ast2500-vuart"; 225 + reg = <0x1e787000 0x40>; 226 + reg-shift = <2>; 227 + interrupts = <8>; 228 + clocks = <&syscon ASPEED_CLK_APB>; 229 + no-loopback-test; 230 + aspeed,sirq-polarity-sense = <&syscon 0x70 25>; 231 + }; 232 + 233 + ...
+8 -8
Documentation/devicetree/bindings/serial/amlogic,meson-uart.yaml
··· 24 24 oneOf: 25 25 - description: Always-on power domain UART controller 26 26 items: 27 - - enum: 27 + - enum: 28 + - amlogic,meson6-uart 29 + - amlogic,meson8-uart 30 + - amlogic,meson8b-uart 31 + - amlogic,meson-gx-uart 32 + - const: amlogic,meson-ao-uart 33 + - description: Everything-Else power domain UART controller 34 + enum: 28 35 - amlogic,meson6-uart 29 36 - amlogic,meson8-uart 30 37 - amlogic,meson8b-uart 31 38 - amlogic,meson-gx-uart 32 - - const: amlogic,meson-ao-uart 33 - - description: Everything-Else power domain UART controller 34 - enum: 35 - - amlogic,meson6-uart 36 - - amlogic,meson8-uart 37 - - amlogic,meson8b-uart 38 - - amlogic,meson-gx-uart 39 39 40 40 reg: 41 41 maxItems: 1
-28
Documentation/devicetree/bindings/serial/ingenic,uart.txt
··· 1 - * Ingenic SoC UART 2 - 3 - Required properties: 4 - - compatible : One of: 5 - - "ingenic,jz4740-uart", 6 - - "ingenic,jz4760-uart", 7 - - "ingenic,jz4770-uart", 8 - - "ingenic,jz4775-uart", 9 - - "ingenic,jz4780-uart", 10 - - "ingenic,x1000-uart". 11 - - reg : offset and length of the register set for the device. 12 - - interrupts : should contain uart interrupt. 13 - - clocks : phandles to the module & baud clocks. 14 - - clock-names: tuple listing input clock names. 15 - Required elements: "baud", "module" 16 - 17 - Example: 18 - 19 - uart0: serial@10030000 { 20 - compatible = "ingenic,jz4740-uart"; 21 - reg = <0x10030000 0x100>; 22 - 23 - interrupt-parent = <&intc>; 24 - interrupts = <9>; 25 - 26 - clocks = <&ext>, <&cgu JZ4740_CLK_UART0>; 27 - clock-names = "baud", "module"; 28 - };
+94
Documentation/devicetree/bindings/serial/ingenic,uart.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/serial/ingenic,uart.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Ingenic SoCs UART controller devicetree bindings 8 + 9 + maintainers: 10 + - Paul Cercueil <paul@crapouillou.net> 11 + 12 + properties: 13 + $nodename: 14 + pattern: "^serial@[0-9a-f]+$" 15 + 16 + compatible: 17 + oneOf: 18 + - enum: 19 + - ingenic,jz4740-uart 20 + - ingenic,jz4760-uart 21 + - ingenic,jz4780-uart 22 + - ingenic,x1000-uart 23 + - items: 24 + - enum: 25 + - ingenic,jz4770-uart 26 + - ingenic,jz4775-uart 27 + - const: ingenic,jz4760-uart 28 + - items: 29 + - const: ingenic,jz4725b-uart 30 + - const: ingenic,jz4740-uart 31 + 32 + reg: 33 + maxItems: 1 34 + 35 + interrupts: 36 + maxItems: 1 37 + 38 + clocks: 39 + items: 40 + - description: Baud clock 41 + - description: UART module clock 42 + 43 + clock-names: 44 + items: 45 + - const: baud 46 + - const: module 47 + 48 + dmas: 49 + items: 50 + - description: DMA controller phandle and request line for RX 51 + - description: DMA controller phandle and request line for TX 52 + 53 + dma-names: 54 + items: 55 + - const: rx 56 + - const: tx 57 + 58 + required: 59 + - compatible 60 + - reg 61 + - interrupts 62 + - clocks 63 + - clock-names 64 + - dmas 65 + - dma-names 66 + 67 + examples: 68 + - | 69 + #include <dt-bindings/clock/jz4780-cgu.h> 70 + #include <dt-bindings/dma/jz4780-dma.h> 71 + #include <dt-bindings/gpio/gpio.h> 72 + serial@10032000 { 73 + compatible = "ingenic,jz4780-uart"; 74 + reg = <0x10032000 0x100>; 75 + 76 + interrupt-parent = <&intc>; 77 + interrupts = <49>; 78 + 79 + clocks = <&ext>, <&cgu JZ4780_CLK_UART2>; 80 + clock-names = "baud", "module"; 81 + 82 + dmas = <&dma JZ4780_DMA_UART2_RX 0xffffffff>, 83 + <&dma JZ4780_DMA_UART2_TX 0xffffffff>; 84 + dma-names = "rx", "tx"; 85 + 86 + bluetooth { 87 + compatible = "brcm,bcm4330-bt"; 88 + reset-gpios = <&gpf 8 GPIO_ACTIVE_HIGH>; 89 + vcc-supply = <&wlan0_power>; 90 + device-wakeup-gpios = <&gpf 5 GPIO_ACTIVE_HIGH>; 91 + host-wakeup-gpios = <&gpf 6 GPIO_ACTIVE_HIGH>; 92 + shutdown-gpios = <&gpf 4 GPIO_ACTIVE_LOW>; 93 + }; 94 + };
-4
Documentation/devicetree/bindings/serial/mrvl-serial.txt
··· 1 - PXA UART controller 2 - 3 - Required properties: 4 - - compatible : should be "mrvl,mmp-uart" or "mrvl,pxa-uart".
+4 -6
Documentation/devicetree/bindings/serial/pl011.yaml
··· 88 88 description: 89 89 Rate at which poll occurs when auto-poll is set. 90 90 default 100ms. 91 - allOf: 92 - - $ref: /schemas/types.yaml#/definitions/uint32 93 - - default: 100 91 + $ref: /schemas/types.yaml#/definitions/uint32 92 + default: 100 94 93 95 94 poll-timeout-ms: 96 95 description: 97 96 Poll timeout when auto-poll is set, default 98 97 3000ms. 99 - allOf: 100 - - $ref: /schemas/types.yaml#/definitions/uint32 101 - - default: 3000 98 + $ref: /schemas/types.yaml#/definitions/uint32 99 + default: 3000 102 100 103 101 required: 104 102 - compatible
-31
Documentation/devicetree/bindings/serial/qca,ar9330-uart.txt
··· 1 - * Qualcomm Atheros AR9330 High-Speed UART 2 - 3 - Required properties: 4 - 5 - - compatible: Must be "qca,ar9330-uart" 6 - 7 - - reg: Specifies the physical base address of the controller and 8 - the length of the memory mapped region. 9 - 10 - - interrupts: Specifies the interrupt source of the parent interrupt 11 - controller. The format of the interrupt specifier depends on the 12 - parent interrupt controller. 13 - 14 - Additional requirements: 15 - 16 - Each UART port must have an alias correctly numbered in "aliases" 17 - node. 18 - 19 - Example: 20 - 21 - aliases { 22 - serial0 = &uart0; 23 - }; 24 - 25 - uart0: uart@18020000 { 26 - compatible = "qca,ar9330-uart"; 27 - reg = <0x18020000 0x14>; 28 - 29 - interrupt-parent = <&intc>; 30 - interrupts = <3>; 31 - };
+50
Documentation/devicetree/bindings/serial/qca,ar9330-uart.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/serial/qca,ar9330-uart.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Qualcomm Atheros AR9330 High-Speed UART 8 + 9 + maintainers: 10 + - Oleksij Rempel <o.rempel@pengutronix.de> 11 + 12 + allOf: 13 + - $ref: /schemas/serial.yaml# 14 + 15 + properties: 16 + compatible: 17 + const: qca,ar9330-uart 18 + 19 + reg: 20 + maxItems: 1 21 + 22 + interrupts: 23 + maxItems: 1 24 + 25 + clocks: 26 + maxItems: 1 27 + 28 + clock-names: 29 + const: uart 30 + 31 + required: 32 + - compatible 33 + - reg 34 + - interrupts 35 + - clocks 36 + - clock-names 37 + 38 + additionalProperties: false 39 + 40 + examples: 41 + - | 42 + serial@18020000 { 43 + compatible = "qca,ar9330-uart"; 44 + reg = <0x18020000 0x14>; 45 + clocks = <&ref>; 46 + clock-names = "uart"; 47 + interrupt-parent = <&intc>; 48 + interrupts = <3>; 49 + }; 50 + ...
+49
Documentation/devicetree/bindings/serial/renesas,em-uart.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: "http://devicetree.org/schemas/serial/renesas,em-uart.yaml#" 5 + $schema: "http://devicetree.org/meta-schemas/core.yaml#" 6 + 7 + title: Renesas EMMA Mobile UART Interface 8 + 9 + maintainers: 10 + - Magnus Damm <magnus.damm@gmail.com> 11 + 12 + allOf: 13 + - $ref: serial.yaml# 14 + 15 + properties: 16 + compatible: 17 + const: renesas,em-uart 18 + 19 + reg: 20 + maxItems: 1 21 + 22 + interrupts: 23 + maxItems: 1 24 + 25 + clocks: 26 + maxItems: 1 27 + 28 + clock-names: 29 + const: sclk 30 + 31 + required: 32 + - compatible 33 + - reg 34 + - interrupts 35 + - clocks 36 + - clock-names 37 + 38 + additionalProperties: false 39 + 40 + examples: 41 + - | 42 + #include <dt-bindings/interrupt-controller/arm-gic.h> 43 + uart0: serial@e1020000 { 44 + compatible = "renesas,em-uart"; 45 + reg = <0xe1020000 0x38>; 46 + interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 47 + clocks = <&usia_u0_sclk>; 48 + clock-names = "sclk"; 49 + };
+1
Documentation/devicetree/bindings/serial/renesas,hscif.yaml
··· 24 24 25 25 - items: 26 26 - enum: 27 + - renesas,hscif-r8a7742 # RZ/G1H 27 28 - renesas,hscif-r8a7743 # RZ/G1M 28 29 - renesas,hscif-r8a7744 # RZ/G1N 29 30 - renesas,hscif-r8a7745 # RZ/G1E
+1
Documentation/devicetree/bindings/serial/renesas,scif.yaml
··· 33 33 34 34 - items: 35 35 - enum: 36 + - renesas,scif-r8a7742 # RZ/G1H 36 37 - renesas,scif-r8a7743 # RZ/G1M 37 38 - renesas,scif-r8a7744 # RZ/G1N 38 39 - renesas,scif-r8a7745 # RZ/G1E
+8 -7
Documentation/devicetree/bindings/serial/renesas,scifa.yaml
··· 24 24 25 25 - items: 26 26 - enum: 27 - - renesas,scifa-r8a7743 # R8A7743 RZ/G1M 28 - - renesas,scifa-r8a7744 # R8A7744 RZ/G1N 29 - - renesas,scifa-r8a7745 # R8A7745 RZ/G1E 30 - - renesas,scifa-r8a7790 # R8A7790 R-Car H2 31 - - renesas,scifa-r8a7791 # R8A7791 R-Car M2-W 32 - - renesas,scifa-r8a7793 # R8A7793 R-Car M2-N 33 - - renesas,scifa-r8a7794 # R8A7794 R-Car E2 27 + - renesas,scifa-r8a7742 # RZ/G1H 28 + - renesas,scifa-r8a7743 # RZ/G1M 29 + - renesas,scifa-r8a7744 # RZ/G1N 30 + - renesas,scifa-r8a7745 # RZ/G1E 31 + - renesas,scifa-r8a7790 # R-Car H2 32 + - renesas,scifa-r8a7791 # R-Car M2-W 33 + - renesas,scifa-r8a7793 # R-Car M2-N 34 + - renesas,scifa-r8a7794 # R-Car E2 34 35 - const: renesas,rcar-gen2-scifa # R-Car Gen2 and RZ/G1 35 36 - const: renesas,scifa # generic SCIFA compatible UART 36 37
+1
Documentation/devicetree/bindings/serial/renesas,scifb.yaml
··· 24 24 25 25 - items: 26 26 - enum: 27 + - renesas,scifb-r8a7742 # RZ/G1H 27 28 - renesas,scifb-r8a7743 # RZ/G1M 28 29 - renesas,scifb-r8a7744 # RZ/G1N 29 30 - renesas,scifb-r8a7745 # RZ/G1E
+21 -22
Documentation/devicetree/bindings/serial/rs485.yaml
··· 6 6 7 7 title: RS485 serial communications Bindings 8 8 9 - description: The RTS signal is capable of automatically controlling 10 - line direction for the built-in half-duplex mode. 11 - The properties described hereafter shall be given to a 12 - half-duplex capable UART node. 9 + description: The RTS signal is capable of automatically controlling line 10 + direction for the built-in half-duplex mode. The properties described 11 + hereafter shall be given to a half-duplex capable UART node. 13 12 14 13 maintainers: 15 - - Rob Herring <robh@kernel.org> 14 + - Rob Herring <robh@kernel.org> 16 15 17 16 properties: 18 17 rs485-rts-delay: 19 18 description: prop-encoded-array <a b> 20 - allOf: 21 - - $ref: /schemas/types.yaml#/definitions/uint32-array 22 - - items: 23 - items: 24 - - description: 25 - Delay between rts signal and beginning of data sent in milliseconds. 26 - It corresponds to the delay before sending data. 27 - default: 0 28 - maximum: 1000 29 - - description: 30 - Delay between end of data sent and rts signal in milliseconds. 31 - It corresponds to the delay after sending data and actual release of the line. 32 - default: 0 33 - maximum: 1000 19 + $ref: /schemas/types.yaml#/definitions/uint32-array 20 + items: 21 + items: 22 + - description: Delay between rts signal and beginning of data sent in 23 + milliseconds. It corresponds to the delay before sending data. 24 + default: 0 25 + maximum: 1000 26 + - description: Delay between end of data sent and rts signal in milliseconds. 27 + It corresponds to the delay after sending data and actual release 28 + of the line. 29 + default: 0 30 + maximum: 1000 34 31 35 32 rs485-rts-active-low: 36 33 description: drive RTS low when sending (default is high). 37 34 $ref: /schemas/types.yaml#/definitions/flag 38 35 39 36 linux,rs485-enabled-at-boot-time: 40 - description: enables the rs485 feature at boot time. It can be disabled later with proper ioctl. 37 + description: enables the rs485 feature at boot time. It can be disabled 38 + later with proper ioctl. 41 39 $ref: /schemas/types.yaml#/definitions/flag 42 40 43 41 rs485-rx-during-tx: 44 - description: enables the receiving of data even while sending data. 45 - $ref: /schemas/types.yaml#/definitions/flag 42 + description: enables the receiving of data even while sending data. 43 + $ref: /schemas/types.yaml#/definitions/flag 44 + ...
+2 -3
Documentation/devicetree/bindings/serial/samsung_uart.yaml
··· 51 51 52 52 samsung,uart-fifosize: 53 53 description: The fifo size supported by the UART channel. 54 - allOf: 55 - - $ref: /schemas/types.yaml#/definitions/uint32 56 - - enum: [16, 64, 256] 54 + $ref: /schemas/types.yaml#/definitions/uint32 55 + enum: [16, 64, 256] 57 56 58 57 required: 59 58 - compatible
+8
Documentation/devicetree/bindings/serial/serial.yaml
··· 67 67 (wired and enabled by pinmux configuration). This depends on both the 68 68 UART hardware and the board wiring. 69 69 70 + rx-tx-swap: 71 + type: boolean 72 + description: RX and TX pins are swapped. 73 + 74 + cts-rts-swap: 75 + type: boolean 76 + description: CTS and RTS pins are swapped. 77 + 70 78 if: 71 79 required: 72 80 - uart-has-rtscts
+1 -1
Documentation/devicetree/bindings/serial/sifive-serial.yaml
··· 55 55 compatible = "sifive,fu540-c000-uart", "sifive,uart0"; 56 56 interrupt-parent = <&plic0>; 57 57 interrupts = <80>; 58 - reg = <0x0 0x10010000 0x0 0x1000>; 58 + reg = <0x10010000 0x1000>; 59 59 clocks = <&prci PRCI_CLK_TLCLK>; 60 60 }; 61 61
+5 -5
Documentation/devicetree/bindings/soc/amlogic/amlogic,canvas.yaml
··· 26 26 compatible: 27 27 oneOf: 28 28 - items: 29 - - enum: 30 - - amlogic,meson8-canvas 31 - - amlogic,meson8b-canvas 32 - - amlogic,meson8m2-canvas 33 - - const: amlogic,canvas 29 + - enum: 30 + - amlogic,meson8-canvas 31 + - amlogic,meson8b-canvas 32 + - amlogic,meson8m2-canvas 33 + - const: amlogic,canvas 34 34 - const: amlogic,canvas # GXBB and newer SoCs 35 35 36 36 reg:
-94
Documentation/devicetree/bindings/soc/qcom/qcom,geni-se.txt
··· 1 - Qualcomm Technologies, Inc. GENI Serial Engine QUP Wrapper Controller 2 - 3 - Generic Interface (GENI) based Qualcomm Universal Peripheral (QUP) wrapper 4 - is a programmable module for supporting a wide range of serial interfaces 5 - like UART, SPI, I2C, I3C, etc. A single QUP module can provide upto 8 Serial 6 - Interfaces, using its internal Serial Engines. The GENI Serial Engine QUP 7 - Wrapper controller is modeled as a node with zero or more child nodes each 8 - representing a serial engine. 9 - 10 - Required properties: 11 - - compatible: Must be "qcom,geni-se-qup". 12 - - reg: Must contain QUP register address and length. 13 - - clock-names: Must contain "m-ahb" and "s-ahb". 14 - - clocks: AHB clocks needed by the device. 15 - 16 - Required properties if child node exists: 17 - - #address-cells: Must be <1> for Serial Engine Address 18 - - #size-cells: Must be <1> for Serial Engine Address Size 19 - - ranges: Must be present 20 - 21 - Properties for children: 22 - 23 - A GENI based QUP wrapper controller node can contain 0 or more child nodes 24 - representing serial devices. These serial devices can be a QCOM UART, I2C 25 - controller, SPI controller, or some combination of aforementioned devices. 26 - Please refer below the child node definitions for the supported serial 27 - interface protocols. 28 - 29 - Qualcomm Technologies Inc. GENI Serial Engine based I2C Controller 30 - 31 - Required properties: 32 - - compatible: Must be "qcom,geni-i2c". 33 - - reg: Must contain QUP register address and length. 34 - - interrupts: Must contain I2C interrupt. 35 - - clock-names: Must contain "se". 36 - - clocks: Serial engine core clock needed by the device. 37 - - #address-cells: Must be <1> for I2C device address. 38 - - #size-cells: Must be <0> as I2C addresses have no size component. 39 - 40 - Optional property: 41 - - clock-frequency: Desired I2C bus clock frequency in Hz. 42 - When missing default to 100000Hz. 43 - 44 - Child nodes should conform to I2C bus binding as described in i2c.txt. 45 - 46 - Qualcomm Technologies Inc. GENI Serial Engine based UART Controller 47 - 48 - Required properties: 49 - - compatible: Must be "qcom,geni-debug-uart" or "qcom,geni-uart". 50 - - reg: Must contain UART register location and length. 51 - - interrupts: Must contain UART core interrupts. 52 - - clock-names: Must contain "se". 53 - - clocks: Serial engine core clock needed by the device. 54 - 55 - Qualcomm Technologies Inc. GENI Serial Engine based SPI Controller 56 - node binding is described in 57 - Documentation/devicetree/bindings/spi/qcom,spi-geni-qcom.txt. 58 - 59 - Example: 60 - geniqup@8c0000 { 61 - compatible = "qcom,geni-se-qup"; 62 - reg = <0x8c0000 0x6000>; 63 - clock-names = "m-ahb", "s-ahb"; 64 - clocks = <&clock_gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>, 65 - <&clock_gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>; 66 - #address-cells = <1>; 67 - #size-cells = <1>; 68 - ranges; 69 - 70 - i2c0: i2c@a94000 { 71 - compatible = "qcom,geni-i2c"; 72 - reg = <0xa94000 0x4000>; 73 - interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>; 74 - clock-names = "se"; 75 - clocks = <&clock_gcc GCC_QUPV3_WRAP0_S5_CLK>; 76 - pinctrl-names = "default", "sleep"; 77 - pinctrl-0 = <&qup_1_i2c_5_active>; 78 - pinctrl-1 = <&qup_1_i2c_5_sleep>; 79 - #address-cells = <1>; 80 - #size-cells = <0>; 81 - }; 82 - 83 - uart0: serial@a88000 { 84 - compatible = "qcom,geni-debug-uart"; 85 - reg = <0xa88000 0x7000>; 86 - interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>; 87 - clock-names = "se"; 88 - clocks = <&clock_gcc GCC_QUPV3_WRAP0_S0_CLK>; 89 - pinctrl-names = "default", "sleep"; 90 - pinctrl-0 = <&qup_1_uart_3_active>; 91 - pinctrl-1 = <&qup_1_uart_3_sleep>; 92 - }; 93 - 94 - }
+225
Documentation/devicetree/bindings/soc/qcom/qcom,geni-se.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: "http://devicetree.org/schemas/soc/qcom/qcom,geni-se.yaml#" 5 + $schema: "http://devicetree.org/meta-schemas/core.yaml#" 6 + 7 + title: GENI Serial Engine QUP Wrapper Controller 8 + 9 + maintainers: 10 + - Mukesh Savaliya <msavaliy@codeaurora.org> 11 + - Akash Asthana <akashast@codeaurora.org> 12 + 13 + description: | 14 + Generic Interface (GENI) based Qualcomm Universal Peripheral (QUP) wrapper 15 + is a programmable module for supporting a wide range of serial interfaces 16 + like UART, SPI, I2C, I3C, etc. A single QUP module can provide upto 8 Serial 17 + Interfaces, using its internal Serial Engines. The GENI Serial Engine QUP 18 + Wrapper controller is modeled as a node with zero or more child nodes each 19 + representing a serial engine. 20 + 21 + properties: 22 + compatible: 23 + enum: 24 + - qcom,geni-se-qup 25 + 26 + reg: 27 + description: QUP wrapper common register address and length. 28 + maxItems: 1 29 + 30 + clock-names: 31 + items: 32 + - const: m-ahb 33 + - const: s-ahb 34 + 35 + clocks: 36 + items: 37 + - description: Master AHB Clock 38 + - description: Slave AHB Clock 39 + 40 + "#address-cells": 41 + const: 2 42 + 43 + "#size-cells": 44 + const: 2 45 + 46 + ranges: true 47 + 48 + interconnects: 49 + maxItems: 1 50 + 51 + interconnect-names: 52 + const: qup-core 53 + 54 + required: 55 + - compatible 56 + - reg 57 + - clock-names 58 + - clocks 59 + - "#address-cells" 60 + - "#size-cells" 61 + - ranges 62 + 63 + patternProperties: 64 + "^.*@[0-9a-f]+$": 65 + type: object 66 + description: Common properties for GENI Serial Engine based I2C, SPI and 67 + UART controller. 68 + 69 + properties: 70 + reg: 71 + description: GENI Serial Engine register address and length. 72 + maxItems: 1 73 + 74 + clock-names: 75 + const: se 76 + 77 + clocks: 78 + description: Serial engine core clock needed by the device. 79 + maxItems: 1 80 + 81 + interconnects: 82 + minItems: 2 83 + maxItems: 3 84 + 85 + interconnect-names: 86 + minItems: 2 87 + items: 88 + - const: qup-core 89 + - const: qup-config 90 + - const: qup-memory 91 + 92 + required: 93 + - reg 94 + - clock-names 95 + - clocks 96 + 97 + "spi@[0-9a-f]+$": 98 + type: object 99 + description: GENI serial engine based SPI controller. SPI in master mode 100 + supports up to 50MHz, up to four chip selects, programmable 101 + data path from 4 bits to 32 bits and numerous protocol 102 + variants. 103 + allOf: 104 + - $ref: /spi/spi-controller.yaml# 105 + 106 + properties: 107 + compatible: 108 + enum: 109 + - qcom,geni-spi 110 + 111 + interrupts: 112 + maxItems: 1 113 + 114 + "#address-cells": 115 + const: 1 116 + 117 + "#size-cells": 118 + const: 0 119 + 120 + required: 121 + - compatible 122 + - interrupts 123 + - "#address-cells" 124 + - "#size-cells" 125 + 126 + "i2c@[0-9a-f]+$": 127 + type: object 128 + description: GENI serial engine based I2C controller. 129 + allOf: 130 + - $ref: /schemas/i2c/i2c-controller.yaml# 131 + 132 + properties: 133 + compatible: 134 + enum: 135 + - qcom,geni-i2c 136 + 137 + interrupts: 138 + maxItems: 1 139 + 140 + "#address-cells": 141 + const: 1 142 + 143 + "#size-cells": 144 + const: 0 145 + 146 + clock-frequency: 147 + description: Desired I2C bus clock frequency in Hz. 148 + default: 100000 149 + 150 + required: 151 + - compatible 152 + - interrupts 153 + - "#address-cells" 154 + - "#size-cells" 155 + 156 + "serial@[0-9a-f]+$": 157 + type: object 158 + description: GENI Serial Engine based UART Controller. 159 + allOf: 160 + - $ref: /schemas/serial.yaml# 161 + 162 + properties: 163 + compatible: 164 + enum: 165 + - qcom,geni-uart 166 + - qcom,geni-debug-uart 167 + 168 + interrupts: 169 + minItems: 1 170 + maxItems: 2 171 + items: 172 + - description: UART core irq 173 + - description: Wakeup irq (RX GPIO) 174 + 175 + required: 176 + - compatible 177 + - interrupts 178 + 179 + 180 + examples: 181 + - | 182 + #include <dt-bindings/clock/qcom,gcc-sdm845.h> 183 + #include <dt-bindings/interrupt-controller/arm-gic.h> 184 + 185 + soc { 186 + #address-cells = <2>; 187 + #size-cells = <2>; 188 + 189 + geniqup@8c0000 { 190 + compatible = "qcom,geni-se-qup"; 191 + reg = <0 0x008c0000 0 0x6000>; 192 + clock-names = "m-ahb", "s-ahb"; 193 + clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>, 194 + <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>; 195 + #address-cells = <2>; 196 + #size-cells = <2>; 197 + ranges; 198 + 199 + i2c0: i2c@a94000 { 200 + compatible = "qcom,geni-i2c"; 201 + reg = <0 0xa94000 0 0x4000>; 202 + interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>; 203 + clock-names = "se"; 204 + clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>; 205 + pinctrl-names = "default", "sleep"; 206 + pinctrl-0 = <&qup_1_i2c_5_active>; 207 + pinctrl-1 = <&qup_1_i2c_5_sleep>; 208 + #address-cells = <1>; 209 + #size-cells = <0>; 210 + }; 211 + 212 + uart0: serial@a88000 { 213 + compatible = "qcom,geni-uart"; 214 + reg = <0 0xa88000 0 0x7000>; 215 + interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>; 216 + clock-names = "se"; 217 + clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>; 218 + pinctrl-names = "default", "sleep"; 219 + pinctrl-0 = <&qup_1_uart_3_active>; 220 + pinctrl-1 = <&qup_1_uart_3_sleep>; 221 + }; 222 + }; 223 + }; 224 + 225 + ...
+9 -11
Documentation/devicetree/bindings/sound/adi,adau7118.yaml
··· 35 35 adi,decimation-ratio: 36 36 description: | 37 37 This property set's the decimation ratio of PDM to PCM audio data. 38 - allOf: 39 - - $ref: /schemas/types.yaml#/definitions/uint32 40 - - enum: [64, 32, 16] 41 - default: 64 38 + $ref: /schemas/types.yaml#/definitions/uint32 39 + enum: [64, 32, 16] 40 + default: 64 42 41 43 42 adi,pdm-clk-map: 44 43 description: | 45 44 The ADAU7118 has two PDM clocks for the four Inputs. Each input must be 46 45 assigned to one of these two clocks. This property set's the mapping 47 46 between the clocks and the inputs. 48 - allOf: 49 - - $ref: /schemas/types.yaml#/definitions/uint32-array 50 - - minItems: 4 51 - maxItems: 4 52 - items: 53 - maximum: 1 54 - default: [0, 0, 1, 1] 47 + $ref: /schemas/types.yaml#/definitions/uint32-array 48 + minItems: 4 49 + maxItems: 4 50 + items: 51 + maximum: 1 52 + default: [0, 0, 1, 1] 55 53 56 54 required: 57 55 - "#sound-dai-cells"
+23 -24
Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-codec.yaml
··· 57 57 A list of the connections between audio components. Each entry 58 58 is a pair of strings, the first being the connection's sink, the 59 59 second being the connection's source. 60 - allOf: 61 - - $ref: /schemas/types.yaml#definitions/non-unique-string-array 62 - - minItems: 2 63 - maxItems: 18 64 - items: 65 - enum: 66 - # Audio Pins on the SoC 67 - - HP 68 - - HPCOM 69 - - LINEIN 70 - - LINEOUT 71 - - MIC1 72 - - MIC2 73 - - MIC3 60 + $ref: /schemas/types.yaml#definitions/non-unique-string-array 61 + minItems: 2 62 + maxItems: 18 63 + items: 64 + enum: 65 + # Audio Pins on the SoC 66 + - HP 67 + - HPCOM 68 + - LINEIN 69 + - LINEOUT 70 + - MIC1 71 + - MIC2 72 + - MIC3 74 73 75 - # Microphone Biases from the SoC 76 - - HBIAS 77 - - MBIAS 74 + # Microphone Biases from the SoC 75 + - HBIAS 76 + - MBIAS 78 77 79 - # Board Connectors 80 - - Headphone 81 - - Headset Mic 82 - - Line In 83 - - Line Out 84 - - Mic 85 - - Speaker 78 + # Board Connectors 79 + - Headphone 80 + - Headset Mic 81 + - Line In 82 + - Line Out 83 + - Mic 84 + - Speaker 86 85 87 86 allwinner,codec-analog-controls: 88 87 $ref: /schemas/types.yaml#/definitions/phandle
+1 -2
Documentation/devicetree/bindings/sound/amlogic,aiu.yaml
··· 86 86 aiu: audio-controller@5400 { 87 87 compatible = "amlogic,aiu-gxl", "amlogic,aiu"; 88 88 #sound-dai-cells = <2>; 89 - reg = <0x0 0x5400 0x0 0x2ac>; 89 + reg = <0x5400 0x2ac>; 90 90 interrupts = <GIC_SPI 48 IRQ_TYPE_EDGE_RISING>, 91 91 <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>; 92 92 interrupt-names = "i2s", "spdif"; ··· 110 110 "spdif_mclk_sel"; 111 111 resets = <&reset RESET_AIU>; 112 112 }; 113 -
+1 -1
Documentation/devicetree/bindings/sound/amlogic,g12a-toacodec.yaml
··· 45 45 46 46 toacodec: audio-controller@740 { 47 47 compatible = "amlogic,g12a-toacodec"; 48 - reg = <0x0 0x740 0x0 0x4>; 48 + reg = <0x740 0x4>; 49 49 #sound-dai-cells = <1>; 50 50 resets = <&clkc_audio AUD_RESET_TOACODEC>; 51 51 };
+1 -2
Documentation/devicetree/bindings/sound/amlogic,t9015.yaml
··· 49 49 50 50 acodec: audio-controller@32000 { 51 51 compatible = "amlogic,t9015"; 52 - reg = <0x0 0x32000 0x0 0x14>; 52 + reg = <0x32000 0x14>; 53 53 #sound-dai-cells = <0>; 54 54 clocks = <&clkc CLKID_AUDIO_CODEC>; 55 55 clock-names = "pclk"; 56 56 resets = <&reset RESET_AUDIO_CODEC>; 57 57 }; 58 -
-39
Documentation/devicetree/bindings/sound/cirrus,lochnagar.txt
··· 1 - Cirrus Logic Lochnagar Audio Development Board 2 - 3 - Lochnagar is an evaluation and development board for Cirrus Logic 4 - Smart CODEC and Amp devices. It allows the connection of most Cirrus 5 - Logic devices on mini-cards, as well as allowing connection of 6 - various application processor systems to provide a full evaluation 7 - platform. Audio system topology, clocking and power can all be 8 - controlled through the Lochnagar, allowing the device under test 9 - to be used in a variety of possible use cases. 10 - 11 - This binding document describes the binding for the audio portion 12 - of the driver. 13 - 14 - This binding must be part of the Lochnagar MFD binding: 15 - [4] ../mfd/cirrus,lochnagar.txt 16 - 17 - Required properties: 18 - 19 - - compatible : One of the following strings: 20 - "cirrus,lochnagar2-soundcard" 21 - 22 - - #sound-dai-cells : Must be set to 1. 23 - 24 - - clocks : Contains an entry for each entry in clock-names. 25 - - clock-names : Must include the following clocks: 26 - "mclk" Master clock source for the sound card, should normally 27 - be set to LOCHNAGAR_SOUNDCARD_MCLK provided by the Lochnagar 28 - clock driver. 29 - 30 - Example: 31 - 32 - lochnagar-sc { 33 - compatible = "cirrus,lochnagar2-soundcard"; 34 - 35 - #sound-dai-cells = <1>; 36 - 37 - clocks = <&lochnagar_clk LOCHNAGAR_SOUNDCARD_MCLK>; 38 - clock-names = "mclk"; 39 - };
+52
Documentation/devicetree/bindings/sound/cirrus,lochnagar.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/sound/cirrus,lochnagar.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Cirrus Logic Lochnagar Audio Development Board 8 + 9 + maintainers: 10 + - patches@opensource.cirrus.com 11 + 12 + description: | 13 + Lochnagar is an evaluation and development board for Cirrus Logic 14 + Smart CODEC and Amp devices. It allows the connection of most Cirrus 15 + Logic devices on mini-cards, as well as allowing connection of various 16 + application processor systems to provide a full evaluation platform. 17 + Audio system topology, clocking and power can all be controlled through 18 + the Lochnagar, allowing the device under test to be used in a variety of 19 + possible use cases. 20 + 21 + This binding document describes the binding for the audio portion of the 22 + driver. 23 + 24 + This binding must be part of the Lochnagar MFD binding: 25 + [1] ../mfd/cirrus,lochnagar.yaml 26 + 27 + properties: 28 + compatible: 29 + enum: 30 + - cirrus,lochnagar2-soundcard 31 + 32 + '#sound-dai-cells': 33 + description: 34 + The first cell indicating the audio interface. 35 + const: 1 36 + 37 + clocks: 38 + description: 39 + Master clock source for the sound card, should normally be set to 40 + LOCHNAGAR_SOUNDCARD_MCLK provided by the Lochnagar clock driver. 41 + maxItems: 1 42 + 43 + clock-names: 44 + const: mclk 45 + 46 + required: 47 + - compatible 48 + - '#sound-dai-cells' 49 + - clocks 50 + - clock-names 51 + 52 + additionalProperties: false
+113
Documentation/devicetree/bindings/sound/cirrus,madera.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/sound/cirrus,madera.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Cirrus Logic Madera class audio CODECs 8 + 9 + maintainers: 10 + - patches@opensource.cirrus.com 11 + 12 + description: | 13 + This describes audio configuration bindings for these codecs. 14 + 15 + See also the core bindings for the parent MFD driver: 16 + 17 + Documentation/devicetree/bindings/mfd/cirrus,madera.yaml 18 + 19 + and defines for values used in these bindings: 20 + 21 + include/dt-bindings/sound/madera.h 22 + 23 + The properties are all contained in the parent MFD node. 24 + 25 + properties: 26 + '#sound-dai-cells': 27 + description: 28 + The first cell indicating the audio interface. 29 + const: 1 30 + 31 + cirrus,inmode: 32 + description: 33 + A list of input mode settings for each input. A maximum 34 + of 24 cells, with four cells per input in the order INnAL, 35 + INnAR INnBL INnBR. For non-muxed inputs the first two cells 36 + for that input set the mode for the left and right channel 37 + and the second two cells must be 0. For muxed inputs the 38 + first two cells for that input set the mode of the left and 39 + right A inputs and the second two cells set the mode of the 40 + left and right B inputs. Valid mode values are one of the 41 + MADERA_INMODE_xxx. If the array is shorter than the number 42 + of inputs the unspecified inputs default to MADERA_INMODE_DIFF. 43 + $ref: /schemas/types.yaml#/definitions/uint32-array 44 + minItems: 1 45 + maxItems: 24 46 + items: 47 + minimum: 0 48 + maximum: 1 49 + default: 0 50 + 51 + cirrus,out-mono: 52 + description: 53 + Mono bit for each output, maximum of six cells if the array 54 + is shorter outputs will be set to stereo. 55 + $ref: /schemas/types.yaml#/definitions/uint32-array 56 + minItems: 1 57 + maxItems: 6 58 + items: 59 + minimum: 0 60 + maximum: 1 61 + default: 0 62 + 63 + cirrus,dmic-ref: 64 + description: | 65 + Indicates how the MICBIAS pins have been externally connected 66 + to DMICs on each input, one cell per input. 67 + 68 + <IN1 IN2 IN3 ...> 69 + 70 + A value of 0 indicates MICVDD and is the default, 71 + other values depend on the codec: For CS47L35 one of the 72 + CS47L35_DMIC_REF_xxx values For all other codecs one of 73 + the MADERA_DMIC_REF_xxx values Also see the datasheet for a 74 + description of the INn_DMIC_SUP field. 75 + $ref: /schemas/types.yaml#/definitions/uint32-array 76 + minItems: 1 77 + maxItems: 6 78 + items: 79 + minimum: 0 80 + maximum: 3 81 + default: 0 82 + 83 + cirrus,max-channels-clocked: 84 + description: 85 + Maximum number of channels that I2S clocks will be generated 86 + for. Useful when clock master for systems where the I2S bus 87 + has multiple data lines. One cell for each AIF, use a value 88 + of zero for AIFs that should be handled normally. 89 + $ref: /schemas/types.yaml#/definitions/uint32-array 90 + minItems: 1 91 + maxItems: 4 92 + items: 93 + default: 0 94 + 95 + cirrus,pdm-fmt: 96 + description: 97 + PDM speaker data format, must contain 2 cells (OUT5 and 98 + OUT6). See the PDM_SPKn_FMT field in the datasheet for a 99 + description of this value. The second cell is ignored for 100 + codecs that do not have OUT6. 101 + $ref: /schemas/types.yaml#/definitions/uint32-array 102 + minItems: 2 103 + maxItems: 2 104 + 105 + cirrus,pdm-mute: 106 + description: | 107 + PDM mute format, must contain 2 cells (OUT5 and OUT6). See the 108 + PDM_SPKn_CTRL_1 register in the datasheet for a description 109 + of this value. The second cell is ignored for codecs that 110 + do not have OUT6. 111 + $ref: /schemas/types.yaml#/definitions/uint32-array 112 + minItems: 2 113 + maxItems: 2
-67
Documentation/devicetree/bindings/sound/madera.txt
··· 1 - Cirrus Logic Madera class audio codecs 2 - 3 - This describes audio configuration bindings for these codecs. 4 - 5 - See also the core bindings for the parent MFD driver: 6 - See Documentation/devicetree/bindings/mfd/madera.txt 7 - 8 - and defines for values used in these bindings: 9 - include/dt-bindings/sound/madera.h 10 - 11 - These properties are all contained in the parent MFD node. 12 - 13 - Optional properties: 14 - - cirrus,dmic-ref : Indicates how the MICBIAS pins have been externally 15 - connected to DMICs on each input, one cell per input. 16 - <IN1 IN2 IN3 ...> 17 - A value of 0 indicates MICVDD and is the default, other values depend on the 18 - codec: 19 - For CS47L35 one of the CS47L35_DMIC_REF_xxx values 20 - For all other codecs one of the MADERA_DMIC_REF_xxx values 21 - Also see the datasheet for a description of the INn_DMIC_SUP field. 22 - 23 - - cirrus,inmode : A list of input mode settings for each input. A maximum of 24 - 16 cells, with four cells per input in the order INnAL, INnAR INnBL INnBR. 25 - For non-muxed inputs the first two cells for that input set the mode for 26 - the left and right channel and the second two cells must be 0. 27 - For muxed inputs the first two cells for that input set the mode of the 28 - left and right A inputs and the second two cells set the mode of the left 29 - and right B inputs. 30 - Valid mode values are one of the MADERA_INMODE_xxx. If the array is shorter 31 - than the number of inputs the unspecified inputs default to 32 - MADERA_INMODE_DIFF. 33 - 34 - - cirrus,out-mono : Mono bit for each output, maximum of six cells if the 35 - array is shorter outputs will be set to stereo. 36 - 37 - - cirrus,max-channels-clocked : Maximum number of channels that I2S clocks 38 - will be generated for. Useful when clock master for systems where the I2S 39 - bus has multiple data lines. 40 - One cell for each AIF, use a value of zero for AIFs that should be handled 41 - normally. 42 - 43 - - cirrus,pdm-fmt : PDM speaker data format, must contain 2 cells 44 - (OUT5 and OUT6). See the PDM_SPKn_FMT field in the datasheet for a 45 - description of this value. 46 - The second cell is ignored for codecs that do not have OUT6. 47 - 48 - - cirrus,pdm-mute : PDM mute format, must contain 2 cells 49 - (OUT5 and OUT6). See the PDM_SPKn_CTRL_1 register in the datasheet for a 50 - description of this value. 51 - The second cell is ignored for codecs that do not have OUT6. 52 - 53 - Example: 54 - 55 - cs47l35@0 { 56 - compatible = "cirrus,cs47l35"; 57 - 58 - cirrus,dmic-ref = <0 0 CS47L35_DMIC_REF_MICBIAS1B 0>; 59 - cirrus,inmode = < 60 - MADERA_INMODE_DMIC MADERA_INMODE_DMIC /* IN1A digital */ 61 - MADERA_INMODE_SE MADERA_INMODE_SE /* IN1B single-ended */ 62 - MADERA_INMODE_DIFF MADERA_INMODE_DIFF /* IN2 differential */ 63 - 0 0 /* not used on this codec */ 64 - >; 65 - cirrus,out-mono = <0 0 0 0 0 0>; 66 - cirrus,max-channels-clocked = <2 0 0>; 67 - };
+1 -2
Documentation/devicetree/bindings/sound/qcom,wcd934x.yaml
··· 102 102 103 103 gpio@42: 104 104 type: object 105 - allOf: 106 - - $ref: ../gpio/qcom,wcd934x-gpio.yaml# 105 + $ref: ../gpio/qcom,wcd934x-gpio.yaml# 107 106 108 107 patternProperties: 109 108 "^.*@[0-9a-f]+$":
+29 -12
Documentation/devicetree/bindings/sound/renesas,fsi.yaml
··· 4 4 $id: http://devicetree.org/schemas/sound/renesas,fsi.yaml# 5 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 6 6 7 - title: Renesas FSI Sound Driver Device Tree Bindings 7 + title: Renesas FIFO-buffered Serial Interface (FSI) 8 8 9 9 maintainers: 10 10 - Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> ··· 17 17 oneOf: 18 18 # for FSI2 SoC 19 19 - items: 20 - - enum: 21 - - renesas,fsi2-sh73a0 22 - - renesas,fsi2-r8a7740 23 - - enum: 24 - - renesas,sh_fsi2 20 + - enum: 21 + - renesas,fsi2-sh73a0 # SH-Mobile AG5 22 + - renesas,fsi2-r8a7740 # R-Mobile A1 23 + - enum: 24 + - renesas,sh_fsi2 25 25 # for Generic 26 26 - items: 27 - - enum: 28 - - renesas,sh_fsi 29 - - renesas,sh_fsi2 27 + - enum: 28 + - renesas,sh_fsi 29 + - renesas,sh_fsi2 30 30 31 31 reg: 32 32 maxItems: 1 33 33 34 34 interrupts: 35 35 maxItems: 1 36 + 37 + clocks: 38 + maxItems: 1 39 + 40 + power-domains: 41 + maxItems: 1 42 + 43 + '#sound-dai-cells': 44 + const: 1 36 45 37 46 fsia,spdif-connection: 38 47 $ref: /schemas/types.yaml#/definitions/flag ··· 71 62 - compatible 72 63 - reg 73 64 - interrupts 65 + - clocks 66 + - power-domains 67 + - '#sound-dai-cells' 74 68 75 69 additionalProperties: false 76 70 77 71 examples: 78 72 - | 79 - sh_fsi2: sound@ec230000 { 73 + #include <dt-bindings/clock/r8a7740-clock.h> 74 + #include <dt-bindings/interrupt-controller/arm-gic.h> 75 + sh_fsi2: sound@fe1f0000 { 80 76 compatible = "renesas,fsi2-r8a7740", "renesas,sh_fsi2"; 81 - reg = <0xec230000 0x400>; 82 - interrupts = <0 146 0x4>; 77 + reg = <0xfe1f0000 0x400>; 78 + interrupts = <GIC_SPI 9 0x4>; 79 + clocks = <&mstp3_clks R8A7740_CLK_FSI>; 80 + power-domains = <&pd_a4mp>; 83 81 82 + #sound-dai-cells = <1>; 84 83 fsia,spdif-connection; 85 84 fsia,stream-mode-support; 86 85 fsia,use-internal-clock;
+2 -4
Documentation/devicetree/bindings/sound/rockchip-i2s.yaml
··· 62 62 maxItems: 1 63 63 64 64 rockchip,capture-channels: 65 - allOf: 66 - - $ref: /schemas/types.yaml#/definitions/uint32 65 + $ref: /schemas/types.yaml#/definitions/uint32 67 66 default: 2 68 67 description: 69 68 Max capture channels, if not set, 2 channels default. 70 69 71 70 rockchip,playback-channels: 72 - allOf: 73 - - $ref: /schemas/types.yaml#/definitions/uint32 71 + $ref: /schemas/types.yaml#/definitions/uint32 74 72 default: 8 75 73 description: 76 74 Max playback channels, if not set, 8 channels default.
+4 -6
Documentation/devicetree/bindings/sound/tlv320adcx140.yaml
··· 49 49 0 - Mic bias is set to VREF 50 50 1 - Mic bias is set to VREF × 1.096 51 51 6 - Mic bias is set to AVDD 52 - allOf: 53 - - $ref: /schemas/types.yaml#/definitions/uint32 54 - - enum: [0, 1, 6] 52 + $ref: /schemas/types.yaml#/definitions/uint32 53 + enum: [0, 1, 6] 55 54 56 55 ti,vref-source: 57 56 description: | ··· 58 59 0 - Set VREF to 2.75V 59 60 1 - Set VREF to 2.5V 60 61 2 - Set VREF to 1.375V 61 - allOf: 62 - - $ref: /schemas/types.yaml#/definitions/uint32 63 - - enum: [0, 1, 2] 62 + $ref: /schemas/types.yaml#/definitions/uint32 63 + enum: [0, 1, 2] 64 64 65 65 ti,pdm-edge-select: 66 66 description: |
-53
Documentation/devicetree/bindings/sound/wlf,arizona.txt
··· 1 - Cirrus Logic Arizona class audio SoCs 2 - 3 - These devices are audio SoCs with extensive digital capabilities and a range 4 - of analogue I/O. 5 - 6 - This document lists sound specific bindings, see the primary binding 7 - document: 8 - ../mfd/arizona.txt 9 - 10 - Optional properties: 11 - 12 - - wlf,inmode : A list of INn_MODE register values, where n is the number 13 - of input signals. Valid values are 0 (Differential), 1 (Single-ended) and 14 - 2 (Digital Microphone). If absent, INn_MODE registers set to 0 by default. 15 - If present, values must be specified less than or equal to the number of 16 - input signals. If values less than the number of input signals, elements 17 - that have not been specified are set to 0 by default. Entries are: 18 - <IN1, IN2, IN3, IN4> (wm5102, wm5110, wm8280, wm8997) 19 - <IN1A, IN2A, IN1B, IN2B> (wm8998, wm1814) 20 - - wlf,out-mono : A list of boolean values indicating whether each output is 21 - mono or stereo. Position within the list indicates the output affected 22 - (eg. First entry in the list corresponds to output 1). A non-zero value 23 - indicates a mono output. If present, the number of values should be less 24 - than or equal to the number of outputs, if less values are supplied the 25 - additional outputs will be treated as stereo. 26 - 27 - - wlf,dmic-ref : DMIC reference voltage source for each input, can be 28 - selected from either MICVDD or one of the MICBIAS's, defines 29 - (ARIZONA_DMIC_xxxx) are provided in <dt-bindings/mfd/arizona.txt>. If 30 - present, the number of values should be less than or equal to the 31 - number of inputs, unspecified inputs will use the chip default. 32 - 33 - - wlf,max-channels-clocked : The maximum number of channels to be clocked on 34 - each AIF, useful for I2S systems with multiple data lines being mastered. 35 - Specify one cell for each AIF to be configured, specify zero for AIFs that 36 - should be handled normally. 37 - If present, number of cells must be less than or equal to the number of 38 - AIFs. If less than the number of AIFs, for cells that have not been 39 - specified the corresponding AIFs will be treated as default setting. 40 - 41 - - wlf,spk-fmt : PDM speaker data format, must contain 2 cells (OUT5 and OUT6). 42 - See the datasheet for values. 43 - The second cell is ignored for codecs that do not have OUT6 (wm5102, wm8997, 44 - wm8998, wm1814) 45 - 46 - - wlf,spk-mute : PDM speaker mute setting, must contain 2 cells (OUT5 and OUT6). 47 - See the datasheet for values. 48 - The second cell is ignored for codecs that do not have OUT6 (wm5102, wm8997, 49 - wm8998, wm1814) 50 - 51 - - wlf,out-volume-limit : The volume limit value that should be applied to each 52 - output channel. See the datasheet for exact values. Channels are specified 53 - in the order OUT1L, OUT1R, OUT2L, OUT2R, etc.
+114
Documentation/devicetree/bindings/sound/wlf,arizona.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/sound/wlf,arizona.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Cirrus Logic/Wolfson Microelectronics Arizona class audio SoCs 8 + 9 + maintainers: 10 + - patches@opensource.cirrus.com 11 + 12 + description: | 13 + These devices are audio SoCs with extensive digital capabilities and a range 14 + of analogue I/O. 15 + 16 + This document lists sound specific bindings, see the primary binding 17 + document ../mfd/arizona.yaml 18 + 19 + properties: 20 + '#sound-dai-cells': 21 + description: 22 + The first cell indicating the audio interface. 23 + const: 1 24 + 25 + wlf,inmode: 26 + description: 27 + A list of INn_MODE register values, where n is the number of input 28 + signals. Valid values are 0 (Differential), 1 (Single-ended) and 29 + 2 (Digital Microphone). If absent, INn_MODE registers set to 0 by 30 + default. If present, values must be specified less than or equal 31 + to the number of input signals. If values less than the number of 32 + input signals, elements that have not been specified are set to 0 by 33 + default. Entries are <IN1, IN2, IN3, IN4> (wm5102, wm5110, wm8280, 34 + wm8997) and <IN1A, IN2A, IN1B, IN2B> (wm8998, wm1814) 35 + $ref: /schemas/types.yaml#/definitions/uint32-array 36 + minItems: 1 37 + maxItems: 4 38 + items: 39 + minimum: 0 40 + maximum: 2 41 + default: 0 42 + 43 + wlf,out-mono: 44 + description: 45 + A list of boolean values indicating whether each output is mono 46 + or stereo. Position within the list indicates the output affected 47 + (eg. First entry in the list corresponds to output 1). A non-zero 48 + value indicates a mono output. If present, the number of values 49 + should be less than or equal to the number of outputs, if less values 50 + are supplied the additional outputs will be treated as stereo. 51 + $ref: /schemas/types.yaml#/definitions/uint32-array 52 + minItems: 1 53 + maxItems: 6 54 + items: 55 + minimum: 0 56 + maximum: 1 57 + default: 0 58 + 59 + wlf,dmic-ref: 60 + description: 61 + DMIC reference voltage source for each input, can be selected from 62 + either MICVDD or one of the MICBIAS's, defines (ARIZONA_DMIC_xxxx) 63 + are provided in dt-bindings/mfd/arizona.h. If present, the number 64 + of values should be less than or equal to the number of inputs, 65 + unspecified inputs will use the chip default. 66 + $ref: /schemas/types.yaml#/definitions/uint32-array 67 + minItems: 1 68 + maxItems: 4 69 + items: 70 + minimum: 0 71 + maximum: 3 72 + default: 0 73 + 74 + wlf,max-channels-clocked: 75 + description: 76 + The maximum number of channels to be clocked on each AIF, useful for 77 + I2S systems with multiple data lines being mastered. Specify one 78 + cell for each AIF to be configured, specify zero for AIFs that should 79 + be handled normally. If present, number of cells must be less than 80 + or equal to the number of AIFs. If less than the number of AIFs, for 81 + cells that have not been specified the corresponding AIFs will be 82 + treated as default setting. 83 + $ref: /schemas/types.yaml#/definitions/uint32-array 84 + minItems: 1 85 + maxItems: 3 86 + items: 87 + default: 0 88 + 89 + wlf,spk-fmt: 90 + description: 91 + PDM speaker data format, must contain 2 cells (OUT5 and OUT6). See 92 + the datasheet for values. The second cell is ignored for codecs that 93 + do not have OUT6 (wm5102, wm8997, wm8998, wm1814) 94 + $ref: /schemas/types.yaml#/definitions/uint32-array 95 + minItems: 2 96 + maxItems: 2 97 + 98 + wlf,spk-mute: 99 + description: 100 + PDM speaker mute setting, must contain 2 cells (OUT5 and OUT6). See 101 + the datasheet for values. The second cell is ignored for codecs that 102 + do not have OUT6 (wm5102, wm8997, wm8998, wm1814) 103 + $ref: /schemas/types.yaml#/definitions/uint32-array 104 + minItems: 2 105 + maxItems: 2 106 + 107 + wlf,out-volume-limit: 108 + description: 109 + The volume limit value that should be applied to each output 110 + channel. See the datasheet for exact values. Channels are specified 111 + in the order OUT1L, OUT1R, OUT2L, OUT2R, etc. 112 + $ref: /schemas/types.yaml#/definitions/uint32-array 113 + minItems: 1 114 + maxItems: 12
+58
Documentation/devicetree/bindings/spi/marvell,mmp2-ssp.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + # Copyright 2019,2020 Lubomir Rintel <lkundrak@v3.sk> 3 + %YAML 1.2 4 + --- 5 + $id: http://devicetree.org/schemas/spi/marvell,mmp2-ssp.yaml# 6 + $schema: http://devicetree.org/meta-schemas/core.yaml# 7 + 8 + title: PXA2xx SSP SPI Controller bindings 9 + 10 + maintainers: 11 + - Lubomir Rintel <lkundrak@v3.sk> 12 + 13 + allOf: 14 + - $ref: spi-controller.yaml# 15 + 16 + properties: 17 + compatible: 18 + const: marvell,mmp2-ssp 19 + 20 + interrupts: 21 + maxItems: 1 22 + 23 + reg: 24 + maxItems: 1 25 + 26 + clocks: 27 + maxItems: 1 28 + 29 + ready-gpios: 30 + description: | 31 + GPIO used to signal a SPI master that the FIFO is filled and we're 32 + ready to service a transfer. Only useful in slave mode. 33 + maxItems: 1 34 + 35 + required: 36 + - compatible 37 + - reg 38 + - interrupts 39 + - clocks 40 + 41 + dependencies: 42 + ready-gpios: [ spi-slave ] 43 + 44 + unevaluatedProperties: false 45 + 46 + examples: 47 + - | 48 + #include <dt-bindings/clock/marvell,mmp2.h> 49 + spi@d4035000 { 50 + compatible = "marvell,mmp2-ssp"; 51 + #address-cells = <1>; 52 + #size-cells = <0>; 53 + reg = <0xd4035000 0x1000>; 54 + clocks = <&soc_clocks MMP2_CLK_SSP0>; 55 + interrupts = <0>; 56 + }; 57 + 58 + ...
+5 -5
Documentation/devicetree/bindings/spi/qcom,spi-qcom-qspi.yaml
··· 8 8 title: Qualcomm Quad Serial Peripheral Interface (QSPI) 9 9 10 10 maintainers: 11 - - Mukesh Savaliya <msavaliy@codeaurora.org> 12 - - Akash Asthana <akashast@codeaurora.org> 11 + - Mukesh Savaliya <msavaliy@codeaurora.org> 12 + - Akash Asthana <akashast@codeaurora.org> 13 13 14 - description: 15 - The QSPI controller allows SPI protocol communication in single, dual, or quad 16 - wire transmission modes for read/write access to slaves such as NOR flash. 14 + description: The QSPI controller allows SPI protocol communication in single, 15 + dual, or quad wire transmission modes for read/write access to slaves such 16 + as NOR flash. 17 17 18 18 allOf: 19 19 - $ref: /spi/spi-controller.yaml#
+2 -2
Documentation/devicetree/bindings/spi/renesas,hspi.yaml
··· 16 16 compatible: 17 17 items: 18 18 - enum: 19 - - renesas,hspi-r8a7778 # R-Car M1A 20 - - renesas,hspi-r8a7779 # R-Car H1 19 + - renesas,hspi-r8a7778 # R-Car M1A 20 + - renesas,hspi-r8a7779 # R-Car H1 21 21 - const: renesas,hspi 22 22 23 23 reg:
+20 -24
Documentation/devicetree/bindings/spi/renesas,sh-msiof.yaml
··· 96 96 97 97 renesas,dtdl: 98 98 description: delay sync signal (setup) in transmit mode. 99 - allOf: 100 - - $ref: /schemas/types.yaml#/definitions/uint32 101 - - enum: 102 - - 0 # no bit delay 103 - - 50 # 0.5-clock-cycle delay 104 - - 100 # 1-clock-cycle delay 105 - - 150 # 1.5-clock-cycle delay 106 - - 200 # 2-clock-cycle delay 99 + $ref: /schemas/types.yaml#/definitions/uint32 100 + enum: 101 + - 0 # no bit delay 102 + - 50 # 0.5-clock-cycle delay 103 + - 100 # 1-clock-cycle delay 104 + - 150 # 1.5-clock-cycle delay 105 + - 200 # 2-clock-cycle delay 107 106 108 107 renesas,syncdl: 109 108 description: delay sync signal (hold) in transmit mode 110 - allOf: 111 - - $ref: /schemas/types.yaml#/definitions/uint32 112 - - enum: 113 - - 0 # no bit delay 114 - - 50 # 0.5-clock-cycle delay 115 - - 100 # 1-clock-cycle delay 116 - - 150 # 1.5-clock-cycle delay 117 - - 200 # 2-clock-cycle delay 118 - - 300 # 3-clock-cycle delay 109 + $ref: /schemas/types.yaml#/definitions/uint32 110 + enum: 111 + - 0 # no bit delay 112 + - 50 # 0.5-clock-cycle delay 113 + - 100 # 1-clock-cycle delay 114 + - 150 # 1.5-clock-cycle delay 115 + - 200 # 2-clock-cycle delay 116 + - 300 # 3-clock-cycle delay 119 117 120 118 renesas,tx-fifo-size: 121 119 # deprecated for soctype-specific bindings 122 120 description: | 123 121 Override the default TX fifo size. Unit is words. Ignored if 0. 124 - allOf: 125 - - $ref: /schemas/types.yaml#/definitions/uint32 126 - - maxItems: 1 122 + $ref: /schemas/types.yaml#/definitions/uint32 123 + maxItems: 1 127 124 default: 64 128 125 129 126 renesas,rx-fifo-size: 130 127 # deprecated for soctype-specific bindings 131 128 description: | 132 129 Override the default RX fifo size. Unit is words. Ignored if 0. 133 - allOf: 134 - - $ref: /schemas/types.yaml#/definitions/uint32 135 - - maxItems: 1 130 + $ref: /schemas/types.yaml#/definitions/uint32 131 + maxItems: 1 136 132 default: 64 137 133 138 134 required: ··· 145 149 146 150 msiof0: spi@e6e20000 { 147 151 compatible = "renesas,msiof-r8a7791", "renesas,rcar-gen2-msiof"; 148 - reg = <0 0xe6e20000 0 0x0064>; 152 + reg = <0xe6e20000 0x0064>; 149 153 interrupts = <0 156 IRQ_TYPE_LEVEL_HIGH>; 150 154 clocks = <&mstp0_clks R8A7791_CLK_MSIOF0>; 151 155 dmas = <&dmac0 0x51>, <&dmac0 0x52>;
+6 -8
Documentation/devicetree/bindings/spi/spi-controller.yaml
··· 115 115 Maximum SPI clocking speed of the device in Hz. 116 116 117 117 spi-rx-bus-width: 118 - allOf: 119 - - $ref: /schemas/types.yaml#/definitions/uint32 120 - - enum: [ 1, 2, 4, 8 ] 121 - - default: 1 122 118 description: 123 119 Bus width to the SPI bus used for read transfers. 120 + $ref: /schemas/types.yaml#/definitions/uint32 121 + enum: [1, 2, 4, 8] 122 + default: 1 124 123 125 124 spi-rx-delay-us: 126 125 description: 127 126 Delay, in microseconds, after a read transfer. 128 127 129 128 spi-tx-bus-width: 130 - allOf: 131 - - $ref: /schemas/types.yaml#/definitions/uint32 132 - - enum: [ 1, 2, 4, 8 ] 133 - - default: 1 134 129 description: 135 130 Bus width to the SPI bus used for write transfers. 131 + $ref: /schemas/types.yaml#/definitions/uint32 132 + enum: [1, 2, 4, 8] 133 + default: 1 136 134 137 135 spi-tx-delay-us: 138 136 description:
+25 -32
Documentation/devicetree/bindings/spi/spi-pl022.yaml
··· 51 51 52 52 pl022,rt: 53 53 description: indicates the controller should run the message pump with realtime 54 - priority to minimise the transfer latency on the bus (boolean) 54 + priority to minimise the transfer latency on the bus (boolean) 55 55 type: boolean 56 56 57 57 dmas: ··· 80 80 properties: 81 81 pl022,interface: 82 82 description: SPI interface type 83 - allOf: 84 - - $ref: "/schemas/types.yaml#/definitions/uint32" 85 - - enum: 86 - - 0 # SPI 87 - - 1 # Texas Instruments Synchronous Serial Frame Format 88 - - 2 # Microwire (Half Duplex) 83 + $ref: "/schemas/types.yaml#/definitions/uint32" 84 + enum: 85 + - 0 # SPI 86 + - 1 # Texas Instruments Synchronous Serial Frame Format 87 + - 2 # Microwire (Half Duplex) 89 88 90 89 pl022,com-mode: 91 90 description: Specifies the transfer mode 92 - allOf: 93 - - $ref: "/schemas/types.yaml#/definitions/uint32" 94 - - enum: 95 - - 0 # interrupt mode 96 - - 1 # polling mode 97 - - 2 # DMA mode 98 - default: 1 91 + $ref: "/schemas/types.yaml#/definitions/uint32" 92 + enum: 93 + - 0 # interrupt mode 94 + - 1 # polling mode 95 + - 2 # DMA mode 96 + default: 1 99 97 100 98 pl022,rx-level-trig: 101 99 description: Rx FIFO watermark level 102 - allOf: 103 - - $ref: "/schemas/types.yaml#/definitions/uint32" 104 - - minimum: 0 105 - maximum: 4 100 + $ref: "/schemas/types.yaml#/definitions/uint32" 101 + minimum: 0 102 + maximum: 4 106 103 107 104 pl022,tx-level-trig: 108 105 description: Tx FIFO watermark level 109 - allOf: 110 - - $ref: "/schemas/types.yaml#/definitions/uint32" 111 - - minimum: 0 112 - maximum: 4 106 + $ref: "/schemas/types.yaml#/definitions/uint32" 107 + minimum: 0 108 + maximum: 4 113 109 114 110 pl022,ctrl-len: 115 111 description: Microwire interface - Control length 116 - allOf: 117 - - $ref: "/schemas/types.yaml#/definitions/uint32" 118 - - minimum: 0x03 119 - maximum: 0x1f 112 + $ref: "/schemas/types.yaml#/definitions/uint32" 113 + minimum: 0x03 114 + maximum: 0x1f 120 115 121 116 pl022,wait-state: 122 117 description: Microwire interface - Wait state 123 - allOf: 124 - - $ref: "/schemas/types.yaml#/definitions/uint32" 125 - - enum: [ 0, 1 ] 118 + $ref: "/schemas/types.yaml#/definitions/uint32" 119 + enum: [0, 1] 126 120 127 121 pl022,duplex: 128 122 description: Microwire interface - Full/Half duplex 129 - allOf: 130 - - $ref: "/schemas/types.yaml#/definitions/uint32" 131 - - enum: [ 0, 1 ] 123 + $ref: "/schemas/types.yaml#/definitions/uint32" 124 + enum: [0, 1] 132 125 133 126 required: 134 127 - compatible
-27
Documentation/devicetree/bindings/spi/spi-pxa2xx.txt
··· 1 - PXA2xx SSP SPI Controller 2 - 3 - Required properties: 4 - - compatible: Must be "marvell,mmp2-ssp". 5 - - reg: Offset and length of the device's register set. 6 - - interrupts: Should be the interrupt number. 7 - - clocks: Should contain a single entry describing the clock input. 8 - - #address-cells: Number of cells required to define a chip select address. 9 - - #size-cells: Should be zero. 10 - 11 - Optional properties: 12 - - cs-gpios: list of GPIO chip selects. See the SPI bus bindings, 13 - Documentation/devicetree/bindings/spi/spi-bus.txt 14 - - spi-slave: Empty property indicating the SPI controller is used in slave mode. 15 - - ready-gpios: GPIO used to signal a SPI master that the FIFO is filled 16 - and we're ready to service a transfer. Only useful in slave mode. 17 - 18 - Child nodes represent devices on the SPI bus 19 - See ../spi/spi-bus.txt 20 - 21 - Example: 22 - ssp1: spi@d4035000 { 23 - compatible = "marvell,mmp2-ssp"; 24 - reg = <0xd4035000 0x1000>; 25 - clocks = <&soc_clocks MMP2_CLK_SSP0>; 26 - interrupts = <0>; 27 - };
+11 -14
Documentation/devicetree/bindings/spi/spi-sifive.yaml
··· 32 32 https://github.com/sifive/sifive-blocks/tree/master/src/main/scala/devices/spi 33 33 34 34 reg: 35 - maxItems: 1 36 - 37 - description: 38 - Physical base address and size of SPI registers map 39 - A second (optional) range can indicate memory mapped flash 35 + minItems: 1 36 + items: 37 + - description: SPI registers region 38 + - description: Memory mapped flash region 40 39 41 40 interrupts: 42 41 maxItems: 1 ··· 49 50 sifive,fifo-depth: 50 51 description: 51 52 Depth of hardware queues; defaults to 8 52 - allOf: 53 - - $ref: "/schemas/types.yaml#/definitions/uint32" 54 - - enum: [ 8 ] 55 - - default: 8 53 + $ref: "/schemas/types.yaml#/definitions/uint32" 54 + enum: [8] 55 + default: 8 56 56 57 57 sifive,max-bits-per-word: 58 58 description: 59 59 Maximum bits per word; defaults to 8 60 - allOf: 61 - - $ref: "/schemas/types.yaml#/definitions/uint32" 62 - - enum: [ 0, 1, 2, 3, 4, 5, 6, 7, 8 ] 63 - - default: 8 60 + $ref: "/schemas/types.yaml#/definitions/uint32" 61 + enum: [0, 1, 2, 3, 4, 5, 6, 7, 8] 62 + default: 8 64 63 65 64 required: 66 65 - compatible ··· 70 73 - | 71 74 spi: spi@10040000 { 72 75 compatible = "sifive,fu540-c000-spi", "sifive,spi0"; 73 - reg = <0x0 0x10040000 0x0 0x1000 0x0 0x20000000 0x0 0x10000000>; 76 + reg = <0x10040000 0x1000>, <0x20000000 0x10000000>; 74 77 interrupt-parent = <&plic>; 75 78 interrupts = <51>; 76 79 clocks = <&tlclk>;
+2 -2
Documentation/devicetree/bindings/spi/st,stm32-qspi.yaml
··· 24 24 25 25 reg-names: 26 26 items: 27 - - const: qspi 28 - - const: qspi_mm 27 + - const: qspi 28 + - const: qspi_mm 29 29 30 30 clocks: 31 31 maxItems: 1
+32 -32
Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml
··· 29 29 - const: allwinner,sun4i-a10-system-control 30 30 - const: allwinner,sun5i-a13-system-control 31 31 - items: 32 - - const: allwinner,sun7i-a20-system-control 33 - - const: allwinner,sun4i-a10-system-control 32 + - const: allwinner,sun7i-a20-system-control 33 + - const: allwinner,sun4i-a10-system-control 34 34 - const: allwinner,sun8i-a23-system-control 35 35 - const: allwinner,sun8i-h3-system-control 36 36 - const: allwinner,sun50i-a64-sram-controller ··· 38 38 - const: allwinner,sun50i-a64-system-control 39 39 - const: allwinner,sun50i-h5-system-control 40 40 - items: 41 - - const: allwinner,sun50i-h6-system-control 42 - - const: allwinner,sun50i-a64-system-control 41 + - const: allwinner,sun50i-h6-system-control 42 + - const: allwinner,sun50i-a64-system-control 43 43 - items: 44 - - const: allwinner,suniv-f1c100s-system-control 45 - - const: allwinner,sun4i-a10-system-control 44 + - const: allwinner,suniv-f1c100s-system-control 45 + - const: allwinner,sun4i-a10-system-control 46 46 47 47 reg: 48 48 maxItems: 1 ··· 69 69 - const: allwinner,sun4i-a10-sram-d 70 70 - const: allwinner,sun50i-a64-sram-c 71 71 - items: 72 - - const: allwinner,sun5i-a13-sram-a3-a4 73 - - const: allwinner,sun4i-a10-sram-a3-a4 72 + - const: allwinner,sun5i-a13-sram-a3-a4 73 + - const: allwinner,sun4i-a10-sram-a3-a4 74 74 - items: 75 - - const: allwinner,sun7i-a20-sram-a3-a4 76 - - const: allwinner,sun4i-a10-sram-a3-a4 75 + - const: allwinner,sun7i-a20-sram-a3-a4 76 + - const: allwinner,sun4i-a10-sram-a3-a4 77 77 - items: 78 - - const: allwinner,sun5i-a13-sram-c1 79 - - const: allwinner,sun4i-a10-sram-c1 78 + - const: allwinner,sun5i-a13-sram-c1 79 + - const: allwinner,sun4i-a10-sram-c1 80 80 - items: 81 - - const: allwinner,sun7i-a20-sram-c1 82 - - const: allwinner,sun4i-a10-sram-c1 81 + - const: allwinner,sun7i-a20-sram-c1 82 + - const: allwinner,sun4i-a10-sram-c1 83 83 - items: 84 - - const: allwinner,sun8i-a23-sram-c1 85 - - const: allwinner,sun4i-a10-sram-c1 84 + - const: allwinner,sun8i-a23-sram-c1 85 + - const: allwinner,sun4i-a10-sram-c1 86 86 - items: 87 - - const: allwinner,sun8i-h3-sram-c1 88 - - const: allwinner,sun4i-a10-sram-c1 87 + - const: allwinner,sun8i-h3-sram-c1 88 + - const: allwinner,sun4i-a10-sram-c1 89 89 - items: 90 - - const: allwinner,sun50i-a64-sram-c1 91 - - const: allwinner,sun4i-a10-sram-c1 90 + - const: allwinner,sun50i-a64-sram-c1 91 + - const: allwinner,sun4i-a10-sram-c1 92 92 - items: 93 - - const: allwinner,sun50i-h5-sram-c1 94 - - const: allwinner,sun4i-a10-sram-c1 93 + - const: allwinner,sun50i-h5-sram-c1 94 + - const: allwinner,sun4i-a10-sram-c1 95 95 - items: 96 - - const: allwinner,sun50i-h6-sram-c1 97 - - const: allwinner,sun4i-a10-sram-c1 96 + - const: allwinner,sun50i-h6-sram-c1 97 + - const: allwinner,sun4i-a10-sram-c1 98 98 - items: 99 - - const: allwinner,sun5i-a13-sram-d 100 - - const: allwinner,sun4i-a10-sram-d 99 + - const: allwinner,sun5i-a13-sram-d 100 + - const: allwinner,sun4i-a10-sram-d 101 101 - items: 102 - - const: allwinner,sun7i-a20-sram-d 103 - - const: allwinner,sun4i-a10-sram-d 102 + - const: allwinner,sun7i-a20-sram-d 103 + - const: allwinner,sun4i-a10-sram-d 104 104 - items: 105 - - const: allwinner,suniv-f1c100s-sram-d 106 - - const: allwinner,sun4i-a10-sram-d 105 + - const: allwinner,suniv-f1c100s-sram-d 106 + - const: allwinner,sun4i-a10-sram-d 107 107 - items: 108 - - const: allwinner,sun50i-h6-sram-c 109 - - const: allwinner,sun50i-a64-sram-c 108 + - const: allwinner,sun50i-h6-sram-c 109 + - const: allwinner,sun50i-a64-sram-c 110 110 111 111 required: 112 112 - "#address-cells"
-16
Documentation/devicetree/bindings/sram/rockchip-pmu-sram.txt
··· 1 - Rockchip SRAM for pmu: 2 - ------------------------------ 3 - 4 - The sram of pmu is used to store the function of resume from maskrom(the 1st 5 - level loader). This is a common use of the "pmu-sram" because it keeps power 6 - even in low power states in the system. 7 - 8 - Required node properties: 9 - - compatible : should be "rockchip,rk3288-pmu-sram" 10 - - reg : physical base address and the size of the registers window 11 - 12 - Example: 13 - sram@ff720000 { 14 - compatible = "rockchip,rk3288-pmu-sram", "mmio-sram"; 15 - reg = <0xff720000 0x1000>; 16 - };
+25 -3
Documentation/devicetree/bindings/sram/sram.yaml
··· 29 29 enum: 30 30 - mmio-sram 31 31 - atmel,sama5d2-securam 32 + - rockchip,rk3288-pmu-sram 32 33 33 34 reg: 34 35 maxItems: 1 ··· 74 73 - allwinner,sun50i-a64-sram-c 75 74 - amlogic,meson8-smp-sram 76 75 - amlogic,meson8b-smp-sram 76 + - amlogic,meson-gxbb-scp-shmem 77 + - amlogic,meson-axg-scp-shmem 77 78 - renesas,smp-sram 78 79 - rockchip,rk3066-smp-sram 79 80 - samsung,exynos4210-sysram ··· 121 118 required: 122 119 - compatible 123 120 - reg 124 - - "#address-cells" 125 - - "#size-cells" 126 - - ranges 121 + 122 + if: 123 + properties: 124 + compatible: 125 + contains: 126 + const: rockchip,rk3288-pmu-sram 127 + 128 + else: 129 + required: 130 + - "#address-cells" 131 + - "#size-cells" 132 + - ranges 127 133 128 134 additionalProperties: false 129 135 ··· 233 221 compatible = "rockchip,rk3066-smp-sram"; 234 222 reg = <0x10080000 0x50>; 235 223 }; 224 + }; 225 + 226 + - | 227 + // Rockchip's rk3288 SoC uses the sram of pmu to store the function of 228 + // resume from maskrom(the 1st level loader). This is a common use of 229 + // the "pmu-sram" because it keeps power even in low power states 230 + // in the system. 231 + sram@ff720000 { 232 + compatible = "rockchip,rk3288-pmu-sram", "mmio-sram"; 233 + reg = <0xff720000 0x1000>; 236 234 }; 237 235 238 236 - |
+91
Documentation/devicetree/bindings/submitting-patches.rst
··· 1 + .. SPDX-License-Identifier: GPL-2.0 2 + 3 + ========================================== 4 + Submitting devicetree (DT) binding patches 5 + ========================================== 6 + 7 + I. For patch submitters 8 + ======================= 9 + 10 + 0) Normal patch submission rules from Documentation/process/submitting-patches.rst 11 + applies. 12 + 13 + 1) The Documentation/ and include/dt-bindings/ portion of the patch should 14 + be a separate patch. The preferred subject prefix for binding patches is:: 15 + 16 + "dt-bindings: <binding dir>: ..." 17 + 18 + The 80 characters of the subject are precious. It is recommended to not 19 + use "Documentation" or "doc" because that is implied. All bindings are 20 + docs. Repeating "binding" again should also be avoided. 21 + 22 + 2) DT binding files are written in DT schema format using json-schema 23 + vocabulary and YAML file format. The DT binding files must pass validation 24 + by running:: 25 + 26 + make dt_binding_check 27 + 28 + See ../writing-schema.rst for more details about schema and tools setup. 29 + 30 + 3) DT binding files should be dual licensed. The preferred license tag is 31 + (GPL-2.0-only OR BSD-2-Clause). 32 + 33 + 4) Submit the entire series to the devicetree mailinglist at 34 + 35 + devicetree@vger.kernel.org 36 + 37 + and Cc: the DT maintainers. Use scripts/get_maintainer.pl to identify 38 + all of the DT maintainers. 39 + 40 + 5) The Documentation/ portion of the patch should come in the series before 41 + the code implementing the binding. 42 + 43 + 6) Any compatible strings used in a chip or board DTS file must be 44 + previously documented in the corresponding DT binding text file 45 + in Documentation/devicetree/bindings. This rule applies even if 46 + the Linux device driver does not yet match on the compatible 47 + string. [ checkpatch will emit warnings if this step is not 48 + followed as of commit bff5da4335256513497cc8c79f9a9d1665e09864 49 + ("checkpatch: add DT compatible string documentation checks"). ] 50 + 51 + 7) The wildcard "<chip>" may be used in compatible strings, as in 52 + the following example: 53 + 54 + - compatible: Must contain '"nvidia,<chip>-pcie", 55 + "nvidia,tegra20-pcie"' where <chip> is tegra30, tegra132, ... 56 + 57 + As in the above example, the known values of "<chip>" should be 58 + documented if it is used. 59 + 60 + 8) If a documented compatible string is not yet matched by the 61 + driver, the documentation should also include a compatible 62 + string that is matched by the driver (as in the "nvidia,tegra20-pcie" 63 + example above). 64 + 65 + 66 + II. For kernel maintainers 67 + ========================== 68 + 69 + 1) If you aren't comfortable reviewing a given binding, reply to it and ask 70 + the devicetree maintainers for guidance. This will help them prioritize 71 + which ones to review and which ones are ok to let go. 72 + 73 + 2) For driver (not subsystem) bindings: If you are comfortable with the 74 + binding, and it hasn't received an Acked-by from the devicetree 75 + maintainers after a few weeks, go ahead and take it. 76 + 77 + Subsystem bindings (anything affecting more than a single device) 78 + then getting a devicetree maintainer to review it is required. 79 + 80 + 3) For a series going though multiple trees, the binding patch should be 81 + kept with the driver using the binding. 82 + 83 + III. Notes 84 + ========== 85 + 86 + 0) Please see ...bindings/ABI.txt for details regarding devicetree ABI. 87 + 88 + 1) This document is intended as a general familiarization with the process as 89 + decided at the 2013 Kernel Summit. When in doubt, the current word of the 90 + devicetree maintainers overrules this document. In that situation, a patch 91 + updating this document would be appreciated.
-85
Documentation/devicetree/bindings/submitting-patches.txt
··· 1 - 2 - Submitting devicetree (DT) binding patches 3 - 4 - I. For patch submitters 5 - 6 - 0) Normal patch submission rules from Documentation/process/submitting-patches.rst 7 - applies. 8 - 9 - 1) The Documentation/ and include/dt-bindings/ portion of the patch should 10 - be a separate patch. The preferred subject prefix for binding patches is: 11 - 12 - "dt-bindings: <binding dir>: ..." 13 - 14 - The 80 characters of the subject are precious. It is recommended to not 15 - use "Documentation" or "doc" because that is implied. All bindings are 16 - docs. Repeating "binding" again should also be avoided. 17 - 18 - 2) DT binding files are written in DT schema format using json-schema 19 - vocabulary and YAML file format. The DT binding files must pass validation 20 - by running: 21 - 22 - make dt_binding_check 23 - 24 - See ../writing-schema.rst for more details about schema and tools setup. 25 - 26 - 3) DT binding files should be dual licensed. The preferred license tag is 27 - (GPL-2.0-only OR BSD-2-Clause). 28 - 29 - 4) Submit the entire series to the devicetree mailinglist at 30 - 31 - devicetree@vger.kernel.org 32 - 33 - and Cc: the DT maintainers. Use scripts/get_maintainer.pl to identify 34 - all of the DT maintainers. 35 - 36 - 5) The Documentation/ portion of the patch should come in the series before 37 - the code implementing the binding. 38 - 39 - 6) Any compatible strings used in a chip or board DTS file must be 40 - previously documented in the corresponding DT binding text file 41 - in Documentation/devicetree/bindings. This rule applies even if 42 - the Linux device driver does not yet match on the compatible 43 - string. [ checkpatch will emit warnings if this step is not 44 - followed as of commit bff5da4335256513497cc8c79f9a9d1665e09864 45 - ("checkpatch: add DT compatible string documentation checks"). ] 46 - 47 - 7) The wildcard "<chip>" may be used in compatible strings, as in 48 - the following example: 49 - 50 - - compatible: Must contain '"nvidia,<chip>-pcie", 51 - "nvidia,tegra20-pcie"' where <chip> is tegra30, tegra132, ... 52 - 53 - As in the above example, the known values of "<chip>" should be 54 - documented if it is used. 55 - 56 - 8) If a documented compatible string is not yet matched by the 57 - driver, the documentation should also include a compatible 58 - string that is matched by the driver (as in the "nvidia,tegra20-pcie" 59 - example above). 60 - 61 - 62 - II. For kernel maintainers 63 - 64 - 1) If you aren't comfortable reviewing a given binding, reply to it and ask 65 - the devicetree maintainers for guidance. This will help them prioritize 66 - which ones to review and which ones are ok to let go. 67 - 68 - 2) For driver (not subsystem) bindings: If you are comfortable with the 69 - binding, and it hasn't received an Acked-by from the devicetree 70 - maintainers after a few weeks, go ahead and take it. 71 - 72 - Subsystem bindings (anything affecting more than a single device) 73 - then getting a devicetree maintainer to review it is required. 74 - 75 - 3) For a series going though multiple trees, the binding patch should be 76 - kept with the driver using the binding. 77 - 78 - III. Notes 79 - 80 - 0) Please see ...bindings/ABI.txt for details regarding devicetree ABI. 81 - 82 - 1) This document is intended as a general familiarization with the process as 83 - decided at the 2013 Kernel Summit. When in doubt, the current word of the 84 - devicetree maintainers overrules this document. In that situation, a patch 85 - updating this document would be appreciated.
+5 -5
Documentation/devicetree/bindings/thermal/amlogic,thermal.yaml
··· 13 13 14 14 properties: 15 15 compatible: 16 - items: 17 - - enum: 18 - - amlogic,g12a-cpu-thermal 19 - - amlogic,g12a-ddr-thermal 20 - - const: amlogic,g12a-thermal 16 + items: 17 + - enum: 18 + - amlogic,g12a-cpu-thermal 19 + - amlogic,g12a-ddr-thermal 20 + - const: amlogic,g12a-thermal 21 21 22 22 reg: 23 23 maxItems: 1
-61
Documentation/devicetree/bindings/thermal/imx-thermal.txt
··· 1 - * Temperature Monitor (TEMPMON) on Freescale i.MX SoCs 2 - 3 - Required properties: 4 - - compatible : must be one of following: 5 - - "fsl,imx6q-tempmon" for i.MX6Q, 6 - - "fsl,imx6sx-tempmon" for i.MX6SX, 7 - - "fsl,imx7d-tempmon" for i.MX7S/D. 8 - - interrupts : the interrupt output of the controller: 9 - i.MX6Q has one IRQ which will be triggered when temperature is higher than high threshold, 10 - i.MX6SX and i.MX7S/D have two more IRQs than i.MX6Q, one is IRQ_LOW and the other is IRQ_PANIC, 11 - when temperature is below than low threshold, IRQ_LOW will be triggered, when temperature 12 - is higher than panic threshold, system will auto reboot by SRC module. 13 - - fsl,tempmon : phandle pointer to system controller that contains TEMPMON 14 - control registers, e.g. ANATOP on imx6q. 15 - - nvmem-cells: A phandle to the calibration cells provided by ocotp. 16 - - nvmem-cell-names: Should be "calib", "temp_grade". 17 - 18 - Deprecated properties: 19 - - fsl,tempmon-data : phandle pointer to fuse controller that contains TEMPMON 20 - calibration data, e.g. OCOTP on imx6q. The details about calibration data 21 - can be found in SoC Reference Manual. 22 - 23 - Direct access to OCOTP via fsl,tempmon-data is incorrect on some newer chips 24 - because it does not handle OCOTP clock requirements. 25 - 26 - Optional properties: 27 - - clocks : thermal sensor's clock source. 28 - 29 - Example: 30 - ocotp: ocotp@21bc000 { 31 - #address-cells = <1>; 32 - #size-cells = <1>; 33 - compatible = "fsl,imx6sx-ocotp", "syscon"; 34 - reg = <0x021bc000 0x4000>; 35 - clocks = <&clks IMX6SX_CLK_OCOTP>; 36 - 37 - tempmon_calib: calib@38 { 38 - reg = <0x38 4>; 39 - }; 40 - 41 - tempmon_temp_grade: temp-grade@20 { 42 - reg = <0x20 4>; 43 - }; 44 - }; 45 - 46 - tempmon: tempmon { 47 - compatible = "fsl,imx6sx-tempmon", "fsl,imx6q-tempmon"; 48 - interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; 49 - fsl,tempmon = <&anatop>; 50 - nvmem-cells = <&tempmon_calib>, <&tempmon_temp_grade>; 51 - nvmem-cell-names = "calib", "temp_grade"; 52 - clocks = <&clks IMX6SX_CLK_PLL3_USB_OTG>; 53 - }; 54 - 55 - Legacy method (Deprecated): 56 - tempmon { 57 - compatible = "fsl,imx6q-tempmon"; 58 - fsl,tempmon = <&anatop>; 59 - fsl,tempmon-data = <&ocotp>; 60 - clocks = <&clks 172>; 61 - };
+102
Documentation/devicetree/bindings/thermal/imx-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/imx-thermal.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: NXP i.MX Thermal Binding 8 + 9 + maintainers: 10 + - Shawn Guo <shawn.guo@linaro.org> 11 + - Anson Huang <Anson.Huang@nxp.com> 12 + 13 + properties: 14 + compatible: 15 + enum: 16 + - fsl,imx6q-tempmon 17 + - fsl,imx6sx-tempmon 18 + - fsl,imx7d-tempmon 19 + 20 + interrupts: 21 + description: | 22 + The interrupt output of the controller, i.MX6Q has IRQ_HIGH which 23 + will be triggered when temperature is higher than high threshold, 24 + i.MX6SX and i.MX7S/D have two more IRQs than i.MX6Q, one is IRQ_LOW 25 + and the other is IRQ_PANIC, when temperature is lower than low 26 + threshold, IRQ_LOW will be triggered, when temperature is higher 27 + than panic threshold, IRQ_PANIC will be triggered, and system can 28 + be configured to auto reboot by SRC module for IRQ_PANIC. IRQ_HIGH, 29 + IRQ_LOW and IRQ_PANIC share same interrupt output of controller. 30 + maxItems: 1 31 + 32 + nvmem-cells: 33 + items: 34 + - description: Phandle to the calibration data provided by ocotp 35 + - description: Phandle to the temperature grade provided by ocotp 36 + 37 + nvmem-cell-names: 38 + items: 39 + - const: calib 40 + - const: temp_grade 41 + 42 + fsl,tempmon: 43 + $ref: '/schemas/types.yaml#/definitions/phandle' 44 + description: Phandle to anatop system controller node. 45 + 46 + fsl,tempmon-data: 47 + $ref: '/schemas/types.yaml#/definitions/phandle' 48 + description: | 49 + Deprecated property, phandle pointer to fuse controller that contains 50 + TEMPMON calibration data, e.g. OCOTP on imx6q. The details about 51 + calibration data can be found in SoC Reference Manual. 52 + deprecated: true 53 + 54 + clocks: 55 + maxItems: 1 56 + 57 + required: 58 + - compatible 59 + - interrupts 60 + - fsl,tempmon 61 + - nvmem-cells 62 + - nvmem-cell-names 63 + 64 + additionalProperties: false 65 + 66 + examples: 67 + - | 68 + #include <dt-bindings/clock/imx6sx-clock.h> 69 + #include <dt-bindings/interrupt-controller/arm-gic.h> 70 + 71 + efuse@21bc000 { 72 + #address-cells = <1>; 73 + #size-cells = <1>; 74 + compatible = "fsl,imx6sx-ocotp", "syscon"; 75 + reg = <0x021bc000 0x4000>; 76 + clocks = <&clks IMX6SX_CLK_OCOTP>; 77 + 78 + tempmon_calib: calib@38 { 79 + reg = <0x38 4>; 80 + }; 81 + 82 + tempmon_temp_grade: temp-grade@20 { 83 + reg = <0x20 4>; 84 + }; 85 + }; 86 + 87 + anatop@20c8000 { 88 + compatible = "fsl,imx6q-anatop", "syscon", "simple-mfd"; 89 + reg = <0x020c8000 0x1000>; 90 + interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>, 91 + <0 54 IRQ_TYPE_LEVEL_HIGH>, 92 + <0 127 IRQ_TYPE_LEVEL_HIGH>; 93 + 94 + tempmon { 95 + compatible = "fsl,imx6sx-tempmon"; 96 + interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; 97 + fsl,tempmon = <&anatop>; 98 + nvmem-cells = <&tempmon_calib>, <&tempmon_temp_grade>; 99 + nvmem-cell-names = "calib", "temp_grade"; 100 + clocks = <&clks IMX6SX_CLK_PLL3_USB_OTG>; 101 + }; 102 + };
-15
Documentation/devicetree/bindings/thermal/imx8mm-thermal.txt
··· 1 - * Thermal Monitoring Unit (TMU) on Freescale i.MX8MM SoC 2 - 3 - Required properties: 4 - - compatible : Must be "fsl,imx8mm-tmu" or "fsl,imx8mp-tmu". 5 - - reg : Address range of TMU registers. 6 - - clocks : TMU's clock source. 7 - - #thermal-sensor-cells : Should be 0 or 1. See ./thermal.txt for a description. 8 - 9 - Example: 10 - tmu: tmu@30260000 { 11 - compatible = "fsl,imx8mm-tmu"; 12 - reg = <0x30260000 0x10000>; 13 - clocks = <&clk IMX8MM_CLK_TMU_ROOT>; 14 - #thermal-sensor-cells = <0>; 15 - };
+58
Documentation/devicetree/bindings/thermal/imx8mm-thermal.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/thermal/imx8mm-thermal.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: NXP i.MX8M Mini Thermal Binding 8 + 9 + maintainers: 10 + - Anson Huang <Anson.Huang@nxp.com> 11 + 12 + description: | 13 + i.MX8MM has TMU IP to allow temperature measurement, there are 14 + currently two distinct major versions of the IP that is supported 15 + by a single driver. The IP versions are named v1 and v2, v1 is 16 + for i.MX8MM which has ONLY 1 sensor, v2 is for i.MX8MP which has 17 + 2 sensors. 18 + 19 + properties: 20 + compatible: 21 + enum: 22 + - fsl,imx8mm-tmu 23 + - fsl,imx8mp-tmu 24 + 25 + reg: 26 + maxItems: 1 27 + 28 + clocks: 29 + maxItems: 1 30 + 31 + "#thermal-sensor-cells": 32 + description: | 33 + Number of cells required to uniquely identify the thermal 34 + sensors, 0 for ONLY one sensor and 1 for multiple sensors. 35 + enum: 36 + - 0 37 + - 1 38 + 39 + required: 40 + - compatible 41 + - reg 42 + - clocks 43 + - '#thermal-sensor-cells' 44 + 45 + additionalProperties: false 46 + 47 + examples: 48 + - | 49 + #include <dt-bindings/clock/imx8mm-clock.h> 50 + 51 + thermal-sensor@30260000 { 52 + compatible = "fsl,imx8mm-tmu"; 53 + reg = <0x30260000 0x10000>; 54 + clocks = <&clk IMX8MM_CLK_TMU_ROOT>; 55 + #thermal-sensor-cells = <0>; 56 + }; 57 + 58 + ...
+3 -4
Documentation/devicetree/bindings/thermal/qcom-tsens.yaml
··· 73 73 - const: calib_sel 74 74 75 75 "#qcom,sensors": 76 - allOf: 77 - - $ref: /schemas/types.yaml#/definitions/uint32 78 - - minimum: 1 79 - - maximum: 16 80 76 description: 81 77 Number of sensors enabled on this platform 78 + $ref: /schemas/types.yaml#/definitions/uint32 79 + minimum: 1 80 + maximum: 16 82 81 83 82 "#thermal-sensor-cells": 84 83 const: 1
-60
Documentation/devicetree/bindings/thermal/rcar-gen3-thermal.txt
··· 1 - * DT bindings for Renesas R-Car Gen3 Thermal Sensor driver 2 - 3 - On R-Car Gen3 SoCs, the thermal sensor controllers (TSC) control the thermal 4 - sensors (THS) which are the analog circuits for measuring temperature (Tj) 5 - inside the LSI. 6 - 7 - Required properties: 8 - - compatible : "renesas,<soctype>-thermal", 9 - Examples with soctypes are: 10 - - "renesas,r8a774a1-thermal" (RZ/G2M) 11 - - "renesas,r8a774b1-thermal" (RZ/G2N) 12 - - "renesas,r8a7795-thermal" (R-Car H3) 13 - - "renesas,r8a7796-thermal" (R-Car M3-W) 14 - - "renesas,r8a77961-thermal" (R-Car M3-W+) 15 - - "renesas,r8a77965-thermal" (R-Car M3-N) 16 - - "renesas,r8a77980-thermal" (R-Car V3H) 17 - - reg : Address ranges of the thermal registers. Each sensor 18 - needs one address range. Sorting must be done in 19 - increasing order according to datasheet, i.e. 20 - TSC1, TSC2, ... 21 - - clocks : Must contain a reference to the functional clock. 22 - - #thermal-sensor-cells : must be <1>. 23 - 24 - Optional properties: 25 - 26 - - interrupts : interrupts routed to the TSC (must be 3). 27 - - power-domain : Must contain a reference to the power domain. This 28 - property is mandatory if the thermal sensor instance 29 - is part of a controllable power domain. 30 - 31 - Example: 32 - 33 - tsc: thermal@e6198000 { 34 - compatible = "renesas,r8a7795-thermal"; 35 - reg = <0 0xe6198000 0 0x100>, 36 - <0 0xe61a0000 0 0x100>, 37 - <0 0xe61a8000 0 0x100>; 38 - interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>, 39 - <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, 40 - <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; 41 - clocks = <&cpg CPG_MOD 522>; 42 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 43 - #thermal-sensor-cells = <1>; 44 - }; 45 - 46 - thermal-zones { 47 - sensor_thermal1: sensor-thermal1 { 48 - polling-delay-passive = <250>; 49 - polling-delay = <1000>; 50 - thermal-sensors = <&tsc 0>; 51 - 52 - trips { 53 - sensor1_crit: sensor1-crit { 54 - temperature = <90000>; 55 - hysteresis = <2000>; 56 - type = "critical"; 57 - }; 58 - }; 59 - }; 60 - };
+99
Documentation/devicetree/bindings/thermal/rcar-gen3-thermal.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only 2 + # Copyright (C) 2020 Renesas Electronics Corp. 3 + %YAML 1.2 4 + --- 5 + $id: http://devicetree.org/schemas/thermal/rcar-gen3-thermal.yaml# 6 + $schema: http://devicetree.org/meta-schemas/core.yaml# 7 + 8 + title: Renesas R-Car Gen3 Thermal Sensor 9 + 10 + description: 11 + On R-Car Gen3 SoCs, the thermal sensor controllers (TSC) control the thermal 12 + sensors (THS) which are the analog circuits for measuring temperature (Tj) 13 + inside the LSI. 14 + 15 + maintainers: 16 + - Niklas Söderlund <niklas.soderlund@ragnatech.se> 17 + 18 + properties: 19 + compatible: 20 + enum: 21 + - renesas,r8a774a1-thermal # RZ/G2M 22 + - renesas,r8a774b1-thermal # RZ/G2N 23 + - renesas,r8a7795-thermal # R-Car H3 24 + - renesas,r8a7796-thermal # R-Car M3-W 25 + - renesas,r8a77961-thermal # R-Car M3-W+ 26 + - renesas,r8a77965-thermal # R-Car M3-N 27 + - renesas,r8a77980-thermal # R-Car V3H 28 + reg: 29 + minItems: 2 30 + maxItems: 3 31 + items: 32 + - description: TSC1 registers 33 + - description: TSC2 registers 34 + - description: TSC3 registers 35 + 36 + interrupts: 37 + items: 38 + - description: TEMP1 interrupt 39 + - description: TEMP2 interrupt 40 + - description: TEMP3 interrupt 41 + 42 + clocks: 43 + maxItems: 1 44 + 45 + power-domains: 46 + maxItems: 1 47 + 48 + resets: 49 + maxItems: 1 50 + 51 + "#thermal-sensor-cells": 52 + const: 1 53 + 54 + required: 55 + - compatible 56 + - reg 57 + - interrupts 58 + - clocks 59 + - power-domains 60 + - resets 61 + - "#thermal-sensor-cells" 62 + 63 + additionalProperties: false 64 + 65 + examples: 66 + - | 67 + #include <dt-bindings/clock/r8a7795-cpg-mssr.h> 68 + #include <dt-bindings/interrupt-controller/arm-gic.h> 69 + #include <dt-bindings/power/r8a7795-sysc.h> 70 + 71 + tsc: thermal@e6198000 { 72 + compatible = "renesas,r8a7795-thermal"; 73 + reg = <0xe6198000 0x100>, 74 + <0xe61a0000 0x100>, 75 + <0xe61a8000 0x100>; 76 + interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>, 77 + <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, 78 + <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; 79 + clocks = <&cpg CPG_MOD 522>; 80 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 81 + resets = <&cpg 522>; 82 + #thermal-sensor-cells = <1>; 83 + }; 84 + 85 + thermal-zones { 86 + sensor_thermal: sensor-thermal { 87 + polling-delay-passive = <250>; 88 + polling-delay = <1000>; 89 + thermal-sensors = <&tsc 0>; 90 + 91 + trips { 92 + sensor1_crit: sensor1-crit { 93 + temperature = <90000>; 94 + hysteresis = <2000>; 95 + type = "critical"; 96 + }; 97 + }; 98 + }; 99 + };
+4 -3
Documentation/devicetree/bindings/thermal/rcar-thermal.yaml
··· 20 20 - const: renesas,rcar-thermal # Generic without thermal-zone 21 21 - items: 22 22 - enum: 23 + - renesas,thermal-r8a7742 # RZ/G1H 23 24 - renesas,thermal-r8a7743 # RZ/G1M 24 25 - renesas,thermal-r8a7744 # RZ/G1N 25 26 - const: renesas,rcar-gen2-thermal # Generic thermal-zone ··· 95 94 96 95 thermal@e61f0000 { 97 96 compatible = "renesas,thermal-r8a73a4", "renesas,rcar-thermal"; 98 - reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>, 99 - <0 0xe61f0200 0 0x38>, <0 0xe61f0300 0 0x38>; 97 + reg = <0xe61f0000 0x14>, <0xe61f0100 0x38>, 98 + <0xe61f0200 0x38>, <0xe61f0300 0x38>; 100 99 interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; 101 100 clocks = <&mstp5_clks R8A73A4_CLK_THERMAL>; 102 101 power-domains = <&pd_c5>; ··· 112 111 compatible = "renesas,thermal-r8a7790", 113 112 "renesas,rcar-gen2-thermal", 114 113 "renesas,rcar-thermal"; 115 - reg = <0 0xe61f0000 0 0x10>, <0 0xe61f0100 0 0x38>; 114 + reg = <0xe61f0000 0x10>, <0xe61f0100 0x38>; 116 115 interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; 117 116 clocks = <&cpg CPG_MOD 522>; 118 117 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
+59
Documentation/devicetree/bindings/thermal/socionext,uniphier-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/socionext,uniphier-thermal.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Socionext UniPhier thermal monitor 8 + 9 + description: | 10 + This describes the devicetree bindings for thermal monitor supported by 11 + PVT(Process, Voltage and Temperature) monitoring unit implemented on 12 + Socionext UniPhier SoCs. 13 + 14 + maintainers: 15 + - Kunihiko Hayashi <hayashi.kunihiko@socionext.com> 16 + 17 + properties: 18 + compatible: 19 + enum: 20 + - socionext,uniphier-pxs2-thermal 21 + - socionext,uniphier-ld20-thermal 22 + - socionext,uniphier-pxs3-thermal 23 + 24 + interrupts: 25 + maxItems: 1 26 + 27 + "#thermal-sensor-cells": 28 + const: 0 29 + 30 + socionext,tmod-calibration: 31 + allOf: 32 + - $ref: /schemas/types.yaml#/definitions/uint32-array 33 + - maxItems: 2 34 + description: 35 + A pair of calibrated values referred from PVT, in case that the values 36 + aren't set on SoC, like a reference board. 37 + 38 + required: 39 + - compatible 40 + - interrupts 41 + - "#thermal-sensor-cells" 42 + 43 + additionalProperties: false 44 + 45 + examples: 46 + - | 47 + // The UniPhier thermal should be a subnode of a "syscon" compatible node. 48 + 49 + sysctrl@61840000 { 50 + compatible = "socionext,uniphier-ld20-sysctrl", 51 + "simple-mfd", "syscon"; 52 + reg = <0x61840000 0x10000>; 53 + 54 + pvtctl: thermal { 55 + compatible = "socionext,uniphier-ld20-thermal"; 56 + interrupts = <0 3 1>; 57 + #thermal-sensor-cells = <0>; 58 + }; 59 + };
+1 -1
Documentation/devicetree/bindings/thermal/sprd-thermal.yaml
··· 83 83 - | 84 84 ap_thm0: thermal@32200000 { 85 85 compatible = "sprd,ums512-thermal"; 86 - reg = <0 0x32200000 0 0x10000>; 86 + reg = <0x32200000 0x10000>; 87 87 clock-names = "enable"; 88 88 clocks = <&aonapb_gate 32>; 89 89 #thermal-sensor-cells = <1>;
-65
Documentation/devicetree/bindings/thermal/uniphier-thermal.txt
··· 1 - * UniPhier Thermal bindings 2 - 3 - This describes the devicetree bindings for thermal monitor supported by 4 - PVT(Process, Voltage and Temperature) monitoring unit implemented on Socionext 5 - UniPhier SoCs. 6 - 7 - Required properties: 8 - - compatible : 9 - - "socionext,uniphier-pxs2-thermal" : For UniPhier PXs2 SoC 10 - - "socionext,uniphier-ld20-thermal" : For UniPhier LD20 SoC 11 - - "socionext,uniphier-pxs3-thermal" : For UniPhier PXs3 SoC 12 - - interrupts : IRQ for the temperature alarm 13 - - #thermal-sensor-cells : Should be 0. See ./thermal.txt for details. 14 - 15 - Optional properties: 16 - - socionext,tmod-calibration: A pair of calibrated values referred from PVT, 17 - in case that the values aren't set on SoC, 18 - like a reference board. 19 - 20 - Example: 21 - 22 - sysctrl@61840000 { 23 - compatible = "socionext,uniphier-ld20-sysctrl", 24 - "simple-mfd", "syscon"; 25 - reg = <0x61840000 0x10000>; 26 - ... 27 - pvtctl: pvtctl { 28 - compatible = "socionext,uniphier-ld20-thermal"; 29 - interrupts = <0 3 1>; 30 - #thermal-sensor-cells = <0>; 31 - }; 32 - ... 33 - }; 34 - 35 - thermal-zones { 36 - cpu_thermal { 37 - polling-delay-passive = <250>; /* 250ms */ 38 - polling-delay = <1000>; /* 1000ms */ 39 - thermal-sensors = <&pvtctl>; 40 - 41 - trips { 42 - cpu_crit: cpu_crit { 43 - temperature = <110000>; /* 110C */ 44 - hysteresis = <2000>; 45 - type = "critical"; 46 - }; 47 - cpu_alert: cpu_alert { 48 - temperature = <100000>; /* 100C */ 49 - hysteresis = <2000>; 50 - type = "passive"; 51 - }; 52 - }; 53 - 54 - cooling-maps { 55 - map0 { 56 - trip = <&cpu_alert>; 57 - cooling-device = <&cpu0 (-1) (-1)>; 58 - }; 59 - map1 { 60 - trip = <&cpu_alert>; 61 - cooling-device = <&cpu2 (-1) (-1)>; 62 - }; 63 - }; 64 - }; 65 - };
+8 -2
Documentation/devicetree/bindings/timer/arm,arch_timer.yaml
··· 28 28 - arm,armv7-timer 29 29 - items: 30 30 - enum: 31 - - arm,armv7-timer 31 + - arm,armv7-timer 32 32 - items: 33 33 - enum: 34 - - arm,armv8-timer 34 + - arm,armv8-timer 35 35 36 36 interrupts: 37 37 items: ··· 50 50 type: boolean 51 51 description: If present, the timer is powered through an always-on power 52 52 domain, therefore it never loses context. 53 + 54 + allwinner,erratum-unknown1: 55 + type: boolean 56 + description: Indicates the presence of an erratum found in Allwinner SoCs, 57 + where reading certain values from the counter is unreliable. This also 58 + affects writes to the tval register, due to the implicit counter read. 53 59 54 60 fsl,erratum-a008585: 55 61 type: boolean
+5 -6
Documentation/devicetree/bindings/timer/arm,arch_timer_mmio.yaml
··· 20 20 compatible: 21 21 items: 22 22 - enum: 23 - - arm,armv7-timer-mem 23 + - arm,armv7-timer-mem 24 24 25 25 reg: 26 26 maxItems: 1 ··· 65 65 description: A timer node has up to 8 frame sub-nodes, each with the following properties. 66 66 properties: 67 67 frame-number: 68 - allOf: 69 - - $ref: "/schemas/types.yaml#/definitions/uint32" 70 - - minimum: 0 71 - maximum: 7 68 + $ref: "/schemas/types.yaml#/definitions/uint32" 69 + minimum: 0 70 + maximum: 7 72 71 73 72 interrupts: 74 73 minItems: 1 ··· 76 77 - description: physical timer irq 77 78 - description: virtual timer irq 78 79 79 - reg : 80 + reg: 80 81 minItems: 1 81 82 maxItems: 2 82 83 items:
-21
Documentation/devicetree/bindings/timer/cadence,ttc-timer.txt
··· 1 - Cadence TTC - Triple Timer Counter 2 - 3 - Required properties: 4 - - compatible : Should be "cdns,ttc". 5 - - reg : Specifies base physical address and size of the registers. 6 - - interrupts : A list of 3 interrupts; one per timer channel. 7 - - clocks: phandle to the source clock 8 - 9 - Optional properties: 10 - - timer-width: Bit width of the timer, necessary if not 16. 11 - 12 - Example: 13 - 14 - ttc0: ttc0@f8001000 { 15 - interrupt-parent = <&intc>; 16 - interrupts = < 0 10 4 0 11 4 0 12 4 >; 17 - compatible = "cdns,ttc"; 18 - reg = <0xF8001000 0x1000>; 19 - clocks = <&cpu_clk 3>; 20 - timer-width = <32>; 21 - };
+48
Documentation/devicetree/bindings/timer/cdns,ttc.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/timer/cdns,ttc.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Cadence TTC - Triple Timer Counter 8 + 9 + maintainers: 10 + - Michal Simek <michal.simek@xilinx.com> 11 + 12 + properties: 13 + compatible: 14 + const: cdns,ttc 15 + 16 + reg: 17 + maxItems: 1 18 + 19 + interrupts: 20 + minItems: 3 21 + maxItems: 3 22 + description: | 23 + A list of 3 interrupts; one per timer channel. 24 + 25 + clocks: 26 + maxItems: 1 27 + 28 + timer-width: 29 + $ref: "/schemas/types.yaml#/definitions/uint32" 30 + description: | 31 + Bit width of the timer, necessary if not 16. 32 + 33 + required: 34 + - compatible 35 + - reg 36 + - interrupts 37 + - clocks 38 + 39 + examples: 40 + - | 41 + ttc0: ttc0@f8001000 { 42 + interrupt-parent = <&intc>; 43 + interrupts = <0 10 4>, <0 11 4>, <0 12 4>; 44 + compatible = "cdns,ttc"; 45 + reg = <0xF8001000 0x1000>; 46 + clocks = <&cpu_clk 3>; 47 + timer-width = <32>; 48 + };
-45
Documentation/devicetree/bindings/timer/fsl,imxgpt.txt
··· 1 - Freescale i.MX General Purpose Timer (GPT) 2 - 3 - Required properties: 4 - 5 - - compatible : should be one of following: 6 - for i.MX1: 7 - - "fsl,imx1-gpt"; 8 - for i.MX21: 9 - - "fsl,imx21-gpt"; 10 - for i.MX27: 11 - - "fsl,imx27-gpt", "fsl,imx21-gpt"; 12 - for i.MX31: 13 - - "fsl,imx31-gpt"; 14 - for i.MX25: 15 - - "fsl,imx25-gpt", "fsl,imx31-gpt"; 16 - for i.MX50: 17 - - "fsl,imx50-gpt", "fsl,imx31-gpt"; 18 - for i.MX51: 19 - - "fsl,imx51-gpt", "fsl,imx31-gpt"; 20 - for i.MX53: 21 - - "fsl,imx53-gpt", "fsl,imx31-gpt"; 22 - for i.MX6Q: 23 - - "fsl,imx6q-gpt", "fsl,imx31-gpt"; 24 - for i.MX6DL: 25 - - "fsl,imx6dl-gpt"; 26 - for i.MX6SL: 27 - - "fsl,imx6sl-gpt", "fsl,imx6dl-gpt"; 28 - for i.MX6SX: 29 - - "fsl,imx6sx-gpt", "fsl,imx6dl-gpt"; 30 - - reg : specifies base physical address and size of the registers. 31 - - interrupts : should be the gpt interrupt. 32 - - clocks : the clocks provided by the SoC to drive the timer, must contain 33 - an entry for each entry in clock-names. 34 - - clock-names : must include "ipg" entry first, then "per" entry. 35 - 36 - Example: 37 - 38 - gpt1: timer@10003000 { 39 - compatible = "fsl,imx27-gpt", "fsl,imx21-gpt"; 40 - reg = <0x10003000 0x1000>; 41 - interrupts = <26>; 42 - clocks = <&clks IMX27_CLK_GPT1_IPG_GATE>, 43 - <&clks IMX27_CLK_PER1_GATE>; 44 - clock-names = "ipg", "per"; 45 - };
+72
Documentation/devicetree/bindings/timer/fsl,imxgpt.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/timer/fsl,imxgpt.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Freescale i.MX General Purpose Timer (GPT) 8 + 9 + maintainers: 10 + - Sascha Hauer <s.hauer@pengutronix.de> 11 + 12 + properties: 13 + compatible: 14 + oneOf: 15 + - const: fsl,imx1-gpt 16 + - const: fsl,imx21-gpt 17 + - items: 18 + - const: fsl,imx27-gpt 19 + - const: fsl,imx21-gpt 20 + - const: fsl,imx31-gpt 21 + - items: 22 + - enum: 23 + - fsl,imx25-gpt 24 + - fsl,imx50-gpt 25 + - fsl,imx51-gpt 26 + - fsl,imx53-gpt 27 + - fsl,imx6q-gpt 28 + - const: fsl,imx31-gpt 29 + - const: fsl,imx6dl-gpt 30 + - items: 31 + - enum: 32 + - fsl,imx6sl-gpt 33 + - fsl,imx6sx-gpt 34 + - const: fsl,imx6dl-gpt 35 + 36 + reg: 37 + maxItems: 1 38 + 39 + interrupts: 40 + maxItems: 1 41 + 42 + clocks: 43 + items: 44 + - description: SoC GPT ipg clock 45 + - description: SoC GPT per clock 46 + 47 + clock-names: 48 + items: 49 + - const: ipg 50 + - const: per 51 + 52 + required: 53 + - compatible 54 + - reg 55 + - interrupts 56 + - clocks 57 + - clock-names 58 + 59 + additionalProperties: false 60 + 61 + examples: 62 + - | 63 + #include <dt-bindings/clock/imx27-clock.h> 64 + 65 + timer@10003000 { 66 + compatible = "fsl,imx27-gpt", "fsl,imx21-gpt"; 67 + reg = <0x10003000 0x1000>; 68 + interrupts = <26>; 69 + clocks = <&clks IMX27_CLK_GPT1_IPG_GATE>, 70 + <&clks IMX27_CLK_PER1_GATE>; 71 + clock-names = "ipg", "per"; 72 + };
-138
Documentation/devicetree/bindings/timer/ingenic,tcu.txt
··· 1 - Ingenic JZ47xx SoCs Timer/Counter Unit devicetree bindings 2 - ========================================================== 3 - 4 - For a description of the TCU hardware and drivers, have a look at 5 - Documentation/mips/ingenic-tcu.rst. 6 - 7 - Required properties: 8 - 9 - - compatible: Must be one of: 10 - * ingenic,jz4740-tcu 11 - * ingenic,jz4725b-tcu 12 - * ingenic,jz4770-tcu 13 - * ingenic,x1000-tcu 14 - followed by "simple-mfd". 15 - - reg: Should be the offset/length value corresponding to the TCU registers 16 - - clocks: List of phandle & clock specifiers for clocks external to the TCU. 17 - The "pclk", "rtc" and "ext" clocks should be provided. The "tcu" clock 18 - should be provided if the SoC has it. 19 - - clock-names: List of name strings for the external clocks. 20 - - #clock-cells: Should be <1>; 21 - Clock consumers specify this argument to identify a clock. The valid values 22 - may be found in <dt-bindings/clock/ingenic,tcu.h>. 23 - - interrupt-controller : Identifies the node as an interrupt controller 24 - - #interrupt-cells : Specifies the number of cells needed to encode an 25 - interrupt source. The value should be 1. 26 - - interrupts : Specifies the interrupt the controller is connected to. 27 - 28 - Optional properties: 29 - 30 - - ingenic,pwm-channels-mask: Bitmask of TCU channels reserved for PWM use. 31 - Default value is 0xfc. 32 - 33 - 34 - Children nodes 35 - ========================================================== 36 - 37 - 38 - PWM node: 39 - --------- 40 - 41 - Required properties: 42 - 43 - - compatible: Must be one of: 44 - * ingenic,jz4740-pwm 45 - * ingenic,jz4725b-pwm 46 - - #pwm-cells: Should be 3. See ../pwm/pwm.yaml for a description of the cell 47 - format. 48 - - clocks: List of phandle & clock specifiers for the TCU clocks. 49 - - clock-names: List of name strings for the TCU clocks. 50 - 51 - 52 - Watchdog node: 53 - -------------- 54 - 55 - Required properties: 56 - 57 - - compatible: Must be "ingenic,jz4740-watchdog" 58 - - clocks: phandle to the WDT clock 59 - - clock-names: should be "wdt" 60 - 61 - 62 - OS Timer node: 63 - --------- 64 - 65 - Required properties: 66 - 67 - - compatible: Must be one of: 68 - * ingenic,jz4725b-ost 69 - * ingenic,jz4770-ost 70 - - clocks: phandle to the OST clock 71 - - clock-names: should be "ost" 72 - - interrupts : Specifies the interrupt the OST is connected to. 73 - 74 - 75 - Example 76 - ========================================================== 77 - 78 - #include <dt-bindings/clock/jz4770-cgu.h> 79 - #include <dt-bindings/clock/ingenic,tcu.h> 80 - 81 - / { 82 - tcu: timer@10002000 { 83 - compatible = "ingenic,jz4770-tcu", "simple-mfd"; 84 - reg = <0x10002000 0x1000>; 85 - #address-cells = <1>; 86 - #size-cells = <1>; 87 - ranges = <0x0 0x10002000 0x1000>; 88 - 89 - #clock-cells = <1>; 90 - 91 - clocks = <&cgu JZ4770_CLK_RTC 92 - &cgu JZ4770_CLK_EXT 93 - &cgu JZ4770_CLK_PCLK>; 94 - clock-names = "rtc", "ext", "pclk"; 95 - 96 - interrupt-controller; 97 - #interrupt-cells = <1>; 98 - 99 - interrupt-parent = <&intc>; 100 - interrupts = <27 26 25>; 101 - 102 - watchdog: watchdog@0 { 103 - compatible = "ingenic,jz4740-watchdog"; 104 - reg = <0x0 0xc>; 105 - 106 - clocks = <&tcu TCU_CLK_WDT>; 107 - clock-names = "wdt"; 108 - }; 109 - 110 - pwm: pwm@40 { 111 - compatible = "ingenic,jz4740-pwm"; 112 - reg = <0x40 0x80>; 113 - 114 - #pwm-cells = <3>; 115 - 116 - clocks = <&tcu TCU_CLK_TIMER0 117 - &tcu TCU_CLK_TIMER1 118 - &tcu TCU_CLK_TIMER2 119 - &tcu TCU_CLK_TIMER3 120 - &tcu TCU_CLK_TIMER4 121 - &tcu TCU_CLK_TIMER5 122 - &tcu TCU_CLK_TIMER6 123 - &tcu TCU_CLK_TIMER7>; 124 - clock-names = "timer0", "timer1", "timer2", "timer3", 125 - "timer4", "timer5", "timer6", "timer7"; 126 - }; 127 - 128 - ost: timer@e0 { 129 - compatible = "ingenic,jz4770-ost"; 130 - reg = <0xe0 0x20>; 131 - 132 - clocks = <&tcu TCU_CLK_OST>; 133 - clock-names = "ost"; 134 - 135 - interrupts = <15>; 136 - }; 137 - }; 138 - };
+280
Documentation/devicetree/bindings/timer/ingenic,tcu.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/timer/ingenic,tcu.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Ingenic SoCs Timer/Counter Unit (TCU) devicetree bindings 8 + 9 + description: | 10 + For a description of the TCU hardware and drivers, have a look at 11 + Documentation/mips/ingenic-tcu.rst. 12 + 13 + maintainers: 14 + - Paul Cercueil <paul@crapouillou.net> 15 + 16 + select: 17 + properties: 18 + compatible: 19 + contains: 20 + enum: 21 + - ingenic,jz4740-tcu 22 + - ingenic,jz4725b-tcu 23 + - ingenic,jz4770-tcu 24 + - ingenic,jz4780-tcu 25 + - ingenic,x1000-tcu 26 + required: 27 + - compatible 28 + 29 + properties: 30 + $nodename: 31 + pattern: "^timer@[0-9a-f]+$" 32 + 33 + "#address-cells": 34 + const: 1 35 + 36 + "#size-cells": 37 + const: 1 38 + 39 + "#clock-cells": 40 + const: 1 41 + 42 + "#interrupt-cells": 43 + const: 1 44 + 45 + interrupt-controller: true 46 + 47 + ranges: true 48 + 49 + compatible: 50 + oneOf: 51 + - items: 52 + - enum: 53 + - ingenic,jz4740-tcu 54 + - ingenic,jz4725b-tcu 55 + - ingenic,jz4770-tcu 56 + - ingenic,x1000-tcu 57 + - const: simple-mfd 58 + - items: 59 + - const: ingenic,jz4780-tcu 60 + - const: ingenic,jz4770-tcu 61 + - const: simple-mfd 62 + 63 + reg: 64 + maxItems: 1 65 + 66 + clocks: 67 + items: 68 + - description: RTC clock 69 + - description: EXT clock 70 + - description: PCLK clock 71 + - description: TCU clock 72 + minItems: 3 73 + 74 + clock-names: 75 + items: 76 + - const: rtc 77 + - const: ext 78 + - const: pclk 79 + - const: tcu 80 + minItems: 3 81 + 82 + interrupts: 83 + items: 84 + - description: TCU0 interrupt 85 + - description: TCU1 interrupt 86 + - description: TCU2 interrupt 87 + minItems: 1 88 + 89 + assigned-clocks: 90 + minItems: 1 91 + maxItems: 8 92 + 93 + assigned-clock-parents: 94 + minItems: 1 95 + maxItems: 8 96 + 97 + assigned-clock-rates: 98 + minItems: 1 99 + maxItems: 8 100 + 101 + ingenic,pwm-channels-mask: 102 + description: Bitmask of TCU channels reserved for PWM use. 103 + $ref: /schemas/types.yaml#/definitions/uint32 104 + minimum: 0x00 105 + maximum: 0xff 106 + default: 0xfc 107 + 108 + patternProperties: 109 + "^watchdog@[a-f0-9]+$": 110 + type: object 111 + $ref: ../watchdog/watchdog.yaml# 112 + properties: 113 + compatible: 114 + oneOf: 115 + - enum: 116 + - ingenic,jz4740-watchdog 117 + - ingenic,jz4780-watchdog 118 + - items: 119 + - const: ingenic,jz4770-watchdog 120 + - const: ingenic,jz4740-watchdog 121 + 122 + reg: 123 + maxItems: 1 124 + 125 + clocks: 126 + maxItems: 1 127 + 128 + clock-names: 129 + const: wdt 130 + 131 + required: 132 + - compatible 133 + - reg 134 + - clocks 135 + - clock-names 136 + 137 + "^pwm@[a-f0-9]+$": 138 + type: object 139 + $ref: ../pwm/pwm.yaml# 140 + properties: 141 + compatible: 142 + oneOf: 143 + - enum: 144 + - ingenic,jz4740-pwm 145 + - items: 146 + - enum: 147 + - ingenic,jz4770-pwm 148 + - ingenic,jz4780-pwm 149 + - const: ingenic,jz4740-pwm 150 + 151 + reg: 152 + maxItems: 1 153 + 154 + clocks: 155 + minItems: 6 156 + maxItems: 8 157 + 158 + clock-names: 159 + items: 160 + - const: timer0 161 + - const: timer1 162 + - const: timer2 163 + - const: timer3 164 + - const: timer4 165 + - const: timer5 166 + - const: timer6 167 + - const: timer7 168 + minItems: 6 169 + 170 + required: 171 + - compatible 172 + - reg 173 + - clocks 174 + - clock-names 175 + 176 + "^timer@[a-f0-9]+$": 177 + type: object 178 + properties: 179 + compatible: 180 + oneOf: 181 + - enum: 182 + - ingenic,jz4725b-ost 183 + - ingenic,jz4770-ost 184 + - items: 185 + - const: ingenic,jz4780-ost 186 + - const: ingenic,jz4770-ost 187 + 188 + reg: 189 + maxItems: 1 190 + 191 + clocks: 192 + maxItems: 1 193 + 194 + clock-names: 195 + const: ost 196 + 197 + interrupts: 198 + maxItems: 1 199 + 200 + required: 201 + - compatible 202 + - reg 203 + - clocks 204 + - clock-names 205 + - interrupts 206 + 207 + additionalProperties: false 208 + 209 + required: 210 + - "#clock-cells" 211 + - "#interrupt-cells" 212 + - interrupt-controller 213 + - compatible 214 + - reg 215 + - clocks 216 + - clock-names 217 + - interrupts 218 + 219 + additionalProperties: false 220 + 221 + examples: 222 + - | 223 + #include <dt-bindings/clock/jz4770-cgu.h> 224 + #include <dt-bindings/clock/ingenic,tcu.h> 225 + tcu: timer@10002000 { 226 + compatible = "ingenic,jz4770-tcu", "simple-mfd"; 227 + reg = <0x10002000 0x1000>; 228 + #address-cells = <1>; 229 + #size-cells = <1>; 230 + ranges = <0x0 0x10002000 0x1000>; 231 + 232 + #clock-cells = <1>; 233 + 234 + clocks = <&cgu JZ4770_CLK_RTC>, 235 + <&cgu JZ4770_CLK_EXT>, 236 + <&cgu JZ4770_CLK_PCLK>; 237 + clock-names = "rtc", "ext", "pclk"; 238 + 239 + interrupt-controller; 240 + #interrupt-cells = <1>; 241 + 242 + interrupt-parent = <&intc>; 243 + interrupts = <27 26 25>; 244 + 245 + watchdog: watchdog@0 { 246 + compatible = "ingenic,jz4770-watchdog", "ingenic,jz4740-watchdog"; 247 + reg = <0x0 0xc>; 248 + 249 + clocks = <&tcu TCU_CLK_WDT>; 250 + clock-names = "wdt"; 251 + }; 252 + 253 + pwm: pwm@40 { 254 + compatible = "ingenic,jz4770-pwm", "ingenic,jz4740-pwm"; 255 + reg = <0x40 0x80>; 256 + 257 + #pwm-cells = <3>; 258 + 259 + clocks = <&tcu TCU_CLK_TIMER0>, 260 + <&tcu TCU_CLK_TIMER1>, 261 + <&tcu TCU_CLK_TIMER2>, 262 + <&tcu TCU_CLK_TIMER3>, 263 + <&tcu TCU_CLK_TIMER4>, 264 + <&tcu TCU_CLK_TIMER5>, 265 + <&tcu TCU_CLK_TIMER6>, 266 + <&tcu TCU_CLK_TIMER7>; 267 + clock-names = "timer0", "timer1", "timer2", "timer3", 268 + "timer4", "timer5", "timer6", "timer7"; 269 + }; 270 + 271 + ost: timer@e0 { 272 + compatible = "ingenic,jz4770-ost"; 273 + reg = <0xe0 0x20>; 274 + 275 + clocks = <&tcu TCU_CLK_OST>; 276 + clock-names = "ost"; 277 + 278 + interrupts = <15>; 279 + }; 280 + };
-25
Documentation/devicetree/bindings/timer/nxp,sysctr-timer.txt
··· 1 - NXP System Counter Module(sys_ctr) 2 - 3 - The system counter(sys_ctr) is a programmable system counter which provides 4 - a shared time base to Cortex A15, A7, A53, A73, etc. it is intended for use in 5 - applications where the counter is always powered and support multiple, 6 - unrelated clocks. The compare frame inside can be used for timer purpose. 7 - 8 - Required properties: 9 - 10 - - compatible : should be "nxp,sysctr-timer" 11 - - reg : Specifies the base physical address and size of the comapre 12 - frame and the counter control, read & compare. 13 - - interrupts : should be the first compare frames' interrupt 14 - - clocks : Specifies the counter clock. 15 - - clock-names: Specifies the clock's name of this module 16 - 17 - Example: 18 - 19 - system_counter: timer@306a0000 { 20 - compatible = "nxp,sysctr-timer"; 21 - reg = <0x306a0000 0x20000>;/* system-counter-rd & compare */ 22 - clocks = <&clk_8m>; 23 - clock-names = "per"; 24 - interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 25 - };
+54
Documentation/devicetree/bindings/timer/nxp,sysctr-timer.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/timer/nxp,sysctr-timer.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: NXP System Counter Module(sys_ctr) 8 + 9 + maintainers: 10 + - Bai Ping <ping.bai@nxp.com> 11 + 12 + description: | 13 + The system counter(sys_ctr) is a programmable system counter 14 + which provides a shared time base to Cortex A15, A7, A53, A73, 15 + etc. it is intended for use in applications where the counter 16 + is always powered and support multiple, unrelated clocks. The 17 + compare frame inside can be used for timer purpose. 18 + 19 + properties: 20 + compatible: 21 + const: nxp,sysctr-timer 22 + 23 + reg: 24 + maxItems: 1 25 + 26 + interrupts: 27 + maxItems: 1 28 + 29 + clocks: 30 + maxItems: 1 31 + 32 + clock-names: 33 + const: per 34 + 35 + required: 36 + - compatible 37 + - reg 38 + - interrupts 39 + - clocks 40 + - clock-names 41 + 42 + additionalProperties: false 43 + 44 + examples: 45 + - | 46 + #include <dt-bindings/interrupt-controller/arm-gic.h> 47 + 48 + timer@306a0000 { 49 + compatible = "nxp,sysctr-timer"; 50 + reg = <0x306a0000 0x20000>; 51 + clocks = <&clk_8m>; 52 + clock-names = "per"; 53 + interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 54 + };
-28
Documentation/devicetree/bindings/timer/nxp,tpm-timer.txt
··· 1 - NXP Low Power Timer/Pulse Width Modulation Module (TPM) 2 - 3 - The Timer/PWM Module (TPM) supports input capture, output compare, 4 - and the generation of PWM signals to control electric motor and power 5 - management applications. The counter, compare and capture registers 6 - are clocked by an asynchronous clock that can remain enabled in low 7 - power modes. TPM can support global counter bus where one TPM drives 8 - the counter bus for the others, provided bit width is the same. 9 - 10 - Required properties: 11 - 12 - - compatible : should be "fsl,imx7ulp-tpm" 13 - - reg : Specifies base physical address and size of the register sets 14 - for the clock event device and clock source device. 15 - - interrupts : Should be the clock event device interrupt. 16 - - clocks : The clocks provided by the SoC to drive the timer, must contain 17 - an entry for each entry in clock-names. 18 - - clock-names : Must include the following entries: "ipg" and "per". 19 - 20 - Example: 21 - tpm5: tpm@40260000 { 22 - compatible = "fsl,imx7ulp-tpm"; 23 - reg = <0x40260000 0x1000>; 24 - interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; 25 - clocks = <&clks IMX7ULP_CLK_NIC1_BUS_DIV>, 26 - <&clks IMX7ULP_CLK_LPTPM5>; 27 - clock-names = "ipg", "per"; 28 - };
+61
Documentation/devicetree/bindings/timer/nxp,tpm-timer.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/timer/nxp,tpm-timer.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: NXP Low Power Timer/Pulse Width Modulation Module (TPM) 8 + 9 + maintainers: 10 + - Dong Aisheng <aisheng.dong@nxp.com> 11 + 12 + description: | 13 + The Timer/PWM Module (TPM) supports input capture, output compare, 14 + and the generation of PWM signals to control electric motor and power 15 + management applications. The counter, compare and capture registers 16 + are clocked by an asynchronous clock that can remain enabled in low 17 + power modes. TPM can support global counter bus where one TPM drives 18 + the counter bus for the others, provided bit width is the same. 19 + 20 + properties: 21 + compatible: 22 + const: fsl,imx7ulp-tpm 23 + 24 + reg: 25 + maxItems: 1 26 + 27 + interrupts: 28 + maxItems: 1 29 + 30 + clocks: 31 + items: 32 + - description: SoC TPM ipg clock 33 + - description: SoC TPM per clock 34 + 35 + clock-names: 36 + items: 37 + - const: ipg 38 + - const: per 39 + 40 + required: 41 + - compatible 42 + - reg 43 + - interrupts 44 + - clocks 45 + - clock-names 46 + 47 + additionalProperties: false 48 + 49 + examples: 50 + - | 51 + #include <dt-bindings/clock/imx7ulp-clock.h> 52 + #include <dt-bindings/interrupt-controller/arm-gic.h> 53 + 54 + timer@40260000 { 55 + compatible = "fsl,imx7ulp-tpm"; 56 + reg = <0x40260000 0x1000>; 57 + interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; 58 + clocks = <&scg1 IMX7ULP_CLK_NIC1_BUS_DIV>, 59 + <&pcc2 IMX7ULP_CLK_LPTPM5>; 60 + clock-names = "ipg", "per"; 61 + };
-110
Documentation/devicetree/bindings/timer/renesas,cmt.txt
··· 1 - * Renesas R-Car Compare Match Timer (CMT) 2 - 3 - The CMT is a multi-channel 16/32/48-bit timer/counter with configurable clock 4 - inputs and programmable compare match. 5 - 6 - Channels share hardware resources but their counter and compare match value 7 - are independent. A particular CMT instance can implement only a subset of the 8 - channels supported by the CMT model. Channel indices represent the hardware 9 - position of the channel in the CMT and don't match the channel numbers in the 10 - datasheets. 11 - 12 - Required Properties: 13 - 14 - - compatible: must contain one or more of the following: 15 - - "renesas,r8a73a4-cmt0" for the 32-bit CMT0 device included in r8a73a4. 16 - - "renesas,r8a73a4-cmt1" for the 48-bit CMT1 device included in r8a73a4. 17 - - "renesas,r8a7740-cmt0" for the 32-bit CMT0 device included in r8a7740. 18 - - "renesas,r8a7740-cmt1" for the 48-bit CMT1 device included in r8a7740. 19 - - "renesas,r8a7740-cmt2" for the 32-bit CMT2 device included in r8a7740. 20 - - "renesas,r8a7740-cmt3" for the 32-bit CMT3 device included in r8a7740. 21 - - "renesas,r8a7740-cmt4" for the 32-bit CMT4 device included in r8a7740. 22 - - "renesas,r8a7743-cmt0" for the 32-bit CMT0 device included in r8a7743. 23 - - "renesas,r8a7743-cmt1" for the 48-bit CMT1 device included in r8a7743. 24 - - "renesas,r8a7744-cmt0" for the 32-bit CMT0 device included in r8a7744. 25 - - "renesas,r8a7744-cmt1" for the 48-bit CMT1 device included in r8a7744. 26 - - "renesas,r8a7745-cmt0" for the 32-bit CMT0 device included in r8a7745. 27 - - "renesas,r8a7745-cmt1" for the 48-bit CMT1 device included in r8a7745. 28 - - "renesas,r8a77470-cmt0" for the 32-bit CMT0 device included in r8a77470. 29 - - "renesas,r8a77470-cmt1" for the 48-bit CMT1 device included in r8a77470. 30 - - "renesas,r8a774a1-cmt0" for the 32-bit CMT0 device included in r8a774a1. 31 - - "renesas,r8a774a1-cmt1" for the 48-bit CMT devices included in r8a774a1. 32 - - "renesas,r8a774b1-cmt0" for the 32-bit CMT0 device included in r8a774b1. 33 - - "renesas,r8a774b1-cmt1" for the 48-bit CMT devices included in r8a774b1. 34 - - "renesas,r8a774c0-cmt0" for the 32-bit CMT0 device included in r8a774c0. 35 - - "renesas,r8a774c0-cmt1" for the 48-bit CMT devices included in r8a774c0. 36 - - "renesas,r8a7790-cmt0" for the 32-bit CMT0 device included in r8a7790. 37 - - "renesas,r8a7790-cmt1" for the 48-bit CMT1 device included in r8a7790. 38 - - "renesas,r8a7791-cmt0" for the 32-bit CMT0 device included in r8a7791. 39 - - "renesas,r8a7791-cmt1" for the 48-bit CMT1 device included in r8a7791. 40 - - "renesas,r8a7792-cmt0" for the 32-bit CMT0 device included in r8a7792. 41 - - "renesas,r8a7792-cmt1" for the 48-bit CMT1 device included in r8a7792. 42 - - "renesas,r8a7793-cmt0" for the 32-bit CMT0 device included in r8a7793. 43 - - "renesas,r8a7793-cmt1" for the 48-bit CMT1 device included in r8a7793. 44 - - "renesas,r8a7794-cmt0" for the 32-bit CMT0 device included in r8a7794. 45 - - "renesas,r8a7794-cmt1" for the 48-bit CMT1 device included in r8a7794. 46 - - "renesas,r8a7795-cmt0" for the 32-bit CMT0 device included in r8a7795. 47 - - "renesas,r8a7795-cmt1" for the 48-bit CMT devices included in r8a7795. 48 - - "renesas,r8a7796-cmt0" for the 32-bit CMT0 device included in r8a7796. 49 - - "renesas,r8a7796-cmt1" for the 48-bit CMT devices included in r8a7796. 50 - - "renesas,r8a77965-cmt0" for the 32-bit CMT0 device included in r8a77965. 51 - - "renesas,r8a77965-cmt1" for the 48-bit CMT devices included in r8a77965. 52 - - "renesas,r8a77970-cmt0" for the 32-bit CMT0 device included in r8a77970. 53 - - "renesas,r8a77970-cmt1" for the 48-bit CMT devices included in r8a77970. 54 - - "renesas,r8a77980-cmt0" for the 32-bit CMT0 device included in r8a77980. 55 - - "renesas,r8a77980-cmt1" for the 48-bit CMT devices included in r8a77980. 56 - - "renesas,r8a77990-cmt0" for the 32-bit CMT0 device included in r8a77990. 57 - - "renesas,r8a77990-cmt1" for the 48-bit CMT devices included in r8a77990. 58 - - "renesas,r8a77995-cmt0" for the 32-bit CMT0 device included in r8a77995. 59 - - "renesas,r8a77995-cmt1" for the 48-bit CMT devices included in r8a77995. 60 - - "renesas,sh73a0-cmt0" for the 32-bit CMT0 device included in sh73a0. 61 - - "renesas,sh73a0-cmt1" for the 48-bit CMT1 device included in sh73a0. 62 - - "renesas,sh73a0-cmt2" for the 32-bit CMT2 device included in sh73a0. 63 - - "renesas,sh73a0-cmt3" for the 32-bit CMT3 device included in sh73a0. 64 - - "renesas,sh73a0-cmt4" for the 32-bit CMT4 device included in sh73a0. 65 - 66 - - "renesas,rcar-gen2-cmt0" for 32-bit CMT0 devices included in R-Car Gen2 67 - and RZ/G1. 68 - - "renesas,rcar-gen2-cmt1" for 48-bit CMT1 devices included in R-Car Gen2 69 - and RZ/G1. 70 - These are fallbacks for r8a73a4, R-Car Gen2 and RZ/G1 entries 71 - listed above. 72 - - "renesas,rcar-gen3-cmt0" for 32-bit CMT0 devices included in R-Car Gen3 73 - and RZ/G2. 74 - - "renesas,rcar-gen3-cmt1" for 48-bit CMT devices included in R-Car Gen3 75 - and RZ/G2. 76 - These are fallbacks for R-Car Gen3 and RZ/G2 entries listed 77 - above. 78 - 79 - - reg: base address and length of the registers block for the timer module. 80 - - interrupts: interrupt-specifier for the timer, one per channel. 81 - - clocks: a list of phandle + clock-specifier pairs, one for each entry 82 - in clock-names. 83 - - clock-names: must contain "fck" for the functional clock. 84 - 85 - 86 - Example: R8A7790 (R-Car H2) CMT0 and CMT1 nodes 87 - 88 - cmt0: timer@ffca0000 { 89 - compatible = "renesas,r8a7790-cmt0", "renesas,rcar-gen2-cmt0"; 90 - reg = <0 0xffca0000 0 0x1004>; 91 - interrupts = <0 142 IRQ_TYPE_LEVEL_HIGH>, 92 - <0 142 IRQ_TYPE_LEVEL_HIGH>; 93 - clocks = <&mstp1_clks R8A7790_CLK_CMT0>; 94 - clock-names = "fck"; 95 - }; 96 - 97 - cmt1: timer@e6130000 { 98 - compatible = "renesas,r8a7790-cmt1", "renesas,rcar-gen2-cmt1"; 99 - reg = <0 0xe6130000 0 0x1004>; 100 - interrupts = <0 120 IRQ_TYPE_LEVEL_HIGH>, 101 - <0 121 IRQ_TYPE_LEVEL_HIGH>, 102 - <0 122 IRQ_TYPE_LEVEL_HIGH>, 103 - <0 123 IRQ_TYPE_LEVEL_HIGH>, 104 - <0 124 IRQ_TYPE_LEVEL_HIGH>, 105 - <0 125 IRQ_TYPE_LEVEL_HIGH>, 106 - <0 126 IRQ_TYPE_LEVEL_HIGH>, 107 - <0 127 IRQ_TYPE_LEVEL_HIGH>; 108 - clocks = <&mstp3_clks R8A7790_CLK_CMT1>; 109 - clock-names = "fck"; 110 - };
+182
Documentation/devicetree/bindings/timer/renesas,cmt.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/timer/renesas,cmt.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Renesas Compare Match Timer (CMT) 8 + 9 + maintainers: 10 + - Geert Uytterhoeven <geert+renesas@glider.be> 11 + - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> 12 + 13 + description: 14 + The CMT is a multi-channel 16/32/48-bit timer/counter with configurable clock 15 + inputs and programmable compare match. 16 + 17 + Channels share hardware resources but their counter and compare match values 18 + are independent. A particular CMT instance can implement only a subset of the 19 + channels supported by the CMT model. Channel indices represent the hardware 20 + position of the channel in the CMT and don't match the channel numbers in the 21 + datasheets. 22 + 23 + properties: 24 + compatible: 25 + oneOf: 26 + - items: 27 + - enum: 28 + - renesas,r8a7740-cmt0 # 32-bit CMT0 on R-Mobile A1 29 + - renesas,r8a7740-cmt1 # 48-bit CMT1 on R-Mobile A1 30 + - renesas,r8a7740-cmt2 # 32-bit CMT2 on R-Mobile A1 31 + - renesas,r8a7740-cmt3 # 32-bit CMT3 on R-Mobile A1 32 + - renesas,r8a7740-cmt4 # 32-bit CMT4 on R-Mobile A1 33 + - renesas,sh73a0-cmt0 # 32-bit CMT0 on SH-Mobile AG5 34 + - renesas,sh73a0-cmt1 # 48-bit CMT1 on SH-Mobile AG5 35 + - renesas,sh73a0-cmt2 # 32-bit CMT2 on SH-Mobile AG5 36 + - renesas,sh73a0-cmt3 # 32-bit CMT3 on SH-Mobile AG5 37 + - renesas,sh73a0-cmt4 # 32-bit CMT4 on SH-Mobile AG5 38 + 39 + - items: 40 + - enum: 41 + - renesas,r8a73a4-cmt0 # 32-bit CMT0 on R-Mobile APE6 42 + - renesas,r8a7743-cmt0 # 32-bit CMT0 on RZ/G1M 43 + - renesas,r8a7744-cmt0 # 32-bit CMT0 on RZ/G1N 44 + - renesas,r8a7745-cmt0 # 32-bit CMT0 on RZ/G1E 45 + - renesas,r8a77470-cmt0 # 32-bit CMT0 on RZ/G1C 46 + - renesas,r8a7790-cmt0 # 32-bit CMT0 on R-Car H2 47 + - renesas,r8a7791-cmt0 # 32-bit CMT0 on R-Car M2-W 48 + - renesas,r8a7792-cmt0 # 32-bit CMT0 on R-Car V2H 49 + - renesas,r8a7793-cmt0 # 32-bit CMT0 on R-Car M2-N 50 + - renesas,r8a7794-cmt0 # 32-bit CMT0 on R-Car E2 51 + - const: renesas,rcar-gen2-cmt0 # 32-bit CMT0 on R-Mobile APE6, R-Car Gen2 and RZ/G1 52 + 53 + - items: 54 + - enum: 55 + - renesas,r8a73a4-cmt1 # 48-bit CMT1 on R-Mobile APE6 56 + - renesas,r8a7743-cmt1 # 48-bit CMT1 on RZ/G1M 57 + - renesas,r8a7744-cmt1 # 48-bit CMT1 on RZ/G1N 58 + - renesas,r8a7745-cmt1 # 48-bit CMT1 on RZ/G1E 59 + - renesas,r8a77470-cmt1 # 48-bit CMT1 on RZ/G1C 60 + - renesas,r8a7790-cmt1 # 48-bit CMT1 on R-Car H2 61 + - renesas,r8a7791-cmt1 # 48-bit CMT1 on R-Car M2-W 62 + - renesas,r8a7792-cmt1 # 48-bit CMT1 on R-Car V2H 63 + - renesas,r8a7793-cmt1 # 48-bit CMT1 on R-Car M2-N 64 + - renesas,r8a7794-cmt1 # 48-bit CMT1 on R-Car E2 65 + - const: renesas,rcar-gen2-cmt1 # 48-bit CMT1 on R-Mobile APE6, R-Car Gen2 and RZ/G1 66 + 67 + - items: 68 + - enum: 69 + - renesas,r8a774a1-cmt0 # 32-bit CMT0 on RZ/G2M 70 + - renesas,r8a774b1-cmt0 # 32-bit CMT0 on RZ/G2N 71 + - renesas,r8a774c0-cmt0 # 32-bit CMT0 on RZ/G2E 72 + - renesas,r8a7795-cmt0 # 32-bit CMT0 on R-Car H3 73 + - renesas,r8a7796-cmt0 # 32-bit CMT0 on R-Car M3-W 74 + - renesas,r8a77965-cmt0 # 32-bit CMT0 on R-Car M3-N 75 + - renesas,r8a77970-cmt0 # 32-bit CMT0 on R-Car V3M 76 + - renesas,r8a77980-cmt0 # 32-bit CMT0 on R-Car V3H 77 + - renesas,r8a77990-cmt0 # 32-bit CMT0 on R-Car E3 78 + - renesas,r8a77995-cmt0 # 32-bit CMT0 on R-Car D3 79 + - const: renesas,rcar-gen3-cmt0 # 32-bit CMT0 on R-Car Gen3 and RZ/G2 80 + 81 + - items: 82 + - enum: 83 + - renesas,r8a774a1-cmt1 # 48-bit CMT on RZ/G2M 84 + - renesas,r8a774b1-cmt1 # 48-bit CMT on RZ/G2N 85 + - renesas,r8a774c0-cmt1 # 48-bit CMT on RZ/G2E 86 + - renesas,r8a7795-cmt1 # 48-bit CMT on R-Car H3 87 + - renesas,r8a7796-cmt1 # 48-bit CMT on R-Car M3-W 88 + - renesas,r8a77965-cmt1 # 48-bit CMT on R-Car M3-N 89 + - renesas,r8a77970-cmt1 # 48-bit CMT on R-Car V3M 90 + - renesas,r8a77980-cmt1 # 48-bit CMT on R-Car V3H 91 + - renesas,r8a77990-cmt1 # 48-bit CMT on R-Car E3 92 + - renesas,r8a77995-cmt1 # 48-bit CMT on R-Car D3 93 + - const: renesas,rcar-gen3-cmt1 # 48-bit CMT on R-Car Gen3 and RZ/G2 94 + 95 + reg: 96 + maxItems: 1 97 + 98 + interrupts: 99 + minItems: 1 100 + maxItems: 8 101 + 102 + clocks: 103 + maxItems: 1 104 + 105 + clock-names: 106 + const: fck 107 + 108 + power-domains: 109 + maxItems: 1 110 + 111 + resets: 112 + maxItems: 1 113 + 114 + required: 115 + - compatible 116 + - reg 117 + - interrupts 118 + - clocks 119 + - clock-names 120 + - power-domains 121 + 122 + allOf: 123 + - if: 124 + properties: 125 + compatible: 126 + contains: 127 + enum: 128 + - renesas,rcar-gen2-cmt0 129 + - renesas,rcar-gen3-cmt0 130 + then: 131 + properties: 132 + interrupts: 133 + minItems: 2 134 + maxItems: 2 135 + 136 + - if: 137 + properties: 138 + compatible: 139 + contains: 140 + enum: 141 + - renesas,rcar-gen2-cmt1 142 + - renesas,rcar-gen3-cmt1 143 + then: 144 + properties: 145 + interrupts: 146 + minItems: 8 147 + maxItems: 8 148 + 149 + additionalProperties: false 150 + 151 + examples: 152 + - | 153 + #include <dt-bindings/clock/r8a7790-cpg-mssr.h> 154 + #include <dt-bindings/interrupt-controller/arm-gic.h> 155 + #include <dt-bindings/power/r8a7790-sysc.h> 156 + cmt0: timer@ffca0000 { 157 + compatible = "renesas,r8a7790-cmt0", "renesas,rcar-gen2-cmt0"; 158 + reg = <0xffca0000 0x1004>; 159 + interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>, 160 + <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>; 161 + clocks = <&cpg CPG_MOD 124>; 162 + clock-names = "fck"; 163 + power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 164 + resets = <&cpg 124>; 165 + }; 166 + 167 + cmt1: timer@e6130000 { 168 + compatible = "renesas,r8a7790-cmt1", "renesas,rcar-gen2-cmt1"; 169 + reg = <0xe6130000 0x1004>; 170 + interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>, 171 + <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>, 172 + <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>, 173 + <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, 174 + <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>, 175 + <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>, 176 + <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>, 177 + <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>; 178 + clocks = <&cpg CPG_MOD 329>; 179 + clock-names = "fck"; 180 + power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 181 + resets = <&cpg 329>; 182 + };
-42
Documentation/devicetree/bindings/timer/renesas,mtu2.txt
··· 1 - * Renesas Multi-Function Timer Pulse Unit 2 (MTU2) 2 - 3 - The MTU2 is a multi-purpose, multi-channel timer/counter with configurable 4 - clock inputs and programmable compare match. 5 - 6 - Channels share hardware resources but their counter and compare match value 7 - are independent. The MTU2 hardware supports five channels indexed from 0 to 4. 8 - 9 - Required Properties: 10 - 11 - - compatible: must be one or more of the following: 12 - - "renesas,mtu2-r7s72100" for the r7s72100 MTU2 13 - - "renesas,mtu2" for any MTU2 14 - This is a fallback for the above renesas,mtu2-* entries 15 - 16 - - reg: base address and length of the registers block for the timer module. 17 - 18 - - interrupts: interrupt specifiers for the timer, one for each entry in 19 - interrupt-names. 20 - - interrupt-names: must contain one entry named "tgi?a" for each enabled 21 - channel, where "?" is the channel index expressed as one digit from "0" to 22 - "4". 23 - 24 - - clocks: a list of phandle + clock-specifier pairs, one for each entry 25 - in clock-names. 26 - - clock-names: must contain "fck" for the functional clock. 27 - 28 - 29 - Example: R7S72100 (RZ/A1H) MTU2 node 30 - 31 - mtu2: timer@fcff0000 { 32 - compatible = "renesas,mtu2-r7s72100", "renesas,mtu2"; 33 - reg = <0xfcff0000 0x400>; 34 - interrupts = <0 139 IRQ_TYPE_LEVEL_HIGH>, 35 - <0 146 IRQ_TYPE_LEVEL_HIGH>, 36 - <0 150 IRQ_TYPE_LEVEL_HIGH>, 37 - <0 154 IRQ_TYPE_LEVEL_HIGH>, 38 - <0 159 IRQ_TYPE_LEVEL_HIGH>; 39 - interrupt-names = "tgi0a", "tgi1a", "tgi2a", "tgi3a", "tgi4a"; 40 - clocks = <&mstp3_clks R7S72100_CLK_MTU2>; 41 - clock-names = "fck"; 42 - };
+76
Documentation/devicetree/bindings/timer/renesas,mtu2.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/timer/renesas,mtu2.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Renesas Multi-Function Timer Pulse Unit 2 (MTU2) 8 + 9 + maintainers: 10 + - Geert Uytterhoeven <geert+renesas@glider.be> 11 + - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> 12 + 13 + description: 14 + The MTU2 is a multi-purpose, multi-channel timer/counter with configurable clock inputs 15 + and programmable compare match. 16 + 17 + Channels share hardware resources but their counter and compare match value are 18 + independent. The MTU2 hardware supports five channels indexed from 0 to 4. 19 + 20 + properties: 21 + compatible: 22 + items: 23 + - enum: 24 + - renesas,mtu2-r7s72100 # RZ/A1H 25 + - const: renesas,mtu2 26 + 27 + reg: 28 + maxItems: 1 29 + 30 + interrupts: 31 + minItems: 1 32 + maxItems: 5 33 + description: One entry for each enabled channel. 34 + 35 + interrupt-names: 36 + minItems: 1 37 + items: 38 + - const: tgi0a 39 + - const: tgi1a 40 + - const: tgi2a 41 + - const: tgi3a 42 + - const: tgi4a 43 + 44 + clocks: 45 + maxItems: 1 46 + 47 + clock-names: 48 + const: fck 49 + 50 + power-domains: 51 + maxItems: 1 52 + 53 + required: 54 + - compatible 55 + - reg 56 + - interrupts 57 + - interrupt-names 58 + - clocks 59 + - clock-names 60 + - power-domains 61 + 62 + additionalProperties: false 63 + 64 + examples: 65 + - | 66 + #include <dt-bindings/clock/r7s72100-clock.h> 67 + #include <dt-bindings/interrupt-controller/arm-gic.h> 68 + mtu2: timer@fcff0000 { 69 + compatible = "renesas,mtu2-r7s72100", "renesas,mtu2"; 70 + reg = <0xfcff0000 0x400>; 71 + interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 72 + interrupt-names = "tgi0a"; 73 + clocks = <&mstp3_clks R7S72100_CLK_MTU2>; 74 + clock-names = "fck"; 75 + power-domains = <&cpg_clocks>; 76 + };
-31
Documentation/devicetree/bindings/timer/renesas,ostm.txt
··· 1 - * Renesas OS Timer (OSTM) 2 - 3 - The OSTM is a multi-channel 32-bit timer/counter with fixed clock 4 - source that can operate in either interval count down timer or free-running 5 - compare match mode. 6 - 7 - Channels are independent from each other. 8 - 9 - Required Properties: 10 - 11 - - compatible: must be one or more of the following: 12 - - "renesas,r7s72100-ostm" for the R7S72100 (RZ/A1) OSTM 13 - - "renesas,r7s9210-ostm" for the R7S9210 (RZ/A2) OSTM 14 - - "renesas,ostm" for any OSTM 15 - This is a fallback for the above renesas,*-ostm entries 16 - 17 - - reg: base address and length of the register block for a timer channel. 18 - 19 - - interrupts: interrupt specifier for the timer channel. 20 - 21 - - clocks: clock specifier for the timer channel. 22 - 23 - Example: R7S72100 (RZ/A1H) OSTM node 24 - 25 - ostm0: timer@fcfec000 { 26 - compatible = "renesas,r7s72100-ostm", "renesas,ostm"; 27 - reg = <0xfcfec000 0x30>; 28 - interrupts = <GIC_SPI 102 IRQ_TYPE_EDGE_RISING>; 29 - clocks = <&mstp5_clks R7S72100_CLK_OSTM0>; 30 - power-domains = <&cpg_clocks>; 31 - };
+59
Documentation/devicetree/bindings/timer/renesas,ostm.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/timer/renesas,ostm.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Renesas OS Timer (OSTM) 8 + 9 + maintainers: 10 + - Chris Brandt <chris.brandt@renesas.com> 11 + - Geert Uytterhoeven <geert+renesas@glider.be> 12 + 13 + description: 14 + The OSTM is a multi-channel 32-bit timer/counter with fixed clock source that 15 + can operate in either interval count down timer or free-running compare match 16 + mode. 17 + 18 + Channels are independent from each other. 19 + 20 + properties: 21 + compatible: 22 + items: 23 + - enum: 24 + - renesas,r7s72100-ostm # RZ/A1H 25 + - renesas,r7s9210-ostm # RZ/A2M 26 + - const: renesas,ostm # Generic 27 + 28 + reg: 29 + maxItems: 1 30 + 31 + interrupts: 32 + maxItems: 1 33 + 34 + clocks: 35 + maxItems: 1 36 + 37 + power-domains: 38 + maxItems: 1 39 + 40 + required: 41 + - compatible 42 + - reg 43 + - interrupts 44 + - clocks 45 + - power-domains 46 + 47 + additionalProperties: false 48 + 49 + examples: 50 + - | 51 + #include <dt-bindings/clock/r7s72100-clock.h> 52 + #include <dt-bindings/interrupt-controller/arm-gic.h> 53 + ostm0: timer@fcfec000 { 54 + compatible = "renesas,r7s72100-ostm", "renesas,ostm"; 55 + reg = <0xfcfec000 0x30>; 56 + interrupts = <GIC_SPI 102 IRQ_TYPE_EDGE_RISING>; 57 + clocks = <&mstp5_clks R7S72100_CLK_OSTM0>; 58 + power-domains = <&cpg_clocks>; 59 + };
+43 -20
Documentation/devicetree/bindings/ufs/ti,j721e-ufs.yaml
··· 25 25 power-domains: 26 26 maxItems: 1 27 27 28 + assigned-clocks: 29 + maxItems: 1 30 + 31 + assigned-clock-parents: 32 + maxItems: 1 33 + 34 + "#address-cells": 35 + const: 2 36 + 37 + "#size-cells": 38 + const: 2 39 + 40 + ranges: true 41 + 28 42 required: 29 43 - compatible 30 44 - reg ··· 53 39 Documentation/devicetree/bindings/ufs/cdns,ufshc.txt for binding 54 40 documentation of child node 55 41 42 + additionalProperties: false 43 + 56 44 examples: 57 45 - | 58 46 #include <dt-bindings/interrupt-controller/irq.h> 59 47 #include <dt-bindings/interrupt-controller/arm-gic.h> 60 48 61 - ufs_wrapper: ufs-wrapper@4e80000 { 62 - compatible = "ti,j721e-ufs"; 63 - reg = <0x0 0x4e80000 0x0 0x100>; 64 - power-domains = <&k3_pds 277>; 65 - clocks = <&k3_clks 277 1>; 66 - assigned-clocks = <&k3_clks 277 1>; 67 - assigned-clock-parents = <&k3_clks 277 4>; 68 - #address-cells = <2>; 69 - #size-cells = <2>; 49 + bus { 50 + #address-cells = <2>; 51 + #size-cells = <2>; 70 52 71 - ufs@4e84000 { 72 - compatible = "cdns,ufshc-m31-16nm", "jedec,ufs-2.0"; 73 - reg = <0x0 0x4e84000 0x0 0x10000>; 74 - interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 75 - freq-table-hz = <19200000 19200000>; 76 - power-domains = <&k3_pds 277>; 77 - clocks = <&k3_clks 277 1>; 78 - assigned-clocks = <&k3_clks 277 1>; 79 - assigned-clock-parents = <&k3_clks 277 4>; 80 - clock-names = "core_clk"; 81 - }; 53 + ufs-wrapper@4e80000 { 54 + compatible = "ti,j721e-ufs"; 55 + reg = <0x0 0x4e80000 0x0 0x100>; 56 + power-domains = <&k3_pds 277>; 57 + clocks = <&k3_clks 277 1>; 58 + assigned-clocks = <&k3_clks 277 1>; 59 + assigned-clock-parents = <&k3_clks 277 4>; 60 + 61 + ranges = <0x0 0x0 0x0 0x4e80000 0x0 0x14000>; 62 + #address-cells = <2>; 63 + #size-cells = <2>; 64 + 65 + ufs@4000 { 66 + compatible = "cdns,ufshc-m31-16nm", "jedec,ufs-2.0"; 67 + reg = <0x0 0x4000 0x0 0x10000>; 68 + interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 69 + freq-table-hz = <19200000 19200000>; 70 + power-domains = <&k3_pds 277>; 71 + clocks = <&k3_clks 277 1>; 72 + assigned-clocks = <&k3_clks 277 1>; 73 + assigned-clock-parents = <&k3_clks 277 4>; 74 + clock-names = "core_clk"; 75 + }; 76 + }; 82 77 };
+1 -2
Documentation/devicetree/bindings/usb/amlogic,meson-g12a-usb-ctrl.yaml
··· 111 111 - | 112 112 usb: usb@ffe09000 { 113 113 compatible = "amlogic,meson-g12a-usb-ctrl"; 114 - reg = <0x0 0xffe09000 0x0 0xa0>; 114 + reg = <0xffe09000 0xa0>; 115 115 interrupts = <16>; 116 116 #address-cells = <1>; 117 117 #size-cells = <1>; ··· 147 147 snps,quirk-frame-length-adjustment; 148 148 }; 149 149 }; 150 -
+8 -10
Documentation/devicetree/bindings/usb/aspeed,usb-vhub.yaml
··· 38 38 39 39 aspeed,vhub-downstream-ports: 40 40 description: Number of downstream ports supported by the Virtual Hub 41 - allOf: 42 - - $ref: /schemas/types.yaml#/definitions/uint32 43 - - default: 5 44 - minimum: 1 45 - maximum: 7 41 + $ref: /schemas/types.yaml#/definitions/uint32 42 + default: 5 43 + minimum: 1 44 + maximum: 7 46 45 47 46 aspeed,vhub-generic-endpoints: 48 47 description: Number of generic endpoints supported by the Virtual Hub 49 - allOf: 50 - - $ref: /schemas/types.yaml#/definitions/uint32 51 - - default: 15 52 - minimum: 1 53 - maximum: 21 48 + $ref: /schemas/types.yaml#/definitions/uint32 49 + default: 15 50 + minimum: 1 51 + maximum: 21 54 52 55 53 required: 56 54 - compatible
+7 -4
Documentation/devicetree/bindings/usb/dwc2.yaml
··· 62 62 63 63 resets: 64 64 items: 65 - - description: common reset 66 - - description: ecc reset 65 + - description: common reset 66 + - description: ecc reset 67 67 minItems: 1 68 68 69 69 reset-names: 70 70 items: 71 - - const: dwc2 72 - - const: dwc2-ecc 71 + - const: dwc2 72 + - const: dwc2-ecc 73 73 minItems: 1 74 74 75 75 phys: ··· 77 77 78 78 phy-names: 79 79 const: usb2-phy 80 + 81 + power-domains: 82 + maxItems: 1 80 83 81 84 vbus-supply: 82 85 description: reference to the VBUS regulator. Depending on the current mode
-23
Documentation/devicetree/bindings/usb/ehci-mv.txt
··· 1 - * Marvell PXA/MMP EHCI controller. 2 - 3 - Required properties: 4 - 5 - - compatible: must be "marvell,pxau2o-ehci" 6 - - reg: physical base addresses of the controller and length of memory mapped region 7 - - interrupts: one EHCI controller interrupt should be described here 8 - - clocks: phandle list of usb clocks 9 - - clock-names: should be "USBCLK" 10 - - phys: phandle for the PHY device 11 - - phy-names: should be "usb" 12 - 13 - Example: 14 - 15 - ehci0: usb-ehci@d4208000 { 16 - compatible = "marvell,pxau2o-ehci"; 17 - reg = <0xd4208000 0x200>; 18 - interrupts = <44>; 19 - clocks = <&soc_clocks MMP2_CLK_USB>; 20 - clock-names = "USBCLK"; 21 - phys = <&usb_otg_phy>; 22 - phy-names = "usb"; 23 - };
+22 -5
Documentation/devicetree/bindings/usb/generic-ehci.yaml
··· 6 6 7 7 title: USB EHCI Controller Device Tree Bindings 8 8 9 - allOf: 10 - - $ref: "usb-hcd.yaml" 11 - 12 9 maintainers: 13 10 - Greg Kroah-Hartman <gregkh@linuxfoundation.org> 11 + 12 + allOf: 13 + - $ref: "usb-hcd.yaml" 14 + - if: 15 + properties: 16 + compatible: 17 + not: 18 + contains: 19 + const: ibm,usb-ehci-440epx 20 + then: 21 + properties: 22 + reg: 23 + maxItems: 1 14 24 15 25 properties: 16 26 compatible: ··· 28 18 const: generic-ehci 29 19 30 20 reg: 31 - maxItems: 1 21 + minItems: 1 22 + maxItems: 2 32 23 33 24 interrupts: 34 25 maxItems: 1 ··· 46 35 - if a host only channel: first clock should be host. 47 36 - if a USB DRD channel: first clock should be host and second 48 37 one should be peripheral 38 + 39 + power-domains: 40 + maxItems: 1 49 41 50 42 big-endian: 51 43 $ref: /schemas/types.yaml#/definitions/flag ··· 88 74 phy-names: 89 75 const: usb 90 76 77 + iommus: 78 + maxItems: 1 79 + 91 80 required: 92 81 - compatible 93 82 - reg ··· 104 87 compatible = "ibm,usb-ehci-440epx", "generic-ehci"; 105 88 interrupt-parent = <&UIC0>; 106 89 interrupts = <0x1a 4>; 107 - reg = <0 0xe0000300 90 0 0xe0000390 70>; 90 + reg = <0xe0000300 90>, <0xe0000390 70>; 108 91 big-endian; 109 92 }; 110 93
+6
Documentation/devicetree/bindings/usb/generic-ohci.yaml
··· 36 36 - if a USB DRD channel: first clock should be host and second 37 37 one should be peripheral 38 38 39 + power-domains: 40 + maxItems: 1 41 + 39 42 big-endian: 40 43 $ref: /schemas/types.yaml#/definitions/flag 41 44 description: ··· 75 72 76 73 phy-names: 77 74 const: usb 75 + 76 + iommus: 77 + maxItems: 1 78 78 79 79 required: 80 80 - compatible
+3
Documentation/devicetree/bindings/usb/ingenic,musb.yaml
··· 42 42 phys: 43 43 description: PHY specifier for the USB PHY 44 44 45 + usb-role-switch: 46 + type: boolean 47 + 45 48 required: 46 49 - compatible 47 50 - reg
+62
Documentation/devicetree/bindings/usb/marvell,pxau2o-ehci.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + # Copyright 2019,2020 Lubomir Rintel <lkundrak@v3.sk> 3 + %YAML 1.2 4 + --- 5 + $id: http://devicetree.org/schemas/usb/marvell,pxau2o-ehci.yaml# 6 + $schema: http://devicetree.org/meta-schemas/core.yaml# 7 + 8 + title: Marvell PXA/MMP EHCI bindings 9 + 10 + maintainers: 11 + - Lubomir Rintel <lkundrak@v3.sk> 12 + 13 + allOf: 14 + - $ref: usb-hcd.yaml# 15 + 16 + properties: 17 + compatible: 18 + const: marvell,pxau2o-ehci 19 + 20 + reg: 21 + maxItems: 1 22 + 23 + interrupts: 24 + maxItems: 1 25 + 26 + clocks: 27 + maxItems: 1 28 + 29 + clock-names: 30 + const: USBCLK 31 + 32 + phys: 33 + maxItems: 1 34 + 35 + phy-names: 36 + const: usb 37 + 38 + required: 39 + - compatible 40 + - reg 41 + - interrupts 42 + - clocks 43 + - clock-names 44 + - phys 45 + - phy-names 46 + 47 + unevaluatedProperties: false 48 + 49 + examples: 50 + - | 51 + #include <dt-bindings/clock/marvell,mmp2.h> 52 + usb@d4208000 { 53 + compatible = "marvell,pxau2o-ehci"; 54 + reg = <0xd4208000 0x200>; 55 + interrupts = <44>; 56 + clocks = <&soc_clocks MMP2_CLK_USB>; 57 + clock-names = "USBCLK"; 58 + phys = <&usb_otg_phy>; 59 + phy-names = "usb"; 60 + }; 61 + 62 + ...
+3 -3
Documentation/devicetree/bindings/usb/nvidia,tegra-xudc.yaml
··· 163 163 164 164 usb@700d0000 { 165 165 compatible = "nvidia,tegra210-xudc"; 166 - reg = <0x0 0x700d0000 0x0 0x8000>, 167 - <0x0 0x700d8000 0x0 0x1000>, 168 - <0x0 0x700d9000 0x0 0x1000>; 166 + reg = <0x700d0000 0x8000>, 167 + <0x700d8000 0x1000>, 168 + <0x700d9000 0x1000>; 169 169 reg-names = "base", "fpci", "ipfs"; 170 170 171 171 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
-104
Documentation/devicetree/bindings/usb/qcom,dwc3.txt
··· 1 - Qualcomm SuperSpeed DWC3 USB SoC controller 2 - 3 - Required properties: 4 - - compatible: Compatible list, contains 5 - "qcom,dwc3" 6 - "qcom,msm8996-dwc3" for msm8996 SOC. 7 - "qcom,msm8998-dwc3" for msm8998 SOC. 8 - "qcom,sdm845-dwc3" for sdm845 SOC. 9 - - reg: Offset and length of register set for QSCRATCH wrapper 10 - - power-domains: specifies a phandle to PM domain provider node 11 - - clocks: A list of phandle + clock-specifier pairs for the 12 - clocks listed in clock-names 13 - - clock-names: Should contain the following: 14 - "core" Master/Core clock, have to be >= 125 MHz for SS 15 - operation and >= 60MHz for HS operation 16 - "mock_utmi" Mock utmi clock needed for ITP/SOF generation in 17 - host mode. Its frequency should be 19.2MHz. 18 - "sleep" Sleep clock, used for wakeup when USB3 core goes 19 - into low power mode (U3). 20 - 21 - Optional clocks: 22 - "iface" System bus AXI clock. 23 - Not present on "qcom,msm8996-dwc3" compatible. 24 - "cfg_noc" System Config NOC clock. 25 - Not present on "qcom,msm8996-dwc3" compatible. 26 - - assigned-clocks: Should be: 27 - MOCK_UTMI_CLK 28 - MASTER_CLK 29 - - assigned-clock-rates: Should be: 30 - 19.2Mhz (192000000) for MOCK_UTMI_CLK 31 - >=125Mhz (125000000) for MASTER_CLK in SS mode 32 - >=60Mhz (60000000) for MASTER_CLK in HS mode 33 - 34 - Optional properties: 35 - - resets: Phandle to reset control that resets core and wrapper. 36 - - interrupts: specifies interrupts from controller wrapper used 37 - to wakeup from low power/susepnd state. Must contain 38 - one or more entry for interrupt-names property 39 - - interrupt-names: Must include the following entries: 40 - - "hs_phy_irq": The interrupt that is asserted when a 41 - wakeup event is received on USB2 bus 42 - - "ss_phy_irq": The interrupt that is asserted when a 43 - wakeup event is received on USB3 bus 44 - - "dm_hs_phy_irq" and "dp_hs_phy_irq": Separate 45 - interrupts for any wakeup event on DM and DP lines 46 - - qcom,select-utmi-as-pipe-clk: if present, disable USB3 pipe_clk requirement. 47 - Used when dwc3 operates without SSPHY and only 48 - HS/FS/LS modes are supported. 49 - 50 - Required child node: 51 - A child node must exist to represent the core DWC3 IP block. The name of 52 - the node is not important. The content of the node is defined in dwc3.txt. 53 - 54 - Phy documentation is provided in the following places: 55 - Documentation/devicetree/bindings/phy/qcom-qmp-phy.txt - USB3 QMP PHY 56 - Documentation/devicetree/bindings/phy/qcom,qusb2-phy.yaml - USB2 QUSB2 PHY 57 - 58 - Example device nodes: 59 - 60 - hs_phy: phy@100f8800 { 61 - compatible = "qcom,qusb2-v2-phy"; 62 - ... 63 - }; 64 - 65 - ss_phy: phy@100f8830 { 66 - compatible = "qcom,qmp-v3-usb3-phy"; 67 - ... 68 - }; 69 - 70 - usb3_0: usb30@a6f8800 { 71 - compatible = "qcom,dwc3"; 72 - reg = <0xa6f8800 0x400>; 73 - #address-cells = <1>; 74 - #size-cells = <1>; 75 - ranges; 76 - 77 - interrupts = <0 131 0>, <0 486 0>, <0 488 0>, <0 489 0>; 78 - interrupt-names = "hs_phy_irq", "ss_phy_irq", 79 - "dm_hs_phy_irq", "dp_hs_phy_irq"; 80 - 81 - clocks = <&gcc GCC_USB30_PRIM_MASTER_CLK>, 82 - <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>, 83 - <&gcc GCC_USB30_PRIM_SLEEP_CLK>; 84 - clock-names = "core", "mock_utmi", "sleep"; 85 - 86 - assigned-clocks = <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>, 87 - <&gcc GCC_USB30_PRIM_MASTER_CLK>; 88 - assigned-clock-rates = <19200000>, <133000000>; 89 - 90 - resets = <&gcc GCC_USB30_PRIM_BCR>; 91 - reset-names = "core_reset"; 92 - power-domains = <&gcc USB30_PRIM_GDSC>; 93 - qcom,select-utmi-as-pipe-clk; 94 - 95 - dwc3@10000000 { 96 - compatible = "snps,dwc3"; 97 - reg = <0x10000000 0xcd00>; 98 - interrupts = <0 205 0x4>; 99 - phys = <&hs_phy>, <&ss_phy>; 100 - phy-names = "usb2-phy", "usb3-phy"; 101 - dr_mode = "host"; 102 - }; 103 - }; 104 -
+174
Documentation/devicetree/bindings/usb/qcom,dwc3.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/usb/qcom,dwc3.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Qualcomm SuperSpeed DWC3 USB SoC controller 8 + 9 + maintainers: 10 + - Manu Gautam <mgautam@codeaurora.org> 11 + 12 + properties: 13 + compatible: 14 + items: 15 + - enum: 16 + - qcom,msm8996-dwc3 17 + - qcom,msm8998-dwc3 18 + - qcom,sc7180-dwc3 19 + - qcom,sdm845-dwc3 20 + - const: qcom,dwc3 21 + 22 + reg: 23 + description: Offset and length of register set for QSCRATCH wrapper 24 + maxItems: 1 25 + 26 + "#address-cells": 27 + enum: [ 1, 2 ] 28 + 29 + "#size-cells": 30 + enum: [ 1, 2 ] 31 + 32 + ranges: true 33 + 34 + power-domains: 35 + description: specifies a phandle to PM domain provider node 36 + maxItems: 1 37 + 38 + clocks: 39 + description: 40 + A list of phandle and clock-specifier pairs for the clocks 41 + listed in clock-names. 42 + items: 43 + - description: System Config NOC clock. 44 + - description: Master/Core clock, has to be >= 125 MHz 45 + for SS operation and >= 60MHz for HS operation. 46 + - description: System bus AXI clock. 47 + - description: Mock utmi clock needed for ITP/SOF generation 48 + in host mode. Its frequency should be 19.2MHz. 49 + - description: Sleep clock, used for wakeup when 50 + USB3 core goes into low power mode (U3). 51 + 52 + clock-names: 53 + items: 54 + - const: cfg_noc 55 + - const: core 56 + - const: iface 57 + - const: mock_utmi 58 + - const: sleep 59 + 60 + assigned-clocks: 61 + items: 62 + - description: Phandle and clock specifier of MOCK_UTMI_CLK. 63 + - description: Phandle and clock specifoer of MASTER_CLK. 64 + 65 + assigned-clock-rates: 66 + items: 67 + - description: Must be 19.2MHz (19200000). 68 + - description: Must be >= 60 MHz in HS mode, >= 125 MHz in SS mode. 69 + resets: 70 + maxItems: 1 71 + 72 + interconnects: 73 + maxItems: 2 74 + 75 + interconnect-names: 76 + items: 77 + - const: usb-ddr 78 + - const: apps-usb 79 + 80 + interrupts: 81 + items: 82 + - description: The interrupt that is asserted 83 + when a wakeup event is received on USB2 bus. 84 + - description: The interrupt that is asserted 85 + when a wakeup event is received on USB3 bus. 86 + - description: Wakeup event on DM line. 87 + - description: Wakeup event on DP line. 88 + 89 + interrupt-names: 90 + items: 91 + - const: hs_phy_irq 92 + - const: ss_phy_irq 93 + - const: dm_hs_phy_irq 94 + - const: dp_hs_phy_irq 95 + 96 + qcom,select-utmi-as-pipe-clk: 97 + description: 98 + If present, disable USB3 pipe_clk requirement. 99 + Used when dwc3 operates without SSPHY and only 100 + HS/FS/LS modes are supported. 101 + type: boolean 102 + 103 + # Required child node: 104 + 105 + patternProperties: 106 + "^dwc3@[0-9a-f]+$": 107 + type: object 108 + description: 109 + A child node must exist to represent the core DWC3 IP block 110 + The content of the node is defined in dwc3.txt. 111 + 112 + required: 113 + - compatible 114 + - reg 115 + - "#address-cells" 116 + - "#size-cells" 117 + - ranges 118 + - power-domains 119 + - clocks 120 + - clock-names 121 + - interrupts 122 + - interrupt-names 123 + 124 + examples: 125 + - | 126 + #include <dt-bindings/clock/qcom,gcc-sdm845.h> 127 + #include <dt-bindings/interrupt-controller/arm-gic.h> 128 + #include <dt-bindings/interrupt-controller/irq.h> 129 + soc { 130 + #address-cells = <2>; 131 + #size-cells = <2>; 132 + 133 + usb@a6f8800 { 134 + compatible = "qcom,sdm845-dwc3", "qcom,dwc3"; 135 + reg = <0 0x0a6f8800 0 0x400>; 136 + 137 + #address-cells = <2>; 138 + #size-cells = <2>; 139 + ranges; 140 + clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>, 141 + <&gcc GCC_USB30_PRIM_MASTER_CLK>, 142 + <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>, 143 + <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>, 144 + <&gcc GCC_USB30_PRIM_SLEEP_CLK>; 145 + clock-names = "cfg_noc", "core", "iface", "mock_utmi", 146 + "sleep"; 147 + 148 + assigned-clocks = <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>, 149 + <&gcc GCC_USB30_PRIM_MASTER_CLK>; 150 + assigned-clock-rates = <19200000>, <150000000>; 151 + 152 + interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>, 153 + <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>, 154 + <GIC_SPI 488 IRQ_TYPE_LEVEL_HIGH>, 155 + <GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH>; 156 + interrupt-names = "hs_phy_irq", "ss_phy_irq", 157 + "dm_hs_phy_irq", "dp_hs_phy_irq"; 158 + 159 + power-domains = <&gcc USB30_PRIM_GDSC>; 160 + 161 + resets = <&gcc GCC_USB30_PRIM_BCR>; 162 + 163 + dwc3@a600000 { 164 + compatible = "snps,dwc3"; 165 + reg = <0 0x0a600000 0 0xcd00>; 166 + interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>; 167 + iommus = <&apps_smmu 0x740 0>; 168 + snps,dis_u2_susphy_quirk; 169 + snps,dis_enblslpm_quirk; 170 + phys = <&usb_1_hsphy>, <&usb_1_ssphy>; 171 + phy-names = "usb2-phy", "usb3-phy"; 172 + }; 173 + }; 174 + };
+1 -1
Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml
··· 73 73 74 74 usb3_peri0: usb@ee020000 { 75 75 compatible = "renesas,r8a774c0-usb3-peri", "renesas,rcar-gen3-usb3-peri"; 76 - reg = <0 0xee020000 0 0x400>; 76 + reg = <0xee020000 0x400>; 77 77 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>; 78 78 clocks = <&cpg CPG_MOD 328>; 79 79 companion = <&xhci0>;
+2 -1
Documentation/devicetree/bindings/usb/renesas,usbhs.yaml
··· 22 22 23 23 - items: 24 24 - enum: 25 + - renesas,usbhs-r8a7742 # RZ/G1H 25 26 - renesas,usbhs-r8a7743 # RZ/G1M 26 27 - renesas,usbhs-r8a7744 # RZ/G1N 27 28 - renesas,usbhs-r8a7745 # RZ/G1E ··· 122 121 123 122 usbhs: usb@e6590000 { 124 123 compatible = "renesas,usbhs-r8a7790", "renesas,rcar-gen2-usbhs"; 125 - reg = <0 0xe6590000 0 0x100>; 124 + reg = <0xe6590000 0x100>; 126 125 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 127 126 clocks = <&cpg CPG_MOD 704>; 128 127 };
+30 -24
Documentation/devicetree/bindings/usb/ti,j721e-usb.yaml
··· 57 57 - | 58 58 #include <dt-bindings/soc/ti,sci_pm_domain.h> 59 59 #include <dt-bindings/interrupt-controller/arm-gic.h> 60 - cdns_usb@4104000 { 61 - compatible = "ti,j721e-usb"; 62 - reg = <0x00 0x4104000 0x00 0x100>; 63 - power-domains = <&k3_pds 288 TI_SCI_PD_EXCLUSIVE>; 64 - clocks = <&k3_clks 288 15>, <&k3_clks 288 3>; 65 - clock-names = "ref", "lpm"; 66 - assigned-clocks = <&k3_clks 288 15>; /* USB2_REFCLK */ 67 - assigned-clock-parents = <&k3_clks 288 16>; /* HFOSC0 */ 68 - #address-cells = <2>; 69 - #size-cells = <2>; 70 60 71 - usb@6000000 { 72 - compatible = "cdns,usb3"; 73 - reg = <0x00 0x6000000 0x00 0x10000>, 74 - <0x00 0x6010000 0x00 0x10000>, 75 - <0x00 0x6020000 0x00 0x10000>; 76 - reg-names = "otg", "xhci", "dev"; 77 - interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>, /* irq.0 */ 78 - <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>, /* irq.6 */ 79 - <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; /* otgirq.0 */ 80 - interrupt-names = "host", 81 - "peripheral", 82 - "otg"; 83 - maximum-speed = "super-speed"; 84 - dr_mode = "otg"; 61 + bus { 62 + #address-cells = <2>; 63 + #size-cells = <2>; 64 + 65 + cdns_usb@4104000 { 66 + compatible = "ti,j721e-usb"; 67 + reg = <0x00 0x4104000 0x00 0x100>; 68 + power-domains = <&k3_pds 288 TI_SCI_PD_EXCLUSIVE>; 69 + clocks = <&k3_clks 288 15>, <&k3_clks 288 3>; 70 + clock-names = "ref", "lpm"; 71 + assigned-clocks = <&k3_clks 288 15>; /* USB2_REFCLK */ 72 + assigned-clock-parents = <&k3_clks 288 16>; /* HFOSC0 */ 73 + #address-cells = <2>; 74 + #size-cells = <2>; 75 + 76 + usb@6000000 { 77 + compatible = "cdns,usb3"; 78 + reg = <0x00 0x6000000 0x00 0x10000>, 79 + <0x00 0x6010000 0x00 0x10000>, 80 + <0x00 0x6020000 0x00 0x10000>; 81 + reg-names = "otg", "xhci", "dev"; 82 + interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>, /* irq.0 */ 83 + <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>, /* irq.6 */ 84 + <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; /* otgirq.0 */ 85 + interrupt-names = "host", 86 + "peripheral", 87 + "otg"; 88 + maximum-speed = "super-speed"; 89 + dr_mode = "otg"; 90 + }; 85 91 }; 86 92 };
-30
Documentation/devicetree/bindings/usb/usb-conn-gpio.txt
··· 1 - USB GPIO Based Connection Detection 2 - 3 - This is typically used to switch dual role mode from the USB ID pin connected 4 - to an input GPIO, and also used to enable/disable device mode from the USB 5 - Vbus pin connected to an input GPIO. 6 - 7 - Required properties: 8 - - compatible : should include "gpio-usb-b-connector" and "usb-b-connector". 9 - - id-gpios, vbus-gpios : input gpios, either one of them must be present, 10 - and both can be present as well. 11 - see connector/usb-connector.yaml 12 - 13 - Optional properties: 14 - - vbus-supply : can be present if needed when supports dual role mode. 15 - see connector/usb-connector.yaml 16 - 17 - - Sub-nodes: 18 - - port : can be present. 19 - see graph.txt 20 - 21 - Example: 22 - 23 - &mtu3 { 24 - connector { 25 - compatible = "gpio-usb-b-connector", "usb-b-connector"; 26 - type = "micro"; 27 - id-gpios = <&pio 12 GPIO_ACTIVE_HIGH>; 28 - vbus-supply = <&usb_p0_vbus>; 29 - }; 30 - };
+1
Documentation/devicetree/bindings/usb/usb-xhci.txt
··· 7 7 - "marvell,armada3700-xhci" for Armada 37xx SoCs 8 8 - "marvell,armada-375-xhci" for Armada 375 SoCs 9 9 - "marvell,armada-380-xhci" for Armada 38x SoCs 10 + - "renesas,xhci-r8a7742" for r8a7742 SoC 10 11 - "renesas,xhci-r8a7743" for r8a7743 SoC 11 12 - "renesas,xhci-r8a7744" for r8a7744 SoC 12 13 - "renesas,xhci-r8a774a1" for r8a774a1 SoC
+20
Documentation/devicetree/bindings/vendor-prefixes.yaml
··· 59 59 description: Allwinner Technology Co., Ltd. 60 60 "^alphascale,.*": 61 61 description: AlphaScale Integrated Circuits Systems, Inc. 62 + "^alps,.*": 63 + description: Alps Electric Co., Ltd. 62 64 "^altr,.*": 63 65 description: Altera Corp. 64 66 "^amarula,.*": ··· 133 131 description: Shanghai AVIC Optoelectronics Co., Ltd. 134 132 "^avnet,.*": 135 133 description: Avnet, Inc. 134 + "^awinic,.*": 135 + description: Shanghai Awinic Technology Co., Ltd. 136 136 "^axentia,.*": 137 137 description: Axentia Technologies AB 138 138 "^axis,.*": ··· 143 139 description: Azoteq (Pty) Ltd 144 140 "^azw,.*": 145 141 description: Shenzhen AZW Technology Co., Ltd. 142 + "^baikal,.*": 143 + description: BAIKAL ELECTRONICS, JSC 146 144 "^bananapi,.*": 147 145 description: BIPAI KEJI LIMITED 148 146 "^beacon,.*": 149 147 description: Compass Electronics Group, LLC 148 + "^beagle,.*": 149 + description: BeagleBoard.org Foundation 150 150 "^bhf,.*": 151 151 description: Beckhoff Automation GmbH & Co. KG 152 152 "^bitmain,.*": ··· 189 181 description: CDTech(H.K.) Electronics Limited 190 182 "^ceva,.*": 191 183 description: Ceva, Inc. 184 + "^checkpoint,.*": 185 + description: Check Point Software Technologies Ltd. 192 186 "^chipidea,.*": 193 187 description: Chipidea, Inc 194 188 "^chipone,.*": ··· 826 816 description: Primux Trading, S.L. 827 817 "^probox2,.*": 828 818 description: PROBOX2 (by W2COMP Co., Ltd.) 819 + "^prt,.*": 820 + description: Protonic Holland 829 821 "^pulsedlight,.*": 830 822 description: PulsedLight, Inc 831 823 "^purism,.*": ··· 940 928 description: Silead Inc. 941 929 "^silergy,.*": 942 930 description: Silergy Corp. 931 + "^silex-insight,.*": 932 + description: Silex Insight 943 933 "^siliconmitus,.*": 944 934 description: Silicon Mitus, Inc. 945 935 "^simtek,.*": ··· 1073 1059 description: Tyan Computer Corporation 1074 1060 "^u-blox,.*": 1075 1061 description: u-blox 1062 + "^u-boot,.*": 1063 + description: U-Boot bootloader 1076 1064 "^ucrobotics,.*": 1077 1065 description: uCRobotics 1078 1066 "^ubnt,.*": ··· 1095 1079 description: Aigo Digital Technology Co., Ltd. 1096 1080 "^v3,.*": 1097 1081 description: V3 Semiconductor 1082 + "^vaisala,.*": 1083 + description: Vaisala 1098 1084 "^vamrs,.*": 1099 1085 description: Vamrs Ltd. 1100 1086 "^variscite,.*": ··· 1125 1107 description: Waveshare Electronics 1126 1108 "^wd,.*": 1127 1109 description: Western Digital Corp. 1110 + "^we,.*": 1111 + description: Würth Elektronik GmbH. 1128 1112 "^wetek,.*": 1129 1113 description: WeTek Electronics, limited. 1130 1114 "^wexler,.*":
-24
Documentation/devicetree/bindings/watchdog/fsl-imx-wdt.txt
··· 1 - * Freescale i.MX Watchdog Timer (WDT) Controller 2 - 3 - Required properties: 4 - - compatible : Should be "fsl,<soc>-wdt" 5 - - reg : Should contain WDT registers location and length 6 - - interrupts : Should contain WDT interrupt 7 - 8 - Optional properties: 9 - - big-endian: If present the watchdog device's registers are implemented 10 - in big endian mode, otherwise in native mode(same with CPU), for more 11 - detail please see: Documentation/devicetree/bindings/regmap/regmap.txt. 12 - - fsl,ext-reset-output: If present the watchdog device is configured to 13 - assert its external reset (WDOG_B) instead of issuing a software reset. 14 - - timeout-sec : Contains the watchdog timeout in seconds 15 - 16 - Examples: 17 - 18 - wdt@73f98000 { 19 - compatible = "fsl,imx51-wdt", "fsl,imx21-wdt"; 20 - reg = <0x73f98000 0x4000>; 21 - interrupts = <58>; 22 - big-endian; 23 - timeout-sec = <20>; 24 - };
+54
Documentation/devicetree/bindings/watchdog/fsl-imx-wdt.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/watchdog/fsl-imx-wdt.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Freescale i.MX Watchdog Timer (WDT) Controller 8 + 9 + maintainers: 10 + - Anson Huang <Anson.Huang@nxp.com> 11 + 12 + allOf: 13 + - $ref: "watchdog.yaml#" 14 + 15 + properties: 16 + compatible: 17 + enum: 18 + - fsl,imx21-wdt 19 + 20 + reg: 21 + maxItems: 1 22 + 23 + interrupts: 24 + maxItems: 1 25 + 26 + clocks: 27 + maxItems: 1 28 + 29 + fsl,ext-reset-output: 30 + $ref: /schemas/types.yaml#/definitions/flag 31 + description: | 32 + If present, the watchdog device is configured to assert its 33 + external reset (WDOG_B) instead of issuing a software reset. 34 + 35 + required: 36 + - compatible 37 + - interrupts 38 + - reg 39 + 40 + unevaluatedProperties: false 41 + 42 + examples: 43 + - | 44 + #include <dt-bindings/interrupt-controller/arm-gic.h> 45 + #include <dt-bindings/clock/imx6qdl-clock.h> 46 + 47 + watchdog@20bc000 { 48 + compatible = "fsl,imx21-wdt"; 49 + reg = <0x020bc000 0x4000>; 50 + interrupts = <0 80 IRQ_TYPE_LEVEL_HIGH>; 51 + clocks = <&clks IMX6QDL_CLK_IPG>; 52 + }; 53 + 54 + ...
-22
Documentation/devicetree/bindings/watchdog/fsl-imx7ulp-wdt.txt
··· 1 - * Freescale i.MX7ULP Watchdog Timer (WDT) Controller 2 - 3 - Required properties: 4 - - compatible : Should be "fsl,imx7ulp-wdt" 5 - - reg : Should contain WDT registers location and length 6 - - interrupts : Should contain WDT interrupt 7 - - clocks: Should contain a phandle pointing to the gated peripheral clock. 8 - 9 - Optional properties: 10 - - timeout-sec : Contains the watchdog timeout in seconds 11 - 12 - Examples: 13 - 14 - wdog1: watchdog@403d0000 { 15 - compatible = "fsl,imx7ulp-wdt"; 16 - reg = <0x403d0000 0x10000>; 17 - interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; 18 - clocks = <&pcc2 IMX7ULP_CLK_WDG1>; 19 - assigned-clocks = <&pcc2 IMX7ULP_CLK_WDG1>; 20 - assigned-clocks-parents = <&scg1 IMX7ULP_CLK_FIRC_BUS_CLK>; 21 - timeout-sec = <40>; 22 - };
+60
Documentation/devicetree/bindings/watchdog/fsl-imx7ulp-wdt.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/watchdog/fsl-imx7ulp-wdt.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Freescale i.MX7ULP Watchdog Timer (WDT) Controller 8 + 9 + maintainers: 10 + - Anson Huang <Anson.Huang@nxp.com> 11 + 12 + allOf: 13 + - $ref: "watchdog.yaml#" 14 + 15 + properties: 16 + compatible: 17 + enum: 18 + - fsl,imx7ulp-wdt 19 + 20 + reg: 21 + maxItems: 1 22 + 23 + interrupts: 24 + maxItems: 1 25 + 26 + clocks: 27 + maxItems: 1 28 + 29 + assigned-clocks: 30 + maxItems: 1 31 + 32 + assigned-clocks-parents: 33 + maxItems: 1 34 + 35 + timeout-sec: true 36 + 37 + required: 38 + - compatible 39 + - interrupts 40 + - reg 41 + - clocks 42 + 43 + additionalProperties: false 44 + 45 + examples: 46 + - | 47 + #include <dt-bindings/interrupt-controller/arm-gic.h> 48 + #include <dt-bindings/clock/imx7ulp-clock.h> 49 + 50 + watchdog@403d0000 { 51 + compatible = "fsl,imx7ulp-wdt"; 52 + reg = <0x403d0000 0x10000>; 53 + interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; 54 + clocks = <&pcc2 IMX7ULP_CLK_WDG1>; 55 + assigned-clocks = <&pcc2 IMX7ULP_CLK_WDG1>; 56 + assigned-clocks-parents = <&scg1 IMX7ULP_CLK_FIRC_BUS_CLK>; 57 + timeout-sec = <40>; 58 + }; 59 + 60 + ...
-51
Documentation/devicetree/bindings/watchdog/renesas,wdt.txt
··· 1 - Renesas Watchdog Timer (WDT) Controller 2 - 3 - Required properties: 4 - - compatible : Must be "renesas,<soctype>-wdt", followed by a generic 5 - fallback compatible string when compatible with the generic 6 - version. 7 - Examples with soctypes are: 8 - - "renesas,r8a7742-wdt" (RZ/G1H) 9 - - "renesas,r8a7743-wdt" (RZ/G1M) 10 - - "renesas,r8a7744-wdt" (RZ/G1N) 11 - - "renesas,r8a7745-wdt" (RZ/G1E) 12 - - "renesas,r8a77470-wdt" (RZ/G1C) 13 - - "renesas,r8a774a1-wdt" (RZ/G2M) 14 - - "renesas,r8a774b1-wdt" (RZ/G2N) 15 - - "renesas,r8a774c0-wdt" (RZ/G2E) 16 - - "renesas,r8a7790-wdt" (R-Car H2) 17 - - "renesas,r8a7791-wdt" (R-Car M2-W) 18 - - "renesas,r8a7792-wdt" (R-Car V2H) 19 - - "renesas,r8a7793-wdt" (R-Car M2-N) 20 - - "renesas,r8a7794-wdt" (R-Car E2) 21 - - "renesas,r8a7795-wdt" (R-Car H3) 22 - - "renesas,r8a7796-wdt" (R-Car M3-W) 23 - - "renesas,r8a77961-wdt" (R-Car M3-W+) 24 - - "renesas,r8a77965-wdt" (R-Car M3-N) 25 - - "renesas,r8a77970-wdt" (R-Car V3M) 26 - - "renesas,r8a77990-wdt" (R-Car E3) 27 - - "renesas,r8a77995-wdt" (R-Car D3) 28 - - "renesas,r7s72100-wdt" (RZ/A1) 29 - - "renesas,r7s9210-wdt" (RZ/A2) 30 - The generic compatible string must be: 31 - - "renesas,rza-wdt" for RZ/A 32 - - "renesas,rcar-gen2-wdt" for R-Car Gen2 and RZ/G1 33 - - "renesas,rcar-gen3-wdt" for R-Car Gen3 and RZ/G2 34 - 35 - - reg : Should contain WDT registers location and length 36 - - clocks : the clock feeding the watchdog timer. 37 - 38 - Optional properties: 39 - - timeout-sec : Contains the watchdog timeout in seconds 40 - - power-domains : the power domain the WDT belongs to 41 - - interrupts: Some WDTs have an interrupt when used in interval timer mode 42 - 43 - Examples: 44 - 45 - wdt0: watchdog@e6020000 { 46 - compatible = "renesas,r8a7795-wdt", "renesas,rcar-gen3-wdt"; 47 - reg = <0 0xe6020000 0 0x0c>; 48 - clocks = <&cpg CPG_MOD 402>; 49 - power-domains = <&cpg>; 50 - timeout-sec = <60>; 51 - };
+101
Documentation/devicetree/bindings/watchdog/renesas,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/renesas,wdt.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Renesas Watchdog Timer (WDT) Controller 8 + 9 + maintainers: 10 + - Wolfram Sang <wsa+renesas@sang-engineering.com> 11 + - Geert Uytterhoeven <geert+renesas@glider.be> 12 + 13 + allOf: 14 + - $ref: "watchdog.yaml#" 15 + 16 + properties: 17 + compatible: 18 + oneOf: 19 + - items: 20 + - enum: 21 + - renesas,r7s72100-wdt # RZ/A1 22 + - renesas,r7s9210-wdt # RZ/A2 23 + - const: renesas,rza-wdt # RZ/A 24 + 25 + - items: 26 + - enum: 27 + - renesas,r8a7742-wdt # RZ/G1H 28 + - renesas,r8a7743-wdt # RZ/G1M 29 + - renesas,r8a7744-wdt # RZ/G1N 30 + - renesas,r8a7745-wdt # RZ/G1E 31 + - renesas,r8a77470-wdt # RZ/G1C 32 + - renesas,r8a7790-wdt # R-Car H2 33 + - renesas,r8a7791-wdt # R-Car M2-W 34 + - renesas,r8a7792-wdt # R-Car V2H 35 + - renesas,r8a7793-wdt # R-Car M2-N 36 + - renesas,r8a7794-wdt # R-Car E2 37 + - const: renesas,rcar-gen2-wdt # R-Car Gen2 and RZ/G1 38 + 39 + - items: 40 + - enum: 41 + - renesas,r8a774a1-wdt # RZ/G2M 42 + - renesas,r8a774b1-wdt # RZ/G2N 43 + - renesas,r8a774c0-wdt # RZ/G2E 44 + - renesas,r8a7795-wdt # R-Car H3 45 + - renesas,r8a7796-wdt # R-Car M3-W 46 + - renesas,r8a77961-wdt # R-Car M3-W+ 47 + - renesas,r8a77965-wdt # R-Car M3-N 48 + - renesas,r8a77970-wdt # R-Car V3M 49 + - renesas,r8a77980-wdt # R-Car V3H 50 + - renesas,r8a77990-wdt # R-Car E3 51 + - renesas,r8a77995-wdt # R-Car D3 52 + - const: renesas,rcar-gen3-wdt # R-Car Gen3 and RZ/G2 53 + 54 + reg: 55 + maxItems: 1 56 + 57 + interrupts: 58 + maxItems: 1 59 + 60 + clocks: 61 + maxItems: 1 62 + 63 + power-domains: 64 + maxItems: 1 65 + 66 + resets: 67 + maxItems: 1 68 + 69 + timeout-sec: true 70 + 71 + required: 72 + - compatible 73 + - reg 74 + - clocks 75 + 76 + if: 77 + not: 78 + properties: 79 + compatible: 80 + contains: 81 + enum: 82 + - renesas,rza-wdt 83 + then: 84 + required: 85 + - power-domains 86 + - resets 87 + 88 + additionalProperties: false 89 + 90 + examples: 91 + - | 92 + #include <dt-bindings/clock/r8a7795-cpg-mssr.h> 93 + #include <dt-bindings/power/r8a7795-sysc.h> 94 + wdt0: watchdog@e6020000 { 95 + compatible = "renesas,r8a7795-wdt", "renesas,rcar-gen3-wdt"; 96 + reg = <0xe6020000 0x0c>; 97 + clocks = <&cpg CPG_MOD 402>; 98 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 99 + resets = <&cpg 402>; 100 + timeout-sec = <60>; 101 + };
+36
Documentation/devicetree/bindings/watchdog/socionext,uniphier-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/socionext,uniphier-wdt.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Socionext UniPhier watchdog timer 8 + 9 + maintainers: 10 + - Keiji Hayashibara <hayashibara.keiji@socionext.com> 11 + 12 + allOf: 13 + - $ref: "watchdog.yaml#" 14 + 15 + properties: 16 + compatible: 17 + const: socionext,uniphier-wdt 18 + 19 + required: 20 + - compatible 21 + 22 + additionalProperties: false 23 + 24 + examples: 25 + - | 26 + // The UniPhier watchdog should be a subnode of a "syscon" compatible node. 27 + 28 + sysctrl@61840000 { 29 + compatible = "socionext,uniphier-ld11-sysctrl", 30 + "simple-mfd", "syscon"; 31 + reg = <0x61840000 0x10000>; 32 + 33 + watchdog { 34 + compatible = "socionext,uniphier-wdt"; 35 + }; 36 + };
+1 -1
Documentation/devicetree/bindings/watchdog/ti,rti-wdt.yaml
··· 57 57 58 58 watchdog0: rti@2200000 { 59 59 compatible = "ti,rti-wdt"; 60 - reg = <0x0 0x2200000 0x0 0x100>; 60 + reg = <0x2200000 0x100>; 61 61 clocks = <&k3_clks 252 1>; 62 62 power-domains = <&k3_pds 252 TI_SCI_PD_EXCLUSIVE>; 63 63 assigned-clocks = <&k3_clks 252 1>;
-20
Documentation/devicetree/bindings/watchdog/uniphier-wdt.txt
··· 1 - UniPhier watchdog timer controller 2 - 3 - This UniPhier watchdog timer controller must be under sysctrl node. 4 - 5 - Required properties: 6 - - compatible: should be "socionext,uniphier-wdt" 7 - 8 - Example: 9 - 10 - sysctrl@61840000 { 11 - compatible = "socionext,uniphier-ld11-sysctrl", 12 - "simple-mfd", "syscon"; 13 - reg = <0x61840000 0x4000>; 14 - 15 - watchdog { 16 - compatible = "socionext,uniphier-wdt"; 17 - } 18 - 19 - other nodes ... 20 - };
+67
Documentation/devicetree/bindings/writing-bindings.rst
··· 1 + .. SPDX-License-Identifier: GPL-2.0 2 + 3 + ============================================================ 4 + DOs and DON'Ts for designing and writing Devicetree bindings 5 + ============================================================ 6 + 7 + This is a list of common review feedback items focused on binding design. With 8 + every rule, there are exceptions and bindings have many gray areas. 9 + 10 + For guidelines related to patches, see 11 + Documentation/devicetree/bindings/submitting-patches.rst 12 + 13 + 14 + Overall design 15 + ============== 16 + 17 + - DO attempt to make bindings complete even if a driver doesn't support some 18 + features. For example, if a device has an interrupt, then include the 19 + 'interrupts' property even if the driver is only polled mode. 20 + 21 + - DON'T refer to Linux or "device driver" in bindings. Bindings should be 22 + based on what the hardware has, not what an OS and driver currently support. 23 + 24 + - DO use node names matching the class of the device. Many standard names are 25 + defined in the DT Spec. If there isn't one, consider adding it. 26 + 27 + - DO check that the example matches the documentation especially after making 28 + review changes. 29 + 30 + - DON'T create nodes just for the sake of instantiating drivers. Multi-function 31 + devices only need child nodes when the child nodes have their own DT 32 + resources. A single node can be multiple providers (e.g. clocks and resets). 33 + 34 + - DON'T use 'syscon' alone without a specific compatible string. A 'syscon' 35 + hardware block should have a compatible string unique enough to infer the 36 + register layout of the entire block (at a minimum). 37 + 38 + 39 + Properties 40 + ========== 41 + 42 + - DO make 'compatible' properties specific. DON'T use wildcards in compatible 43 + strings. DO use fallback compatibles when devices are the same as or a subset 44 + of prior implementations. DO add new compatibles in case there are new 45 + features or bugs. 46 + 47 + - DO use a vendor prefix on device specific property names. Consider if 48 + properties could be common among devices of the same class. Check other 49 + existing bindings for similar devices. 50 + 51 + - DON'T redefine common properties. Just reference the definition and define 52 + constraints specific to the device. 53 + 54 + - DO use common property unit suffixes for properties with scientific units. 55 + See property-units.txt. 56 + 57 + - DO define properties in terms of constraints. How many entries? What are 58 + possible values? What is the order? 59 + 60 + 61 + Board/SoC .dts Files 62 + ==================== 63 + 64 + - DO put all MMIO devices under a bus node and not at the top-level. 65 + 66 + - DO use non-empty 'ranges' to limit the size of child buses/devices. 64-bit 67 + platforms don't need all devices to have 64-bit address and size.
-60
Documentation/devicetree/bindings/writing-bindings.txt
··· 1 - DOs and DON'Ts for designing and writing Devicetree bindings 2 - 3 - This is a list of common review feedback items focused on binding design. With 4 - every rule, there are exceptions and bindings have many gray areas. 5 - 6 - For guidelines related to patches, see 7 - Documentation/devicetree/bindings/submitting-patches.txt 8 - 9 - 10 - Overall design 11 - 12 - - DO attempt to make bindings complete even if a driver doesn't support some 13 - features. For example, if a device has an interrupt, then include the 14 - 'interrupts' property even if the driver is only polled mode. 15 - 16 - - DON'T refer to Linux or "device driver" in bindings. Bindings should be 17 - based on what the hardware has, not what an OS and driver currently support. 18 - 19 - - DO use node names matching the class of the device. Many standard names are 20 - defined in the DT Spec. If there isn't one, consider adding it. 21 - 22 - - DO check that the example matches the documentation especially after making 23 - review changes. 24 - 25 - - DON'T create nodes just for the sake of instantiating drivers. Multi-function 26 - devices only need child nodes when the child nodes have their own DT 27 - resources. A single node can be multiple providers (e.g. clocks and resets). 28 - 29 - - DON'T use 'syscon' alone without a specific compatible string. A 'syscon' 30 - hardware block should have a compatible string unique enough to infer the 31 - register layout of the entire block (at a minimum). 32 - 33 - 34 - Properties 35 - 36 - - DO make 'compatible' properties specific. DON'T use wildcards in compatible 37 - strings. DO use fallback compatibles when devices are the same as or a subset 38 - of prior implementations. DO add new compatibles in case there are new 39 - features or bugs. 40 - 41 - - DO use a vendor prefix on device specific property names. Consider if 42 - properties could be common among devices of the same class. Check other 43 - existing bindings for similar devices. 44 - 45 - - DON'T redefine common properties. Just reference the definition and define 46 - constraints specific to the device. 47 - 48 - - DO use common property unit suffixes for properties with scientific units. 49 - See property-units.txt. 50 - 51 - - DO define properties in terms of constraints. How many entries? What are 52 - possible values? What is the order? 53 - 54 - 55 - Board/SoC .dts Files 56 - 57 - - DO put all MMIO devices under a bus node and not at the top-level. 58 - 59 - - DO use non-empty 'ranges' to limit the size of child buses/devices. 64-bit 60 - platforms don't need all devices to have 64-bit address and size.
+37
Documentation/devicetree/changesets.rst
··· 1 + .. SPDX-License-Identifier: GPL-2.0 2 + 3 + ============= 4 + DT Changesets 5 + ============= 6 + 7 + A DT changeset is a method which allows one to apply changes 8 + in the live tree in such a way that either the full set of changes 9 + will be applied, or none of them will be. If an error occurs partway 10 + through applying the changeset, then the tree will be rolled back to the 11 + previous state. A changeset can also be removed after it has been 12 + applied. 13 + 14 + When a changeset is applied, all of the changes get applied to the tree 15 + at once before emitting OF_RECONFIG notifiers. This is so that the 16 + receiver sees a complete and consistent state of the tree when it 17 + receives the notifier. 18 + 19 + The sequence of a changeset is as follows. 20 + 21 + 1. of_changeset_init() - initializes a changeset 22 + 23 + 2. A number of DT tree change calls, of_changeset_attach_node(), 24 + of_changeset_detach_node(), of_changeset_add_property(), 25 + of_changeset_remove_property, of_changeset_update_property() to prepare 26 + a set of changes. No changes to the active tree are made at this point. 27 + All the change operations are recorded in the of_changeset 'entries' 28 + list. 29 + 30 + 3. of_changeset_apply() - Apply the changes to the tree. Either the 31 + entire changeset will get applied, or if there is an error the tree will 32 + be restored to the previous state. The core ensures proper serialization 33 + through locking. An unlocked version __of_changeset_apply is available, 34 + if needed. 35 + 36 + If a successfully applied changeset needs to be removed, it can be done 37 + with of_changeset_revert().
-31
Documentation/devicetree/changesets.txt
··· 1 - A DT changeset is a method which allows one to apply changes 2 - in the live tree in such a way that either the full set of changes 3 - will be applied, or none of them will be. If an error occurs partway 4 - through applying the changeset, then the tree will be rolled back to the 5 - previous state. A changeset can also be removed after it has been 6 - applied. 7 - 8 - When a changeset is applied, all of the changes get applied to the tree 9 - at once before emitting OF_RECONFIG notifiers. This is so that the 10 - receiver sees a complete and consistent state of the tree when it 11 - receives the notifier. 12 - 13 - The sequence of a changeset is as follows. 14 - 15 - 1. of_changeset_init() - initializes a changeset 16 - 17 - 2. A number of DT tree change calls, of_changeset_attach_node(), 18 - of_changeset_detach_node(), of_changeset_add_property(), 19 - of_changeset_remove_property, of_changeset_update_property() to prepare 20 - a set of changes. No changes to the active tree are made at this point. 21 - All the change operations are recorded in the of_changeset 'entries' 22 - list. 23 - 24 - 3. of_changeset_apply() - Apply the changes to the tree. Either the 25 - entire changeset will get applied, or if there is an error the tree will 26 - be restored to the previous state. The core ensures proper serialization 27 - through locking. An unlocked version __of_changeset_apply is available, 28 - if needed. 29 - 30 - If a successfully applied changeset needs to be removed, it can be done 31 - with of_changeset_revert().
+27
Documentation/devicetree/dynamic-resolution-notes.rst
··· 1 + .. SPDX-License-Identifier: GPL-2.0 2 + 3 + ================================== 4 + Device Tree Dynamic Resolver Notes 5 + ================================== 6 + 7 + This document describes the implementation of the in-kernel 8 + Device Tree resolver, residing in drivers/of/resolver.c 9 + 10 + How the resolver works 11 + ---------------------- 12 + 13 + The resolver is given as an input an arbitrary tree compiled with the 14 + proper dtc option and having a /plugin/ tag. This generates the 15 + appropriate __fixups__ & __local_fixups__ nodes. 16 + 17 + In sequence the resolver works by the following steps: 18 + 19 + 1. Get the maximum device tree phandle value from the live tree + 1. 20 + 2. Adjust all the local phandles of the tree to resolve by that amount. 21 + 3. Using the __local__fixups__ node information adjust all local references 22 + by the same amount. 23 + 4. For each property in the __fixups__ node locate the node it references 24 + in the live tree. This is the label used to tag the node. 25 + 5. Retrieve the phandle of the target of the fixup. 26 + 6. For each fixup in the property locate the node:property:offset location 27 + and replace it with the phandle value.
-24
Documentation/devicetree/dynamic-resolution-notes.txt
··· 1 - Device Tree Dynamic Resolver Notes 2 - ---------------------------------- 3 - 4 - This document describes the implementation of the in-kernel 5 - Device Tree resolver, residing in drivers/of/resolver.c 6 - 7 - How the resolver works 8 - ---------------------- 9 - 10 - The resolver is given as an input an arbitrary tree compiled with the 11 - proper dtc option and having a /plugin/ tag. This generates the 12 - appropriate __fixups__ & __local_fixups__ nodes. 13 - 14 - In sequence the resolver works by the following steps: 15 - 16 - 1. Get the maximum device tree phandle value from the live tree + 1. 17 - 2. Adjust all the local phandles of the tree to resolve by that amount. 18 - 3. Using the __local__fixups__ node information adjust all local references 19 - by the same amount. 20 - 4. For each property in the __fixups__ node locate the node it references 21 - in the live tree. This is the label used to tag the node. 22 - 5. Retrieve the phandle of the target of the fixup. 23 - 6. For each fixup in the property locate the node:property:offset location 24 - and replace it with the phandle value.
+17
Documentation/devicetree/index.rst
··· 1 + .. SPDX-License-Identifier: GPL-2.0 2 + 3 + ============================= 4 + Open Firmware and Device Tree 5 + ============================= 6 + 7 + .. toctree:: 8 + :maxdepth: 1 9 + 10 + usage-model 11 + writing-schema 12 + changesets 13 + dynamic-resolution-notes 14 + of_unittest 15 + overlay-notes 16 + 17 + bindings/index
+205
Documentation/devicetree/of_unittest.rst
··· 1 + .. SPDX-License-Identifier: GPL-2.0 2 + 3 + ================================== 4 + Open Firmware Device Tree Unittest 5 + ================================== 6 + 7 + Author: Gaurav Minocha <gaurav.minocha.os@gmail.com> 8 + 9 + 1. Introduction 10 + =============== 11 + 12 + This document explains how the test data required for executing OF unittest 13 + is attached to the live tree dynamically, independent of the machine's 14 + architecture. 15 + 16 + It is recommended to read the following documents before moving ahead. 17 + 18 + (1) Documentation/devicetree/usage-model.rst 19 + (2) http://www.devicetree.org/Device_Tree_Usage 20 + 21 + OF Selftest has been designed to test the interface (include/linux/of.h) 22 + provided to device driver developers to fetch the device information..etc. 23 + from the unflattened device tree data structure. This interface is used by 24 + most of the device drivers in various use cases. 25 + 26 + 27 + 2. Test-data 28 + ============ 29 + 30 + The Device Tree Source file (drivers/of/unittest-data/testcases.dts) contains 31 + the test data required for executing the unit tests automated in 32 + drivers/of/unittest.c. Currently, following Device Tree Source Include files 33 + (.dtsi) are included in testcases.dts:: 34 + 35 + drivers/of/unittest-data/tests-interrupts.dtsi 36 + drivers/of/unittest-data/tests-platform.dtsi 37 + drivers/of/unittest-data/tests-phandle.dtsi 38 + drivers/of/unittest-data/tests-match.dtsi 39 + 40 + When the kernel is build with OF_SELFTEST enabled, then the following make 41 + rule:: 42 + 43 + $(obj)/%.dtb: $(src)/%.dts FORCE 44 + $(call if_changed_dep, dtc) 45 + 46 + is used to compile the DT source file (testcases.dts) into a binary blob 47 + (testcases.dtb), also referred as flattened DT. 48 + 49 + After that, using the following rule the binary blob above is wrapped as an 50 + assembly file (testcases.dtb.S):: 51 + 52 + $(obj)/%.dtb.S: $(obj)/%.dtb 53 + $(call cmd, dt_S_dtb) 54 + 55 + The assembly file is compiled into an object file (testcases.dtb.o), and is 56 + linked into the kernel image. 57 + 58 + 59 + 2.1. Adding the test data 60 + ------------------------- 61 + 62 + Un-flattened device tree structure: 63 + 64 + Un-flattened device tree consists of connected device_node(s) in form of a tree 65 + structure described below:: 66 + 67 + // following struct members are used to construct the tree 68 + struct device_node { 69 + ... 70 + struct device_node *parent; 71 + struct device_node *child; 72 + struct device_node *sibling; 73 + ... 74 + }; 75 + 76 + Figure 1, describes a generic structure of machine's un-flattened device tree 77 + considering only child and sibling pointers. There exists another pointer, 78 + ``*parent``, that is used to traverse the tree in the reverse direction. So, at 79 + a particular level the child node and all the sibling nodes will have a parent 80 + pointer pointing to a common node (e.g. child1, sibling2, sibling3, sibling4's 81 + parent points to root node):: 82 + 83 + root ('/') 84 + | 85 + child1 -> sibling2 -> sibling3 -> sibling4 -> null 86 + | | | | 87 + | | | null 88 + | | | 89 + | | child31 -> sibling32 -> null 90 + | | | | 91 + | | null null 92 + | | 93 + | child21 -> sibling22 -> sibling23 -> null 94 + | | | | 95 + | null null null 96 + | 97 + child11 -> sibling12 -> sibling13 -> sibling14 -> null 98 + | | | | 99 + | | | null 100 + | | | 101 + null null child131 -> null 102 + | 103 + null 104 + 105 + Figure 1: Generic structure of un-flattened device tree 106 + 107 + 108 + Before executing OF unittest, it is required to attach the test data to 109 + machine's device tree (if present). So, when selftest_data_add() is called, 110 + at first it reads the flattened device tree data linked into the kernel image 111 + via the following kernel symbols:: 112 + 113 + __dtb_testcases_begin - address marking the start of test data blob 114 + __dtb_testcases_end - address marking the end of test data blob 115 + 116 + Secondly, it calls of_fdt_unflatten_tree() to unflatten the flattened 117 + blob. And finally, if the machine's device tree (i.e live tree) is present, 118 + then it attaches the unflattened test data tree to the live tree, else it 119 + attaches itself as a live device tree. 120 + 121 + attach_node_and_children() uses of_attach_node() to attach the nodes into the 122 + live tree as explained below. To explain the same, the test data tree described 123 + in Figure 2 is attached to the live tree described in Figure 1:: 124 + 125 + root ('/') 126 + | 127 + testcase-data 128 + | 129 + test-child0 -> test-sibling1 -> test-sibling2 -> test-sibling3 -> null 130 + | | | | 131 + test-child01 null null null 132 + 133 + 134 + Figure 2: Example test data tree to be attached to live tree. 135 + 136 + According to the scenario above, the live tree is already present so it isn't 137 + required to attach the root('/') node. All other nodes are attached by calling 138 + of_attach_node() on each node. 139 + 140 + In the function of_attach_node(), the new node is attached as the child of the 141 + given parent in live tree. But, if parent already has a child then the new node 142 + replaces the current child and turns it into its sibling. So, when the testcase 143 + data node is attached to the live tree above (Figure 1), the final structure is 144 + as shown in Figure 3:: 145 + 146 + root ('/') 147 + | 148 + testcase-data -> child1 -> sibling2 -> sibling3 -> sibling4 -> null 149 + | | | | | 150 + (...) | | | null 151 + | | child31 -> sibling32 -> null 152 + | | | | 153 + | | null null 154 + | | 155 + | child21 -> sibling22 -> sibling23 -> null 156 + | | | | 157 + | null null null 158 + | 159 + child11 -> sibling12 -> sibling13 -> sibling14 -> null 160 + | | | | 161 + null null | null 162 + | 163 + child131 -> null 164 + | 165 + null 166 + ----------------------------------------------------------------------- 167 + 168 + root ('/') 169 + | 170 + testcase-data -> child1 -> sibling2 -> sibling3 -> sibling4 -> null 171 + | | | | | 172 + | (...) (...) (...) null 173 + | 174 + test-sibling3 -> test-sibling2 -> test-sibling1 -> test-child0 -> null 175 + | | | | 176 + null null null test-child01 177 + 178 + 179 + Figure 3: Live device tree structure after attaching the testcase-data. 180 + 181 + 182 + Astute readers would have noticed that test-child0 node becomes the last 183 + sibling compared to the earlier structure (Figure 2). After attaching first 184 + test-child0 the test-sibling1 is attached that pushes the child node 185 + (i.e. test-child0) to become a sibling and makes itself a child node, 186 + as mentioned above. 187 + 188 + If a duplicate node is found (i.e. if a node with same full_name property is 189 + already present in the live tree), then the node isn't attached rather its 190 + properties are updated to the live tree's node by calling the function 191 + update_node_properties(). 192 + 193 + 194 + 2.2. Removing the test data 195 + --------------------------- 196 + 197 + Once the test case execution is complete, selftest_data_remove is called in 198 + order to remove the device nodes attached initially (first the leaf nodes are 199 + detached and then moving up the parent nodes are removed, and eventually the 200 + whole tree). selftest_data_remove() calls detach_node_and_children() that uses 201 + of_detach_node() to detach the nodes from the live device tree. 202 + 203 + To detach a node, of_detach_node() either updates the child pointer of given 204 + node's parent to its sibling or attaches the previous sibling to the given 205 + node's sibling, as appropriate. That is it :)
-197
Documentation/devicetree/of_unittest.txt
··· 1 - Open Firmware Device Tree Unittest 2 - ---------------------------------- 3 - 4 - Author: Gaurav Minocha <gaurav.minocha.os@gmail.com> 5 - 6 - 1. Introduction 7 - 8 - This document explains how the test data required for executing OF unittest 9 - is attached to the live tree dynamically, independent of the machine's 10 - architecture. 11 - 12 - It is recommended to read the following documents before moving ahead. 13 - 14 - [1] Documentation/devicetree/usage-model.txt 15 - [2] http://www.devicetree.org/Device_Tree_Usage 16 - 17 - OF Selftest has been designed to test the interface (include/linux/of.h) 18 - provided to device driver developers to fetch the device information..etc. 19 - from the unflattened device tree data structure. This interface is used by 20 - most of the device drivers in various use cases. 21 - 22 - 23 - 2. Test-data 24 - 25 - The Device Tree Source file (drivers/of/unittest-data/testcases.dts) contains 26 - the test data required for executing the unit tests automated in 27 - drivers/of/unittest.c. Currently, following Device Tree Source Include files 28 - (.dtsi) are included in testcases.dts: 29 - 30 - drivers/of/unittest-data/tests-interrupts.dtsi 31 - drivers/of/unittest-data/tests-platform.dtsi 32 - drivers/of/unittest-data/tests-phandle.dtsi 33 - drivers/of/unittest-data/tests-match.dtsi 34 - 35 - When the kernel is build with OF_SELFTEST enabled, then the following make rule 36 - 37 - $(obj)/%.dtb: $(src)/%.dts FORCE 38 - $(call if_changed_dep, dtc) 39 - 40 - is used to compile the DT source file (testcases.dts) into a binary blob 41 - (testcases.dtb), also referred as flattened DT. 42 - 43 - After that, using the following rule the binary blob above is wrapped as an 44 - assembly file (testcases.dtb.S). 45 - 46 - $(obj)/%.dtb.S: $(obj)/%.dtb 47 - $(call cmd, dt_S_dtb) 48 - 49 - The assembly file is compiled into an object file (testcases.dtb.o), and is 50 - linked into the kernel image. 51 - 52 - 53 - 2.1. Adding the test data 54 - 55 - Un-flattened device tree structure: 56 - 57 - Un-flattened device tree consists of connected device_node(s) in form of a tree 58 - structure described below. 59 - 60 - // following struct members are used to construct the tree 61 - struct device_node { 62 - ... 63 - struct device_node *parent; 64 - struct device_node *child; 65 - struct device_node *sibling; 66 - ... 67 - }; 68 - 69 - Figure 1, describes a generic structure of machine's un-flattened device tree 70 - considering only child and sibling pointers. There exists another pointer, 71 - *parent, that is used to traverse the tree in the reverse direction. So, at 72 - a particular level the child node and all the sibling nodes will have a parent 73 - pointer pointing to a common node (e.g. child1, sibling2, sibling3, sibling4's 74 - parent points to root node) 75 - 76 - root ('/') 77 - | 78 - child1 -> sibling2 -> sibling3 -> sibling4 -> null 79 - | | | | 80 - | | | null 81 - | | | 82 - | | child31 -> sibling32 -> null 83 - | | | | 84 - | | null null 85 - | | 86 - | child21 -> sibling22 -> sibling23 -> null 87 - | | | | 88 - | null null null 89 - | 90 - child11 -> sibling12 -> sibling13 -> sibling14 -> null 91 - | | | | 92 - | | | null 93 - | | | 94 - null null child131 -> null 95 - | 96 - null 97 - 98 - Figure 1: Generic structure of un-flattened device tree 99 - 100 - 101 - Before executing OF unittest, it is required to attach the test data to 102 - machine's device tree (if present). So, when selftest_data_add() is called, 103 - at first it reads the flattened device tree data linked into the kernel image 104 - via the following kernel symbols: 105 - 106 - __dtb_testcases_begin - address marking the start of test data blob 107 - __dtb_testcases_end - address marking the end of test data blob 108 - 109 - Secondly, it calls of_fdt_unflatten_tree() to unflatten the flattened 110 - blob. And finally, if the machine's device tree (i.e live tree) is present, 111 - then it attaches the unflattened test data tree to the live tree, else it 112 - attaches itself as a live device tree. 113 - 114 - attach_node_and_children() uses of_attach_node() to attach the nodes into the 115 - live tree as explained below. To explain the same, the test data tree described 116 - in Figure 2 is attached to the live tree described in Figure 1. 117 - 118 - root ('/') 119 - | 120 - testcase-data 121 - | 122 - test-child0 -> test-sibling1 -> test-sibling2 -> test-sibling3 -> null 123 - | | | | 124 - test-child01 null null null 125 - 126 - 127 - Figure 2: Example test data tree to be attached to live tree. 128 - 129 - According to the scenario above, the live tree is already present so it isn't 130 - required to attach the root('/') node. All other nodes are attached by calling 131 - of_attach_node() on each node. 132 - 133 - In the function of_attach_node(), the new node is attached as the child of the 134 - given parent in live tree. But, if parent already has a child then the new node 135 - replaces the current child and turns it into its sibling. So, when the testcase 136 - data node is attached to the live tree above (Figure 1), the final structure is 137 - as shown in Figure 3. 138 - 139 - root ('/') 140 - | 141 - testcase-data -> child1 -> sibling2 -> sibling3 -> sibling4 -> null 142 - | | | | | 143 - (...) | | | null 144 - | | child31 -> sibling32 -> null 145 - | | | | 146 - | | null null 147 - | | 148 - | child21 -> sibling22 -> sibling23 -> null 149 - | | | | 150 - | null null null 151 - | 152 - child11 -> sibling12 -> sibling13 -> sibling14 -> null 153 - | | | | 154 - null null | null 155 - | 156 - child131 -> null 157 - | 158 - null 159 - ----------------------------------------------------------------------- 160 - 161 - root ('/') 162 - | 163 - testcase-data -> child1 -> sibling2 -> sibling3 -> sibling4 -> null 164 - | | | | | 165 - | (...) (...) (...) null 166 - | 167 - test-sibling3 -> test-sibling2 -> test-sibling1 -> test-child0 -> null 168 - | | | | 169 - null null null test-child01 170 - 171 - 172 - Figure 3: Live device tree structure after attaching the testcase-data. 173 - 174 - 175 - Astute readers would have noticed that test-child0 node becomes the last 176 - sibling compared to the earlier structure (Figure 2). After attaching first 177 - test-child0 the test-sibling1 is attached that pushes the child node 178 - (i.e. test-child0) to become a sibling and makes itself a child node, 179 - as mentioned above. 180 - 181 - If a duplicate node is found (i.e. if a node with same full_name property is 182 - already present in the live tree), then the node isn't attached rather its 183 - properties are updated to the live tree's node by calling the function 184 - update_node_properties(). 185 - 186 - 187 - 2.2. Removing the test data 188 - 189 - Once the test case execution is complete, selftest_data_remove is called in 190 - order to remove the device nodes attached initially (first the leaf nodes are 191 - detached and then moving up the parent nodes are removed, and eventually the 192 - whole tree). selftest_data_remove() calls detach_node_and_children() that uses 193 - of_detach_node() to detach the nodes from the live device tree. 194 - 195 - To detach a node, of_detach_node() either updates the child pointer of given 196 - node's parent to its sibling or attaches the previous sibling to the given 197 - node's sibling, as appropriate. That is it :)
+128
Documentation/devicetree/overlay-notes.rst
··· 1 + .. SPDX-License-Identifier: GPL-2.0 2 + 3 + ========================= 4 + Device Tree Overlay Notes 5 + ========================= 6 + 7 + This document describes the implementation of the in-kernel 8 + device tree overlay functionality residing in drivers/of/overlay.c and is a 9 + companion document to Documentation/devicetree/dynamic-resolution-notes.rst[1] 10 + 11 + How overlays work 12 + ----------------- 13 + 14 + A Device Tree's overlay purpose is to modify the kernel's live tree, and 15 + have the modification affecting the state of the kernel in a way that 16 + is reflecting the changes. 17 + Since the kernel mainly deals with devices, any new device node that result 18 + in an active device should have it created while if the device node is either 19 + disabled or removed all together, the affected device should be deregistered. 20 + 21 + Lets take an example where we have a foo board with the following base tree:: 22 + 23 + ---- foo.dts --------------------------------------------------------------- 24 + /* FOO platform */ 25 + /dts-v1/; 26 + / { 27 + compatible = "corp,foo"; 28 + 29 + /* shared resources */ 30 + res: res { 31 + }; 32 + 33 + /* On chip peripherals */ 34 + ocp: ocp { 35 + /* peripherals that are always instantiated */ 36 + peripheral1 { ... }; 37 + }; 38 + }; 39 + ---- foo.dts --------------------------------------------------------------- 40 + 41 + The overlay bar.dts, 42 + :: 43 + 44 + ---- bar.dts - overlay target location by label ---------------------------- 45 + /dts-v1/; 46 + /plugin/; 47 + &ocp { 48 + /* bar peripheral */ 49 + bar { 50 + compatible = "corp,bar"; 51 + ... /* various properties and child nodes */ 52 + }; 53 + }; 54 + ---- bar.dts --------------------------------------------------------------- 55 + 56 + when loaded (and resolved as described in [1]) should result in foo+bar.dts:: 57 + 58 + ---- foo+bar.dts ----------------------------------------------------------- 59 + /* FOO platform + bar peripheral */ 60 + / { 61 + compatible = "corp,foo"; 62 + 63 + /* shared resources */ 64 + res: res { 65 + }; 66 + 67 + /* On chip peripherals */ 68 + ocp: ocp { 69 + /* peripherals that are always instantiated */ 70 + peripheral1 { ... }; 71 + 72 + /* bar peripheral */ 73 + bar { 74 + compatible = "corp,bar"; 75 + ... /* various properties and child nodes */ 76 + }; 77 + }; 78 + }; 79 + ---- foo+bar.dts ----------------------------------------------------------- 80 + 81 + As a result of the overlay, a new device node (bar) has been created 82 + so a bar platform device will be registered and if a matching device driver 83 + is loaded the device will be created as expected. 84 + 85 + If the base DT was not compiled with the -@ option then the "&ocp" label 86 + will not be available to resolve the overlay node(s) to the proper location 87 + in the base DT. In this case, the target path can be provided. The target 88 + location by label syntax is preferred because the overlay can be applied to 89 + any base DT containing the label, no matter where the label occurs in the DT. 90 + 91 + The above bar.dts example modified to use target path syntax is:: 92 + 93 + ---- bar.dts - overlay target location by explicit path -------------------- 94 + /dts-v1/; 95 + /plugin/; 96 + &{/ocp} { 97 + /* bar peripheral */ 98 + bar { 99 + compatible = "corp,bar"; 100 + ... /* various properties and child nodes */ 101 + } 102 + }; 103 + ---- bar.dts --------------------------------------------------------------- 104 + 105 + 106 + Overlay in-kernel API 107 + -------------------------------- 108 + 109 + The API is quite easy to use. 110 + 111 + 1) Call of_overlay_fdt_apply() to create and apply an overlay changeset. The 112 + return value is an error or a cookie identifying this overlay. 113 + 114 + 2) Call of_overlay_remove() to remove and cleanup the overlay changeset 115 + previously created via the call to of_overlay_fdt_apply(). Removal of an 116 + overlay changeset that is stacked by another will not be permitted. 117 + 118 + Finally, if you need to remove all overlays in one-go, just call 119 + of_overlay_remove_all() which will remove every single one in the correct 120 + order. 121 + 122 + In addition, there is the option to register notifiers that get called on 123 + overlay operations. See of_overlay_notifier_register/unregister and 124 + enum of_overlay_notify_action for details. 125 + 126 + Note that a notifier callback is not supposed to store pointers to a device 127 + tree node or its content beyond OF_OVERLAY_POST_REMOVE corresponding to the 128 + respective node it received.
-139
Documentation/devicetree/overlay-notes.txt
··· 1 - Device Tree Overlay Notes 2 - ------------------------- 3 - 4 - This document describes the implementation of the in-kernel 5 - device tree overlay functionality residing in drivers/of/overlay.c and is a 6 - companion document to Documentation/devicetree/dynamic-resolution-notes.txt[1] 7 - 8 - How overlays work 9 - ----------------- 10 - 11 - A Device Tree's overlay purpose is to modify the kernel's live tree, and 12 - have the modification affecting the state of the kernel in a way that 13 - is reflecting the changes. 14 - Since the kernel mainly deals with devices, any new device node that result 15 - in an active device should have it created while if the device node is either 16 - disabled or removed all together, the affected device should be deregistered. 17 - 18 - Lets take an example where we have a foo board with the following base tree: 19 - 20 - ---- foo.dts ----------------------------------------------------------------- 21 - /* FOO platform */ 22 - / { 23 - compatible = "corp,foo"; 24 - 25 - /* shared resources */ 26 - res: res { 27 - }; 28 - 29 - /* On chip peripherals */ 30 - ocp: ocp { 31 - /* peripherals that are always instantiated */ 32 - peripheral1 { ... }; 33 - } 34 - }; 35 - ---- foo.dts ----------------------------------------------------------------- 36 - 37 - The overlay bar.dts, when loaded (and resolved as described in [1]) should 38 - 39 - ---- bar.dts ----------------------------------------------------------------- 40 - /plugin/; /* allow undefined label references and record them */ 41 - / { 42 - .... /* various properties for loader use; i.e. part id etc. */ 43 - fragment@0 { 44 - target = <&ocp>; 45 - __overlay__ { 46 - /* bar peripheral */ 47 - bar { 48 - compatible = "corp,bar"; 49 - ... /* various properties and child nodes */ 50 - } 51 - }; 52 - }; 53 - }; 54 - ---- bar.dts ----------------------------------------------------------------- 55 - 56 - result in foo+bar.dts 57 - 58 - ---- foo+bar.dts ------------------------------------------------------------- 59 - /* FOO platform + bar peripheral */ 60 - / { 61 - compatible = "corp,foo"; 62 - 63 - /* shared resources */ 64 - res: res { 65 - }; 66 - 67 - /* On chip peripherals */ 68 - ocp: ocp { 69 - /* peripherals that are always instantiated */ 70 - peripheral1 { ... }; 71 - 72 - /* bar peripheral */ 73 - bar { 74 - compatible = "corp,bar"; 75 - ... /* various properties and child nodes */ 76 - } 77 - } 78 - }; 79 - ---- foo+bar.dts ------------------------------------------------------------- 80 - 81 - As a result of the overlay, a new device node (bar) has been created 82 - so a bar platform device will be registered and if a matching device driver 83 - is loaded the device will be created as expected. 84 - 85 - Overlay in-kernel API 86 - -------------------------------- 87 - 88 - The API is quite easy to use. 89 - 90 - 1. Call of_overlay_fdt_apply() to create and apply an overlay changeset. The 91 - return value is an error or a cookie identifying this overlay. 92 - 93 - 2. Call of_overlay_remove() to remove and cleanup the overlay changeset 94 - previously created via the call to of_overlay_fdt_apply(). Removal of an 95 - overlay changeset that is stacked by another will not be permitted. 96 - 97 - Finally, if you need to remove all overlays in one-go, just call 98 - of_overlay_remove_all() which will remove every single one in the correct 99 - order. 100 - 101 - In addition, there is the option to register notifiers that get called on 102 - overlay operations. See of_overlay_notifier_register/unregister and 103 - enum of_overlay_notify_action for details. 104 - 105 - Note that a notifier callback is not supposed to store pointers to a device 106 - tree node or its content beyond OF_OVERLAY_POST_REMOVE corresponding to the 107 - respective node it received. 108 - 109 - Overlay DTS Format 110 - ------------------ 111 - 112 - The DTS of an overlay should have the following format: 113 - 114 - { 115 - /* ignored properties by the overlay */ 116 - 117 - fragment@0 { /* first child node */ 118 - 119 - target=<phandle>; /* phandle target of the overlay */ 120 - or 121 - target-path="/path"; /* target path of the overlay */ 122 - 123 - __overlay__ { 124 - property-a; /* add property-a to the target */ 125 - node-a { /* add to an existing, or create a node-a */ 126 - ... 127 - }; 128 - }; 129 - } 130 - fragment@1 { /* second child node */ 131 - ... 132 - }; 133 - /* more fragments follow */ 134 - } 135 - 136 - Using the non-phandle based target method allows one to use a base DT which does 137 - not contain a __symbols__ node, i.e. it was not compiled with the -@ option. 138 - The __symbols__ node is only required for the target=<phandle> method, since it 139 - contains the information required to map from a phandle to a tree location.
+420
Documentation/devicetree/usage-model.rst
··· 1 + .. SPDX-License-Identifier: GPL-2.0 2 + 3 + ========================= 4 + Linux and the Device Tree 5 + ========================= 6 + 7 + The Linux usage model for device tree data 8 + 9 + :Author: Grant Likely <grant.likely@secretlab.ca> 10 + 11 + This article describes how Linux uses the device tree. An overview of 12 + the device tree data format can be found on the device tree usage page 13 + at devicetree.org\ [1]_. 14 + 15 + .. [1] https://elinux.org/Device_Tree_Usage 16 + 17 + The "Open Firmware Device Tree", or simply Device Tree (DT), is a data 18 + structure and language for describing hardware. More specifically, it 19 + is a description of hardware that is readable by an operating system 20 + so that the operating system doesn't need to hard code details of the 21 + machine. 22 + 23 + Structurally, the DT is a tree, or acyclic graph with named nodes, and 24 + nodes may have an arbitrary number of named properties encapsulating 25 + arbitrary data. A mechanism also exists to create arbitrary 26 + links from one node to another outside of the natural tree structure. 27 + 28 + Conceptually, a common set of usage conventions, called 'bindings', 29 + is defined for how data should appear in the tree to describe typical 30 + hardware characteristics including data busses, interrupt lines, GPIO 31 + connections, and peripheral devices. 32 + 33 + As much as possible, hardware is described using existing bindings to 34 + maximize use of existing support code, but since property and node 35 + names are simply text strings, it is easy to extend existing bindings 36 + or create new ones by defining new nodes and properties. Be wary, 37 + however, of creating a new binding without first doing some homework 38 + about what already exists. There are currently two different, 39 + incompatible, bindings for i2c busses that came about because the new 40 + binding was created without first investigating how i2c devices were 41 + already being enumerated in existing systems. 42 + 43 + 1. History 44 + ---------- 45 + The DT was originally created by Open Firmware as part of the 46 + communication method for passing data from Open Firmware to a client 47 + program (like to an operating system). An operating system used the 48 + Device Tree to discover the topology of the hardware at runtime, and 49 + thereby support a majority of available hardware without hard coded 50 + information (assuming drivers were available for all devices). 51 + 52 + Since Open Firmware is commonly used on PowerPC and SPARC platforms, 53 + the Linux support for those architectures has for a long time used the 54 + Device Tree. 55 + 56 + In 2005, when PowerPC Linux began a major cleanup and to merge 32-bit 57 + and 64-bit support, the decision was made to require DT support on all 58 + powerpc platforms, regardless of whether or not they used Open 59 + Firmware. To do this, a DT representation called the Flattened Device 60 + Tree (FDT) was created which could be passed to the kernel as a binary 61 + blob without requiring a real Open Firmware implementation. U-Boot, 62 + kexec, and other bootloaders were modified to support both passing a 63 + Device Tree Binary (dtb) and to modify a dtb at boot time. DT was 64 + also added to the PowerPC boot wrapper (``arch/powerpc/boot/*``) so that 65 + a dtb could be wrapped up with the kernel image to support booting 66 + existing non-DT aware firmware. 67 + 68 + Some time later, FDT infrastructure was generalized to be usable by 69 + all architectures. At the time of this writing, 6 mainlined 70 + architectures (arm, microblaze, mips, powerpc, sparc, and x86) and 1 71 + out of mainline (nios) have some level of DT support. 72 + 73 + 2. Data Model 74 + ------------- 75 + If you haven't already read the Device Tree Usage\ [1]_ page, 76 + then go read it now. It's okay, I'll wait.... 77 + 78 + 2.1 High Level View 79 + ------------------- 80 + The most important thing to understand is that the DT is simply a data 81 + structure that describes the hardware. There is nothing magical about 82 + it, and it doesn't magically make all hardware configuration problems 83 + go away. What it does do is provide a language for decoupling the 84 + hardware configuration from the board and device driver support in the 85 + Linux kernel (or any other operating system for that matter). Using 86 + it allows board and device support to become data driven; to make 87 + setup decisions based on data passed into the kernel instead of on 88 + per-machine hard coded selections. 89 + 90 + Ideally, data driven platform setup should result in less code 91 + duplication and make it easier to support a wide range of hardware 92 + with a single kernel image. 93 + 94 + Linux uses DT data for three major purposes: 95 + 96 + 1) platform identification, 97 + 2) runtime configuration, and 98 + 3) device population. 99 + 100 + 2.2 Platform Identification 101 + --------------------------- 102 + First and foremost, the kernel will use data in the DT to identify the 103 + specific machine. In a perfect world, the specific platform shouldn't 104 + matter to the kernel because all platform details would be described 105 + perfectly by the device tree in a consistent and reliable manner. 106 + Hardware is not perfect though, and so the kernel must identify the 107 + machine during early boot so that it has the opportunity to run 108 + machine-specific fixups. 109 + 110 + In the majority of cases, the machine identity is irrelevant, and the 111 + kernel will instead select setup code based on the machine's core 112 + CPU or SoC. On ARM for example, setup_arch() in 113 + arch/arm/kernel/setup.c will call setup_machine_fdt() in 114 + arch/arm/kernel/devtree.c which searches through the machine_desc 115 + table and selects the machine_desc which best matches the device tree 116 + data. It determines the best match by looking at the 'compatible' 117 + property in the root device tree node, and comparing it with the 118 + dt_compat list in struct machine_desc (which is defined in 119 + arch/arm/include/asm/mach/arch.h if you're curious). 120 + 121 + The 'compatible' property contains a sorted list of strings starting 122 + with the exact name of the machine, followed by an optional list of 123 + boards it is compatible with sorted from most compatible to least. For 124 + example, the root compatible properties for the TI BeagleBoard and its 125 + successor, the BeagleBoard xM board might look like, respectively:: 126 + 127 + compatible = "ti,omap3-beagleboard", "ti,omap3450", "ti,omap3"; 128 + compatible = "ti,omap3-beagleboard-xm", "ti,omap3450", "ti,omap3"; 129 + 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 132 + of SoCs in general. You'll notice that the list is sorted from most 133 + specific (exact board) to least specific (SoC family). 134 + 135 + Astute readers might point out that the Beagle xM could also claim 136 + compatibility with the original Beagle board. However, one should be 137 + cautioned about doing so at the board level since there is typically a 138 + high level of change from one board to another, even within the same 139 + product line, and it is hard to nail down exactly what is meant when one 140 + board claims to be compatible with another. For the top level, it is 141 + better to err on the side of caution and not claim one board is 142 + compatible with another. The notable exception would be when one 143 + board is a carrier for another, such as a CPU module attached to a 144 + carrier board. 145 + 146 + One more note on compatible values. Any string used in a compatible 147 + property must be documented as to what it indicates. Add 148 + documentation for compatible strings in Documentation/devicetree/bindings. 149 + 150 + Again on ARM, for each machine_desc, the kernel looks to see if 151 + any of the dt_compat list entries appear in the compatible property. 152 + If one does, then that machine_desc is a candidate for driving the 153 + machine. After searching the entire table of machine_descs, 154 + setup_machine_fdt() returns the 'most compatible' machine_desc based 155 + on which entry in the compatible property each machine_desc matches 156 + against. If no matching machine_desc is found, then it returns NULL. 157 + 158 + The reasoning behind this scheme is the observation that in the majority 159 + of cases, a single machine_desc can support a large number of boards 160 + if they all use the same SoC, or same family of SoCs. However, 161 + invariably there will be some exceptions where a specific board will 162 + require special setup code that is not useful in the generic case. 163 + Special cases could be handled by explicitly checking for the 164 + troublesome board(s) in generic setup code, but doing so very quickly 165 + becomes ugly and/or unmaintainable if it is more than just a couple of 166 + cases. 167 + 168 + Instead, the compatible list allows a generic machine_desc to provide 169 + support for a wide common set of boards by specifying "less 170 + compatible" values in the dt_compat list. In the example above, 171 + generic board support can claim compatibility with "ti,omap3" or 172 + "ti,omap3450". If a bug was discovered on the original beagleboard 173 + that required special workaround code during early boot, then a new 174 + machine_desc could be added which implements the workarounds and only 175 + matches on "ti,omap3-beagleboard". 176 + 177 + PowerPC uses a slightly different scheme where it calls the .probe() 178 + hook from each machine_desc, and the first one returning TRUE is used. 179 + However, this approach does not take into account the priority of the 180 + compatible list, and probably should be avoided for new architecture 181 + support. 182 + 183 + 2.3 Runtime configuration 184 + ------------------------- 185 + In most cases, a DT will be the sole method of communicating data from 186 + firmware to the kernel, so also gets used to pass in runtime and 187 + configuration data like the kernel parameters string and the location 188 + of an initrd image. 189 + 190 + Most of this data is contained in the /chosen node, and when booting 191 + Linux it will look something like this:: 192 + 193 + chosen { 194 + bootargs = "console=ttyS0,115200 loglevel=8"; 195 + initrd-start = <0xc8000000>; 196 + initrd-end = <0xc8200000>; 197 + }; 198 + 199 + The bootargs property contains the kernel arguments, and the initrd-* 200 + properties define the address and size of an initrd blob. Note that 201 + initrd-end is the first address after the initrd image, so this doesn't 202 + match the usual semantic of struct resource. The chosen node may also 203 + optionally contain an arbitrary number of additional properties for 204 + platform-specific configuration data. 205 + 206 + During early boot, the architecture setup code calls of_scan_flat_dt() 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 209 + the device tree and uses the helpers to extract information required 210 + during early boot. Typically the early_init_dt_scan_chosen() helper 211 + is used to parse the chosen node including kernel parameters, 212 + early_init_dt_scan_root() to initialize the DT address space model, 213 + and early_init_dt_scan_memory() to determine the size and 214 + location of usable RAM. 215 + 216 + On ARM, the function setup_machine_fdt() is responsible for early 217 + scanning of the device tree after selecting the correct machine_desc 218 + that supports the board. 219 + 220 + 2.4 Device population 221 + --------------------- 222 + After the board has been identified, and after the early configuration data 223 + has been parsed, then kernel initialization can proceed in the normal 224 + way. At some point in this process, unflatten_device_tree() is called 225 + to convert the data into a more efficient runtime representation. 226 + This is also when machine-specific setup hooks will get called, like 227 + the machine_desc .init_early(), .init_irq() and .init_machine() hooks 228 + on ARM. The remainder of this section uses examples from the ARM 229 + implementation, but all architectures will do pretty much the same 230 + thing when using a DT. 231 + 232 + As can be guessed by the names, .init_early() is used for any machine- 233 + specific setup that needs to be executed early in the boot process, 234 + and .init_irq() is used to set up interrupt handling. Using a DT 235 + doesn't materially change the behaviour of either of these functions. 236 + If a DT is provided, then both .init_early() and .init_irq() are able 237 + to call any of the DT query functions (of_* in include/linux/of*.h) to 238 + get additional data about the platform. 239 + 240 + The most interesting hook in the DT context is .init_machine() which 241 + is primarily responsible for populating the Linux device model with 242 + data about the platform. Historically this has been implemented on 243 + embedded platforms by defining a set of static clock structures, 244 + platform_devices, and other data in the board support .c file, and 245 + registering it en-masse in .init_machine(). When DT is used, then 246 + instead of hard coding static devices for each platform, the list of 247 + devices can be obtained by parsing the DT, and allocating device 248 + structures dynamically. 249 + 250 + The simplest case is when .init_machine() is only responsible for 251 + registering a block of platform_devices. A platform_device is a concept 252 + used by Linux for memory or I/O mapped devices which cannot be detected 253 + by hardware, and for 'composite' or 'virtual' devices (more on those 254 + later). While there is no 'platform device' terminology for the DT, 255 + platform devices roughly correspond to device nodes at the root of the 256 + tree and children of simple memory mapped bus nodes. 257 + 258 + About now is a good time to lay out an example. Here is part of the 259 + device tree for the NVIDIA Tegra board:: 260 + 261 + /{ 262 + compatible = "nvidia,harmony", "nvidia,tegra20"; 263 + #address-cells = <1>; 264 + #size-cells = <1>; 265 + interrupt-parent = <&intc>; 266 + 267 + chosen { }; 268 + aliases { }; 269 + 270 + memory { 271 + device_type = "memory"; 272 + reg = <0x00000000 0x40000000>; 273 + }; 274 + 275 + soc { 276 + compatible = "nvidia,tegra20-soc", "simple-bus"; 277 + #address-cells = <1>; 278 + #size-cells = <1>; 279 + ranges; 280 + 281 + intc: interrupt-controller@50041000 { 282 + compatible = "nvidia,tegra20-gic"; 283 + interrupt-controller; 284 + #interrupt-cells = <1>; 285 + reg = <0x50041000 0x1000>, < 0x50040100 0x0100 >; 286 + }; 287 + 288 + serial@70006300 { 289 + compatible = "nvidia,tegra20-uart"; 290 + reg = <0x70006300 0x100>; 291 + interrupts = <122>; 292 + }; 293 + 294 + i2s1: i2s@70002800 { 295 + compatible = "nvidia,tegra20-i2s"; 296 + reg = <0x70002800 0x100>; 297 + interrupts = <77>; 298 + codec = <&wm8903>; 299 + }; 300 + 301 + i2c@7000c000 { 302 + compatible = "nvidia,tegra20-i2c"; 303 + #address-cells = <1>; 304 + #size-cells = <0>; 305 + reg = <0x7000c000 0x100>; 306 + interrupts = <70>; 307 + 308 + wm8903: codec@1a { 309 + compatible = "wlf,wm8903"; 310 + reg = <0x1a>; 311 + interrupts = <347>; 312 + }; 313 + }; 314 + }; 315 + 316 + sound { 317 + compatible = "nvidia,harmony-sound"; 318 + i2s-controller = <&i2s1>; 319 + i2s-codec = <&wm8903>; 320 + }; 321 + }; 322 + 323 + At .init_machine() time, Tegra board support code will need to look at 324 + this DT and decide which nodes to create platform_devices for. 325 + However, looking at the tree, it is not immediately obvious what kind 326 + of device each node represents, or even if a node represents a device 327 + at all. The /chosen, /aliases, and /memory nodes are informational 328 + nodes that don't describe devices (although arguably memory could be 329 + considered a device). The children of the /soc node are memory mapped 330 + devices, but the codec@1a is an i2c device, and the sound node 331 + represents not a device, but rather how other devices are connected 332 + together to create the audio subsystem. I know what each device is 333 + because I'm familiar with the board design, but how does the kernel 334 + know what to do with each node? 335 + 336 + The trick is that the kernel starts at the root of the tree and looks 337 + for nodes that have a 'compatible' property. First, it is generally 338 + assumed that any node with a 'compatible' property represents a device 339 + of some kind, and second, it can be assumed that any node at the root 340 + of the tree is either directly attached to the processor bus, or is a 341 + miscellaneous system device that cannot be described any other way. 342 + For each of these nodes, Linux allocates and registers a 343 + platform_device, which in turn may get bound to a platform_driver. 344 + 345 + Why is using a platform_device for these nodes a safe assumption? 346 + Well, for the way that Linux models devices, just about all bus_types 347 + assume that its devices are children of a bus controller. For 348 + example, each i2c_client is a child of an i2c_master. Each spi_device 349 + is a child of an SPI bus. Similarly for USB, PCI, MDIO, etc. The 350 + same hierarchy is also found in the DT, where I2C device nodes only 351 + ever appear as children of an I2C bus node. Ditto for SPI, MDIO, USB, 352 + etc. The only devices which do not require a specific type of parent 353 + device are platform_devices (and amba_devices, but more on that 354 + later), which will happily live at the base of the Linux /sys/devices 355 + tree. Therefore, if a DT node is at the root of the tree, then it 356 + really probably is best registered as a platform_device. 357 + 358 + Linux board support code calls of_platform_populate(NULL, NULL, NULL, NULL) 359 + to kick off discovery of devices at the root of the tree. The 360 + parameters are all NULL because when starting from the root of the 361 + tree, there is no need to provide a starting node (the first NULL), a 362 + parent struct device (the last NULL), and we're not using a match 363 + table (yet). For a board that only needs to register devices, 364 + .init_machine() can be completely empty except for the 365 + of_platform_populate() call. 366 + 367 + In the Tegra example, this accounts for the /soc and /sound nodes, but 368 + what about the children of the SoC node? Shouldn't they be registered 369 + as platform devices too? For Linux DT support, the generic behaviour 370 + is for child devices to be registered by the parent's device driver at 371 + driver .probe() time. So, an i2c bus device driver will register a 372 + i2c_client for each child node, an SPI bus driver will register 373 + its spi_device children, and similarly for other bus_types. 374 + According to that model, a driver could be written that binds to the 375 + SoC node and simply registers platform_devices for each of its 376 + children. The board support code would allocate and register an SoC 377 + device, a (theoretical) SoC device driver could bind to the SoC device, 378 + and register platform_devices for /soc/interrupt-controller, /soc/serial, 379 + /soc/i2s, and /soc/i2c in its .probe() hook. Easy, right? 380 + 381 + Actually, it turns out that registering children of some 382 + platform_devices as more platform_devices is a common pattern, and the 383 + device tree support code reflects that and makes the above example 384 + simpler. The second argument to of_platform_populate() is an 385 + of_device_id table, and any node that matches an entry in that table 386 + will also get its child nodes registered. In the Tegra case, the code 387 + can look something like this:: 388 + 389 + static void __init harmony_init_machine(void) 390 + { 391 + /* ... */ 392 + of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); 393 + } 394 + 395 + "simple-bus" is defined in the Devicetree Specification as a property 396 + meaning a simple memory mapped bus, so the of_platform_populate() code 397 + could be written to just assume simple-bus compatible nodes will 398 + always be traversed. However, we pass it in as an argument so that 399 + board support code can always override the default behaviour. 400 + 401 + [Need to add discussion of adding i2c/spi/etc child devices] 402 + 403 + Appendix A: AMBA devices 404 + ------------------------ 405 + 406 + ARM Primecells are a certain kind of device attached to the ARM AMBA 407 + bus which include some support for hardware detection and power 408 + management. In Linux, struct amba_device and the amba_bus_type is 409 + used to represent Primecell devices. However, the fiddly bit is that 410 + not all devices on an AMBA bus are Primecells, and for Linux it is 411 + typical for both amba_device and platform_device instances to be 412 + siblings of the same bus segment. 413 + 414 + When using the DT, this creates problems for of_platform_populate() 415 + because it must decide whether to register each node as either a 416 + platform_device or an amba_device. This unfortunately complicates the 417 + device creation model a little bit, but the solution turns out not to 418 + be too invasive. If a node is compatible with "arm,amba-primecell", then 419 + of_platform_populate() will register it as an amba_device instead of a 420 + platform_device.
-415
Documentation/devicetree/usage-model.txt
··· 1 - Linux and the Device Tree 2 - ------------------------- 3 - The Linux usage model for device tree data 4 - 5 - Author: Grant Likely <grant.likely@secretlab.ca> 6 - 7 - This article describes how Linux uses the device tree. An overview of 8 - the device tree data format can be found on the device tree usage page 9 - at devicetree.org[1]. 10 - 11 - [1] http://devicetree.org/Device_Tree_Usage 12 - 13 - The "Open Firmware Device Tree", or simply Device Tree (DT), is a data 14 - structure and language for describing hardware. More specifically, it 15 - is a description of hardware that is readable by an operating system 16 - so that the operating system doesn't need to hard code details of the 17 - machine. 18 - 19 - Structurally, the DT is a tree, or acyclic graph with named nodes, and 20 - nodes may have an arbitrary number of named properties encapsulating 21 - arbitrary data. A mechanism also exists to create arbitrary 22 - links from one node to another outside of the natural tree structure. 23 - 24 - Conceptually, a common set of usage conventions, called 'bindings', 25 - is defined for how data should appear in the tree to describe typical 26 - hardware characteristics including data busses, interrupt lines, GPIO 27 - connections, and peripheral devices. 28 - 29 - As much as possible, hardware is described using existing bindings to 30 - maximize use of existing support code, but since property and node 31 - names are simply text strings, it is easy to extend existing bindings 32 - or create new ones by defining new nodes and properties. Be wary, 33 - however, of creating a new binding without first doing some homework 34 - about what already exists. There are currently two different, 35 - incompatible, bindings for i2c busses that came about because the new 36 - binding was created without first investigating how i2c devices were 37 - already being enumerated in existing systems. 38 - 39 - 1. History 40 - ---------- 41 - The DT was originally created by Open Firmware as part of the 42 - communication method for passing data from Open Firmware to a client 43 - program (like to an operating system). An operating system used the 44 - Device Tree to discover the topology of the hardware at runtime, and 45 - thereby support a majority of available hardware without hard coded 46 - information (assuming drivers were available for all devices). 47 - 48 - Since Open Firmware is commonly used on PowerPC and SPARC platforms, 49 - the Linux support for those architectures has for a long time used the 50 - Device Tree. 51 - 52 - In 2005, when PowerPC Linux began a major cleanup and to merge 32-bit 53 - and 64-bit support, the decision was made to require DT support on all 54 - powerpc platforms, regardless of whether or not they used Open 55 - Firmware. To do this, a DT representation called the Flattened Device 56 - Tree (FDT) was created which could be passed to the kernel as a binary 57 - blob without requiring a real Open Firmware implementation. U-Boot, 58 - kexec, and other bootloaders were modified to support both passing a 59 - Device Tree Binary (dtb) and to modify a dtb at boot time. DT was 60 - also added to the PowerPC boot wrapper (arch/powerpc/boot/*) so that 61 - a dtb could be wrapped up with the kernel image to support booting 62 - existing non-DT aware firmware. 63 - 64 - Some time later, FDT infrastructure was generalized to be usable by 65 - all architectures. At the time of this writing, 6 mainlined 66 - architectures (arm, microblaze, mips, powerpc, sparc, and x86) and 1 67 - out of mainline (nios) have some level of DT support. 68 - 69 - 2. Data Model 70 - ------------- 71 - If you haven't already read the Device Tree Usage[1] page, 72 - then go read it now. It's okay, I'll wait.... 73 - 74 - 2.1 High Level View 75 - ------------------- 76 - The most important thing to understand is that the DT is simply a data 77 - structure that describes the hardware. There is nothing magical about 78 - it, and it doesn't magically make all hardware configuration problems 79 - go away. What it does do is provide a language for decoupling the 80 - hardware configuration from the board and device driver support in the 81 - Linux kernel (or any other operating system for that matter). Using 82 - it allows board and device support to become data driven; to make 83 - setup decisions based on data passed into the kernel instead of on 84 - per-machine hard coded selections. 85 - 86 - Ideally, data driven platform setup should result in less code 87 - duplication and make it easier to support a wide range of hardware 88 - with a single kernel image. 89 - 90 - Linux uses DT data for three major purposes: 91 - 1) platform identification, 92 - 2) runtime configuration, and 93 - 3) device population. 94 - 95 - 2.2 Platform Identification 96 - --------------------------- 97 - First and foremost, the kernel will use data in the DT to identify the 98 - specific machine. In a perfect world, the specific platform shouldn't 99 - matter to the kernel because all platform details would be described 100 - perfectly by the device tree in a consistent and reliable manner. 101 - Hardware is not perfect though, and so the kernel must identify the 102 - machine during early boot so that it has the opportunity to run 103 - machine-specific fixups. 104 - 105 - In the majority of cases, the machine identity is irrelevant, and the 106 - kernel will instead select setup code based on the machine's core 107 - CPU or SoC. On ARM for example, setup_arch() in 108 - arch/arm/kernel/setup.c will call setup_machine_fdt() in 109 - arch/arm/kernel/devtree.c which searches through the machine_desc 110 - table and selects the machine_desc which best matches the device tree 111 - data. It determines the best match by looking at the 'compatible' 112 - property in the root device tree node, and comparing it with the 113 - dt_compat list in struct machine_desc (which is defined in 114 - arch/arm/include/asm/mach/arch.h if you're curious). 115 - 116 - The 'compatible' property contains a sorted list of strings starting 117 - with the exact name of the machine, followed by an optional list of 118 - boards it is compatible with sorted from most compatible to least. For 119 - example, the root compatible properties for the TI BeagleBoard and its 120 - successor, the BeagleBoard xM board might look like, respectively: 121 - 122 - compatible = "ti,omap3-beagleboard", "ti,omap3450", "ti,omap3"; 123 - compatible = "ti,omap3-beagleboard-xm", "ti,omap3450", "ti,omap3"; 124 - 125 - Where "ti,omap3-beagleboard-xm" specifies the exact model, it also 126 - claims that it compatible with the OMAP 3450 SoC, and the omap3 family 127 - of SoCs in general. You'll notice that the list is sorted from most 128 - specific (exact board) to least specific (SoC family). 129 - 130 - Astute readers might point out that the Beagle xM could also claim 131 - compatibility with the original Beagle board. However, one should be 132 - cautioned about doing so at the board level since there is typically a 133 - high level of change from one board to another, even within the same 134 - product line, and it is hard to nail down exactly what is meant when one 135 - board claims to be compatible with another. For the top level, it is 136 - better to err on the side of caution and not claim one board is 137 - compatible with another. The notable exception would be when one 138 - board is a carrier for another, such as a CPU module attached to a 139 - carrier board. 140 - 141 - One more note on compatible values. Any string used in a compatible 142 - property must be documented as to what it indicates. Add 143 - documentation for compatible strings in Documentation/devicetree/bindings. 144 - 145 - Again on ARM, for each machine_desc, the kernel looks to see if 146 - any of the dt_compat list entries appear in the compatible property. 147 - If one does, then that machine_desc is a candidate for driving the 148 - machine. After searching the entire table of machine_descs, 149 - setup_machine_fdt() returns the 'most compatible' machine_desc based 150 - on which entry in the compatible property each machine_desc matches 151 - against. If no matching machine_desc is found, then it returns NULL. 152 - 153 - The reasoning behind this scheme is the observation that in the majority 154 - of cases, a single machine_desc can support a large number of boards 155 - if they all use the same SoC, or same family of SoCs. However, 156 - invariably there will be some exceptions where a specific board will 157 - require special setup code that is not useful in the generic case. 158 - Special cases could be handled by explicitly checking for the 159 - troublesome board(s) in generic setup code, but doing so very quickly 160 - becomes ugly and/or unmaintainable if it is more than just a couple of 161 - cases. 162 - 163 - Instead, the compatible list allows a generic machine_desc to provide 164 - support for a wide common set of boards by specifying "less 165 - compatible" values in the dt_compat list. In the example above, 166 - generic board support can claim compatibility with "ti,omap3" or 167 - "ti,omap3450". If a bug was discovered on the original beagleboard 168 - that required special workaround code during early boot, then a new 169 - machine_desc could be added which implements the workarounds and only 170 - matches on "ti,omap3-beagleboard". 171 - 172 - PowerPC uses a slightly different scheme where it calls the .probe() 173 - hook from each machine_desc, and the first one returning TRUE is used. 174 - However, this approach does not take into account the priority of the 175 - compatible list, and probably should be avoided for new architecture 176 - support. 177 - 178 - 2.3 Runtime configuration 179 - ------------------------- 180 - In most cases, a DT will be the sole method of communicating data from 181 - firmware to the kernel, so also gets used to pass in runtime and 182 - configuration data like the kernel parameters string and the location 183 - of an initrd image. 184 - 185 - Most of this data is contained in the /chosen node, and when booting 186 - Linux it will look something like this: 187 - 188 - chosen { 189 - bootargs = "console=ttyS0,115200 loglevel=8"; 190 - initrd-start = <0xc8000000>; 191 - initrd-end = <0xc8200000>; 192 - }; 193 - 194 - The bootargs property contains the kernel arguments, and the initrd-* 195 - properties define the address and size of an initrd blob. Note that 196 - initrd-end is the first address after the initrd image, so this doesn't 197 - match the usual semantic of struct resource. The chosen node may also 198 - optionally contain an arbitrary number of additional properties for 199 - platform-specific configuration data. 200 - 201 - During early boot, the architecture setup code calls of_scan_flat_dt() 202 - several times with different helper callbacks to parse device tree 203 - data before paging is setup. The of_scan_flat_dt() code scans through 204 - the device tree and uses the helpers to extract information required 205 - during early boot. Typically the early_init_dt_scan_chosen() helper 206 - is used to parse the chosen node including kernel parameters, 207 - early_init_dt_scan_root() to initialize the DT address space model, 208 - and early_init_dt_scan_memory() to determine the size and 209 - location of usable RAM. 210 - 211 - On ARM, the function setup_machine_fdt() is responsible for early 212 - scanning of the device tree after selecting the correct machine_desc 213 - that supports the board. 214 - 215 - 2.4 Device population 216 - --------------------- 217 - After the board has been identified, and after the early configuration data 218 - has been parsed, then kernel initialization can proceed in the normal 219 - way. At some point in this process, unflatten_device_tree() is called 220 - to convert the data into a more efficient runtime representation. 221 - This is also when machine-specific setup hooks will get called, like 222 - the machine_desc .init_early(), .init_irq() and .init_machine() hooks 223 - on ARM. The remainder of this section uses examples from the ARM 224 - implementation, but all architectures will do pretty much the same 225 - thing when using a DT. 226 - 227 - As can be guessed by the names, .init_early() is used for any machine- 228 - specific setup that needs to be executed early in the boot process, 229 - and .init_irq() is used to set up interrupt handling. Using a DT 230 - doesn't materially change the behaviour of either of these functions. 231 - If a DT is provided, then both .init_early() and .init_irq() are able 232 - to call any of the DT query functions (of_* in include/linux/of*.h) to 233 - get additional data about the platform. 234 - 235 - The most interesting hook in the DT context is .init_machine() which 236 - is primarily responsible for populating the Linux device model with 237 - data about the platform. Historically this has been implemented on 238 - embedded platforms by defining a set of static clock structures, 239 - platform_devices, and other data in the board support .c file, and 240 - registering it en-masse in .init_machine(). When DT is used, then 241 - instead of hard coding static devices for each platform, the list of 242 - devices can be obtained by parsing the DT, and allocating device 243 - structures dynamically. 244 - 245 - The simplest case is when .init_machine() is only responsible for 246 - registering a block of platform_devices. A platform_device is a concept 247 - used by Linux for memory or I/O mapped devices which cannot be detected 248 - by hardware, and for 'composite' or 'virtual' devices (more on those 249 - later). While there is no 'platform device' terminology for the DT, 250 - platform devices roughly correspond to device nodes at the root of the 251 - tree and children of simple memory mapped bus nodes. 252 - 253 - About now is a good time to lay out an example. Here is part of the 254 - device tree for the NVIDIA Tegra board. 255 - 256 - /{ 257 - compatible = "nvidia,harmony", "nvidia,tegra20"; 258 - #address-cells = <1>; 259 - #size-cells = <1>; 260 - interrupt-parent = <&intc>; 261 - 262 - chosen { }; 263 - aliases { }; 264 - 265 - memory { 266 - device_type = "memory"; 267 - reg = <0x00000000 0x40000000>; 268 - }; 269 - 270 - soc { 271 - compatible = "nvidia,tegra20-soc", "simple-bus"; 272 - #address-cells = <1>; 273 - #size-cells = <1>; 274 - ranges; 275 - 276 - intc: interrupt-controller@50041000 { 277 - compatible = "nvidia,tegra20-gic"; 278 - interrupt-controller; 279 - #interrupt-cells = <1>; 280 - reg = <0x50041000 0x1000>, < 0x50040100 0x0100 >; 281 - }; 282 - 283 - serial@70006300 { 284 - compatible = "nvidia,tegra20-uart"; 285 - reg = <0x70006300 0x100>; 286 - interrupts = <122>; 287 - }; 288 - 289 - i2s1: i2s@70002800 { 290 - compatible = "nvidia,tegra20-i2s"; 291 - reg = <0x70002800 0x100>; 292 - interrupts = <77>; 293 - codec = <&wm8903>; 294 - }; 295 - 296 - i2c@7000c000 { 297 - compatible = "nvidia,tegra20-i2c"; 298 - #address-cells = <1>; 299 - #size-cells = <0>; 300 - reg = <0x7000c000 0x100>; 301 - interrupts = <70>; 302 - 303 - wm8903: codec@1a { 304 - compatible = "wlf,wm8903"; 305 - reg = <0x1a>; 306 - interrupts = <347>; 307 - }; 308 - }; 309 - }; 310 - 311 - sound { 312 - compatible = "nvidia,harmony-sound"; 313 - i2s-controller = <&i2s1>; 314 - i2s-codec = <&wm8903>; 315 - }; 316 - }; 317 - 318 - At .init_machine() time, Tegra board support code will need to look at 319 - this DT and decide which nodes to create platform_devices for. 320 - However, looking at the tree, it is not immediately obvious what kind 321 - of device each node represents, or even if a node represents a device 322 - at all. The /chosen, /aliases, and /memory nodes are informational 323 - nodes that don't describe devices (although arguably memory could be 324 - considered a device). The children of the /soc node are memory mapped 325 - devices, but the codec@1a is an i2c device, and the sound node 326 - represents not a device, but rather how other devices are connected 327 - together to create the audio subsystem. I know what each device is 328 - because I'm familiar with the board design, but how does the kernel 329 - know what to do with each node? 330 - 331 - The trick is that the kernel starts at the root of the tree and looks 332 - for nodes that have a 'compatible' property. First, it is generally 333 - assumed that any node with a 'compatible' property represents a device 334 - of some kind, and second, it can be assumed that any node at the root 335 - of the tree is either directly attached to the processor bus, or is a 336 - miscellaneous system device that cannot be described any other way. 337 - For each of these nodes, Linux allocates and registers a 338 - platform_device, which in turn may get bound to a platform_driver. 339 - 340 - Why is using a platform_device for these nodes a safe assumption? 341 - Well, for the way that Linux models devices, just about all bus_types 342 - assume that its devices are children of a bus controller. For 343 - example, each i2c_client is a child of an i2c_master. Each spi_device 344 - is a child of an SPI bus. Similarly for USB, PCI, MDIO, etc. The 345 - same hierarchy is also found in the DT, where I2C device nodes only 346 - ever appear as children of an I2C bus node. Ditto for SPI, MDIO, USB, 347 - etc. The only devices which do not require a specific type of parent 348 - device are platform_devices (and amba_devices, but more on that 349 - later), which will happily live at the base of the Linux /sys/devices 350 - tree. Therefore, if a DT node is at the root of the tree, then it 351 - really probably is best registered as a platform_device. 352 - 353 - Linux board support code calls of_platform_populate(NULL, NULL, NULL, NULL) 354 - to kick off discovery of devices at the root of the tree. The 355 - parameters are all NULL because when starting from the root of the 356 - tree, there is no need to provide a starting node (the first NULL), a 357 - parent struct device (the last NULL), and we're not using a match 358 - table (yet). For a board that only needs to register devices, 359 - .init_machine() can be completely empty except for the 360 - of_platform_populate() call. 361 - 362 - In the Tegra example, this accounts for the /soc and /sound nodes, but 363 - what about the children of the SoC node? Shouldn't they be registered 364 - as platform devices too? For Linux DT support, the generic behaviour 365 - is for child devices to be registered by the parent's device driver at 366 - driver .probe() time. So, an i2c bus device driver will register a 367 - i2c_client for each child node, an SPI bus driver will register 368 - its spi_device children, and similarly for other bus_types. 369 - According to that model, a driver could be written that binds to the 370 - SoC node and simply registers platform_devices for each of its 371 - children. The board support code would allocate and register an SoC 372 - device, a (theoretical) SoC device driver could bind to the SoC device, 373 - and register platform_devices for /soc/interrupt-controller, /soc/serial, 374 - /soc/i2s, and /soc/i2c in its .probe() hook. Easy, right? 375 - 376 - Actually, it turns out that registering children of some 377 - platform_devices as more platform_devices is a common pattern, and the 378 - device tree support code reflects that and makes the above example 379 - simpler. The second argument to of_platform_populate() is an 380 - of_device_id table, and any node that matches an entry in that table 381 - will also get its child nodes registered. In the Tegra case, the code 382 - can look something like this: 383 - 384 - static void __init harmony_init_machine(void) 385 - { 386 - /* ... */ 387 - of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); 388 - } 389 - 390 - "simple-bus" is defined in the Devicetree Specification as a property 391 - meaning a simple memory mapped bus, so the of_platform_populate() code 392 - could be written to just assume simple-bus compatible nodes will 393 - always be traversed. However, we pass it in as an argument so that 394 - board support code can always override the default behaviour. 395 - 396 - [Need to add discussion of adding i2c/spi/etc child devices] 397 - 398 - Appendix A: AMBA devices 399 - ------------------------ 400 - 401 - ARM Primecells are a certain kind of device attached to the ARM AMBA 402 - bus which include some support for hardware detection and power 403 - management. In Linux, struct amba_device and the amba_bus_type is 404 - used to represent Primecell devices. However, the fiddly bit is that 405 - not all devices on an AMBA bus are Primecells, and for Linux it is 406 - typical for both amba_device and platform_device instances to be 407 - siblings of the same bus segment. 408 - 409 - When using the DT, this creates problems for of_platform_populate() 410 - because it must decide whether to register each node as either a 411 - platform_device or an amba_device. This unfortunately complicates the 412 - device creation model a little bit, but the solution turns out not to 413 - be too invasive. If a node is compatible with "arm,amba-primecell", then 414 - of_platform_populate() will register it as an amba_device instead of a 415 - platform_device.
+3
Documentation/index.rst
··· 1 + .. SPDX-License-Identifier: GPL-2.0 2 + 1 3 2 4 .. The Linux Kernel documentation master file, created by 3 5 sphinx-quickstart on Fri Feb 12 13:51:46 2016. ··· 48 46 :maxdepth: 2 49 47 50 48 firmware-guide/index 49 + devicetree/index 51 50 52 51 Application-developer documentation 53 52 -----------------------------------
+1 -1
Documentation/process/submitting-patches.rst
··· 16 16 submitting code. If you are submitting a driver, also read 17 17 :ref:`Documentation/process/submitting-drivers.rst <submittingdrivers>`; 18 18 for device tree binding patches, read 19 - Documentation/devicetree/bindings/submitting-patches.txt. 19 + Documentation/devicetree/bindings/submitting-patches.rst. 20 20 21 21 Many of these steps describe the default behavior of the ``git`` version 22 22 control system; if you use ``git`` to prepare your patches, you'll find much
+1 -1
Documentation/translations/it_IT/process/submitting-patches.rst
··· 21 21 per una lista di punti da verificare prima di inviare del codice. Se state 22 22 inviando un driver, allora leggete anche :ref:`Documentation/translations/it_IT/process/submitting-drivers.rst <it_submittingdrivers>`; 23 23 per delle patch relative alle associazioni per Device Tree leggete 24 - Documentation/devicetree/bindings/submitting-patches.txt. 24 + Documentation/devicetree/bindings/submitting-patches.rst. 25 25 26 26 Molti di questi passi descrivono il comportamento di base del sistema di 27 27 controllo di versione ``git``; se utilizzate ``git`` per preparare le vostre
+16 -17
MAINTAINERS
··· 2713 2713 S: Supported 2714 2714 W: http://wiki.xilinx.com 2715 2715 T: git https://github.com/Xilinx/linux-xlnx.git 2716 - F: Documentation/devicetree/bindings/i2c/i2c-cadence.txt 2717 - F: Documentation/devicetree/bindings/i2c/i2c-xiic.txt 2716 + F: Documentation/devicetree/bindings/i2c/cdns,i2c-r1p10.yaml 2717 + F: Documentation/devicetree/bindings/i2c/xlnx,xps-iic-2.00.a.yaml 2718 2718 F: arch/arm/mach-zynq/ 2719 2719 F: drivers/block/xsysace.c 2720 2720 F: drivers/clocksource/timer-cadence-ttc.c ··· 4088 4088 M: Richard Fitzgerald <rf@opensource.cirrus.com> 4089 4089 L: patches@opensource.cirrus.com 4090 4090 S: Supported 4091 - F: Documentation/devicetree/bindings/clock/cirrus,lochnagar.txt 4092 - F: Documentation/devicetree/bindings/hwmon/cirrus,lochnagar.txt 4093 - F: Documentation/devicetree/bindings/mfd/cirrus,lochnagar.txt 4094 - F: Documentation/devicetree/bindings/pinctrl/cirrus,lochnagar.txt 4095 - F: Documentation/devicetree/bindings/regulator/cirrus,lochnagar.txt 4096 - F: Documentation/devicetree/bindings/sound/cirrus,lochnagar.txt 4091 + F: Documentation/devicetree/bindings/clock/cirrus,lochnagar.yaml 4092 + F: Documentation/devicetree/bindings/hwmon/cirrus,lochnagar.yaml 4093 + F: Documentation/devicetree/bindings/mfd/cirrus,lochnagar.yaml 4094 + F: Documentation/devicetree/bindings/pinctrl/cirrus,lochnagar.yaml 4095 + F: Documentation/devicetree/bindings/sound/cirrus,lochnagar.yaml 4097 4096 F: Documentation/hwmon/lochnagar.rst 4098 4097 F: drivers/clk/clk-lochnagar.c 4099 4098 F: drivers/hwmon/lochnagar-hwmon.c ··· 4112 4113 S: Supported 4113 4114 W: https://github.com/CirrusLogic/linux-drivers/wiki 4114 4115 T: git https://github.com/CirrusLogic/linux-drivers.git 4115 - F: Documentation/devicetree/bindings/mfd/madera.txt 4116 - F: Documentation/devicetree/bindings/pinctrl/cirrus,madera-pinctrl.txt 4117 - F: Documentation/devicetree/bindings/sound/madera.txt 4116 + F: Documentation/devicetree/bindings/mfd/cirrus,madera.yaml 4117 + F: Documentation/devicetree/bindings/pinctrl/cirrus,madera.yaml 4118 + F: Documentation/devicetree/bindings/sound/cirrus,madera.yaml 4118 4119 F: drivers/gpio/gpio-madera* 4119 4120 F: drivers/irqchip/irq-madera* 4120 4121 F: drivers/mfd/cs47l* ··· 12652 12653 M: Frank Rowand <frowand.list@gmail.com> 12653 12654 L: devicetree@vger.kernel.org 12654 12655 S: Maintained 12655 - F: Documentation/devicetree/dynamic-resolution-notes.txt 12656 - F: Documentation/devicetree/overlay-notes.txt 12656 + F: Documentation/devicetree/dynamic-resolution-notes.rst 12657 + F: Documentation/devicetree/overlay-notes.rst 12657 12658 F: drivers/of/overlay.c 12658 12659 F: drivers/of/resolver.c 12659 12660 K: of_overlay_notifier_ ··· 18409 18410 S: Supported 18410 18411 W: https://github.com/CirrusLogic/linux-drivers/wiki 18411 18412 T: git https://github.com/CirrusLogic/linux-drivers.git 18412 - F: Documentation/devicetree/bindings/extcon/extcon-arizona.txt 18413 - F: Documentation/devicetree/bindings/mfd/arizona.txt 18413 + F: Documentation/devicetree/bindings/extcon/wlf,arizona.yaml 18414 + F: Documentation/devicetree/bindings/mfd/wlf,arizona.yaml 18414 18415 F: Documentation/devicetree/bindings/mfd/wm831x.txt 18415 - F: Documentation/devicetree/bindings/regulator/arizona-regulator.txt 18416 - F: Documentation/devicetree/bindings/sound/wlf,arizona.txt 18416 + F: Documentation/devicetree/bindings/regulator/wlf,arizona.yaml 18417 + F: Documentation/devicetree/bindings/sound/wlf,arizona.yaml 18417 18418 F: Documentation/hwmon/wm83??.rst 18418 18419 F: arch/arm/mach-s3c64xx/mach-crag6410* 18419 18420 F: drivers/clk/clk-wm83*.c
+1 -2
drivers/of/dynamic.c
··· 286 286 { 287 287 struct of_reconfig_data rd; 288 288 unsigned long flags; 289 - int rc = 0; 290 289 291 290 memset(&rd, 0, sizeof(rd)); 292 291 rd.dn = np; ··· 300 301 301 302 of_reconfig_notify(OF_RECONFIG_DETACH_NODE, &rd); 302 303 303 - return rc; 304 + return 0; 304 305 } 305 306 EXPORT_SYMBOL_GPL(of_detach_node); 306 307
+2 -6
drivers/of/fdt.c
··· 471 471 static u32 of_fdt_crc32; 472 472 473 473 /** 474 - * res_mem_reserve_reg() - reserve all memory described in 'reg' property 474 + * __reserved_mem_reserve_reg() - reserve all memory described in 'reg' property 475 475 */ 476 476 static int __init __reserved_mem_reserve_reg(unsigned long node, 477 477 const char *uname) ··· 643 643 offset = fdt_next_node(blob, offset, &depth)) { 644 644 645 645 pathp = fdt_get_name(blob, offset, NULL); 646 - if (*pathp == '/') 647 - pathp = kbasename(pathp); 648 646 rc = it(offset, pathp, depth, data); 649 647 } 650 648 return rc; ··· 669 671 int rc; 670 672 671 673 pathp = fdt_get_name(blob, node, NULL); 672 - if (*pathp == '/') 673 - pathp = kbasename(pathp); 674 674 rc = it(node, pathp, data); 675 675 if (rc) 676 676 return rc; ··· 1074 1078 #endif 1075 1079 #endif /* CONFIG_CMDLINE */ 1076 1080 1077 - pr_debug("Command line is: %s\n", (char*)data); 1081 + pr_debug("Command line is: %s\n", (char *)data); 1078 1082 1079 1083 rng_seed = of_get_flat_dt_prop(node, "rng-seed", &l); 1080 1084 if (rng_seed && l > 0) {
+1 -2
drivers/of/kobj.c
··· 134 134 if (!name) 135 135 return -ENOMEM; 136 136 137 - of_node_get(np); 138 - 139 137 rc = kobject_add(&np->kobj, parent, "%s", name); 140 138 kfree(name); 141 139 if (rc) ··· 142 144 for_each_property_of_node(np, pp) 143 145 __of_add_property_sysfs(np, pp); 144 146 147 + of_node_get(np); 145 148 return 0; 146 149 } 147 150
+5 -5
drivers/of/of_reserved_mem.c
··· 46 46 } 47 47 48 48 /** 49 - * res_mem_save_node() - save fdt node for second pass initialization 49 + * fdt_reserved_mem_save_node() - save fdt node for second pass initialization 50 50 */ 51 51 void __init fdt_reserved_mem_save_node(unsigned long node, const char *uname, 52 52 phys_addr_t base, phys_addr_t size) ··· 68 68 } 69 69 70 70 /** 71 - * res_mem_alloc_size() - allocate reserved memory described by 'size', 'align' 72 - * and 'alloc-ranges' properties 71 + * __reserved_mem_alloc_size() - allocate reserved memory described by 72 + * 'size', 'align' and 'alloc-ranges' properties. 73 73 */ 74 74 static int __init __reserved_mem_alloc_size(unsigned long node, 75 75 const char *uname, phys_addr_t *res_base, phys_addr_t *res_size) ··· 165 165 __used __section(__reservedmem_of_table_end); 166 166 167 167 /** 168 - * res_mem_init_node() - call region specific reserved memory init code 168 + * __reserved_mem_init_node() - call region specific reserved memory init code 169 169 */ 170 170 static int __init __reserved_mem_init_node(struct reserved_mem *rmem) 171 171 { ··· 232 232 } 233 233 234 234 /** 235 - * fdt_init_reserved_mem - allocate and init all saved reserved memory regions 235 + * fdt_init_reserved_mem() - allocate and init all saved reserved memory regions 236 236 */ 237 237 void __init fdt_init_reserved_mem(void) 238 238 {
+1 -1
drivers/of/platform.c
··· 291 291 #endif /* CONFIG_ARM_AMBA */ 292 292 293 293 /** 294 - * of_devname_lookup() - Given a device node, lookup the preferred Linux name 294 + * of_dev_lookup() - Given a device node, lookup the preferred Linux name 295 295 */ 296 296 static const struct of_dev_auxdata *of_dev_lookup(const struct of_dev_auxdata *lookup, 297 297 struct device_node *np)
+17 -3
drivers/of/property.c
··· 1045 1045 * Find the device node that contains the supplier phandle. It may be 1046 1046 * @sup_np or it may be an ancestor of @sup_np. 1047 1047 */ 1048 - while (sup_np && !of_find_property(sup_np, "compatible", NULL)) 1048 + while (sup_np) { 1049 + 1050 + /* Don't allow linking to a disabled supplier */ 1051 + if (!of_device_is_available(sup_np)) { 1052 + of_node_put(sup_np); 1053 + sup_np = NULL; 1054 + } 1055 + 1056 + if (of_find_property(sup_np, "compatible", NULL)) 1057 + break; 1058 + 1049 1059 sup_np = of_get_next_parent(sup_np); 1060 + } 1061 + 1050 1062 if (!sup_np) { 1051 1063 dev_dbg(dev, "Not linking to %pOFP - No device\n", tmp_np); 1052 1064 return -ENODEV; ··· 1086 1074 return -EAGAIN; 1087 1075 } 1088 1076 if (!device_link_add(dev, sup_dev, dl_flags)) 1089 - ret = -EAGAIN; 1077 + ret = -EINVAL; 1090 1078 put_device(sup_dev); 1091 1079 return ret; 1092 1080 } ··· 1218 1206 DEFINE_SIMPLE_PROP(dmas, "dmas", "#dma-cells") 1219 1207 DEFINE_SIMPLE_PROP(power_domains, "power-domains", "#power-domain-cells") 1220 1208 DEFINE_SIMPLE_PROP(hwlocks, "hwlocks", "#hwlock-cells") 1209 + DEFINE_SIMPLE_PROP(extcon, "extcon", NULL) 1221 1210 DEFINE_SUFFIX_PROP(regulators, "-supply", NULL) 1222 1211 DEFINE_SUFFIX_PROP(gpio, "-gpio", "#gpio-cells") 1223 1212 DEFINE_SUFFIX_PROP(gpios, "-gpios", "#gpio-cells") ··· 1243 1230 { .parse_prop = parse_dmas, }, 1244 1231 { .parse_prop = parse_power_domains, }, 1245 1232 { .parse_prop = parse_hwlocks, }, 1233 + { .parse_prop = parse_extcon, }, 1246 1234 { .parse_prop = parse_regulators, }, 1247 1235 { .parse_prop = parse_gpio, }, 1248 1236 { .parse_prop = parse_gpios, }, ··· 1310 1296 if (of_link_property(dev, con_np, p->name)) 1311 1297 ret = -ENODEV; 1312 1298 1313 - for_each_child_of_node(con_np, child) 1299 + for_each_available_child_of_node(con_np, child) 1314 1300 if (of_link_to_suppliers(dev, child) && !ret) 1315 1301 ret = -EAGAIN; 1316 1302
+1 -1
include/linux/mfd/core.h
··· 74 74 75 75 /* 76 76 * Device Tree compatible string 77 - * See: Documentation/devicetree/usage-model.txt Chapter 2.2 for details 77 + * See: Documentation/devicetree/usage-model.rst Chapter 2.2 for details 78 78 */ 79 79 const char *of_compatible; 80 80
+1 -1
scripts/checkpatch.pl
··· 2607 2607 if (($last_binding_patch != -1) && 2608 2608 ($last_binding_patch ^ $is_binding_patch)) { 2609 2609 WARN("DT_SPLIT_BINDING_PATCH", 2610 - "DT binding docs and includes should be a separate patch. See: Documentation/devicetree/bindings/submitting-patches.txt\n"); 2610 + "DT binding docs and includes should be a separate patch. See: Documentation/devicetree/bindings/submitting-patches.rst\n"); 2611 2611 } 2612 2612 } 2613 2613