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

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

Pull devicetree updates from Rob Herring:

- Refine reserved memory nomap handling

- Merge some PCI and non-PCI address handling implementations

- Simplify of_address.h header ifdefs

- Improve printk handling of some 64-bit types

- Convert adi,adv7511, Arm ccree, Arm SCMI, Arm SCU, Arm TWD timer, Arm
VIC, arm,sbsa-gwdt, Arm/Amlogic SCPI, Aspeed I2C, Broadcom iProc PWM,
linaro,optee-tz, MDIO GPIO, Mediatek RNG, MTD physmap, NXP
pcf8563/pcf85263/pcf85363, Renesas TPU, renesas,emev2-smu,
renesas,r9a06g032-sysctrl, sysc-rmobile, Tegra20 EMC, TI AM56 PCI, TI
OMAP mailbox, TI SCI bindings, virtio-mmio, Zynq FPGA, and ZynqMP RTC
to DT schema

- Convert mux and mux controller bindings to schema. This includes MDIO
IIO, and I2C muxes.

- Add Arm PL031 RTC binding schema

- Add vendor prefixes for StarFive Technology Co. Ltd. and Insignal Ltd

- Fix some stale doc references

- Remove stale property-units.txt. Superseded by schema in dt-schema
repo.

- Fixes for 'unevaluatedProperties' handling (enabled with experimental
json-schema support)

- Drop redundant usage of minItems and maxItems across the tree

- Update some examples to use bindings with a schema

* tag 'devicetree-for-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (83 commits)
dt-bindings: Fix 'unevaluatedProperties' errors in DT graph users
dt-bindings: display: renesas,du: Fix 'ports' reference
dt-bindings: media: adv7180: Add missing video-interfaces.yaml reference
dt-bindings: crypto: ccree: Convert to json-schema
dt-bindings: fpga: zynq: convert bindings to YAML
dt-bindings: rtc: zynqmp: convert bindings to YAML
dt-bindings: interrupt-controller: Convert ARM VIC to json-schema
of: of_reserved_mem: mark nomap memory instead of removing
of: of_reserved_mem: only call memblock_free for normal reserved memory
dt-bindings: Drop redundant minItems/maxItems
dt-bindings: spmi: Correct 'reg' schema
of: reserved-memory: Add stub for RESERVEDMEM_OF_DECLARE()
dt-bindings: clk: vc5: Fix example
dt-bindings: timer: renesas,tmu: add r8a779a0 TMU support
dt-bindings: drm: bridge: adi,adv7511.txt: convert to yaml
dt-bindings: PCI: ti,am65: Convert PCIe host/endpoint mode dt-bindings to YAML
of: Remove superfluous casts when printing u64 values
of: Fix truncation of memory sizes on 32-bit platforms
dt-bindings: rtc: nxp,pcf8563: Absorb pcf85263/pcf85363 bindings
dt-bindings: pwm: Use examples with documented/matching schema
...

+5047 -3772
-27
Documentation/devicetree/bindings/arm/amlogic,scpi.txt
··· 1 - System Control and Power Interface (SCPI) Message Protocol 2 - (in addition to the standard binding in [0]) 3 - ---------------------------------------------------------- 4 - Required properties 5 - 6 - - compatible : should be "amlogic,meson-gxbb-scpi" 7 - 8 - AMLOGIC SRAM and Shared Memory for SCPI 9 - ------------------------------------ 10 - 11 - Required properties: 12 - - compatible : should be "amlogic,meson-gxbb-sram" 13 - 14 - Each sub-node represents the reserved area for SCPI. 15 - 16 - Required sub-node properties: 17 - - compatible : should be "amlogic,meson-gxbb-scp-shmem" for SRAM based shared 18 - memory on Amlogic GXBB SoC. 19 - 20 - Sensor bindings for the sensors based on SCPI Message Protocol 21 - -------------------------------------------------------------- 22 - SCPI provides an API to access the various sensors on the SoC. 23 - 24 - Required properties: 25 - - compatible : should be "amlogic,meson-gxbb-scpi-sensors". 26 - 27 - [0] Documentation/devicetree/bindings/arm/arm,scpi.txt
-239
Documentation/devicetree/bindings/arm/arm,scmi.txt
··· 1 - System Control and Management Interface (SCMI) Message Protocol 2 - ---------------------------------------------------------- 3 - 4 - The SCMI is intended to allow agents such as OSPM to manage various functions 5 - that are provided by the hardware platform it is running on, including power 6 - and performance functions. 7 - 8 - This binding is intended to define the interface the firmware implementing 9 - the SCMI as described in ARM document number ARM DEN 0056A ("ARM System Control 10 - and Management Interface Platform Design Document")[0] provide for OSPM in 11 - the device tree. 12 - 13 - Required properties: 14 - 15 - The scmi node with the following properties shall be under the /firmware/ node. 16 - 17 - - compatible : shall be "arm,scmi" or "arm,scmi-smc" for smc/hvc transports 18 - - mboxes: List of phandle and mailbox channel specifiers. It should contain 19 - exactly one or two mailboxes, one for transmitting messages("tx") 20 - and another optional for receiving the notifications("rx") if 21 - supported. 22 - - shmem : List of phandle pointing to the shared memory(SHM) area as per 23 - generic mailbox client binding. 24 - - #address-cells : should be '1' if the device has sub-nodes, maps to 25 - protocol identifier for a given sub-node. 26 - - #size-cells : should be '0' as 'reg' property doesn't have any size 27 - associated with it. 28 - - arm,smc-id : SMC id required when using smc or hvc transports 29 - 30 - Optional properties: 31 - 32 - - mbox-names: shall be "tx" or "rx" depending on mboxes entries. 33 - 34 - - interrupts : when using smc or hvc transports, this optional 35 - property indicates that msg completion by the platform is indicated 36 - by an interrupt rather than by the return of the smc call. This 37 - should not be used except when the platform requires such behavior. 38 - 39 - - interrupt-names : if "interrupts" is present, interrupt-names must also 40 - be present and have the value "a2p". 41 - 42 - See Documentation/devicetree/bindings/mailbox/mailbox.txt for more details 43 - about the generic mailbox controller and client driver bindings. 44 - 45 - The mailbox is the only permitted method of calling the SCMI firmware. 46 - Mailbox doorbell is used as a mechanism to alert the presence of a 47 - messages and/or notification. 48 - 49 - Each protocol supported shall have a sub-node with corresponding compatible 50 - as described in the following sections. If the platform supports dedicated 51 - communication channel for a particular protocol, the 3 properties namely: 52 - mboxes, mbox-names and shmem shall be present in the sub-node corresponding 53 - to that protocol. 54 - 55 - Clock/Performance bindings for the clocks/OPPs based on SCMI Message Protocol 56 - ------------------------------------------------------------ 57 - 58 - This binding uses the common clock binding[1]. 59 - 60 - Required properties: 61 - - #clock-cells : Should be 1. Contains the Clock ID value used by SCMI commands. 62 - 63 - Power domain bindings for the power domains based on SCMI Message Protocol 64 - ------------------------------------------------------------ 65 - 66 - This binding for the SCMI power domain providers uses the generic power 67 - domain binding[2]. 68 - 69 - Required properties: 70 - - #power-domain-cells : Should be 1. Contains the device or the power 71 - domain ID value used by SCMI commands. 72 - 73 - Regulator bindings for the SCMI Regulator based on SCMI Message Protocol 74 - ------------------------------------------------------------ 75 - An SCMI Regulator is permanently bound to a well defined SCMI Voltage Domain, 76 - and should be always positioned as a root regulator. 77 - It does not support any current operation. 78 - 79 - SCMI Regulators are grouped under a 'regulators' node which in turn is a child 80 - of the SCMI Voltage protocol node inside the desired SCMI instance node. 81 - 82 - This binding uses the common regulator binding[6]. 83 - 84 - Required properties: 85 - - reg : shall identify an existent SCMI Voltage Domain. 86 - 87 - Sensor bindings for the sensors based on SCMI Message Protocol 88 - -------------------------------------------------------------- 89 - SCMI provides an API to access the various sensors on the SoC. 90 - 91 - Required properties: 92 - - #thermal-sensor-cells: should be set to 1. This property follows the 93 - thermal device tree bindings[3]. 94 - 95 - Valid cell values are raw identifiers (Sensor ID) 96 - as used by the firmware. Refer to platform details 97 - for your implementation for the IDs to use. 98 - 99 - Reset signal bindings for the reset domains based on SCMI Message Protocol 100 - ------------------------------------------------------------ 101 - 102 - This binding for the SCMI reset domain providers uses the generic reset 103 - signal binding[5]. 104 - 105 - Required properties: 106 - - #reset-cells : Should be 1. Contains the reset domain ID value used 107 - by SCMI commands. 108 - 109 - SRAM and Shared Memory for SCMI 110 - ------------------------------- 111 - 112 - A small area of SRAM is reserved for SCMI communication between application 113 - processors and SCP. 114 - 115 - The properties should follow the generic mmio-sram description found in [4] 116 - 117 - Each sub-node represents the reserved area for SCMI. 118 - 119 - Required sub-node properties: 120 - - reg : The base offset and size of the reserved area with the SRAM 121 - - compatible : should be "arm,scmi-shmem" for Non-secure SRAM based 122 - shared memory 123 - 124 - [0] http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/index.html 125 - [1] Documentation/devicetree/bindings/clock/clock-bindings.txt 126 - [2] Documentation/devicetree/bindings/power/power-domain.yaml 127 - [3] Documentation/devicetree/bindings/thermal/thermal*.yaml 128 - [4] Documentation/devicetree/bindings/sram/sram.yaml 129 - [5] Documentation/devicetree/bindings/reset/reset.txt 130 - [6] Documentation/devicetree/bindings/regulator/regulator.yaml 131 - 132 - Example: 133 - 134 - sram@50000000 { 135 - compatible = "mmio-sram"; 136 - reg = <0x0 0x50000000 0x0 0x10000>; 137 - 138 - #address-cells = <1>; 139 - #size-cells = <1>; 140 - ranges = <0 0x0 0x50000000 0x10000>; 141 - 142 - cpu_scp_lpri: scp-shmem@0 { 143 - compatible = "arm,scmi-shmem"; 144 - reg = <0x0 0x200>; 145 - }; 146 - 147 - cpu_scp_hpri: scp-shmem@200 { 148 - compatible = "arm,scmi-shmem"; 149 - reg = <0x200 0x200>; 150 - }; 151 - }; 152 - 153 - mailbox@40000000 { 154 - .... 155 - #mbox-cells = <1>; 156 - reg = <0x0 0x40000000 0x0 0x10000>; 157 - }; 158 - 159 - firmware { 160 - 161 - ... 162 - 163 - scmi { 164 - compatible = "arm,scmi"; 165 - mboxes = <&mailbox 0 &mailbox 1>; 166 - mbox-names = "tx", "rx"; 167 - shmem = <&cpu_scp_lpri &cpu_scp_hpri>; 168 - #address-cells = <1>; 169 - #size-cells = <0>; 170 - 171 - scmi_devpd: protocol@11 { 172 - reg = <0x11>; 173 - #power-domain-cells = <1>; 174 - }; 175 - 176 - scmi_dvfs: protocol@13 { 177 - reg = <0x13>; 178 - #clock-cells = <1>; 179 - }; 180 - 181 - scmi_clk: protocol@14 { 182 - reg = <0x14>; 183 - #clock-cells = <1>; 184 - }; 185 - 186 - scmi_sensors0: protocol@15 { 187 - reg = <0x15>; 188 - #thermal-sensor-cells = <1>; 189 - }; 190 - 191 - scmi_reset: protocol@16 { 192 - reg = <0x16>; 193 - #reset-cells = <1>; 194 - }; 195 - 196 - scmi_voltage: protocol@17 { 197 - reg = <0x17>; 198 - 199 - regulators { 200 - regulator_devX: regulator@0 { 201 - reg = <0x0>; 202 - regulator-max-microvolt = <3300000>; 203 - }; 204 - 205 - regulator_devY: regulator@9 { 206 - reg = <0x9>; 207 - regulator-min-microvolt = <500000>; 208 - regulator-max-microvolt = <4200000>; 209 - }; 210 - 211 - ... 212 - }; 213 - }; 214 - }; 215 - }; 216 - 217 - cpu@0 { 218 - ... 219 - reg = <0 0>; 220 - clocks = <&scmi_dvfs 0>; 221 - }; 222 - 223 - hdlcd@7ff60000 { 224 - ... 225 - reg = <0 0x7ff60000 0 0x1000>; 226 - clocks = <&scmi_clk 4>; 227 - power-domains = <&scmi_devpd 1>; 228 - resets = <&scmi_reset 10>; 229 - }; 230 - 231 - thermal-zones { 232 - soc_thermal { 233 - polling-delay-passive = <100>; 234 - polling-delay = <1000>; 235 - /* sensor ID */ 236 - thermal-sensors = <&scmi_sensors0 3>; 237 - ... 238 - }; 239 - };
-219
Documentation/devicetree/bindings/arm/arm,scpi.txt
··· 1 - System Control and Power Interface (SCPI) Message Protocol 2 - ---------------------------------------------------------- 3 - 4 - Firmware implementing the SCPI described in ARM document number ARM DUI 0922B 5 - ("ARM Compute Subsystem SCP: Message Interface Protocols")[0] can be used 6 - by Linux to initiate various system control and power operations. 7 - 8 - Required properties: 9 - 10 - - compatible : should be 11 - * "arm,scpi" : For implementations complying to SCPI v1.0 or above 12 - * "arm,scpi-pre-1.0" : For implementations complying to all 13 - unversioned releases prior to SCPI v1.0 14 - - mboxes: List of phandle and mailbox channel specifiers 15 - All the channels reserved by remote SCP firmware for use by 16 - SCPI message protocol should be specified in any order 17 - - shmem : List of phandle pointing to the shared memory(SHM) area between the 18 - processors using these mailboxes for IPC, one for each mailbox 19 - SHM can be any memory reserved for the purpose of this communication 20 - between the processors. 21 - 22 - See Documentation/devicetree/bindings/mailbox/mailbox.txt 23 - for more details about the generic mailbox controller and 24 - client driver bindings. 25 - 26 - Clock bindings for the clocks based on SCPI Message Protocol 27 - ------------------------------------------------------------ 28 - 29 - This binding uses the common clock binding[1]. 30 - 31 - Container Node 32 - ============== 33 - Required properties: 34 - - compatible : should be "arm,scpi-clocks" 35 - All the clocks provided by SCP firmware via SCPI message 36 - protocol much be listed as sub-nodes under this node. 37 - 38 - Sub-nodes 39 - ========= 40 - Required properties: 41 - - compatible : shall include one of the following 42 - "arm,scpi-dvfs-clocks" - all the clocks that are variable and index based. 43 - These clocks don't provide an entire range of values between the 44 - limits but only discrete points within the range. The firmware 45 - provides the mapping for each such operating frequency and the 46 - index associated with it. The firmware also manages the 47 - voltage scaling appropriately with the clock scaling. 48 - "arm,scpi-variable-clocks" - all the clocks that are variable and provide full 49 - range within the specified range. The firmware provides the 50 - range of values within a specified range. 51 - 52 - Other required properties for all clocks(all from common clock binding): 53 - - #clock-cells : Should be 1. Contains the Clock ID value used by SCPI commands. 54 - - clock-output-names : shall be the corresponding names of the outputs. 55 - - clock-indices: The identifying number for the clocks(i.e.clock_id) in the 56 - node. It can be non linear and hence provide the mapping of identifiers 57 - into the clock-output-names array. 58 - 59 - SRAM and Shared Memory for SCPI 60 - ------------------------------- 61 - 62 - A small area of SRAM is reserved for SCPI communication between application 63 - processors and SCP. 64 - 65 - The properties should follow the generic mmio-sram description found in [3] 66 - 67 - Each sub-node represents the reserved area for SCPI. 68 - 69 - Required sub-node properties: 70 - - reg : The base offset and size of the reserved area with the SRAM 71 - - compatible : should be "arm,scp-shmem" for Non-secure SRAM based 72 - shared memory 73 - 74 - Sensor bindings for the sensors based on SCPI Message Protocol 75 - -------------------------------------------------------------- 76 - SCPI provides an API to access the various sensors on the SoC. 77 - 78 - Required properties: 79 - - compatible : should be "arm,scpi-sensors". 80 - - #thermal-sensor-cells: should be set to 1. This property follows the 81 - thermal device tree bindings[2]. 82 - 83 - Valid cell values are raw identifiers (Sensor ID) 84 - as used by the firmware. Refer to platform details 85 - for your implementation for the IDs to use. 86 - 87 - Power domain bindings for the power domains based on SCPI Message Protocol 88 - ------------------------------------------------------------ 89 - 90 - This binding uses the generic power domain binding[4]. 91 - 92 - PM domain providers 93 - =================== 94 - 95 - Required properties: 96 - - #power-domain-cells : Should be 1. Contains the device or the power 97 - domain ID value used by SCPI commands. 98 - - num-domains: Total number of power domains provided by SCPI. This is 99 - needed as the SCPI message protocol lacks a mechanism to 100 - query this information at runtime. 101 - 102 - PM domain consumers 103 - =================== 104 - 105 - Required properties: 106 - - power-domains : A phandle and PM domain specifier as defined by bindings of 107 - the power controller specified by phandle. 108 - 109 - [0] http://infocenter.arm.com/help/topic/com.arm.doc.dui0922b/index.html 110 - [1] Documentation/devicetree/bindings/clock/clock-bindings.txt 111 - [2] Documentation/devicetree/bindings/thermal/thermal*.yaml 112 - [3] Documentation/devicetree/bindings/sram/sram.yaml 113 - [4] Documentation/devicetree/bindings/power/power-domain.yaml 114 - 115 - Example: 116 - 117 - sram: sram@50000000 { 118 - compatible = "arm,juno-sram-ns", "mmio-sram"; 119 - reg = <0x0 0x50000000 0x0 0x10000>; 120 - 121 - #address-cells = <1>; 122 - #size-cells = <1>; 123 - ranges = <0 0x0 0x50000000 0x10000>; 124 - 125 - cpu_scp_lpri: scp-shmem@0 { 126 - compatible = "arm,juno-scp-shmem"; 127 - reg = <0x0 0x200>; 128 - }; 129 - 130 - cpu_scp_hpri: scp-shmem@200 { 131 - compatible = "arm,juno-scp-shmem"; 132 - reg = <0x200 0x200>; 133 - }; 134 - }; 135 - 136 - mailbox: mailbox0@40000000 { 137 - .... 138 - #mbox-cells = <1>; 139 - }; 140 - 141 - scpi_protocol: scpi@2e000000 { 142 - compatible = "arm,scpi"; 143 - mboxes = <&mailbox 0 &mailbox 1>; 144 - shmem = <&cpu_scp_lpri &cpu_scp_hpri>; 145 - 146 - clocks { 147 - compatible = "arm,scpi-clocks"; 148 - 149 - scpi_dvfs: scpi_clocks@0 { 150 - compatible = "arm,scpi-dvfs-clocks"; 151 - #clock-cells = <1>; 152 - clock-indices = <0>, <1>, <2>; 153 - clock-output-names = "atlclk", "aplclk","gpuclk"; 154 - }; 155 - scpi_clk: scpi_clocks@3 { 156 - compatible = "arm,scpi-variable-clocks"; 157 - #clock-cells = <1>; 158 - clock-indices = <3>, <4>; 159 - clock-output-names = "pxlclk0", "pxlclk1"; 160 - }; 161 - }; 162 - 163 - scpi_sensors0: sensors { 164 - compatible = "arm,scpi-sensors"; 165 - #thermal-sensor-cells = <1>; 166 - }; 167 - 168 - scpi_devpd: scpi-power-domains { 169 - compatible = "arm,scpi-power-domains"; 170 - num-domains = <2>; 171 - #power-domain-cells = <1>; 172 - }; 173 - }; 174 - 175 - cpu@0 { 176 - ... 177 - reg = <0 0>; 178 - clocks = <&scpi_dvfs 0>; 179 - }; 180 - 181 - hdlcd@7ff60000 { 182 - ... 183 - reg = <0 0x7ff60000 0 0x1000>; 184 - clocks = <&scpi_clk 4>; 185 - power-domains = <&scpi_devpd 1>; 186 - }; 187 - 188 - thermal-zones { 189 - soc_thermal { 190 - polling-delay-passive = <100>; 191 - polling-delay = <1000>; 192 - 193 - /* sensor ID */ 194 - thermal-sensors = <&scpi_sensors0 3>; 195 - ... 196 - }; 197 - }; 198 - 199 - In the above example, the #clock-cells is set to 1 as required. 200 - scpi_dvfs has 3 output clocks namely: atlclk, aplclk, and gpuclk with 0, 201 - 1 and 2 as clock-indices. scpi_clk has 2 output clocks namely: pxlclk0 202 - and pxlclk1 with 3 and 4 as clock-indices. 203 - 204 - The first consumer in the example is cpu@0 and it has '0' as the clock 205 - specifier which points to the first entry in the output clocks of 206 - scpi_dvfs i.e. "atlclk". 207 - 208 - Similarly the second example is hdlcd@7ff60000 and it has pxlclk1 as input 209 - clock. '4' in the clock specifier here points to the second entry 210 - in the output clocks of scpi_clocks i.e. "pxlclk1" 211 - 212 - The thermal-sensors property in the soc_thermal node uses the 213 - temperature sensor provided by SCP firmware to setup a thermal 214 - zone. The ID "3" is the sensor identifier for the temperature sensor 215 - as used by the firmware. 216 - 217 - The num-domains property in scpi-power-domains domain specifies that 218 - SCPI provides 2 power domains. The hdlcd node uses the power domain with 219 - domain ID 1.
+46
Documentation/devicetree/bindings/arm/arm,scu.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/arm,scu.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: ARM Snoop Control Unit (SCU) 8 + 9 + maintainers: 10 + - Linus Walleij <linus.walleij@linaro.org> 11 + 12 + description: | 13 + As part of the MPCore complex, Cortex-A5 and Cortex-A9 are provided 14 + with a Snoop Control Unit. The register range is usually 256 (0x100) 15 + bytes. 16 + 17 + References: 18 + - Cortex-A9: see DDI0407E Cortex-A9 MPCore Technical Reference Manual 19 + Revision r2p0 20 + - Cortex-A5: see DDI0434B Cortex-A5 MPCore Technical Reference Manual 21 + Revision r0p1 22 + - ARM11 MPCore: see DDI0360F ARM 11 MPCore Processor Technical Reference 23 + Manial Revision r2p0 24 + 25 + properties: 26 + compatible: 27 + enum: 28 + - arm,cortex-a9-scu 29 + - arm,cortex-a5-scu 30 + - arm,arm11mp-scu 31 + 32 + reg: 33 + maxItems: 1 34 + 35 + required: 36 + - compatible 37 + - reg 38 + 39 + additionalProperties: false 40 + 41 + examples: 42 + - | 43 + scu@a0410000 { 44 + compatible = "arm,cortex-a9-scu"; 45 + reg = <0xa0410000 0x100>; 46 + };
-31
Documentation/devicetree/bindings/arm/firmware/linaro,optee-tz.txt
··· 1 - OP-TEE Device Tree Bindings 2 - 3 - OP-TEE is a piece of software using hardware features to provide a Trusted 4 - Execution Environment. The security can be provided with ARM TrustZone, but 5 - also by virtualization or a separate chip. 6 - 7 - We're using "linaro" as the first part of the compatible property for 8 - the reference implementation maintained by Linaro. 9 - 10 - * OP-TEE based on ARM TrustZone required properties: 11 - 12 - - compatible : should contain "linaro,optee-tz" 13 - 14 - - method : The method of calling the OP-TEE Trusted OS. Permitted 15 - values are: 16 - 17 - "smc" : SMC #0, with the register assignments specified 18 - in drivers/tee/optee/optee_smc.h 19 - 20 - "hvc" : HVC #0, with the register assignments specified 21 - in drivers/tee/optee/optee_smc.h 22 - 23 - 24 - 25 - Example: 26 - firmware { 27 - optee { 28 - compatible = "linaro,optee-tz"; 29 - method = "smc"; 30 - }; 31 - };
+58
Documentation/devicetree/bindings/arm/firmware/linaro,optee-tz.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/arm/firmware/linaro,optee-tz.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: OP-TEE Device Tree Bindings 8 + 9 + maintainers: 10 + - Jens Wiklander <jens.wiklander@linaro.org> 11 + 12 + description: | 13 + OP-TEE is a piece of software using hardware features to provide a Trusted 14 + Execution Environment. The security can be provided with ARM TrustZone, but 15 + also by virtualization or a separate chip. 16 + 17 + We're using "linaro" as the first part of the compatible property for 18 + the reference implementation maintained by Linaro. 19 + 20 + properties: 21 + $nodename: 22 + const: optee 23 + 24 + compatible: 25 + const: linaro,optee-tz 26 + 27 + method: 28 + enum: [smc, hvc] 29 + description: | 30 + The method of calling the OP-TEE Trusted OS depending on smc or hvc 31 + instruction usage. 32 + SMC #0, register assignments 33 + or 34 + HVC #0, register assignments 35 + register assignments are specified in drivers/tee/optee/optee_smc.h 36 + 37 + required: 38 + - compatible 39 + - method 40 + 41 + additionalProperties: false 42 + 43 + examples: 44 + - | 45 + firmware { 46 + optee { 47 + compatible = "linaro,optee-tz"; 48 + method = "smc"; 49 + }; 50 + }; 51 + 52 + - | 53 + firmware { 54 + optee { 55 + compatible = "linaro,optee-tz"; 56 + method = "hvc"; 57 + }; 58 + };
+2
Documentation/devicetree/bindings/arm/intel,keembay.yaml
··· 11 11 - Daniele Alessandrelli <daniele.alessandrelli@intel.com> 12 12 13 13 properties: 14 + $nodename: 15 + const: '/' 14 16 compatible: 15 17 items: 16 18 - enum:
-26
Documentation/devicetree/bindings/arm/juno,scpi.txt
··· 1 - System Control and Power Interface (SCPI) Message Protocol 2 - (in addition to the standard binding in [0]) 3 - 4 - Juno SRAM and Shared Memory for SCPI 5 - ------------------------------------ 6 - 7 - Required properties: 8 - - compatible : should be "arm,juno-sram-ns" for Non-secure SRAM 9 - 10 - Each sub-node represents the reserved area for SCPI. 11 - 12 - Required sub-node properties: 13 - - reg : The base offset and size of the reserved area with the SRAM 14 - - compatible : should be "arm,juno-scp-shmem" for Non-secure SRAM based 15 - shared memory on Juno platforms 16 - 17 - Sensor bindings for the sensors based on SCPI Message Protocol 18 - -------------------------------------------------------------- 19 - Required properties: 20 - - compatible : should be "arm,scpi-sensors". 21 - - #thermal-sensor-cells: should be set to 1. 22 - For Juno R0 and Juno R1 refer to [1] for the 23 - sensor identifiers 24 - 25 - [0] Documentation/devicetree/bindings/arm/arm,scpi.txt 26 - [1] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0922b/apas03s22.html
-86
Documentation/devicetree/bindings/arm/keystone/ti,sci.txt
··· 1 - Texas Instruments System Control Interface (TI-SCI) Message Protocol 2 - -------------------------------------------------------------------- 3 - 4 - Texas Instrument's processors including those belonging to Keystone generation 5 - of processors have separate hardware entity which is now responsible for the 6 - management of the System on Chip (SoC) system. These include various system 7 - level functions as well. 8 - 9 - An example of such an SoC is K2G, which contains the system control hardware 10 - block called Power Management Micro Controller (PMMC). This hardware block is 11 - initialized early into boot process and provides services to Operating Systems 12 - on multiple processors including ones running Linux. 13 - 14 - See http://processors.wiki.ti.com/index.php/TISCI for protocol definition. 15 - 16 - TI-SCI controller Device Node: 17 - ============================= 18 - 19 - The TI-SCI node describes the Texas Instrument's System Controller entity node. 20 - This parent node may optionally have additional children nodes which describe 21 - specific functionality such as clocks, power domain, reset or additional 22 - functionality as may be required for the SoC. This hierarchy also describes the 23 - relationship between the TI-SCI parent node to the child node. 24 - 25 - Required properties: 26 - ------------------- 27 - - compatible: should be "ti,k2g-sci" for TI 66AK2G SoC 28 - should be "ti,am654-sci" for for TI AM654 SoC 29 - - mbox-names: 30 - "rx" - Mailbox corresponding to receive path 31 - "tx" - Mailbox corresponding to transmit path 32 - 33 - - mboxes: Mailboxes corresponding to the mbox-names. Each value of the mboxes 34 - property should contain a phandle to the mailbox controller device 35 - node and an args specifier that will be the phandle to the intended 36 - sub-mailbox child node to be used for communication. 37 - 38 - See Documentation/devicetree/bindings/mailbox/mailbox.txt for more details 39 - about the generic mailbox controller and client driver bindings. Also see 40 - Documentation/devicetree/bindings/mailbox/ti,message-manager.txt for typical 41 - controller that is used to communicate with this System controllers. 42 - 43 - Optional Properties: 44 - ------------------- 45 - - reg-names: 46 - debug_messages - Map the Debug message region 47 - - reg: register space corresponding to the debug_messages 48 - - ti,system-reboot-controller: If system reboot can be triggered by SoC reboot 49 - - ti,host-id: Integer value corresponding to the host ID assigned by Firmware 50 - for identification of host processing entities such as virtual 51 - machines 52 - 53 - Example (K2G): 54 - ------------- 55 - pmmc: pmmc { 56 - compatible = "ti,k2g-sci"; 57 - ti,host-id = <2>; 58 - mbox-names = "rx", "tx"; 59 - mboxes= <&msgmgr &msgmgr_proxy_pmmc_rx>, 60 - <&msgmgr &msgmgr_proxy_pmmc_tx>; 61 - reg-names = "debug_messages"; 62 - reg = <0x02921800 0x800>; 63 - }; 64 - 65 - 66 - TI-SCI Client Device Node: 67 - ========================= 68 - 69 - Client nodes are maintained as children of the relevant TI-SCI device node. 70 - 71 - Example (K2G): 72 - ------------- 73 - pmmc: pmmc { 74 - compatible = "ti,k2g-sci"; 75 - ... 76 - 77 - my_clk_node: clk_node { 78 - ... 79 - ... 80 - }; 81 - 82 - my_pd_node: pd_node { 83 - ... 84 - ... 85 - }; 86 - };
+129
Documentation/devicetree/bindings/arm/keystone/ti,sci.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/keystone/ti,sci.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: TI-SCI controller device node bindings 8 + 9 + maintainers: 10 + - Nishanth Menon <nm@ti.com> 11 + 12 + description: | 13 + Texas Instrument's processors including those belonging to Keystone generation 14 + of processors have separate hardware entity which is now responsible for the 15 + management of the System on Chip (SoC) system. These include various system 16 + level functions as well. 17 + 18 + An example of such an SoC is K2G, which contains the system control hardware 19 + block called Power Management Micro Controller (PMMC). This hardware block is 20 + initialized early into boot process and provides services to Operating Systems 21 + on multiple processors including ones running Linux. 22 + 23 + See http://processors.wiki.ti.com/index.php/TISCI for protocol definition. 24 + 25 + The TI-SCI node describes the Texas Instrument's System Controller entity node. 26 + This parent node may optionally have additional children nodes which describe 27 + specific functionality such as clocks, power domain, reset or additional 28 + functionality as may be required for the SoC. This hierarchy also describes the 29 + relationship between the TI-SCI parent node to the child node. 30 + 31 + properties: 32 + $nodename: 33 + pattern: "^system-controller@[0-9a-f]+$" 34 + 35 + compatible: 36 + oneOf: 37 + - description: System controller on TI 66AK2G SoC and other K3 SoCs 38 + items: 39 + - const: ti,k2g-sci 40 + - description: System controller on TI AM654 SoC 41 + items: 42 + - const: ti,am654-sci 43 + 44 + reg-names: 45 + description: | 46 + Specifies the debug messages memory mapped region that is optionally 47 + made available from TI-SCI controller. 48 + const: debug_messages 49 + 50 + reg: 51 + minItems: 1 52 + 53 + mbox-names: 54 + description: | 55 + Specifies the mailboxes used to communicate with TI-SCI Controller 56 + made available from TI-SCI controller. 57 + items: 58 + - const: rx 59 + - const: tx 60 + 61 + mboxes: 62 + minItems: 2 63 + 64 + ti,system-reboot-controller: 65 + description: Determines If system reboot can be triggered by SoC reboot 66 + type: boolean 67 + 68 + ti,host-id: 69 + $ref: /schemas/types.yaml#/definitions/uint32 70 + description: | 71 + Value corresponding to the host ID assigned by Firmware 72 + for identification of host processing entities such as virtual machines. 73 + 74 + power-controller: 75 + type: object 76 + $ref: /schemas/soc/ti/sci-pm-domain.yaml# 77 + 78 + clock-controller: 79 + type: object 80 + $ref: /schemas/clock/ti,sci-clk.yaml# 81 + 82 + reset-controller: 83 + type: object 84 + $ref: /schemas/reset/ti,sci-reset.yaml# 85 + 86 + required: 87 + - compatible 88 + - mbox-names 89 + - mboxes 90 + 91 + additionalProperties: false 92 + 93 + examples: 94 + - | 95 + pmmc: system-controller@2921800 { 96 + compatible = "ti,k2g-sci"; 97 + ti,system-reboot-controller; 98 + mbox-names = "rx", "tx"; 99 + mboxes= <&msgmgr 5 2>, 100 + <&msgmgr 0 0>; 101 + reg-names = "debug_messages"; 102 + reg = <0x02921800 0x800>; 103 + }; 104 + 105 + - | 106 + dmsc: system-controller@44083000 { 107 + compatible = "ti,k2g-sci"; 108 + ti,host-id = <12>; 109 + mbox-names = "rx", "tx"; 110 + mboxes= <&secure_proxy_main 11>, 111 + <&secure_proxy_main 13>; 112 + reg-names = "debug_messages"; 113 + reg = <0x44083000 0x1000>; 114 + 115 + k3_pds: power-controller { 116 + compatible = "ti,sci-pm-domain"; 117 + #power-domain-cells = <2>; 118 + }; 119 + 120 + k3_clks: clock-controller { 121 + compatible = "ti,k2g-sci-clk"; 122 + #clock-cells = <2>; 123 + }; 124 + 125 + k3_reset: reset-controller { 126 + compatible = "ti,sci-reset"; 127 + #reset-cells = <2>; 128 + }; 129 + };
-28
Documentation/devicetree/bindings/arm/scu.txt
··· 1 - * ARM Snoop Control Unit (SCU) 2 - 3 - As part of the MPCore complex, Cortex-A5 and Cortex-A9 are provided 4 - with a Snoop Control Unit. The register range is usually 256 (0x100) 5 - bytes. 6 - 7 - References: 8 - 9 - - Cortex-A9: see DDI0407E Cortex-A9 MPCore Technical Reference Manual 10 - Revision r2p0 11 - - Cortex-A5: see DDI0434B Cortex-A5 MPCore Technical Reference Manual 12 - Revision r0p1 13 - - ARM11 MPCore: see DDI0360F ARM 11 MPCore Processor Technical Reference 14 - Manial Revision r2p0 15 - 16 - - compatible : Should be: 17 - "arm,cortex-a9-scu" 18 - "arm,cortex-a5-scu" 19 - "arm,arm11mp-scu" 20 - 21 - - reg : Specify the base address and the size of the SCU register window. 22 - 23 - Example: 24 - 25 - scu@a0410000 { 26 - compatible = "arm,cortex-a9-scu"; 27 - reg = <0xa0410000 0x100>; 28 - };
+2 -2
Documentation/devicetree/bindings/arm/ux500/boards.txt
··· 20 20 compatible = "ste,dbx500-backupram" 21 21 22 22 scu: 23 - see binding for arm/scu.txt 23 + see binding for arm/arm,scu.yaml 24 24 25 25 interrupt-controller: 26 26 see binding for interrupt-controller/arm,gic.txt 27 27 28 28 timer: 29 - see binding for timer/arm,twd.txt 29 + see binding for timer/arm,twd-timer.yaml 30 30 31 31 clocks: 32 32 see binding for clocks/ux500.txt
-1
Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.yaml
··· 20 20 21 21 reg: 22 22 minItems: 2 23 - maxItems: 3 24 23 items: 25 24 - description: AHCI registers 26 25 - description: SATA configuration and IPFS registers
+11
Documentation/devicetree/bindings/ata/renesas,rcar-sata.yaml
··· 53 53 - reg 54 54 - interrupts 55 55 - clocks 56 + - power-domains 57 + 58 + if: 59 + not: 60 + properties: 61 + compatible: 62 + contains: 63 + const: renesas,sata-r8a7779 64 + then: 65 + required: 66 + - resets 56 67 57 68 additionalProperties: false 58 69
-2
Documentation/devicetree/bindings/clock/allwinner,sun4i-a10-ccu.yaml
··· 51 51 52 52 clocks: 53 53 minItems: 2 54 - maxItems: 4 55 54 items: 56 55 - description: High Frequency Oscillator (usually at 24MHz) 57 56 - description: Low Frequency Oscillator (usually at 32kHz) ··· 59 60 60 61 clock-names: 61 62 minItems: 2 62 - maxItems: 4 63 63 items: 64 64 - const: hosc 65 65 - const: losc
+4 -3
Documentation/devicetree/bindings/clock/idt,versaclock5.yaml
··· 84 84 idt,slew-percent: 85 85 description: The Slew rate control for CMOS single-ended. 86 86 enum: [ 80, 85, 90, 100 ] 87 + additionalProperties: false 87 88 88 89 required: 89 90 - compatible ··· 140 139 clock-names = "xin"; 141 140 142 141 OUT1 { 143 - idt,drive-mode = <VC5_CMOSD>; 144 - idt,voltage-microvolts = <1800000>; 142 + idt,mode = <VC5_CMOSD>; 143 + idt,voltage-microvolt = <1800000>; 145 144 idt,slew-percent = <80>; 146 145 }; 147 146 148 147 OUT4 { 149 - idt,drive-mode = <VC5_LVDS>; 148 + idt,mode = <VC5_LVDS>; 150 149 }; 151 150 }; 152 151 };
-1
Documentation/devicetree/bindings/clock/qcom,gcc-apq8064.yaml
··· 46 46 47 47 nvmem-cell-names: 48 48 minItems: 1 49 - maxItems: 2 50 49 items: 51 50 - const: calib 52 51 - const: calib_backup
-2
Documentation/devicetree/bindings/clock/qcom,gcc-sdx55.yaml
··· 27 27 - description: Sleep clock source 28 28 - description: PLL test clock source (Optional clock) 29 29 minItems: 2 30 - maxItems: 3 31 30 32 31 clock-names: 33 32 items: ··· 34 35 - const: sleep_clk 35 36 - const: core_bi_pll_test_se # Optional clock 36 37 minItems: 2 37 - maxItems: 3 38 38 39 39 '#clock-cells': 40 40 const: 1
-2
Documentation/devicetree/bindings/clock/qcom,gcc-sm8350.yaml
··· 36 36 - description: USB3 phy wrapper pipe clock source (Optional clock) 37 37 - description: USB3 phy sec pipe clock source (Optional clock) 38 38 minItems: 2 39 - maxItems: 13 40 39 41 40 clock-names: 42 41 items: ··· 53 54 - const: usb3_phy_wrapper_gcc_usb30_pipe_clk # Optional clock 54 55 - const: usb3_uni_phy_sec_gcc_usb30_pipe_clk # Optional clock 55 56 minItems: 2 56 - maxItems: 13 57 57 58 58 '#clock-cells': 59 59 const: 1
-98
Documentation/devicetree/bindings/clock/renesas,emev2-smu.txt
··· 1 - Device tree Clock bindings for Renesas EMMA Mobile EV2 2 - 3 - This binding uses the common clock binding. 4 - 5 - * SMU 6 - System Management Unit described in user's manual R19UH0037EJ1000_SMU. 7 - This is not a clock provider, but clocks under SMU depend on it. 8 - 9 - Required properties: 10 - - compatible: Should be "renesas,emev2-smu" 11 - - reg: Address and Size of SMU registers 12 - 13 - * SMU_CLKDIV 14 - Function block with an input mux and a divider, which corresponds to 15 - "Serial clock generator" in fig."Clock System Overview" of the manual, 16 - and "xxx frequency division setting register" (XXXCLKDIV) registers. 17 - This makes internal (neither input nor output) clock that is provided 18 - to input of xxxGCLK block. 19 - 20 - Required properties: 21 - - compatible: Should be "renesas,emev2-smu-clkdiv" 22 - - reg: Byte offset from SMU base and Bit position in the register 23 - - clocks: Parent clocks. Input clocks as described in clock-bindings.txt 24 - - #clock-cells: Should be <0> 25 - 26 - * SMU_GCLK 27 - Clock gating node shown as "Clock stop processing block" in the 28 - fig."Clock System Overview" of the manual. 29 - Registers are "xxx clock gate control register" (XXXGCLKCTRL). 30 - 31 - Required properties: 32 - - compatible: Should be "renesas,emev2-smu-gclk" 33 - - reg: Byte offset from SMU base and Bit position in the register 34 - - clocks: Input clock as described in clock-bindings.txt 35 - - #clock-cells: Should be <0> 36 - 37 - Example of provider: 38 - 39 - usia_u0_sclkdiv: usia_u0_sclkdiv { 40 - compatible = "renesas,emev2-smu-clkdiv"; 41 - reg = <0x610 0>; 42 - clocks = <&pll3_fo>, <&pll4_fo>, <&pll1_fo>, <&osc1_fo>; 43 - #clock-cells = <0>; 44 - }; 45 - 46 - usia_u0_sclk: usia_u0_sclk { 47 - compatible = "renesas,emev2-smu-gclk"; 48 - reg = <0x4a0 1>; 49 - clocks = <&usia_u0_sclkdiv>; 50 - #clock-cells = <0>; 51 - }; 52 - 53 - Example of consumer: 54 - 55 - serial@e1020000 { 56 - compatible = "renesas,em-uart"; 57 - reg = <0xe1020000 0x38>; 58 - interrupts = <0 8 0>; 59 - clocks = <&usia_u0_sclk>; 60 - clock-names = "sclk"; 61 - }; 62 - 63 - Example of clock-tree description: 64 - 65 - This describes a clock path in the clock tree 66 - c32ki -> pll3_fo -> usia_u0_sclkdiv -> usia_u0_sclk 67 - 68 - smu@e0110000 { 69 - compatible = "renesas,emev2-smu"; 70 - reg = <0xe0110000 0x10000>; 71 - #address-cells = <2>; 72 - #size-cells = <0>; 73 - 74 - c32ki: c32ki { 75 - compatible = "fixed-clock"; 76 - clock-frequency = <32768>; 77 - #clock-cells = <0>; 78 - }; 79 - pll3_fo: pll3_fo { 80 - compatible = "fixed-factor-clock"; 81 - clocks = <&c32ki>; 82 - clock-div = <1>; 83 - clock-mult = <7000>; 84 - #clock-cells = <0>; 85 - }; 86 - usia_u0_sclkdiv: usia_u0_sclkdiv { 87 - compatible = "renesas,emev2-smu-clkdiv"; 88 - reg = <0x610 0>; 89 - clocks = <&pll3_fo>; 90 - #clock-cells = <0>; 91 - }; 92 - usia_u0_sclk: usia_u0_sclk { 93 - compatible = "renesas,emev2-smu-gclk"; 94 - reg = <0x4a0 1>; 95 - clocks = <&usia_u0_sclkdiv>; 96 - #clock-cells = <0>; 97 - }; 98 - };
+140
Documentation/devicetree/bindings/clock/renesas,emev2-smu.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/renesas,emev2-smu.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Renesas EMMA Mobile EV2 System Management Unit 8 + 9 + maintainers: 10 + - Geert Uytterhoeven <geert+renesas@glider.be> 11 + - Magnus Damm <magnus.damm@gmail.com> 12 + 13 + description: | 14 + The System Management Unit is described in user's manual R19UH0037EJ1000_SMU. 15 + This is not a clock provider, but clocks under SMU depend on it. 16 + 17 + properties: 18 + compatible: 19 + const: renesas,emev2-smu 20 + 21 + reg: 22 + maxItems: 1 23 + 24 + '#address-cells': 25 + const: 2 26 + 27 + '#size-cells': 28 + const: 0 29 + 30 + required: 31 + - compatible 32 + - reg 33 + - '#address-cells' 34 + - '#size-cells' 35 + 36 + patternProperties: 37 + ".*sclkdiv@.*": 38 + type: object 39 + 40 + description: | 41 + Function block with an input mux and a divider, which corresponds to 42 + "Serial clock generator" in fig. "Clock System Overview" of the manual, 43 + and "xxx frequency division setting register" (XXXCLKDIV) registers. 44 + This makes internal (neither input nor output) clock that is provided 45 + to input of xxxGCLK block. 46 + 47 + properties: 48 + compatible: 49 + const: renesas,emev2-smu-clkdiv 50 + 51 + reg: 52 + maxItems: 1 53 + description: 54 + Byte offset from SMU base and Bit position in the register. 55 + 56 + clocks: 57 + minItems: 1 58 + maxItems: 4 59 + 60 + '#clock-cells': 61 + const: 0 62 + 63 + required: 64 + - compatible 65 + - reg 66 + - clocks 67 + - '#clock-cells' 68 + 69 + additionalProperties: false 70 + 71 + ".*sclk@.*": 72 + type: object 73 + 74 + description: | 75 + Clock gating node shown as "Clock stop processing block" in the 76 + fig. "Clock System Overview" of the manual. 77 + Registers are "xxx clock gate control register" (XXXGCLKCTRL). 78 + 79 + properties: 80 + compatible: 81 + const: renesas,emev2-smu-gclk 82 + 83 + reg: 84 + maxItems: 1 85 + description: 86 + Byte offset from SMU base and Bit position in the register. 87 + 88 + clocks: 89 + maxItems: 1 90 + 91 + '#clock-cells': 92 + const: 0 93 + 94 + required: 95 + - compatible 96 + - reg 97 + - clocks 98 + - '#clock-cells' 99 + 100 + additionalProperties: false 101 + 102 + additionalProperties: true 103 + 104 + examples: 105 + - | 106 + // Example of clock-tree description: 107 + // 108 + // This describes a clock path in the clock tree 109 + // c32ki -> pll3_fo -> usia_u0_sclkdiv -> usia_u0_sclk 110 + clocks@e0110000 { 111 + compatible = "renesas,emev2-smu"; 112 + reg = <0xe0110000 0x10000>; 113 + #address-cells = <2>; 114 + #size-cells = <0>; 115 + 116 + c32ki: c32ki { 117 + compatible = "fixed-clock"; 118 + clock-frequency = <32768>; 119 + #clock-cells = <0>; 120 + }; 121 + pll3_fo: pll3_fo { 122 + compatible = "fixed-factor-clock"; 123 + clocks = <&c32ki>; 124 + clock-div = <1>; 125 + clock-mult = <7000>; 126 + #clock-cells = <0>; 127 + }; 128 + usia_u0_sclkdiv: usia_u0_sclkdiv@610,0 { 129 + compatible = "renesas,emev2-smu-clkdiv"; 130 + reg = <0x610 0>; 131 + clocks = <&pll3_fo>; 132 + #clock-cells = <0>; 133 + }; 134 + usia_u0_sclk: usia_u0_sclk@4a0,1 { 135 + compatible = "renesas,emev2-smu-gclk"; 136 + reg = <0x4a0 1>; 137 + clocks = <&usia_u0_sclkdiv>; 138 + #clock-cells = <0>; 139 + }; 140 + };
-46
Documentation/devicetree/bindings/clock/renesas,r9a06g032-sysctrl.txt
··· 1 - * Renesas R9A06G032 SYSCTRL 2 - 3 - Required Properties: 4 - 5 - - compatible: Must be: 6 - - "renesas,r9a06g032-sysctrl" 7 - - reg: Base address and length of the SYSCTRL IO block. 8 - - #clock-cells: Must be 1 9 - - clocks: References to the parent clocks: 10 - - external 40mhz crystal. 11 - - external (optional) 32.768khz 12 - - external (optional) jtag input 13 - - external (optional) RGMII_REFCLK 14 - - clock-names: Must be: 15 - clock-names = "mclk", "rtc", "jtag", "rgmii_ref_ext"; 16 - - #power-domain-cells: Must be 0 17 - 18 - Examples 19 - -------- 20 - 21 - - SYSCTRL node: 22 - 23 - sysctrl: system-controller@4000c000 { 24 - compatible = "renesas,r9a06g032-sysctrl"; 25 - reg = <0x4000c000 0x1000>; 26 - #clock-cells = <1>; 27 - 28 - clocks = <&ext_mclk>, <&ext_rtc_clk>, 29 - <&ext_jtag_clk>, <&ext_rgmii_ref>; 30 - clock-names = "mclk", "rtc", "jtag", "rgmii_ref_ext"; 31 - #power-domain-cells = <0>; 32 - }; 33 - 34 - - Other nodes can use the clocks provided by SYSCTRL as in: 35 - 36 - #include <dt-bindings/clock/r9a06g032-sysctrl.h> 37 - uart0: serial@40060000 { 38 - compatible = "snps,dw-apb-uart"; 39 - reg = <0x40060000 0x400>; 40 - interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 41 - reg-shift = <2>; 42 - reg-io-width = <4>; 43 - clocks = <&sysctrl R9A06G032_CLK_UART0>, <&sysctrl R9A06G032_HCLK_UART0>; 44 - clock-names = "baudclk", "apb_pclk"; 45 - power-domains = <&sysctrl>; 46 - };
+62
Documentation/devicetree/bindings/clock/renesas,r9a06g032-sysctrl.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/renesas,r9a06g032-sysctrl.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Renesas RZ/N1D (R9A06G032) System Controller 8 + 9 + maintainers: 10 + - Gareth Williams <gareth.williams.jx@renesas.com> 11 + - Geert Uytterhoeven <geert+renesas@glider.be> 12 + 13 + properties: 14 + compatible: 15 + const: renesas,r9a06g032-sysctrl 16 + 17 + reg: 18 + maxItems: 1 19 + 20 + clocks: 21 + minItems: 1 22 + items: 23 + - description: External 40 MHz crystal 24 + - description: Optional external 32.768 kHz crystal 25 + - description: Optional external JTAG input 26 + - description: Optional external RGMII_REFCLK 27 + 28 + clock-names: 29 + minItems: 1 30 + items: 31 + - const: mclk 32 + - const: rtc 33 + - const: jtag 34 + - const: rgmii_ref_ext 35 + 36 + '#clock-cells': 37 + const: 1 38 + 39 + '#power-domain-cells': 40 + const: 0 41 + 42 + required: 43 + - compatible 44 + - reg 45 + - clocks 46 + - clock-names 47 + - '#clock-cells' 48 + - '#power-domain-cells' 49 + 50 + additionalProperties: false 51 + 52 + examples: 53 + - | 54 + sysctrl: system-controller@4000c000 { 55 + compatible = "renesas,r9a06g032-sysctrl"; 56 + reg = <0x4000c000 0x1000>; 57 + clocks = <&ext_mclk>, <&ext_rtc_clk>, <&ext_jtag_clk>, 58 + <&ext_rgmii_ref>; 59 + clock-names = "mclk", "rtc", "jtag", "rgmii_ref_ext"; 60 + #clock-cells = <1>; 61 + #power-domain-cells = <0>; 62 + };
-1
Documentation/devicetree/bindings/clock/sprd,sc9863a-clk.yaml
··· 40 40 41 41 clock-names: 42 42 minItems: 1 43 - maxItems: 4 44 43 items: 45 44 - const: ext-26m 46 45 - const: ext-32k
-36
Documentation/devicetree/bindings/clock/ti,sci-clk.txt
··· 1 - Texas Instruments TI-SCI Clocks 2 - =============================== 3 - 4 - All clocks on Texas Instruments' SoCs that contain a System Controller, 5 - are only controlled by this entity. Communication between a host processor 6 - running an OS and the System Controller happens through a protocol known 7 - as TI-SCI[1]. This clock implementation plugs into the common clock 8 - framework and makes use of the TI-SCI protocol on clock API requests. 9 - 10 - [1] Documentation/devicetree/bindings/arm/keystone/ti,sci.txt 11 - 12 - Required properties: 13 - ------------------- 14 - - compatible: Must be "ti,k2g-sci-clk" 15 - - #clock-cells: Shall be 2. 16 - In clock consumers, this cell represents the device ID and clock ID 17 - exposed by the PM firmware. The list of valid values for the device IDs 18 - and clocks IDs for 66AK2G SoC are documented at 19 - http://processors.wiki.ti.com/index.php/TISCI#66AK2G02_Data 20 - 21 - Examples: 22 - -------- 23 - 24 - pmmc: pmmc { 25 - compatible = "ti,k2g-sci"; 26 - 27 - k2g_clks: clocks { 28 - compatible = "ti,k2g-sci-clk"; 29 - #clock-cells = <2>; 30 - }; 31 - }; 32 - 33 - uart0: serial@2530c00 { 34 - compatible = "ns16550a"; 35 - clocks = <&k2g_clks 0x2c 0>; 36 - };
+49
Documentation/devicetree/bindings/clock/ti,sci-clk.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/ti,sci-clk.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: TI-SCI clock controller node bindings 8 + 9 + maintainers: 10 + - Nishanth Menon <nm@ti.com> 11 + 12 + description: | 13 + Some TI SoCs contain a system controller (like the Power Management Micro 14 + Controller (PMMC) on Keystone 66AK2G SoC) that are responsible for controlling 15 + the state of the various hardware modules present on the SoC. Communication 16 + between the host processor running an OS and the system controller happens 17 + through a protocol called TI System Control Interface (TI-SCI protocol). 18 + 19 + This clock controller node uses the TI SCI protocol to perform various clock 20 + management of various hardware modules (devices) present on the SoC. This 21 + node must be a child node of the associated TI-SCI system controller node. 22 + 23 + properties: 24 + $nodename: 25 + pattern: "^clock-controller$" 26 + 27 + compatible: 28 + const: ti,k2g-sci-clk 29 + 30 + "#clock-cells": 31 + const: 2 32 + description: 33 + The two cells represent values that the TI-SCI controller defines. 34 + 35 + The first cell should contain the device ID. 36 + 37 + The second cell should contain the clock ID. 38 + 39 + Please see http://processors.wiki.ti.com/index.php/TISCI for 40 + protocol documentation for the values to be used for different devices. 41 + 42 + additionalProperties: false 43 + 44 + examples: 45 + - | 46 + k3_clks: clock-controller { 47 + compatible = "ti,k2g-sci-clk"; 48 + #clock-cells = <2>; 49 + };
-2
Documentation/devicetree/bindings/crypto/allwinner,sun8i-ce.yaml
··· 30 30 - description: Module clock 31 31 - description: MBus clock 32 32 minItems: 2 33 - maxItems: 3 34 33 35 34 clock-names: 36 35 items: ··· 37 38 - const: mod 38 39 - const: ram 39 40 minItems: 2 40 - maxItems: 3 41 41 42 42 resets: 43 43 maxItems: 1
+53
Documentation/devicetree/bindings/crypto/arm,cryptocell.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/crypto/arm,cryptocell.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Arm TrustZone CryptoCell cryptographic engine 8 + 9 + maintainers: 10 + - Gilad Ben-Yossef <gilad@benyossef.com> 11 + 12 + properties: 13 + compatible: 14 + enum: 15 + - arm,cryptocell-713-ree 16 + - arm,cryptocell-703-ree 17 + - arm,cryptocell-712-ree 18 + - arm,cryptocell-710-ree 19 + - arm,cryptocell-630p-ree 20 + 21 + reg: 22 + maxItems: 1 23 + 24 + interrupts: 25 + maxItems: 1 26 + 27 + clocks: 28 + maxItems: 1 29 + 30 + power-domains: 31 + maxItems: 1 32 + 33 + resets: 34 + maxItems: 1 35 + 36 + dma-coherent: true 37 + 38 + required: 39 + - compatible 40 + - reg 41 + - interrupts 42 + 43 + additionalProperties: false 44 + 45 + examples: 46 + - | 47 + #include <dt-bindings/interrupt-controller/arm-gic.h> 48 + 49 + arm_cc712: crypto@80000000 { 50 + compatible = "arm,cryptocell-712-ree"; 51 + reg = <0x80000000 0x10000>; 52 + interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 53 + };
-25
Documentation/devicetree/bindings/crypto/arm-cryptocell.txt
··· 1 - Arm TrustZone CryptoCell cryptographic engine 2 - 3 - Required properties: 4 - - compatible: Should be one of - 5 - "arm,cryptocell-713-ree" 6 - "arm,cryptocell-703-ree" 7 - "arm,cryptocell-712-ree" 8 - "arm,cryptocell-710-ree" 9 - "arm,cryptocell-630p-ree" 10 - - reg: Base physical address of the engine and length of memory mapped region. 11 - - interrupts: Interrupt number for the device. 12 - 13 - Optional properties: 14 - - clocks: Reference to the crypto engine clock. 15 - - dma-coherent: Present if dma operations are coherent. 16 - 17 - Examples: 18 - 19 - arm_cc712: crypto@80000000 { 20 - compatible = "arm,cryptocell-712-ree"; 21 - interrupt-parent = <&intc>; 22 - interrupts = < 0 30 4 >; 23 - reg = < 0x80000000 0x10000 >; 24 - 25 - };
-1
Documentation/devicetree/bindings/crypto/fsl-dcp.yaml
··· 27 27 - description: MXS DCP DCP interrupt 28 28 - description: MXS DCP secure interrupt 29 29 minItems: 2 30 - maxItems: 3 31 30 32 31 clocks: 33 32 maxItems: 1
-6
Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-backend.yaml
··· 26 26 27 27 reg: 28 28 minItems: 1 29 - maxItems: 2 30 29 items: 31 30 - description: Display Backend registers 32 31 - description: SAT registers 33 32 34 33 reg-names: 35 34 minItems: 1 36 - maxItems: 2 37 35 items: 38 36 - const: be 39 37 - const: sat ··· 41 43 42 44 clocks: 43 45 minItems: 3 44 - maxItems: 4 45 46 items: 46 47 - description: The backend interface clock 47 48 - description: The backend module clock ··· 49 52 50 53 clock-names: 51 54 minItems: 3 52 - maxItems: 4 53 55 items: 54 56 - const: ahb 55 57 - const: mod ··· 57 61 58 62 resets: 59 63 minItems: 1 60 - maxItems: 2 61 64 items: 62 65 - description: The Backend reset line 63 66 - description: The SAT reset line 64 67 65 68 reset-names: 66 69 minItems: 1 67 - maxItems: 2 68 70 items: 69 71 - const: be 70 72 - const: sat
-1
Documentation/devicetree/bindings/display/allwinner,sun6i-a31-mipi-dsi.yaml
··· 24 24 25 25 clocks: 26 26 minItems: 1 27 - maxItems: 2 28 27 items: 29 28 - description: Bus Clock 30 29 - description: Module Clock
-4
Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-dw-hdmi.yaml
··· 46 46 47 47 clocks: 48 48 minItems: 3 49 - maxItems: 6 50 49 items: 51 50 - description: Bus Clock 52 51 - description: Register Clock ··· 56 57 57 58 clock-names: 58 59 minItems: 3 59 - maxItems: 6 60 60 items: 61 61 - const: iahb 62 62 - const: isfr ··· 66 68 67 69 resets: 68 70 minItems: 1 69 - maxItems: 2 70 71 items: 71 72 - description: HDMI Controller Reset 72 73 - description: HDCP Reset 73 74 74 75 reset-names: 75 76 minItems: 1 76 - maxItems: 2 77 77 items: 78 78 - const: ctrl 79 79 - const: hdcp
-2
Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-hdmi-phy.yaml
··· 27 27 28 28 clocks: 29 29 minItems: 2 30 - maxItems: 4 31 30 items: 32 31 - description: Bus Clock 33 32 - description: Module Clock ··· 35 36 36 37 clock-names: 37 38 minItems: 2 38 - maxItems: 4 39 39 items: 40 40 - const: bus 41 41 - const: mod
-2
Documentation/devicetree/bindings/display/allwinner,sun8i-r40-tcon-top.yaml
··· 48 48 49 49 clocks: 50 50 minItems: 2 51 - maxItems: 6 52 51 items: 53 52 - description: The TCON TOP interface clock 54 53 - description: The TCON TOP TV0 clock ··· 58 59 59 60 clock-names: 60 61 minItems: 2 61 - maxItems: 6 62 62 items: 63 63 - const: bus 64 64 - const: tcon-tv0
-143
Documentation/devicetree/bindings/display/bridge/adi,adv7511.txt
··· 1 - Analog Devices ADV7511(W)/13/33/35 HDMI Encoders 2 - ------------------------------------------------ 3 - 4 - The ADV7511, ADV7511W, ADV7513, ADV7533 and ADV7535 are HDMI audio and video 5 - transmitters compatible with HDMI 1.4 and DVI 1.0. They support color space 6 - conversion, S/PDIF, CEC and HDCP. ADV7533/5 supports the DSI interface for input 7 - pixels, while the others support RGB interface. 8 - 9 - Required properties: 10 - 11 - - compatible: Should be one of: 12 - "adi,adv7511" 13 - "adi,adv7511w" 14 - "adi,adv7513" 15 - "adi,adv7533" 16 - "adi,adv7535" 17 - 18 - - reg: I2C slave addresses 19 - The ADV7511 internal registers are split into four pages exposed through 20 - different I2C addresses, creating four register maps. Each map has it own 21 - I2C address and acts as a standard slave device on the I2C bus. The main 22 - address is mandatory, others are optional and revert to defaults if not 23 - specified. 24 - 25 - 26 - The ADV7511 supports a large number of input data formats that differ by their 27 - color depth, color format, clock mode, bit justification and random 28 - arrangement of components on the data bus. The combination of the following 29 - properties describe the input and map directly to the video input tables of the 30 - ADV7511 datasheet that document all the supported combinations. 31 - 32 - - adi,input-depth: Number of bits per color component at the input (8, 10 or 33 - 12). 34 - - adi,input-colorspace: The input color space, one of "rgb", "yuv422" or 35 - "yuv444". 36 - - adi,input-clock: The input clock type, one of "1x" (one clock cycle per 37 - pixel), "2x" (two clock cycles per pixel), "ddr" (one clock cycle per pixel, 38 - data driven on both edges). 39 - 40 - The following input format properties are required except in "rgb 1x" and 41 - "yuv444 1x" modes, in which case they must not be specified. 42 - 43 - - adi,input-style: The input components arrangement variant (1, 2 or 3), as 44 - listed in the input format tables in the datasheet. 45 - - adi,input-justification: The input bit justification ("left", "evenly", 46 - "right"). 47 - 48 - - avdd-supply: A 1.8V supply that powers up the AVDD pin on the chip. 49 - - dvdd-supply: A 1.8V supply that powers up the DVDD pin on the chip. 50 - - pvdd-supply: A 1.8V supply that powers up the PVDD pin on the chip. 51 - - dvdd-3v-supply: A 3.3V supply that powers up the pin called DVDD_3V 52 - on the chip. 53 - - bgvdd-supply: A 1.8V supply that powers up the BGVDD pin. This is 54 - needed only for ADV7511. 55 - 56 - The following properties are required for ADV7533 and ADV7535: 57 - 58 - - adi,dsi-lanes: Number of DSI data lanes connected to the DSI host. It should 59 - be one of 1, 2, 3 or 4. 60 - - a2vdd-supply: 1.8V supply that powers up the A2VDD pin on the chip. 61 - - v3p3-supply: A 3.3V supply that powers up the V3P3 pin on the chip. 62 - - v1p2-supply: A supply that powers up the V1P2 pin on the chip. It can be 63 - either 1.2V or 1.8V for ADV7533 but only 1.8V for ADV7535. 64 - 65 - Optional properties: 66 - 67 - - interrupts: Specifier for the ADV7511 interrupt 68 - - pd-gpios: Specifier for the GPIO connected to the power down signal 69 - 70 - - adi,clock-delay: Video data clock delay relative to the pixel clock, in ps 71 - (-1200 ps .. 1600 ps). Defaults to no delay. 72 - - adi,embedded-sync: The input uses synchronization signals embedded in the 73 - data stream (similar to BT.656). Defaults to separate H/V synchronization 74 - signals. 75 - - adi,disable-timing-generator: Only for ADV7533 and ADV7535. Disables the 76 - internal timing generator. The chip will rely on the sync signals in the 77 - DSI data lanes, rather than generate its own timings for HDMI output. 78 - - clocks: from common clock binding: reference to the CEC clock. 79 - - clock-names: from common clock binding: must be "cec". 80 - - reg-names : Names of maps with programmable addresses. 81 - It can contain any map needing a non-default address. 82 - Possible maps names are : "main", "edid", "cec", "packet" 83 - 84 - Required nodes: 85 - 86 - The ADV7511 has two video ports. Their connections are modelled using the OF 87 - graph bindings specified in Documentation/devicetree/bindings/graph.txt. 88 - 89 - - Video port 0 for the RGB, YUV or DSI input. In the case of ADV7533/5, the 90 - remote endpoint phandle should be a reference to a valid mipi_dsi_host device 91 - node. 92 - - Video port 1 for the HDMI output 93 - - Audio port 2 for the HDMI audio input 94 - 95 - 96 - Example 97 - ------- 98 - 99 - adv7511w: hdmi@39 { 100 - compatible = "adi,adv7511w"; 101 - /* 102 - * The EDID page will be accessible on address 0x66 on the I2C 103 - * bus. All other maps continue to use their default addresses. 104 - */ 105 - reg = <0x39>, <0x66>; 106 - reg-names = "main", "edid"; 107 - interrupt-parent = <&gpio3>; 108 - interrupts = <29 IRQ_TYPE_EDGE_FALLING>; 109 - clocks = <&cec_clock>; 110 - clock-names = "cec"; 111 - 112 - adi,input-depth = <8>; 113 - adi,input-colorspace = "rgb"; 114 - adi,input-clock = "1x"; 115 - adi,input-style = <1>; 116 - adi,input-justification = "evenly"; 117 - 118 - ports { 119 - #address-cells = <1>; 120 - #size-cells = <0>; 121 - 122 - port@0 { 123 - reg = <0>; 124 - adv7511w_in: endpoint { 125 - remote-endpoint = <&dpi_out>; 126 - }; 127 - }; 128 - 129 - port@1 { 130 - reg = <1>; 131 - adv7511_out: endpoint { 132 - remote-endpoint = <&hdmi_connector_in>; 133 - }; 134 - }; 135 - 136 - port@2 { 137 - reg = <2>; 138 - codec_endpoint: endpoint { 139 - remote-endpoint = <&i2s0_cpu_endpoint>; 140 - }; 141 - }; 142 - }; 143 - };
+240
Documentation/devicetree/bindings/display/bridge/adi,adv7511.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/display/bridge/adi,adv7511.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Analog Devices ADV7511/11W/13 HDMI Encoders 8 + 9 + maintainers: 10 + - Laurent Pinchart <laurent.pinchart@ideasonboard.com> 11 + 12 + description: | 13 + The ADV7511, ADV7511W and ADV7513 are HDMI audio and video 14 + transmitters compatible with HDMI 1.4 and DVI 1.0. They support color 15 + space conversion, S/PDIF, CEC and HDCP. The transmitter input is 16 + parallel RGB or YUV data. 17 + 18 + properties: 19 + compatible: 20 + enum: 21 + - adi,adv7511 22 + - adi,adv7511w 23 + - adi,adv7513 24 + 25 + reg: 26 + description: | 27 + I2C slave addresses. 28 + 29 + The ADV7511/11W/13 internal registers are split into four pages 30 + exposed through different I2C addresses, creating four register 31 + maps. Each map has it own I2C address and acts as a standard slave 32 + device on the I2C bus. The main address is mandatory, others are 33 + optional and revert to defaults if not specified. 34 + minItems: 1 35 + maxItems: 4 36 + 37 + reg-names: 38 + description: 39 + Names of maps with programmable addresses. It can contain any map 40 + needing a non-default address. 41 + minItems: 1 42 + items: 43 + - const: main 44 + - const: edid 45 + - const: cec 46 + - const: packet 47 + 48 + clocks: 49 + description: Reference to the CEC clock. 50 + maxItems: 1 51 + 52 + clock-names: 53 + const: cec 54 + 55 + interrupts: 56 + maxItems: 1 57 + 58 + pd-gpios: 59 + description: GPIO connected to the power down signal. 60 + maxItems: 1 61 + 62 + avdd-supply: 63 + description: A 1.8V supply that powers up the AVDD pin. 64 + 65 + dvdd-supply: 66 + description: A 1.8V supply that powers up the DVDD pin. 67 + 68 + pvdd-supply: 69 + description: A 1.8V supply that powers up the PVDD pin. 70 + 71 + dvdd-3v-supply: 72 + description: A 3.3V supply that powers up the DVDD_3V pin. 73 + 74 + bgvdd-supply: 75 + description: A 1.8V supply that powers up the BGVDD pin. 76 + 77 + adi,input-depth: 78 + description: Number of bits per color component at the input. 79 + allOf: 80 + - $ref: /schemas/types.yaml#/definitions/uint32 81 + - enum: [ 8, 10, 12 ] 82 + 83 + adi,input-colorspace: 84 + description: Input color space. 85 + enum: [ rgb, yuv422, yuv444 ] 86 + 87 + adi,input-clock: 88 + description: | 89 + Input clock type. 90 + "1x": one clock cycle per pixel 91 + "2x": two clock cycles per pixel 92 + "dd": one clock cycle per pixel, data driven on both edges 93 + enum: [ 1x, 2x, dd ] 94 + 95 + adi,clock-delay: 96 + description: 97 + Video data clock delay relative to the pixel clock, in ps 98 + (-1200ps .. 1600 ps). 99 + $ref: /schemas/types.yaml#/definitions/uint32 100 + default: 0 101 + 102 + adi,embedded-sync: 103 + description: 104 + If defined, the input uses synchronization signals embedded in the 105 + data stream (similar to BT.656). 106 + type: boolean 107 + 108 + adi,input-style: 109 + description: 110 + Input components arrangement variant as listed in the input 111 + format tables in the datasheet. 112 + $ref: /schemas/types.yaml#/definitions/uint32 113 + enum: [ 1, 2, 3 ] 114 + 115 + adi,input-justification: 116 + description: Input bit justification. 117 + enum: [ left, evenly, right ] 118 + 119 + ports: 120 + description: 121 + The ADV7511(W)/13 has two video ports and one audio port. This node 122 + models their connections as documented in 123 + Documentation/devicetree/bindings/media/video-interfaces.txt 124 + Documentation/devicetree/bindings/graph.txt 125 + type: object 126 + properties: 127 + port@0: 128 + description: Video port for the RGB or YUV input. 129 + type: object 130 + 131 + port@1: 132 + description: Video port for the HDMI output. 133 + type: object 134 + 135 + port@2: 136 + description: Audio port for the HDMI output. 137 + type: object 138 + 139 + # adi,input-colorspace and adi,input-clock are required except in 140 + # "rgb 1x" and "yuv444 1x" modes, in which case they must not be 141 + # specified. 142 + if: 143 + not: 144 + properties: 145 + adi,input-colorspace: 146 + contains: 147 + enum: [ rgb, yuv444 ] 148 + adi,input-clock: 149 + contains: 150 + const: 1x 151 + 152 + then: 153 + required: 154 + - adi,input-style 155 + - adi,input-justification 156 + 157 + else: 158 + properties: 159 + adi,input-style: false 160 + adi,input-justification: false 161 + 162 + 163 + required: 164 + - compatible 165 + - reg 166 + - ports 167 + - adi,input-depth 168 + - adi,input-colorspace 169 + - adi,input-clock 170 + - avdd-supply 171 + - dvdd-supply 172 + - pvdd-supply 173 + - dvdd-3v-supply 174 + - bgvdd-supply 175 + 176 + additionalProperties: false 177 + 178 + examples: 179 + - | 180 + #include <dt-bindings/interrupt-controller/irq.h> 181 + 182 + i2c@e6500000 { 183 + #address-cells = <1>; 184 + #size-cells = <0>; 185 + 186 + reg = <0 0xe6500000>; 187 + 188 + adv7511w: hdmi@39 { 189 + compatible = "adi,adv7511w"; 190 + /* 191 + * The EDID page will be accessible on address 0x66 on the I2C 192 + * bus. All other maps continue to use their default addresses. 193 + */ 194 + reg = <0x39>, <0x66>; 195 + reg-names = "main", "edid"; 196 + interrupt-parent = <&gpio3>; 197 + interrupts = <29 IRQ_TYPE_EDGE_FALLING>; 198 + clocks = <&cec_clock>; 199 + clock-names = "cec"; 200 + avdd-supply = <&v1v8>; 201 + dvdd-supply = <&v1v8>; 202 + pvdd-supply = <&v1v8>; 203 + dvdd-3v-supply = <&v3v3>; 204 + bgvdd-supply = <&v1v8>; 205 + 206 + adi,input-depth = <8>; 207 + adi,input-colorspace = "yuv422"; 208 + adi,input-clock = "1x"; 209 + 210 + adi,input-style = <3>; 211 + adi,input-justification = "right"; 212 + ports { 213 + #address-cells = <1>; 214 + #size-cells = <0>; 215 + 216 + port@0 { 217 + reg = <0>; 218 + adv7511w_in: endpoint { 219 + remote-endpoint = <&dpi_out>; 220 + }; 221 + }; 222 + 223 + port@1 { 224 + reg = <1>; 225 + adv7511_out: endpoint { 226 + remote-endpoint = <&hdmi_connector_in>; 227 + }; 228 + }; 229 + 230 + port@2 { 231 + reg = <2>; 232 + codec_endpoint: endpoint { 233 + remote-endpoint = <&i2s0_cpu_endpoint>; 234 + }; 235 + }; 236 + }; 237 + }; 238 + }; 239 + 240 + ...
+184
Documentation/devicetree/bindings/display/bridge/adi,adv7533.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/display/bridge/adi,adv7533.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Analog Devices ADV7533/35 HDMI Encoders 8 + 9 + maintainers: 10 + - Laurent Pinchart <laurent.pinchart@ideasonboard.com> 11 + 12 + description: | 13 + The ADV7533 and ADV7535 are HDMI audio and video transmitters 14 + compatible with HDMI 1.4 and DVI 1.0. They support color space 15 + conversion, S/PDIF, CEC and HDCP. The transmitter input is MIPI DSI. 16 + 17 + properties: 18 + compatible: 19 + enum: 20 + - adi,adv7533 21 + - adi,adv7535 22 + 23 + reg: 24 + description: | 25 + I2C slave addresses. 26 + 27 + The ADV7533/35 internal registers are split into four pages 28 + exposed through different I2C addresses, creating four register 29 + maps. Each map has it own I2C address and acts as a standard slave 30 + device on the I2C bus. The main address is mandatory, others are 31 + optional and revert to defaults if not specified. 32 + minItems: 1 33 + maxItems: 4 34 + 35 + reg-names: 36 + description: 37 + Names of maps with programmable addresses. It can contain any map 38 + needing a non-default address. 39 + minItems: 1 40 + items: 41 + - const: main 42 + - const: edid 43 + - const: cec 44 + - const: packet 45 + 46 + clocks: 47 + description: Reference to the CEC clock. 48 + maxItems: 1 49 + 50 + clock-names: 51 + const: cec 52 + 53 + interrupts: 54 + maxItems: 1 55 + 56 + pd-gpios: 57 + description: GPIO connected to the power down signal. 58 + maxItems: 1 59 + 60 + avdd-supply: 61 + description: A 1.8V supply that powers up the AVDD pin. 62 + 63 + dvdd-supply: 64 + description: A 1.8V supply that powers up the DVDD pin. 65 + 66 + pvdd-supply: 67 + description: A 1.8V supply that powers up the PVDD pin. 68 + 69 + a2vdd-supply: 70 + description: A 1.8V supply that powers up the A2VDD pin. 71 + 72 + v3p3-supply: 73 + description: A 3.3V supply that powers up the V3P3 pin. 74 + 75 + v1p2-supply: 76 + description: 77 + A supply that powers up the V1P2 pin. It can be either 1.2V 78 + or 1.8V for ADV7533 but only 1.8V for ADV7535. 79 + 80 + adi,disable-timing-generator: 81 + description: 82 + Disables the internal timing generator. The chip will rely on the 83 + sync signals in the DSI data lanes, rather than generating its own 84 + timings for HDMI output. 85 + type: boolean 86 + 87 + adi,dsi-lanes: 88 + description: Number of DSI data lanes connected to the DSI host. 89 + $ref: /schemas/types.yaml#/definitions/uint32 90 + enum: [ 1, 2, 3, 4 ] 91 + 92 + ports: 93 + description: 94 + The ADV7533/35 has two video ports and one audio port. This node 95 + models their connections as documented in 96 + Documentation/devicetree/bindings/media/video-interfaces.txt 97 + Documentation/devicetree/bindings/graph.txt 98 + type: object 99 + properties: 100 + port@0: 101 + description: 102 + Video port for the DSI input. The remote endpoint phandle 103 + should be a reference to a valid mipi_dsi_host_device. 104 + type: object 105 + 106 + port@1: 107 + description: Video port for the HDMI output. 108 + type: object 109 + 110 + port@2: 111 + description: Audio port for the HDMI output. 112 + type: object 113 + 114 + required: 115 + - compatible 116 + - reg 117 + - ports 118 + - adi,dsi-lanes 119 + - avdd-supply 120 + - dvdd-supply 121 + - pvdd-supply 122 + - a2vdd-supply 123 + - v3p3-supply 124 + 125 + additionalProperties: false 126 + 127 + examples: 128 + - | 129 + #include <dt-bindings/interrupt-controller/irq.h> 130 + 131 + i2c@e6500000 { 132 + #address-cells = <1>; 133 + #size-cells = <0>; 134 + 135 + reg = <0 0xe6500000>; 136 + 137 + adv7533: hdmi@39 { 138 + compatible = "adi,adv7533"; 139 + /* 140 + * The EDID page will be accessible on address 0x66 on the I2C 141 + * bus. All other maps continue to use their default addresses. 142 + */ 143 + reg = <0x39>, <0x66>; 144 + reg-names = "main", "edid"; 145 + interrupt-parent = <&gpio3>; 146 + interrupts = <29 IRQ_TYPE_EDGE_FALLING>; 147 + clocks = <&cec_clock>; 148 + clock-names = "cec"; 149 + adi,dsi-lanes = <4>; 150 + avdd-supply = <&v1v8>; 151 + dvdd-supply = <&v1v8>; 152 + pvdd-supply = <&v1v8>; 153 + a2vdd-supply = <&v1v8>; 154 + v3p3-supply = <&v3v3>; 155 + 156 + ports { 157 + #address-cells = <1>; 158 + #size-cells = <0>; 159 + 160 + port@0 { 161 + reg = <0>; 162 + adv7533_in: endpoint { 163 + remote-endpoint = <&dsi_out>; 164 + }; 165 + }; 166 + 167 + port@1 { 168 + reg = <1>; 169 + adv7533_out: endpoint { 170 + remote-endpoint = <&hdmi_connector_in>; 171 + }; 172 + }; 173 + 174 + port@2 { 175 + reg = <2>; 176 + codec_endpoint: endpoint { 177 + remote-endpoint = <&i2s0_cpu_endpoint>; 178 + }; 179 + }; 180 + }; 181 + }; 182 + }; 183 + 184 + ...
-2
Documentation/devicetree/bindings/display/bridge/cdns,mhdp8546.yaml
··· 18 18 19 19 reg: 20 20 minItems: 1 21 - maxItems: 3 22 21 items: 23 22 - description: 24 23 Register block of mhdptx apb registers up to PHY mapped area (AUX_CONFIG_P). ··· 30 31 31 32 reg-names: 32 33 minItems: 1 33 - maxItems: 3 34 34 items: 35 35 - const: mhdptx 36 36 - const: j721e-intg
+2 -1
Documentation/devicetree/bindings/display/bridge/lontium,lt8912b.yaml
··· 29 29 30 30 properties: 31 31 port@0: 32 - $ref: /schemas/graph.yaml#/properties/port 32 + $ref: /schemas/graph.yaml#/$defs/port-base 33 + unevaluatedProperties: false 33 34 description: 34 35 Primary MIPI port for MIPI input 35 36
+23 -23
Documentation/devicetree/bindings/display/panel/lvds.yaml
··· 51 51 - "jeida-18" - 18-bit data mapping compatible with the [JEIDA], [LDI] and 52 52 [VESA] specifications. Data are transferred as follows on 3 LVDS lanes. 53 53 54 - Slot 0 1 2 3 4 5 6 55 - ________________ _________________ 56 - Clock \_______________________/ 57 - ______ ______ ______ ______ ______ ______ ______ 58 - DATA0 ><__G0__><__R5__><__R4__><__R3__><__R2__><__R1__><__R0__>< 59 - DATA1 ><__B1__><__B0__><__G5__><__G4__><__G3__><__G2__><__G1__>< 60 - DATA2 ><_CTL2_><_CTL1_><_CTL0_><__B5__><__B4__><__B3__><__B2__>< 54 + Slot 0 1 2 3 4 5 6 55 + ________________ _________________ 56 + Clock \_______________________/ 57 + ______ ______ ______ ______ ______ ______ ______ 58 + DATA0 ><__G0__><__R5__><__R4__><__R3__><__R2__><__R1__><__R0__>< 59 + DATA1 ><__B1__><__B0__><__G5__><__G4__><__G3__><__G2__><__G1__>< 60 + DATA2 ><_CTL2_><_CTL1_><_CTL0_><__B5__><__B4__><__B3__><__B2__>< 61 61 62 62 - "jeida-24" - 24-bit data mapping compatible with the [DSIM] and [LDI] 63 63 specifications. Data are transferred as follows on 4 LVDS lanes. 64 64 65 - Slot 0 1 2 3 4 5 6 66 - ________________ _________________ 67 - Clock \_______________________/ 68 - ______ ______ ______ ______ ______ ______ ______ 69 - DATA0 ><__G2__><__R7__><__R6__><__R5__><__R4__><__R3__><__R2__>< 70 - DATA1 ><__B3__><__B2__><__G7__><__G6__><__G5__><__G4__><__G3__>< 71 - DATA2 ><_CTL2_><_CTL1_><_CTL0_><__B7__><__B6__><__B5__><__B4__>< 72 - DATA3 ><_CTL3_><__B1__><__B0__><__G1__><__G0__><__R1__><__R0__>< 65 + Slot 0 1 2 3 4 5 6 66 + ________________ _________________ 67 + Clock \_______________________/ 68 + ______ ______ ______ ______ ______ ______ ______ 69 + DATA0 ><__G2__><__R7__><__R6__><__R5__><__R4__><__R3__><__R2__>< 70 + DATA1 ><__B3__><__B2__><__G7__><__G6__><__G5__><__G4__><__G3__>< 71 + DATA2 ><_CTL2_><_CTL1_><_CTL0_><__B7__><__B6__><__B5__><__B4__>< 72 + DATA3 ><_CTL3_><__B1__><__B0__><__G1__><__G0__><__R1__><__R0__>< 73 73 74 74 - "vesa-24" - 24-bit data mapping compatible with the [VESA] specification. 75 75 Data are transferred as follows on 4 LVDS lanes. 76 76 77 - Slot 0 1 2 3 4 5 6 78 - ________________ _________________ 79 - Clock \_______________________/ 80 - ______ ______ ______ ______ ______ ______ ______ 81 - DATA0 ><__G0__><__R5__><__R4__><__R3__><__R2__><__R1__><__R0__>< 82 - DATA1 ><__B1__><__B0__><__G5__><__G4__><__G3__><__G2__><__G1__>< 83 - DATA2 ><_CTL2_><_CTL1_><_CTL0_><__B5__><__B4__><__B3__><__B2__>< 84 - DATA3 ><_CTL3_><__B7__><__B6__><__G7__><__G6__><__R7__><__R6__>< 77 + Slot 0 1 2 3 4 5 6 78 + ________________ _________________ 79 + Clock \_______________________/ 80 + ______ ______ ______ ______ ______ ______ ______ 81 + DATA0 ><__G0__><__R5__><__R4__><__R3__><__R2__><__R1__><__R0__>< 82 + DATA1 ><__B1__><__B0__><__G5__><__G4__><__G3__><__G2__><__G1__>< 83 + DATA2 ><_CTL2_><_CTL1_><_CTL0_><__B5__><__B4__><__B3__><__B2__>< 84 + DATA3 ><_CTL3_><__B7__><__B6__><__G7__><__G6__><__R7__><__R6__>< 85 85 86 86 Control signals are mapped as follows. 87 87
+1 -1
Documentation/devicetree/bindings/display/renesas,du.yaml
··· 55 55 maxItems: 1 56 56 57 57 ports: 58 - $ref: /schemas/graph.yaml#/properties/port 58 + $ref: /schemas/graph.yaml#/properties/ports 59 59 description: | 60 60 The connections to the DU output video ports are modeled using the OF 61 61 graph bindings specified in Documentation/devicetree/bindings/graph.txt.
-2
Documentation/devicetree/bindings/display/rockchip/rockchip,dw-hdmi.yaml
··· 29 29 30 30 clocks: 31 31 minItems: 2 32 - maxItems: 5 33 32 items: 34 33 - {} 35 34 - {} ··· 40 41 41 42 clock-names: 42 43 minItems: 2 43 - maxItems: 5 44 44 items: 45 45 - {} 46 46 - {}
-2
Documentation/devicetree/bindings/display/st,stm32-dsi.yaml
··· 29 29 - description: DSI bus clock 30 30 - description: Pixel clock 31 31 minItems: 2 32 - maxItems: 3 33 32 34 33 clock-names: 35 34 items: ··· 36 37 - const: ref 37 38 - const: px_clk 38 39 minItems: 2 39 - maxItems: 3 40 40 41 41 resets: 42 42 maxItems: 1
-1
Documentation/devicetree/bindings/display/st,stm32-ltdc.yaml
··· 22 22 - description: events interrupt line. 23 23 - description: errors interrupt line. 24 24 minItems: 1 25 - maxItems: 2 26 25 27 26 clocks: 28 27 maxItems: 1
-4
Documentation/devicetree/bindings/display/xlnx/xlnx,zynqmp-dpsub.yaml
··· 65 65 The APB clock and at least one video clock are mandatory, the audio clock 66 66 is optional. 67 67 minItems: 2 68 - maxItems: 4 69 68 items: 70 69 - description: dp_apb_clk is the APB clock 71 70 - description: dp_aud_clk is the Audio clock ··· 77 78 clock-names: 78 79 oneOf: 79 80 - minItems: 2 80 - maxItems: 3 81 81 items: 82 82 - const: dp_apb_clk 83 83 - enum: [ dp_vtc_pixel_clk_in, dp_live_video_in_clk ] 84 84 - enum: [ dp_vtc_pixel_clk_in, dp_live_video_in_clk ] 85 85 - minItems: 3 86 - maxItems: 4 87 86 items: 88 87 - const: dp_apb_clk 89 88 - const: dp_aud_clk ··· 113 116 maxItems: 2 114 117 phy-names: 115 118 minItems: 1 116 - maxItems: 2 117 119 items: 118 120 - const: dp-phy0 119 121 - const: dp-phy1
-1
Documentation/devicetree/bindings/dma/renesas,rcar-dmac.yaml
··· 52 52 53 53 interrupt-names: 54 54 minItems: 9 55 - maxItems: 17 56 55 items: 57 56 - const: error 58 57 - pattern: "^ch([0-9]|1[0-5])$"
+2 -2
Documentation/devicetree/bindings/dma/ti-edma.txt
··· 33 33 - power-domains:Should contain a phandle to a PM domain provider node 34 34 and an args specifier containing the device id 35 35 value. This property is as per the binding, 36 - Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt 36 + Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml 37 37 38 38 Optional properties: 39 39 ------------------- ··· 70 70 - power-domains:Should contain a phandle to a PM domain provider node 71 71 and an args specifier containing the device id 72 72 value. This property is as per the binding, 73 - Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt 73 + Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml 74 74 75 75 Optional properties: 76 76 -------------------
-2
Documentation/devicetree/bindings/edac/amazon,al-mc-edac.yaml
··· 30 30 31 31 interrupts: 32 32 minItems: 1 33 - maxItems: 2 34 33 items: 35 34 - description: uncorrectable error interrupt 36 35 - description: correctable error interrupt 37 36 38 37 interrupt-names: 39 38 minItems: 1 40 - maxItems: 2 41 39 items: 42 40 - const: ue 43 41 - const: ce
-1
Documentation/devicetree/bindings/eeprom/at24.yaml
··· 32 32 oneOf: 33 33 - allOf: 34 34 - minItems: 1 35 - maxItems: 2 36 35 items: 37 36 - pattern: "^(atmel|catalyst|microchip|nxp|ramtron|renesas|rohm|st),(24(c|cs|lc|mac)[0-9]+|spd)$" 38 37 - pattern: "^atmel,(24(c|cs|mac)[0-9]+|spd)$"
-2
Documentation/devicetree/bindings/example-schema.yaml
··· 91 91 interrupts: 92 92 # Either 1 or 2 interrupts can be present 93 93 minItems: 1 94 - maxItems: 2 95 94 items: 96 95 - description: tx or combined interrupt 97 96 - description: rx interrupt ··· 104 105 interrupt-names: 105 106 # minItems must be specified here because the default would be 2 106 107 minItems: 1 107 - maxItems: 2 108 108 items: 109 109 - const: tx irq 110 110 - const: rx irq
+341
Documentation/devicetree/bindings/firmware/arm,scmi.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + # Copyright 2021 ARM Ltd. 3 + %YAML 1.2 4 + --- 5 + $id: http://devicetree.org/schemas/firmware/arm,scmi.yaml# 6 + $schema: http://devicetree.org/meta-schemas/core.yaml# 7 + 8 + title: System Control and Management Interface (SCMI) Message Protocol bindings 9 + 10 + maintainers: 11 + - Sudeep Holla <sudeep.holla@arm.com> 12 + 13 + description: | 14 + The SCMI is intended to allow agents such as OSPM to manage various functions 15 + that are provided by the hardware platform it is running on, including power 16 + and performance functions. 17 + 18 + This binding is intended to define the interface the firmware implementing 19 + the SCMI as described in ARM document number ARM DEN 0056 ("ARM System Control 20 + and Management Interface Platform Design Document")[0] provide for OSPM in 21 + the device tree. 22 + 23 + [0] https://developer.arm.com/documentation/den0056/latest 24 + 25 + properties: 26 + $nodename: 27 + const: scmi 28 + 29 + compatible: 30 + oneOf: 31 + - description: SCMI compliant firmware with mailbox transport 32 + items: 33 + - const: arm,scmi 34 + - description: SCMI compliant firmware with ARM SMC/HVC transport 35 + items: 36 + - const: arm,scmi-smc 37 + 38 + interrupts: 39 + description: 40 + The interrupt that indicates message completion by the platform 41 + rather than by the return of the smc call. This should not be used 42 + except when the platform requires such behavior. 43 + maxItems: 1 44 + 45 + interrupt-names: 46 + const: a2p 47 + 48 + mbox-names: 49 + description: 50 + Specifies the mailboxes used to communicate with SCMI compliant 51 + firmware. 52 + items: 53 + - const: tx 54 + - const: rx 55 + 56 + mboxes: 57 + description: 58 + List of phandle and mailbox channel specifiers. It should contain 59 + exactly one or two mailboxes, one for transmitting messages("tx") 60 + and another optional for receiving the notifications("rx") if supported. 61 + minItems: 1 62 + maxItems: 2 63 + 64 + shmem: 65 + description: 66 + List of phandle pointing to the shared memory(SHM) area, for each 67 + transport channel specified. 68 + minItems: 1 69 + maxItems: 2 70 + 71 + '#address-cells': 72 + const: 1 73 + 74 + '#size-cells': 75 + const: 0 76 + 77 + arm,smc-id: 78 + $ref: /schemas/types.yaml#/definitions/uint32 79 + description: 80 + SMC id required when using smc or hvc transports 81 + 82 + protocol@11: 83 + type: object 84 + properties: 85 + reg: 86 + const: 0x11 87 + 88 + '#power-domain-cells': 89 + const: 1 90 + 91 + required: 92 + - '#power-domain-cells' 93 + 94 + protocol@13: 95 + type: object 96 + properties: 97 + reg: 98 + const: 0x13 99 + 100 + '#clock-cells': 101 + const: 1 102 + 103 + required: 104 + - '#clock-cells' 105 + 106 + protocol@14: 107 + type: object 108 + properties: 109 + reg: 110 + const: 0x14 111 + 112 + '#clock-cells': 113 + const: 1 114 + 115 + required: 116 + - '#clock-cells' 117 + 118 + protocol@15: 119 + type: object 120 + properties: 121 + reg: 122 + const: 0x15 123 + 124 + '#thermal-sensor-cells': 125 + const: 1 126 + 127 + required: 128 + - '#thermal-sensor-cells' 129 + 130 + protocol@16: 131 + type: object 132 + properties: 133 + reg: 134 + const: 0x16 135 + 136 + '#reset-cells': 137 + const: 1 138 + 139 + required: 140 + - '#reset-cells' 141 + 142 + protocol@17: 143 + type: object 144 + properties: 145 + reg: 146 + const: 0x17 147 + 148 + regulators: 149 + type: object 150 + description: 151 + The list of all regulators provided by this SCMI controller. 152 + 153 + patternProperties: 154 + '^regulators@[0-9a-f]+$': 155 + type: object 156 + $ref: "../regulator/regulator.yaml#" 157 + 158 + properties: 159 + reg: 160 + maxItems: 1 161 + description: Identifier for the voltage regulator. 162 + 163 + required: 164 + - reg 165 + 166 + additionalProperties: false 167 + 168 + patternProperties: 169 + '^protocol@[0-9a-f]+$': 170 + type: object 171 + description: 172 + Each sub-node represents a protocol supported. If the platform 173 + supports a dedicated communication channel for a particular protocol, 174 + then the corresponding transport properties must be present. 175 + 176 + properties: 177 + reg: 178 + maxItems: 1 179 + 180 + mbox-names: 181 + items: 182 + - const: tx 183 + - const: rx 184 + 185 + mboxes: 186 + minItems: 1 187 + maxItems: 2 188 + 189 + shmem: 190 + minItems: 1 191 + maxItems: 2 192 + 193 + required: 194 + - reg 195 + 196 + required: 197 + - compatible 198 + - shmem 199 + 200 + if: 201 + properties: 202 + compatible: 203 + contains: 204 + const: arm,scmi 205 + then: 206 + properties: 207 + interrupts: false 208 + interrupt-names: false 209 + 210 + required: 211 + - mboxes 212 + 213 + else: 214 + if: 215 + properties: 216 + compatible: 217 + contains: 218 + const: arm,scmi-smc 219 + then: 220 + required: 221 + - arm,smc-id 222 + 223 + examples: 224 + - | 225 + firmware { 226 + scmi { 227 + compatible = "arm,scmi"; 228 + mboxes = <&mhuB 0 0>, 229 + <&mhuB 0 1>; 230 + mbox-names = "tx", "rx"; 231 + shmem = <&cpu_scp_lpri0>, 232 + <&cpu_scp_lpri1>; 233 + 234 + #address-cells = <1>; 235 + #size-cells = <0>; 236 + 237 + scmi_devpd: protocol@11 { 238 + reg = <0x11>; 239 + #power-domain-cells = <1>; 240 + }; 241 + 242 + scmi_dvfs: protocol@13 { 243 + reg = <0x13>; 244 + #clock-cells = <1>; 245 + 246 + mboxes = <&mhuB 1 0>, 247 + <&mhuB 1 1>; 248 + mbox-names = "tx", "rx"; 249 + shmem = <&cpu_scp_hpri0>, 250 + <&cpu_scp_hpri1>; 251 + }; 252 + 253 + scmi_clk: protocol@14 { 254 + reg = <0x14>; 255 + #clock-cells = <1>; 256 + }; 257 + 258 + scmi_sensors: protocol@15 { 259 + reg = <0x15>; 260 + #thermal-sensor-cells = <1>; 261 + }; 262 + 263 + scmi_reset: protocol@16 { 264 + reg = <0x16>; 265 + #reset-cells = <1>; 266 + }; 267 + 268 + scmi_voltage: protocol@17 { 269 + reg = <0x17>; 270 + regulators { 271 + #address-cells = <1>; 272 + #size-cells = <0>; 273 + 274 + regulator_devX: regulator@0 { 275 + reg = <0x0>; 276 + regulator-max-microvolt = <3300000>; 277 + }; 278 + 279 + regulator_devY: regulator@9 { 280 + reg = <0x9>; 281 + regulator-min-microvolt = <500000>; 282 + regulator-max-microvolt = <4200000>; 283 + }; 284 + }; 285 + }; 286 + }; 287 + }; 288 + 289 + soc { 290 + #address-cells = <2>; 291 + #size-cells = <2>; 292 + 293 + sram@50000000 { 294 + compatible = "mmio-sram"; 295 + reg = <0x0 0x50000000 0x0 0x10000>; 296 + 297 + #address-cells = <1>; 298 + #size-cells = <1>; 299 + ranges = <0 0x0 0x50000000 0x10000>; 300 + 301 + cpu_scp_lpri0: scp-sram-section@0 { 302 + compatible = "arm,scmi-shmem"; 303 + reg = <0x0 0x80>; 304 + }; 305 + 306 + cpu_scp_lpri1: scp-sram-section@80 { 307 + compatible = "arm,scmi-shmem"; 308 + reg = <0x80 0x80>; 309 + }; 310 + 311 + cpu_scp_hpri0: scp-sram-section@100 { 312 + compatible = "arm,scmi-shmem"; 313 + reg = <0x100 0x80>; 314 + }; 315 + 316 + cpu_scp_hpri2: scp-sram-section@180 { 317 + compatible = "arm,scmi-shmem"; 318 + reg = <0x180 0x80>; 319 + }; 320 + }; 321 + }; 322 + 323 + - | 324 + firmware { 325 + scmi { 326 + compatible = "arm,scmi-smc"; 327 + shmem = <&cpu_scp_lpri0 &cpu_scp_lpri1>; 328 + arm,smc-id = <0xc3000001>; 329 + 330 + #address-cells = <1>; 331 + #size-cells = <0>; 332 + 333 + scmi_devpd1: protocol@11 { 334 + reg = <0x11>; 335 + #power-domain-cells = <1>; 336 + }; 337 + 338 + }; 339 + }; 340 + 341 + ...
+247
Documentation/devicetree/bindings/firmware/arm,scpi.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + # Copyright 2021 ARM Ltd. 3 + %YAML 1.2 4 + --- 5 + $id: http://devicetree.org/schemas/firmware/arm,scpi.yaml# 6 + $schema: http://devicetree.org/meta-schemas/core.yaml# 7 + 8 + title: System Control and Power Interface (SCPI) Message Protocol bindings 9 + 10 + maintainers: 11 + - Sudeep Holla <sudeep.holla@arm.com> 12 + 13 + description: | 14 + Firmware implementing the SCPI described in ARM document number ARM DUI 15 + 0922B ("ARM Compute Subsystem SCP: Message Interface Protocols")[0] can be 16 + used by Linux to initiate various system control and power operations. 17 + 18 + This binding is intended to define the interface the firmware implementing 19 + the SCPI provide for OSPM in the device tree. 20 + 21 + [0] http://infocenter.arm.com/help/topic/com.arm.doc.dui0922b/index.html 22 + 23 + properties: 24 + $nodename: 25 + const: scpi 26 + 27 + compatible: 28 + description: 29 + SCPI compliant firmware complying to SCPI v1.0 and above OR 30 + SCPI compliant firmware complying to all unversioned releases 31 + prior to SCPI v1.0 32 + oneOf: 33 + - const: arm,scpi # SCPI v1.0 and above 34 + - const: arm,scpi-pre-1.0 # Unversioned SCPI before v1.0 35 + - items: 36 + - enum: 37 + - amlogic,meson-gxbb-scpi 38 + - const: arm,scpi-pre-1.0 39 + 40 + mboxes: 41 + description: 42 + List of phandle and mailbox channel specifiers. All the channels reserved 43 + by remote SCP firmware for use by SCPI message protocol should be 44 + specified in any order. 45 + minItems: 1 46 + 47 + shmem: 48 + description: 49 + List of phandle pointing to the shared memory(SHM) area between the 50 + processors using these mailboxes for IPC, one for each mailbox SHM can 51 + be any memory reserved for the purpose of this communication between the 52 + processors. 53 + minItems: 1 54 + 55 + power-controller: 56 + type: object 57 + description: 58 + This sub-node represents SCPI power domain controller. 59 + 60 + properties: 61 + compatible: 62 + const: arm,scpi-power-domains 63 + 64 + '#power-domain-cells': 65 + const: 1 66 + 67 + num-domains: 68 + $ref: /schemas/types.yaml#/definitions/uint32 69 + description: 70 + Total number of power domains provided by SCPI. This is needed as 71 + the SCPI message protocol lacks a mechanism to query this 72 + information at runtime. 73 + 74 + required: 75 + - compatible 76 + - '#power-domain-cells' 77 + - num-domains 78 + 79 + additionalProperties: false 80 + 81 + sensors: 82 + type: object 83 + description: | 84 + This sub-node represents SCPI sensors controller. 85 + 86 + properties: 87 + compatible: 88 + oneOf: 89 + - const: arm,scpi-sensors 90 + - items: 91 + - enum: 92 + - amlogic,meson-gxbb-scpi-sensors 93 + - const: arm,scpi-sensors 94 + 95 + '#thermal-sensor-cells': 96 + const: 1 97 + 98 + required: 99 + - compatible 100 + - '#thermal-sensor-cells' 101 + 102 + additionalProperties: false 103 + 104 + clocks: 105 + type: object 106 + description: 107 + This is the container node. Each sub-node represents one of the types 108 + of clock controller - indexed or full range. 109 + 110 + properties: 111 + compatible: 112 + const: arm,scpi-clocks 113 + 114 + patternProperties: 115 + "^clocks-[0-9a-f]+$": 116 + type: object 117 + description: | 118 + This sub-node represents one of the types of clock controller 119 + - indexed or full range. 120 + 121 + "arm,scpi-dvfs-clocks" - all the clocks that are variable and index 122 + based. These clocks don't provide an entire range of values between 123 + the limits but only discrete points within the range. The firmware 124 + provides the mapping for each such operating frequency and the index 125 + associated with it. The firmware also manages the voltage scaling 126 + appropriately with the clock scaling. 127 + 128 + "arm,scpi-variable-clocks" - all the clocks that are variable and 129 + provide full range within the specified range. The firmware provides 130 + the range of values within a specified range. 131 + 132 + properties: 133 + compatible: 134 + oneOf: 135 + - const: arm,scpi-dvfs-clocks 136 + - const: arm,scpi-variable-clocks 137 + 138 + '#clock-cells': 139 + const: 1 140 + 141 + clock-output-names: true 142 + 143 + clock-indices: 144 + $ref: /schemas/types.yaml#/definitions/uint32-array 145 + description: 146 + The identifying number for the clocks(i.e.clock_id) in the node. 147 + It can be non linear and hence provide the mapping of identifiers 148 + into the clock-output-names array. 149 + 150 + required: 151 + - compatible 152 + - '#clock-cells' 153 + - clock-output-names 154 + - clock-indices 155 + 156 + additionalProperties: false 157 + 158 + required: 159 + - compatible 160 + 161 + additionalProperties: false 162 + 163 + additionalProperties: false 164 + 165 + required: 166 + - compatible 167 + - mboxes 168 + - shmem 169 + 170 + examples: 171 + - | 172 + firmware { 173 + scpi { 174 + compatible = "arm,scpi"; 175 + mboxes = <&mhuA 1>; 176 + shmem = <&cpu_scp_hpri>; /* HP-NonSecure */ 177 + 178 + scpi_devpd: power-controller { 179 + compatible = "arm,scpi-power-domains"; 180 + num-domains = <2>; 181 + #power-domain-cells = <1>; 182 + }; 183 + 184 + clocks { 185 + compatible = "arm,scpi-clocks"; 186 + 187 + scpi_dvfs: clocks-0 { 188 + compatible = "arm,scpi-dvfs-clocks"; 189 + #clock-cells = <1>; 190 + clock-indices = <0>, <1>, <2>; 191 + clock-output-names = "atlclk", "aplclk","gpuclk"; 192 + }; 193 + 194 + scpi_clk: clocks-1 { 195 + compatible = "arm,scpi-variable-clocks"; 196 + #clock-cells = <1>; 197 + clock-indices = <3>, <4>; 198 + clock-output-names = "pxlclk0", "pxlclk1"; 199 + }; 200 + }; 201 + 202 + scpi_sensors: sensors { 203 + compatible = "arm,scpi-sensors"; 204 + #thermal-sensor-cells = <1>; 205 + }; 206 + 207 + }; 208 + }; 209 + 210 + soc { 211 + #address-cells = <2>; 212 + #size-cells = <2>; 213 + 214 + sram@50000000 { 215 + compatible = "mmio-sram"; 216 + reg = <0x0 0x50000000 0x0 0x10000>; 217 + 218 + #address-cells = <1>; 219 + #size-cells = <1>; 220 + ranges = <0 0x0 0x50000000 0x10000>; 221 + 222 + cpu_scp_lpri: scp-sram-section@0 { 223 + compatible = "arm,scp-shmem"; 224 + reg = <0x0 0x200>; 225 + }; 226 + 227 + cpu_scp_hpri: scp-sram-section@200 { 228 + compatible = "arm,scp-shmem"; 229 + reg = <0x200 0x200>; 230 + }; 231 + }; 232 + }; 233 + 234 + - | 235 + firmware { 236 + scpi { 237 + compatible = "amlogic,meson-gxbb-scpi", "arm,scpi-pre-1.0"; 238 + mboxes = <&mailbox 1 &mailbox 2>; 239 + shmem = <&cpu_scp_lpri &cpu_scp_hpri>; 240 + 241 + scpi_sensors1: sensors { 242 + compatible = "amlogic,meson-gxbb-scpi-sensors", "arm,scpi-sensors"; 243 + #thermal-sensor-cells = <1>; 244 + }; 245 + }; 246 + }; 247 + ...
-19
Documentation/devicetree/bindings/fpga/xilinx-zynq-fpga-mgr.txt
··· 1 - Xilinx Zynq FPGA Manager 2 - 3 - Required properties: 4 - - compatible: should contain "xlnx,zynq-devcfg-1.0" 5 - - reg: base address and size for memory mapped io 6 - - interrupts: interrupt for the FPGA manager device 7 - - clocks: phandle for clocks required operation 8 - - clock-names: name for the clock, should be "ref_clk" 9 - - syscon: phandle for access to SLCR registers 10 - 11 - Example: 12 - devcfg: devcfg@f8007000 { 13 - compatible = "xlnx,zynq-devcfg-1.0"; 14 - reg = <0xf8007000 0x100>; 15 - interrupts = <0 8 4>; 16 - clocks = <&clkc 12>; 17 - clock-names = "ref_clk"; 18 - syscon = <&slcr>; 19 - };
+52
Documentation/devicetree/bindings/fpga/xilinx-zynq-fpga-mgr.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/fpga/xilinx-zynq-fpga-mgr.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Xilinx Zynq FPGA Manager Device Tree Bindings 8 + 9 + maintainers: 10 + - Michal Simek <michal.simek@xilinx.com> 11 + 12 + properties: 13 + compatible: 14 + const: xlnx,zynq-devcfg-1.0 15 + 16 + reg: 17 + maxItems: 1 18 + 19 + interrupts: 20 + maxItems: 1 21 + 22 + clocks: 23 + maxItems: 1 24 + 25 + clock-names: 26 + items: 27 + - const: ref_clk 28 + 29 + syscon: 30 + $ref: /schemas/types.yaml#/definitions/phandle 31 + description: 32 + Phandle to syscon block which provide access to SLCR registers 33 + 34 + required: 35 + - compatible 36 + - reg 37 + - clocks 38 + - clock-names 39 + - syscon 40 + 41 + additionalProperties: false 42 + 43 + examples: 44 + - | 45 + devcfg: devcfg@f8007000 { 46 + compatible = "xlnx,zynq-devcfg-1.0"; 47 + reg = <0xf8007000 0x100>; 48 + interrupts = <0 8 4>; 49 + clocks = <&clkc 12>; 50 + clock-names = "ref_clk"; 51 + syscon = <&slcr>; 52 + };
+1 -1
Documentation/devicetree/bindings/gpio/gpio-davinci.txt
··· 32 32 Documentation/devicetree/bindings/clock/keystone-gate.txt 33 33 for 66AK2HK/66AK2L/66AK2E SoCs or, 34 34 35 - Documentation/devicetree/bindings/clock/ti,sci-clk.txt 35 + Documentation/devicetree/bindings/clock/ti,sci-clk.yaml 36 36 for 66AK2G SoCs 37 37 38 38 - clock-names: Name should be "gpio";
-1
Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml
··· 34 34 - enum: [ bridge, gca ] 35 35 - enum: [ bridge, gca ] 36 36 minItems: 2 37 - maxItems: 4 38 37 39 38 interrupts: 40 39 items:
-1
Documentation/devicetree/bindings/gpu/vivante,gc.yaml
··· 36 36 - description: AHB/slave interface clock (only required if GPU can gate 37 37 slave interface independently) 38 38 minItems: 1 39 - maxItems: 4 40 39 41 40 clock-names: 42 41 items:
+74
Documentation/devicetree/bindings/i2c/aspeed,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/aspeed,i2c.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: ASPEED I2C on the AST24XX, AST25XX, and AST26XX SoCs Device Tree Bindings 8 + 9 + maintainers: 10 + - Rayn Chen <rayn_chen@aspeedtech.com> 11 + 12 + allOf: 13 + - $ref: /schemas/i2c/i2c-controller.yaml# 14 + 15 + properties: 16 + compatible: 17 + enum: 18 + - aspeed,ast2400-i2c-bus 19 + - aspeed,ast2500-i2c-bus 20 + - aspeed,ast2600-i2c-bus 21 + 22 + reg: 23 + minItems: 1 24 + items: 25 + - description: address offset and range of bus 26 + - description: address offset and range of bus buffer 27 + 28 + interrupts: 29 + maxItems: 1 30 + 31 + clocks: 32 + maxItems: 1 33 + description: 34 + root clock of bus, should reference the APB 35 + clock in the second cell 36 + 37 + resets: 38 + maxItems: 1 39 + 40 + bus-frequency: 41 + minimum: 500 42 + maximum: 4000000 43 + default: 100000 44 + description: frequency of the bus clock in Hz defaults to 100 kHz when not 45 + specified 46 + 47 + multi-master: 48 + type: boolean 49 + description: 50 + states that there is another master active on this bus 51 + 52 + required: 53 + - reg 54 + - compatible 55 + - clocks 56 + - resets 57 + 58 + unevaluatedProperties: false 59 + 60 + examples: 61 + - | 62 + #include <dt-bindings/clock/aspeed-clock.h> 63 + i2c0: i2c-bus@40 { 64 + #address-cells = <1>; 65 + #size-cells = <0>; 66 + #interrupt-cells = <1>; 67 + compatible = "aspeed,ast2500-i2c-bus"; 68 + reg = <0x40 0x40>; 69 + clocks = <&syscon ASPEED_CLK_APB>; 70 + resets = <&syscon ASPEED_RESET_I2C>; 71 + bus-frequency = <100000>; 72 + interrupts = <0>; 73 + interrupt-parent = <&i2c_ic>; 74 + };
-1
Documentation/devicetree/bindings/i2c/brcm,brcmstb-i2c.yaml
··· 21 21 22 22 reg: 23 23 minItems: 1 24 - maxItems: 2 25 24 items: 26 25 - description: BSC register range 27 26 - description: Auto-I2C register range
-49
Documentation/devicetree/bindings/i2c/i2c-aspeed.txt
··· 1 - Device tree configuration for the I2C busses on the AST24XX, AST25XX, and AST26XX SoCs. 2 - 3 - Required Properties: 4 - - #address-cells : should be 1 5 - - #size-cells : should be 0 6 - - reg : address offset and range of bus 7 - - compatible : should be "aspeed,ast2400-i2c-bus" 8 - or "aspeed,ast2500-i2c-bus" 9 - or "aspeed,ast2600-i2c-bus" 10 - - clocks : root clock of bus, should reference the APB 11 - clock in the second cell 12 - - resets : phandle to reset controller with the reset number in 13 - the second cell 14 - - interrupts : interrupt number 15 - 16 - Optional Properties: 17 - - bus-frequency : frequency of the bus clock in Hz defaults to 100 kHz when not 18 - specified 19 - - multi-master : states that there is another master active on this bus. 20 - 21 - Example: 22 - 23 - i2c { 24 - compatible = "simple-bus"; 25 - #address-cells = <1>; 26 - #size-cells = <1>; 27 - ranges = <0 0x1e78a000 0x1000>; 28 - 29 - i2c_ic: interrupt-controller@0 { 30 - #interrupt-cells = <1>; 31 - compatible = "aspeed,ast2400-i2c-ic"; 32 - reg = <0x0 0x40>; 33 - interrupts = <12>; 34 - interrupt-controller; 35 - }; 36 - 37 - i2c0: i2c-bus@40 { 38 - #address-cells = <1>; 39 - #size-cells = <0>; 40 - #interrupt-cells = <1>; 41 - reg = <0x40 0x40>; 42 - compatible = "aspeed,ast2400-i2c-bus"; 43 - clocks = <&syscon ASPEED_CLK_APB>; 44 - resets = <&syscon ASPEED_RESET_I2C>; 45 - bus-frequency = <100000>; 46 - interrupts = <0>; 47 - interrupt-parent = <&i2c_ic>; 48 - }; 49 - };
+2 -2
Documentation/devicetree/bindings/i2c/i2c-davinci.txt
··· 8 8 - reg : Offset and length of the register set for the device 9 9 - clocks: I2C functional clock phandle. 10 10 For 66AK2G this property should be set per binding, 11 - Documentation/devicetree/bindings/clock/ti,sci-clk.txt 11 + Documentation/devicetree/bindings/clock/ti,sci-clk.yaml 12 12 13 13 SoC-specific Required Properties: 14 14 ··· 17 17 - power-domains: Should contain a phandle to a PM domain provider node 18 18 and an args specifier containing the I2C device id 19 19 value. This property is as per the binding, 20 - Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt 20 + Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml 21 21 22 22 Recommended properties : 23 23 - interrupts : standard interrupt property.
+1 -1
Documentation/devicetree/bindings/i2c/i2c-demux-pinctrl.txt
··· 27 27 - i2c-bus-name: The name of this bus. Also needed as pinctrl-name for the I2C 28 28 parents. 29 29 30 - Furthermore, I2C mux properties and child nodes. See i2c-mux.txt in this 30 + Furthermore, I2C mux properties and child nodes. See i2c-mux.yaml in this 31 31 directory. 32 32 33 33 Example:
+2 -2
Documentation/devicetree/bindings/i2c/i2c-mux-gpio.txt
··· 22 22 - i2c-parent: The phandle of the I2C bus that this multiplexer's master-side 23 23 port is connected to. 24 24 - mux-gpios: list of gpios used to control the muxer 25 - * Standard I2C mux properties. See i2c-mux.txt in this directory. 26 - * I2C child bus nodes. See i2c-mux.txt in this directory. 25 + * Standard I2C mux properties. See i2c-mux.yaml in this directory. 26 + * I2C child bus nodes. See i2c-mux.yaml in this directory. 27 27 28 28 Optional properties: 29 29 - idle-state: value to set the muxer to when idle. When no value is
-99
Documentation/devicetree/bindings/i2c/i2c-mux-gpmux.txt
··· 1 - General Purpose I2C Bus Mux 2 - 3 - This binding describes an I2C bus multiplexer that uses a mux controller 4 - from the mux subsystem to route the I2C signals. 5 - 6 - .-----. .-----. 7 - | dev | | dev | 8 - .------------. '-----' '-----' 9 - | SoC | | | 10 - | | .--------+--------' 11 - | .------. | .------+ child bus A, on MUX value set to 0 12 - | | I2C |-|--| Mux | 13 - | '------' | '--+---+ child bus B, on MUX value set to 1 14 - | .------. | | '----------+--------+--------. 15 - | | MUX- | | | | | | 16 - | | Ctrl |-|-----+ .-----. .-----. .-----. 17 - | '------' | | dev | | dev | | dev | 18 - '------------' '-----' '-----' '-----' 19 - 20 - Required properties: 21 - - compatible: i2c-mux 22 - - i2c-parent: The phandle of the I2C bus that this multiplexer's master-side 23 - port is connected to. 24 - - mux-controls: The phandle of the mux controller to use for operating the 25 - mux. 26 - * Standard I2C mux properties. See i2c-mux.txt in this directory. 27 - * I2C child bus nodes. See i2c-mux.txt in this directory. The sub-bus number 28 - is also the mux-controller state described in ../mux/mux-controller.txt 29 - 30 - Optional properties: 31 - - mux-locked: If present, explicitly allow unrelated I2C transactions on the 32 - parent I2C adapter at these times: 33 - + during setup of the multiplexer 34 - + between setup of the multiplexer and the child bus I2C transaction 35 - + between the child bus I2C transaction and releasing of the multiplexer 36 - + during releasing of the multiplexer 37 - However, I2C transactions to devices behind all I2C multiplexers connected 38 - to the same parent adapter that this multiplexer is connected to are blocked 39 - for the full duration of the complete multiplexed I2C transaction (i.e. 40 - including the times covered by the above list). 41 - If mux-locked is not present, the multiplexer is assumed to be parent-locked. 42 - This means that no unrelated I2C transactions are allowed on the parent I2C 43 - adapter for the complete multiplexed I2C transaction. 44 - The properties of mux-locked and parent-locked multiplexers are discussed 45 - in more detail in Documentation/i2c/i2c-topology.rst. 46 - 47 - For each i2c child node, an I2C child bus will be created. They will 48 - be numbered based on their order in the device tree. 49 - 50 - Whenever an access is made to a device on a child bus, the value set 51 - in the relevant node's reg property will be set as the state in the 52 - mux controller. 53 - 54 - Example: 55 - mux: mux-controller { 56 - compatible = "gpio-mux"; 57 - #mux-control-cells = <0>; 58 - 59 - mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>, 60 - <&pioA 1 GPIO_ACTIVE_HIGH>; 61 - }; 62 - 63 - i2c-mux { 64 - compatible = "i2c-mux"; 65 - mux-locked; 66 - i2c-parent = <&i2c1>; 67 - 68 - mux-controls = <&mux>; 69 - 70 - #address-cells = <1>; 71 - #size-cells = <0>; 72 - 73 - i2c@1 { 74 - reg = <1>; 75 - #address-cells = <1>; 76 - #size-cells = <0>; 77 - 78 - ssd1307: oled@3c { 79 - compatible = "solomon,ssd1307fb-i2c"; 80 - reg = <0x3c>; 81 - pwms = <&pwm 4 3000>; 82 - reset-gpios = <&gpio2 7 1>; 83 - reset-active-low; 84 - }; 85 - }; 86 - 87 - i2c@3 { 88 - reg = <3>; 89 - #address-cells = <1>; 90 - #size-cells = <0>; 91 - 92 - pca9555: pca9555@20 { 93 - compatible = "nxp,pca9555"; 94 - gpio-controller; 95 - #gpio-cells = <2>; 96 - reg = <0x20>; 97 - }; 98 - }; 99 - };
+124
Documentation/devicetree/bindings/i2c/i2c-mux-gpmux.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/i2c/i2c-mux-gpmux.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: General Purpose I2C Bus Mux 8 + 9 + maintainers: 10 + - Peter Rosin <peda@axentia.se> 11 + 12 + description: |+ 13 + This binding describes an I2C bus multiplexer that uses a mux controller 14 + from the mux subsystem to route the I2C signals. 15 + 16 + .-----. .-----. 17 + | dev | | dev | 18 + .------------. '-----' '-----' 19 + | SoC | | | 20 + | | .--------+--------' 21 + | .------. | .------+ child bus A, on MUX value set to 0 22 + | | I2C |-|--| Mux | 23 + | '------' | '--+---+ child bus B, on MUX value set to 1 24 + | .------. | | '----------+--------+--------. 25 + | | MUX- | | | | | | 26 + | | Ctrl |-|-----+ .-----. .-----. .-----. 27 + | '------' | | dev | | dev | | dev | 28 + '------------' '-----' '-----' '-----' 29 + 30 + 31 + 32 + allOf: 33 + - $ref: /schemas/i2c/i2c-mux.yaml# 34 + 35 + properties: 36 + compatible: 37 + const: i2c-mux 38 + 39 + i2c-parent: 40 + $ref: /schemas/types.yaml#/definitions/phandle 41 + description: 42 + The phandle of the I2C bus that this multiplexer's master-side port is 43 + connected to. 44 + 45 + mux-controls: 46 + maxItems: 1 47 + description: 48 + The mux-controller states are the I2C sub-bus numbers. 49 + 50 + mux-locked: 51 + type: boolean 52 + description: | 53 + Explicitly allow unrelated I2C transactions on the parent I2C adapter at 54 + these times: 55 + - during setup of the multiplexer 56 + - between setup of the multiplexer and the child bus I2C transaction 57 + - between the child bus I2C transaction and releasing of the multiplexer 58 + - during releasing of the multiplexer 59 + 60 + However, I2C transactions to devices behind all I2C multiplexers connected 61 + to the same parent adapter that this multiplexer is connected to are blocked 62 + for the full duration of the complete multiplexed I2C transaction (i.e. 63 + including the times covered by the above list). 64 + If mux-locked is not present, the multiplexer is assumed to be parent-locked. 65 + This means that no unrelated I2C transactions are allowed on the parent I2C 66 + adapter for the complete multiplexed I2C transaction. 67 + The properties of mux-locked and parent-locked multiplexers are discussed 68 + in more detail in Documentation/i2c/i2c-topology.rst. 69 + 70 + required: 71 + - compatible 72 + - i2c-parent 73 + - mux-controls 74 + 75 + unevaluatedProperties: false 76 + 77 + examples: 78 + - | 79 + #include <dt-bindings/gpio/gpio.h> 80 + mux: mux-controller { 81 + compatible = "gpio-mux"; 82 + #mux-control-cells = <0>; 83 + 84 + mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>, 85 + <&pioA 1 GPIO_ACTIVE_HIGH>; 86 + }; 87 + 88 + i2c-mux { 89 + compatible = "i2c-mux"; 90 + mux-locked; 91 + i2c-parent = <&i2c1>; 92 + 93 + mux-controls = <&mux>; 94 + 95 + #address-cells = <1>; 96 + #size-cells = <0>; 97 + 98 + i2c@1 { 99 + reg = <1>; 100 + #address-cells = <1>; 101 + #size-cells = <0>; 102 + 103 + gpio@20 { 104 + compatible = "nxp,pca9555"; 105 + gpio-controller; 106 + #gpio-cells = <2>; 107 + reg = <0x20>; 108 + }; 109 + }; 110 + 111 + i2c@3 { 112 + reg = <3>; 113 + #address-cells = <1>; 114 + #size-cells = <0>; 115 + 116 + gpio@20 { 117 + compatible = "nxp,pca9555"; 118 + gpio-controller; 119 + #gpio-cells = <2>; 120 + reg = <0x20>; 121 + }; 122 + }; 123 + }; 124 + ...
+2 -2
Documentation/devicetree/bindings/i2c/i2c-mux-ltc4306.txt
··· 8 8 9 9 The following required properties are defined externally: 10 10 11 - - Standard I2C mux properties. See i2c-mux.txt in this directory. 12 - - I2C child bus nodes. See i2c-mux.txt in this directory. 11 + - Standard I2C mux properties. See i2c-mux.yaml in this directory. 12 + - I2C child bus nodes. See i2c-mux.yaml in this directory. 13 13 14 14 Optional Properties: 15 15
-74
Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.txt
··· 1 - * NXP PCA954x I2C bus switch 2 - 3 - The driver supports NXP PCA954x and PCA984x I2C mux/switch devices. 4 - 5 - Required Properties: 6 - 7 - - compatible: Must contain one of the following. 8 - "nxp,pca9540", 9 - "nxp,pca9542", 10 - "nxp,pca9543", 11 - "nxp,pca9544", 12 - "nxp,pca9545", 13 - "nxp,pca9546", "nxp,pca9846", 14 - "nxp,pca9547", "nxp,pca9847", 15 - "nxp,pca9548", "nxp,pca9848", 16 - "nxp,pca9849" 17 - 18 - - reg: The I2C address of the device. 19 - 20 - The following required properties are defined externally: 21 - 22 - - Standard I2C mux properties. See i2c-mux.txt in this directory. 23 - - I2C child bus nodes. See i2c-mux.txt in this directory. 24 - 25 - Optional Properties: 26 - 27 - - reset-gpios: Reference to the GPIO connected to the reset input. 28 - - idle-state: if present, overrides i2c-mux-idle-disconnect, 29 - Please refer to Documentation/devicetree/bindings/mux/mux-controller.txt 30 - - i2c-mux-idle-disconnect: Boolean; if defined, forces mux to disconnect all 31 - children in idle state. This is necessary for example, if there are several 32 - multiplexers on the bus and the devices behind them use same I2C addresses. 33 - - interrupts: Interrupt mapping for IRQ. 34 - - interrupt-controller: Marks the device node as an interrupt controller. 35 - - #interrupt-cells : Should be two. 36 - - first cell is the pin number 37 - - second cell is used to specify flags. 38 - See also Documentation/devicetree/bindings/interrupt-controller/interrupts.txt 39 - 40 - Example: 41 - 42 - i2c-switch@74 { 43 - compatible = "nxp,pca9548"; 44 - #address-cells = <1>; 45 - #size-cells = <0>; 46 - reg = <0x74>; 47 - 48 - interrupt-parent = <&ipic>; 49 - interrupts = <17 IRQ_TYPE_LEVEL_LOW>; 50 - interrupt-controller; 51 - #interrupt-cells = <2>; 52 - 53 - i2c@2 { 54 - #address-cells = <1>; 55 - #size-cells = <0>; 56 - reg = <2>; 57 - 58 - eeprom@54 { 59 - compatible = "atmel,24c08"; 60 - reg = <0x54>; 61 - }; 62 - }; 63 - 64 - i2c@4 { 65 - #address-cells = <1>; 66 - #size-cells = <0>; 67 - reg = <4>; 68 - 69 - rtc@51 { 70 - compatible = "nxp,pcf8563"; 71 - reg = <0x51>; 72 - }; 73 - }; 74 - };
+110
Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/i2c/i2c-mux-pca954x.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: NXP PCA954x I2C bus switch 8 + 9 + maintainers: 10 + - Laurent Pinchart <laurent.pinchart@ideasonboard.com> 11 + 12 + description: 13 + The binding supports NXP PCA954x and PCA984x I2C mux/switch devices. 14 + 15 + allOf: 16 + - $ref: /schemas/i2c/i2c-mux.yaml# 17 + 18 + properties: 19 + compatible: 20 + oneOf: 21 + - enum: 22 + - nxp,pca9540 23 + - nxp,pca9542 24 + - nxp,pca9543 25 + - nxp,pca9544 26 + - nxp,pca9545 27 + - nxp,pca9546 28 + - nxp,pca9547 29 + - nxp,pca9548 30 + - nxp,pca9846 31 + - nxp,pca9847 32 + - nxp,pca9848 33 + - nxp,pca9849 34 + - items: 35 + - const: nxp,pca9646 36 + - const: nxp,pca9546 37 + 38 + reg: 39 + maxItems: 1 40 + 41 + interrupts: 42 + maxItems: 1 43 + 44 + "#interrupt-cells": 45 + const: 2 46 + 47 + interrupt-controller: true 48 + 49 + reset-gpios: 50 + maxItems: 1 51 + 52 + i2c-mux-idle-disconnect: 53 + type: boolean 54 + description: Forces mux to disconnect all children in idle state. This is 55 + necessary for example, if there are several multiplexers on the bus and 56 + the devices behind them use same I2C addresses. 57 + 58 + idle-state: 59 + description: if present, overrides i2c-mux-idle-disconnect 60 + $ref: /schemas/mux/mux-controller.yaml#/properties/idle-state 61 + 62 + required: 63 + - compatible 64 + - reg 65 + 66 + unevaluatedProperties: false 67 + 68 + examples: 69 + - | 70 + #include <dt-bindings/interrupt-controller/irq.h> 71 + 72 + i2c { 73 + #address-cells = <1>; 74 + #size-cells = <0>; 75 + 76 + i2c-mux@74 { 77 + compatible = "nxp,pca9548"; 78 + #address-cells = <1>; 79 + #size-cells = <0>; 80 + reg = <0x74>; 81 + 82 + interrupt-parent = <&ipic>; 83 + interrupts = <17 IRQ_TYPE_LEVEL_LOW>; 84 + interrupt-controller; 85 + #interrupt-cells = <2>; 86 + 87 + i2c@2 { 88 + #address-cells = <1>; 89 + #size-cells = <0>; 90 + reg = <2>; 91 + 92 + eeprom@54 { 93 + compatible = "atmel,24c08"; 94 + reg = <0x54>; 95 + }; 96 + }; 97 + 98 + i2c@4 { 99 + #address-cells = <1>; 100 + #size-cells = <0>; 101 + reg = <4>; 102 + 103 + rtc@51 { 104 + compatible = "nxp,pcf8563"; 105 + reg = <0x51>; 106 + }; 107 + }; 108 + }; 109 + }; 110 + ...
+2 -2
Documentation/devicetree/bindings/i2c/i2c-mux-pinctrl.txt
··· 28 28 * Standard pinctrl properties that specify the pin mux state for each child 29 29 bus. See ../pinctrl/pinctrl-bindings.txt. 30 30 31 - * Standard I2C mux properties. See i2c-mux.txt in this directory. 31 + * Standard I2C mux properties. See i2c-mux.yaml in this directory. 32 32 33 - * I2C child bus nodes. See i2c-mux.txt in this directory. 33 + * I2C child bus nodes. See i2c-mux.yaml in this directory. 34 34 35 35 For each named state defined in the pinctrl-names property, an I2C child bus 36 36 will be created. I2C child bus numbers are assigned based on the index into
+2 -2
Documentation/devicetree/bindings/i2c/i2c-mux-reg.txt
··· 7 7 - compatible: i2c-mux-reg 8 8 - i2c-parent: The phandle of the I2C bus that this multiplexer's master-side 9 9 port is connected to. 10 - * Standard I2C mux properties. See i2c-mux.txt in this directory. 11 - * I2C child bus nodes. See i2c-mux.txt in this directory. 10 + * Standard I2C mux properties. See i2c-mux.yaml in this directory. 11 + * I2C child bus nodes. See i2c-mux.yaml in this directory. 12 12 13 13 Optional properties: 14 14 - reg: this pair of <offset size> specifies the register to control the mux.
-73
Documentation/devicetree/bindings/i2c/i2c-mux.txt
··· 1 - Common i2c bus multiplexer/switch properties. 2 - 3 - An i2c bus multiplexer/switch will have several child busses that are 4 - numbered uniquely in a device dependent manner. The nodes for an i2c bus 5 - multiplexer/switch will have one child node for each child bus. 6 - 7 - Optional properties: 8 - - #address-cells = <1>; 9 - This property is required if the i2c-mux child node does not exist. 10 - 11 - - #size-cells = <0>; 12 - This property is required if the i2c-mux child node does not exist. 13 - 14 - - i2c-mux 15 - For i2c multiplexers/switches that have child nodes that are a mixture 16 - of both i2c child busses and other child nodes, the 'i2c-mux' subnode 17 - can be used for populating the i2c child busses. If an 'i2c-mux' 18 - subnode is present, only subnodes of this will be considered as i2c 19 - child busses. 20 - 21 - Required properties for the i2c-mux child node: 22 - - #address-cells = <1>; 23 - - #size-cells = <0>; 24 - 25 - Required properties for i2c child bus nodes: 26 - - #address-cells = <1>; 27 - - #size-cells = <0>; 28 - - reg : The sub-bus number. 29 - 30 - Optional properties for i2c child bus nodes: 31 - - Other properties specific to the multiplexer/switch hardware. 32 - - Child nodes conforming to i2c bus binding 33 - 34 - 35 - Example : 36 - 37 - /* 38 - An NXP pca9548 8 channel I2C multiplexer at address 0x70 39 - with two NXP pca8574 GPIO expanders attached, one each to 40 - ports 3 and 4. 41 - */ 42 - 43 - mux@70 { 44 - compatible = "nxp,pca9548"; 45 - reg = <0x70>; 46 - #address-cells = <1>; 47 - #size-cells = <0>; 48 - 49 - i2c@3 { 50 - #address-cells = <1>; 51 - #size-cells = <0>; 52 - reg = <3>; 53 - 54 - gpio1: gpio@38 { 55 - compatible = "nxp,pca8574"; 56 - reg = <0x38>; 57 - #gpio-cells = <2>; 58 - gpio-controller; 59 - }; 60 - }; 61 - i2c@4 { 62 - #address-cells = <1>; 63 - #size-cells = <0>; 64 - reg = <4>; 65 - 66 - gpio2: gpio@38 { 67 - compatible = "nxp,pca8574"; 68 - reg = <0x38>; 69 - #gpio-cells = <2>; 70 - gpio-controller; 71 - }; 72 - }; 73 - };
+87
Documentation/devicetree/bindings/i2c/i2c-mux.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/i2c/i2c-mux.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Common i2c bus multiplexer/switch properties. 8 + 9 + maintainers: 10 + - Peter Rosin <peda@axentia.se> 11 + 12 + description: |+ 13 + An i2c bus multiplexer/switch will have several child busses that are numbered 14 + uniquely in a device dependent manner. The nodes for an i2c bus 15 + multiplexer/switch will have one child node for each child bus. 16 + 17 + For i2c multiplexers/switches that have child nodes that are a mixture of both 18 + i2c child busses and other child nodes, the 'i2c-mux' subnode can be used for 19 + populating the i2c child busses. If an 'i2c-mux' subnode is present, only 20 + subnodes of this will be considered as i2c child busses. 21 + 22 + properties: 23 + $nodename: 24 + pattern: '^(i2c-?)?mux' 25 + 26 + '#address-cells': 27 + const: 1 28 + 29 + '#size-cells': 30 + const: 0 31 + 32 + patternProperties: 33 + '^i2c@[0-9a-f]+$': 34 + $ref: /schemas/i2c/i2c-controller.yaml 35 + unevaluatedProperties: false 36 + 37 + properties: 38 + reg: 39 + description: The mux selector sub-bus number for the child I2C bus. 40 + maxItems: 1 41 + 42 + additionalProperties: true 43 + 44 + examples: 45 + - | 46 + /* 47 + * An NXP pca9548 8 channel I2C multiplexer at address 0x70 48 + * with two NXP pca8574 GPIO expanders attached, one each to 49 + * ports 3 and 4. 50 + */ 51 + i2c { 52 + #address-cells = <1>; 53 + #size-cells = <0>; 54 + 55 + i2c-mux@70 { 56 + compatible = "nxp,pca9548"; 57 + reg = <0x70>; 58 + #address-cells = <1>; 59 + #size-cells = <0>; 60 + 61 + i2c@3 { 62 + #address-cells = <1>; 63 + #size-cells = <0>; 64 + reg = <3>; 65 + 66 + gpio@20 { 67 + compatible = "nxp,pca9555"; 68 + gpio-controller; 69 + #gpio-cells = <2>; 70 + reg = <0x20>; 71 + }; 72 + }; 73 + i2c@4 { 74 + #address-cells = <1>; 75 + #size-cells = <0>; 76 + reg = <4>; 77 + 78 + gpio@20 { 79 + compatible = "nxp,pca9555"; 80 + gpio-controller; 81 + #gpio-cells = <2>; 82 + reg = <0x20>; 83 + }; 84 + }; 85 + }; 86 + }; 87 + ...
-2
Documentation/devicetree/bindings/i2c/marvell,mv64xxx-i2c.yaml
··· 43 43 44 44 clocks: 45 45 minItems: 1 46 - maxItems: 2 47 46 items: 48 47 - description: Reference clock for the I2C bus 49 48 - description: Bus clock (Only for Armada 7K/8K) 50 49 51 50 clock-names: 52 51 minItems: 1 53 - maxItems: 2 54 52 items: 55 53 - const: core 56 54 - const: reg
-1
Documentation/devicetree/bindings/i2c/mellanox,i2c-mlxbf.yaml
··· 20 20 21 21 reg: 22 22 minItems: 3 23 - maxItems: 4 24 23 items: 25 24 - description: Smbus block registers 26 25 - description: Cause master registers
-1
Documentation/devicetree/bindings/iio/adc/amlogic,meson-saradc.yaml
··· 41 41 42 42 clock-names: 43 43 minItems: 2 44 - maxItems: 4 45 44 items: 46 45 - const: clkin 47 46 - const: core
-2
Documentation/devicetree/bindings/iio/adc/st,stm32-dfsdm-adc.yaml
··· 38 38 dfsdm clock can also feed CLKOUT, when CLKOUT is used. 39 39 - description: audio clock can be used as an alternate to feed CLKOUT. 40 40 minItems: 1 41 - maxItems: 2 42 41 43 42 clock-names: 44 43 items: 45 44 - const: dfsdm 46 45 - const: audio 47 46 minItems: 1 48 - maxItems: 2 49 47 50 48 "#address-cells": 51 49 const: 1
-39
Documentation/devicetree/bindings/iio/multiplexer/io-channel-mux.txt
··· 1 - I/O channel multiplexer bindings 2 - 3 - If a multiplexer is used to select which hardware signal is fed to 4 - e.g. an ADC channel, these bindings describe that situation. 5 - 6 - Required properties: 7 - - compatible : "io-channel-mux" 8 - - io-channels : Channel node of the parent channel that has multiplexed 9 - input. 10 - - io-channel-names : Should be "parent". 11 - - #address-cells = <1>; 12 - - #size-cells = <0>; 13 - - mux-controls : Mux controller node to use for operating the mux 14 - - channels : List of strings, labeling the mux controller states. 15 - 16 - For each non-empty string in the channels property, an io-channel will 17 - be created. The number of this io-channel is the same as the index into 18 - the list of strings in the channels property, and also matches the mux 19 - controller state. The mux controller state is described in 20 - ../mux/mux-controller.txt 21 - 22 - Example: 23 - mux: mux-controller { 24 - compatible = "gpio-mux"; 25 - #mux-control-cells = <0>; 26 - 27 - mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>, 28 - <&pioA 1 GPIO_ACTIVE_HIGH>; 29 - }; 30 - 31 - adc-mux { 32 - compatible = "io-channel-mux"; 33 - io-channels = <&adc 0>; 34 - io-channel-names = "parent"; 35 - 36 - mux-controls = <&mux>; 37 - 38 - channels = "sync", "in", "system-regulator"; 39 - };
+70
Documentation/devicetree/bindings/iio/multiplexer/io-channel-mux.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/iio/multiplexer/io-channel-mux.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: I/O channel multiplexer bindings 8 + 9 + maintainers: 10 + - Peter Rosin <peda@axentia.se> 11 + 12 + description: | 13 + If a multiplexer is used to select which hardware signal is fed to 14 + e.g. an ADC channel, these bindings describe that situation. 15 + 16 + For each non-empty string in the channels property, an io-channel will be 17 + created. The number of this io-channel is the same as the index into the list 18 + of strings in the channels property, and also matches the mux controller 19 + state. The mux controller state is described in 20 + Documentation/devicetree/bindings/mux/mux-controller.yaml 21 + 22 + properties: 23 + 24 + compatible: 25 + const: io-channel-mux 26 + 27 + io-channels: 28 + maxItems: 1 29 + description: Channel node of the parent channel that has multiplexed input. 30 + 31 + io-channel-names: 32 + const: parent 33 + 34 + mux-controls: true 35 + mux-control-names: true 36 + 37 + channels: 38 + $ref: /schemas/types.yaml#/definitions/string-array 39 + description: 40 + List of strings, labeling the mux controller states. 41 + 42 + required: 43 + - compatible 44 + - io-channels 45 + - io-channel-names 46 + - mux-controls 47 + - channels 48 + 49 + additionalProperties: false 50 + 51 + examples: 52 + - | 53 + #include <dt-bindings/gpio/gpio.h> 54 + mux: mux-controller { 55 + compatible = "gpio-mux"; 56 + #mux-control-cells = <0>; 57 + 58 + mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>, 59 + <&pioA 1 GPIO_ACTIVE_HIGH>; 60 + }; 61 + 62 + adc-mux { 63 + compatible = "io-channel-mux"; 64 + io-channels = <&adc 0>; 65 + io-channel-names = "parent"; 66 + 67 + mux-controls = <&mux>; 68 + channels = "sync", "in", "system-regulator"; 69 + }; 70 + ...
-41
Documentation/devicetree/bindings/interrupt-controller/arm,vic.txt
··· 1 - * ARM Vectored Interrupt Controller 2 - 3 - One or more Vectored Interrupt Controllers (VIC's) can be connected in an ARM 4 - system for interrupt routing. For multiple controllers they can either be 5 - nested or have the outputs wire-OR'd together. 6 - 7 - Required properties: 8 - 9 - - compatible : should be one of 10 - "arm,pl190-vic" 11 - "arm,pl192-vic" 12 - - interrupt-controller : Identifies the node as an interrupt controller 13 - - #interrupt-cells : The number of cells to define the interrupts. Must be 1 as 14 - the VIC has no configuration options for interrupt sources. The cell is a u32 15 - and defines the interrupt number. 16 - - reg : The register bank for the VIC. 17 - 18 - Optional properties: 19 - 20 - - interrupts : Interrupt source for parent controllers if the VIC is nested. 21 - - valid-mask : A one cell big bit mask of valid interrupt sources. Each bit 22 - represents single interrupt source, starting from source 0 at LSb and ending 23 - at source 31 at MSb. A bit that is set means that the source is wired and 24 - clear means otherwise. If unspecified, defaults to all valid. 25 - - valid-wakeup-mask : A one cell big bit mask of interrupt sources that can be 26 - configured as wake up source for the system. Order of bits is the same as for 27 - valid-mask property. A set bit means that this interrupt source can be 28 - configured as a wake up source for the system. If unspecied, defaults to all 29 - interrupt sources configurable as wake up sources. 30 - 31 - Example: 32 - 33 - vic0: interrupt-controller@60000 { 34 - compatible = "arm,pl192-vic"; 35 - interrupt-controller; 36 - #interrupt-cells = <1>; 37 - reg = <0x60000 0x1000>; 38 - 39 - valid-mask = <0xffffff7f>; 40 - valid-wakeup-mask = <0x0000ff7f>; 41 - };
+81
Documentation/devicetree/bindings/interrupt-controller/arm,vic.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/interrupt-controller/arm,vic.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: ARM Vectored Interrupt Controller 8 + 9 + maintainers: 10 + - Rob Herring <robh@kernel.org> 11 + 12 + description: |+ 13 + One or more Vectored Interrupt Controllers (VIC's) can be connected in an 14 + ARM system for interrupt routing. For multiple controllers they can either 15 + be nested or have the outputs wire-OR'd together. 16 + 17 + allOf: 18 + - $ref: /schemas/interrupt-controller.yaml# 19 + 20 + properties: 21 + compatible: 22 + enum: 23 + - arm,pl190-vic 24 + - arm,pl192-vic 25 + - arm,versatile-vic 26 + 27 + interrupt-controller: true 28 + 29 + "#interrupt-cells": 30 + const: 1 31 + description: 32 + The number of cells to define the interrupts. It must be 1 as the 33 + VIC has no configuration options for interrupt sources. The single 34 + cell defines the interrupt number. 35 + 36 + reg: 37 + maxItems: 1 38 + 39 + interrupts: 40 + maxItems: 1 41 + 42 + valid-mask: 43 + description: 44 + A one cell big bit mask of valid interrupt sources. Each bit 45 + represents single interrupt source, starting from source 0 at 46 + LSb and ending at source 31 at MSb. A bit that is set means 47 + that the source is wired and clear means otherwise. If unspecified, 48 + defaults to all valid. 49 + $ref: /schemas/types.yaml#/definitions/uint32 50 + 51 + valid-wakeup-mask: 52 + description: 53 + A one cell big bit mask of interrupt sources that can be configured 54 + as wake up source for the system. Order of bits is the same as for 55 + valid-mask property. A set bit means that this interrupt source 56 + can be configured as a wake up source for the system. If unspecied, 57 + defaults to all interrupt sources configurable as wake up sources. 58 + $ref: /schemas/types.yaml#/definitions/uint32 59 + 60 + required: 61 + - compatible 62 + - reg 63 + - interrupt-controller 64 + - "#interrupt-cells" 65 + 66 + additionalProperties: false 67 + 68 + examples: 69 + - | 70 + // PL192 VIC 71 + vic0: interrupt-controller@60000 { 72 + compatible = "arm,pl192-vic"; 73 + interrupt-controller; 74 + #interrupt-cells = <1>; 75 + reg = <0x60000 0x1000>; 76 + 77 + valid-mask = <0xffffff7f>; 78 + valid-wakeup-mask = <0x0000ff7f>; 79 + }; 80 + 81 + ...
-1
Documentation/devicetree/bindings/interrupt-controller/fsl,irqsteer.yaml
··· 35 35 - description: output interrupt 6 36 36 - description: output interrupt 7 37 37 minItems: 1 38 - maxItems: 8 39 38 40 39 clocks: 41 40 maxItems: 1
-1
Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml
··· 50 50 - const: int2 51 51 - const: int3 52 52 minItems: 1 53 - maxItems: 4 54 53 55 54 '#interrupt-cells': 56 55 const: 2
+1 -1
Documentation/devicetree/bindings/interrupt-controller/ti,pruss-intc.yaml
··· 134 134 /* AM4376 PRU-ICSS */ 135 135 #include <dt-bindings/interrupt-controller/arm-gic.h> 136 136 pruss@0 { 137 - compatible = "ti,am4376-pruss"; 137 + compatible = "ti,am4376-pruss1"; 138 138 reg = <0x0 0x40000>; 139 139 #address-cells = <1>; 140 140 #size-cells = <1>;
-1
Documentation/devicetree/bindings/iommu/arm,smmu-v3.yaml
··· 38 38 If provided, then the combined interrupt will be used in preference to 39 39 any others. 40 40 - minItems: 2 41 - maxItems: 4 42 41 items: 43 42 - const: eventq # Event Queue not empty 44 43 - const: gerror # Global Error activated
-1
Documentation/devicetree/bindings/iommu/renesas,ipmmu-vmsa.yaml
··· 49 49 50 50 interrupts: 51 51 minItems: 1 52 - maxItems: 2 53 52 description: 54 53 Specifiers for the MMU fault interrupts. Not required for cache IPMMUs. 55 54 items:
+41 -7
Documentation/devicetree/bindings/mailbox/arm,mhu.yaml
··· 101 101 clocks = <&clock 0 2 1>; 102 102 clock-names = "apb_pclk"; 103 103 }; 104 + }; 104 105 105 - mhu_client_scb: scb@2e000000 { 106 - compatible = "fujitsu,mb86s70-scb-1.0"; 107 - reg = <0 0x2e000000 0 0x4000>; 106 + firmware { 107 + scpi { 108 + compatible = "arm,scpi"; 108 109 mboxes = <&mhuA 1>; /* HP-NonSecure */ 110 + shmem = <&cpu_scp_hpri>; /* HP-NonSecure */ 111 + 112 + scpi_devpd: power-controller { 113 + compatible = "arm,scpi-power-domains"; 114 + num-domains = <2>; 115 + #power-domain-cells = <1>; 116 + }; 109 117 }; 110 118 }; 111 119 ··· 133 125 clocks = <&clock 0 2 1>; 134 126 clock-names = "apb_pclk"; 135 127 }; 128 + }; 136 129 137 - mhu_client_scpi: scpi@2f000000 { 138 - compatible = "arm,scpi"; 139 - reg = <0 0x2f000000 0 0x200>; 140 - mboxes = <&mhuB 1 4>; /* HP-NonSecure, 5th doorbell */ 130 + firmware { 131 + scmi { 132 + compatible = "arm,scmi"; 133 + mboxes = <&mhuB 0 0>, /* LP-NonSecure, 1st doorbell */ 134 + <&mhuB 0 1>; /* LP-NonSecure, 2nd doorbell */ 135 + mbox-names = "tx", "rx"; 136 + shmem = <&cpu_scp_lpri0>, 137 + <&cpu_scp_lpri1>; 138 + 139 + #address-cells = <1>; 140 + #size-cells = <0>; 141 + 142 + scmi_devpd: protocol@11 { 143 + reg = <0x11>; 144 + #power-domain-cells = <1>; 145 + }; 146 + 147 + scmi_dvfs: protocol@13 { 148 + reg = <0x13>; 149 + #clock-cells = <1>; 150 + 151 + mboxes = <&mhuB 1 2>, /* HP-NonSecure, 3rd doorbell */ 152 + <&mhuB 1 3>; /* HP-NonSecure, 4th doorbell */ 153 + mbox-names = "tx", "rx"; 154 + shmem = <&cpu_scp_hpri0>, 155 + <&cpu_scp_hpri1>; 156 + }; 141 157 }; 142 158 }; 159 + 160 + ...
+12 -13
Documentation/devicetree/bindings/mailbox/arm,mhuv2.yaml
··· 192 192 arm,mhuv2-protocols = <1 1>, <1 7>, <0 2>; 193 193 }; 194 194 195 - mhu_client: scb@2e000000 { 196 - compatible = "fujitsu,mb86s70-scb-1.0"; 197 - reg = <0 0x2e000000 0 0x4000>; 198 - 199 - mboxes = 200 - //data-transfer protocol with 5 windows, mhu-tx 201 - <&mhu_tx 2 0>, 202 - //data-transfer protocol with 7 windows, mhu-tx 203 - <&mhu_tx 3 0>, 204 - //doorbell protocol channel 4, doorbell 27, mhu-tx 205 - <&mhu_tx 4 27>, 206 - //data-transfer protocol with 1 window, mhu-rx 207 - <&mhu_rx 0 0>; 195 + mhu_client: dsp@596e8000 { 196 + compatible = "fsl,imx8qxp-dsp"; 197 + reg = <0 0x596e8000 0 0x88000>; 198 + clocks = <&adma_lpcg 0>, <&adma_lpcg 1>, <&adma_lpcg 2>; 199 + clock-names = "ipg", "ocram", "core"; 200 + power-domains = <&pd 0>, <&pd 1>, <&pd 2>, <&pd 3>; 201 + mbox-names = "txdb0", "txdb1", "rxdb0", "rxdb1"; 202 + mboxes = <&mhu_tx 2 0>, //data-transfer protocol with 5 windows, mhu-tx 203 + <&mhu_tx 3 0>, //data-transfer protocol with 7 windows, mhu-tx 204 + <&mhu_rx 2 27>, //doorbell protocol channel 2, doorbell 27, mhu-rx 205 + <&mhu_rx 0 0>; //data-transfer protocol with 1 window, mhu-rx 206 + memory-region = <&dsp_reserved>; 208 207 }; 209 208 };
-184
Documentation/devicetree/bindings/mailbox/omap-mailbox.txt
··· 1 - OMAP2+ and K3 Mailbox 2 - ===================== 3 - 4 - The OMAP mailbox hardware facilitates communication between different processors 5 - using a queued mailbox interrupt mechanism. The IP block is external to the 6 - various processor subsystems and is connected on an interconnect bus. The 7 - communication is achieved through a set of registers for message storage and 8 - interrupt configuration registers. 9 - 10 - Each mailbox IP block/cluster has a certain number of h/w fifo queues and output 11 - interrupt lines. An output interrupt line is routed to an interrupt controller 12 - within a processor subsystem, and there can be more than one line going to a 13 - specific processor's interrupt controller. The interrupt line connections are 14 - fixed for an instance and are dictated by the IP integration into the SoC 15 - (excluding the SoCs that have a Interrupt Crossbar IP). Each interrupt line is 16 - programmable through a set of interrupt configuration registers, and have a rx 17 - and tx interrupt source per h/w fifo. Communication between different processors 18 - is achieved through the appropriate programming of the rx and tx interrupt 19 - sources on the appropriate interrupt lines. 20 - 21 - The number of h/w fifo queues and interrupt lines dictate the usable registers. 22 - All the current OMAP SoCs except for the newest DRA7xx SoC has a single IP 23 - instance. DRA7xx has multiple instances with different number of h/w fifo queues 24 - and interrupt lines between different instances. The interrupt lines can also be 25 - routed to different processor sub-systems on DRA7xx as they are routed through 26 - the Crossbar, a kind of interrupt router/multiplexer. The K3 AM65x and J721E 27 - SoCs has each of these instances form a cluster and combine multiple clusters 28 - into a single IP block present within the Main NavSS. The interrupt lines from 29 - all these clusters are multiplexed and routed to different processor subsystems 30 - over a limited number of common interrupt output lines of an Interrupt Router. 31 - The AM64x SoCS also uses a single IP block comprising of multiple clusters, 32 - but the number of clusters are smaller, and the interrupt output lines are 33 - connected directly to various processors. 34 - 35 - Mailbox Device Node: 36 - ==================== 37 - A Mailbox device node is used to represent a Mailbox IP instance/cluster within 38 - a SoC. The sub-mailboxes are represented as child nodes of this parent node. 39 - 40 - Required properties: 41 - -------------------- 42 - - compatible: Should be one of the following, 43 - "ti,omap2-mailbox" for OMAP2420, OMAP2430 SoCs 44 - "ti,omap3-mailbox" for OMAP3430, OMAP3630 SoCs 45 - "ti,omap4-mailbox" for OMAP44xx, OMAP54xx, AM33xx, 46 - AM43xx and DRA7xx SoCs 47 - "ti,am654-mailbox" for K3 AM65x and J721E SoCs 48 - "ti,am64-mailbox" for K3 AM64x SoCs 49 - - reg: Contains the mailbox register address range (base 50 - address and length) 51 - - interrupts: Contains the interrupt information for the mailbox 52 - device. The format is dependent on which interrupt 53 - controller the Mailbox device uses 54 - - #mbox-cells: Common mailbox binding property to identify the number 55 - of cells required for the mailbox specifier. Should be 56 - 1 57 - - ti,mbox-num-users: Number of targets (processor devices) that the mailbox 58 - device can interrupt 59 - - ti,mbox-num-fifos: Number of h/w fifo queues within the mailbox IP block 60 - 61 - SoC-specific Required properties: 62 - --------------------------------- 63 - The following are mandatory properties for the OMAP architecture based SoCs 64 - only: 65 - - ti,hwmods: Name of the hwmod associated with the mailbox. This 66 - should be defined in the mailbox node only if the node 67 - is not defined as a child node of a corresponding sysc 68 - interconnect node. 69 - 70 - The following are mandatory properties for the K3 AM65x and J721E SoCs only: 71 - - interrupt-parent: Should contain a phandle to the TI-SCI interrupt 72 - controller node that is used to dynamically program 73 - the interrupt routes between the IP and the main GIC 74 - controllers. See the following binding for additional 75 - details, 76 - Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.yaml 77 - 78 - Child Nodes: 79 - ============ 80 - A child node is used for representing the actual sub-mailbox device that is 81 - used for the communication between the host processor and a remote processor. 82 - Each child node should have a unique node name across all the different 83 - mailbox device nodes. 84 - 85 - Required properties: 86 - -------------------- 87 - - ti,mbox-tx: sub-mailbox descriptor property defining a Tx fifo 88 - - ti,mbox-rx: sub-mailbox descriptor property defining a Rx fifo 89 - 90 - Sub-mailbox Descriptor Data 91 - --------------------------- 92 - Each of the above ti,mbox-tx and ti,mbox-rx properties should have 3 cells of 93 - data that represent the following: 94 - Cell #1 (fifo_id) - mailbox fifo id used either for transmitting 95 - (ti,mbox-tx) or for receiving (ti,mbox-rx) 96 - Cell #2 (irq_id) - irq identifier index number to use from the parent's 97 - interrupts data. Should be 0 for most of the cases, a 98 - positive index value is seen only on mailboxes that have 99 - multiple interrupt lines connected to the MPU processor. 100 - Cell #3 (usr_id) - mailbox user id for identifying the interrupt line 101 - associated with generating a tx/rx fifo interrupt. 102 - 103 - Optional Properties: 104 - -------------------- 105 - - ti,mbox-send-noirq: Quirk flag to allow the client user of this sub-mailbox 106 - to send messages without triggering a Tx ready interrupt, 107 - and to control the Tx ticker. Should be used only on 108 - sub-mailboxes used to communicate with WkupM3 remote 109 - processor on AM33xx/AM43xx SoCs. 110 - 111 - Mailbox Users: 112 - ============== 113 - A device needing to communicate with a target processor device should specify 114 - them using the common mailbox binding properties, "mboxes" and the optional 115 - "mbox-names" (please see Documentation/devicetree/bindings/mailbox/mailbox.txt 116 - for details). Each value of the mboxes property should contain a phandle to the 117 - mailbox controller device node and an args specifier that will be the phandle to 118 - the intended sub-mailbox child node to be used for communication. The equivalent 119 - "mbox-names" property value can be used to give a name to the communication channel 120 - to be used by the client user. 121 - 122 - 123 - Example: 124 - -------- 125 - 126 - 1. /* OMAP4 */ 127 - mailbox: mailbox@4a0f4000 { 128 - compatible = "ti,omap4-mailbox"; 129 - reg = <0x4a0f4000 0x200>; 130 - interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 131 - ti,hwmods = "mailbox"; 132 - #mbox-cells = <1>; 133 - ti,mbox-num-users = <3>; 134 - ti,mbox-num-fifos = <8>; 135 - mbox_ipu: mbox_ipu { 136 - ti,mbox-tx = <0 0 0>; 137 - ti,mbox-rx = <1 0 0>; 138 - }; 139 - mbox_dsp: mbox_dsp { 140 - ti,mbox-tx = <3 0 0>; 141 - ti,mbox-rx = <2 0 0>; 142 - }; 143 - }; 144 - 145 - dsp { 146 - ... 147 - mboxes = <&mailbox &mbox_dsp>; 148 - ... 149 - }; 150 - 151 - 2. /* AM33xx */ 152 - mailbox: mailbox@480c8000 { 153 - compatible = "ti,omap4-mailbox"; 154 - reg = <0x480C8000 0x200>; 155 - interrupts = <77>; 156 - ti,hwmods = "mailbox"; 157 - #mbox-cells = <1>; 158 - ti,mbox-num-users = <4>; 159 - ti,mbox-num-fifos = <8>; 160 - mbox_wkupm3: wkup_m3 { 161 - ti,mbox-tx = <0 0 0>; 162 - ti,mbox-rx = <0 0 3>; 163 - }; 164 - }; 165 - 166 - 3. /* AM65x */ 167 - &cbass_main { 168 - cbass_main_navss: interconnect0 { 169 - mailbox0_cluster0: mailbox@31f80000 { 170 - compatible = "ti,am654-mailbox"; 171 - reg = <0x00 0x31f80000 0x00 0x200>; 172 - #mbox-cells = <1>; 173 - ti,mbox-num-users = <4>; 174 - ti,mbox-num-fifos = <16>; 175 - interrupt-parent = <&intr_main_navss>; 176 - interrupts = <164 0>; 177 - 178 - mbox_mcu_r5fss0_core0: mbox-mcu-r5fss0-core0 { 179 - ti,mbox-tx = <1 0 0>; 180 - ti,mbox-rx = <0 0 0>; 181 - }; 182 - }; 183 - }; 184 - };
-2
Documentation/devicetree/bindings/mailbox/st,stm32-ipcc.yaml
··· 32 32 - description: tx channel free 33 33 - description: wakeup source 34 34 minItems: 2 35 - maxItems: 3 36 35 37 36 interrupt-names: 38 37 items: ··· 39 40 - const: tx 40 41 - const: wakeup 41 42 minItems: 2 42 - maxItems: 3 43 43 44 44 wakeup-source: true 45 45
+308
Documentation/devicetree/bindings/mailbox/ti,omap-mailbox.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/mailbox/ti,omap-mailbox.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: TI OMAP2+ and K3 Mailbox devices 8 + 9 + maintainers: 10 + - Suman Anna <s-anna@ti.com> 11 + 12 + description: | 13 + The OMAP Mailbox hardware facilitates communication between different 14 + processors using a queued mailbox interrupt mechanism. The IP block is 15 + external to the various processor subsystems and is connected on an 16 + interconnect bus. The communication is achieved through a set of registers 17 + for message storage and interrupt configuration registers. 18 + 19 + Each mailbox IP block/cluster has a certain number of h/w fifo queues and 20 + output interrupt lines. An output interrupt line is routed to an interrupt 21 + controller within a processor subsystem, and there can be more than one line 22 + going to a specific processor's interrupt controller. The interrupt line 23 + connections are fixed for an instance and are dictated by the IP integration 24 + into the SoC (excluding the SoCs that have an Interrupt Crossbar or an 25 + Interrupt Router IP). Each interrupt line is programmable through a set of 26 + interrupt configuration registers, and have a rx and tx interrupt source per 27 + h/w fifo. Communication between different processors is achieved through the 28 + appropriate programming of the rx and tx interrupt sources on the appropriate 29 + interrupt lines. 30 + 31 + The number of h/w fifo queues and interrupt lines dictate the usable 32 + registers. All the current OMAP SoCs except for the newest DRA7xx SoC has a 33 + single IP instance. DRA7xx has multiple instances with different number of 34 + h/w fifo queues and interrupt lines between different instances. The interrupt 35 + lines can also be routed to different processor sub-systems on DRA7xx as they 36 + are routed through the Crossbar, a kind of interrupt router/multiplexer. The 37 + K3 AM65x, J721E and J7200 SoCs has each of these instances form a cluster and 38 + combine multiple clusters into a single IP block present within the Main 39 + NavSS. The interrupt lines from all these clusters are multiplexed and routed 40 + to different processor subsystems over a limited number of common interrupt 41 + output lines of an Interrupt Router. The AM64x SoCS also uses a single IP 42 + block comprising of multiple clusters, but the number of clusters are 43 + smaller, and the interrupt output lines are connected directly to various 44 + processors. 45 + 46 + Mailbox Controller Nodes 47 + ========================= 48 + A Mailbox device node is used to represent a Mailbox IP instance/cluster 49 + within a SoC. The sub-mailboxes (actual communication channels) are 50 + represented as child nodes of this parent node. 51 + 52 + Mailbox Users 53 + ============== 54 + A device needing to communicate with a target processor device should specify 55 + them using the common mailbox binding properties, "mboxes" and the optional 56 + "mbox-names" (please see Documentation/devicetree/bindings/mailbox/mailbox.txt 57 + for details). Each value of the mboxes property should contain a phandle to 58 + the mailbox controller device node and an args specifier that will be the 59 + phandle to the intended sub-mailbox child node to be used for communication. 60 + The equivalent "mbox-names" property value can be used to give a name to the 61 + communication channel to be used by the client user. 62 + 63 + $defs: 64 + omap-mbox-descriptor: 65 + $ref: /schemas/types.yaml#/definitions/uint32-array 66 + description: 67 + The omap-mbox-descriptor is made of up of 3 cells and represents a single 68 + uni-directional communication channel. A typical sub-mailbox device uses 69 + two such channels - one for transmitting (Tx) and one for receiving (Rx). 70 + items: 71 + - description: 72 + mailbox fifo id used either for transmitting on ti,mbox-tx channel or 73 + for receiving on ti,mbox-rx channel (fifo_id). This is the hardware 74 + fifo number within a mailbox cluster. 75 + - description: 76 + irq identifier index number to use from the parent's interrupts data. 77 + Should be 0 for most of the cases, a positive index value is seen only 78 + on mailboxes that have multiple interrupt lines connected to the MPU 79 + processor (irq_id). This is an index number in the listed interrupts 80 + property in the DT nodes. 81 + - description: 82 + mailbox user id for identifying the interrupt line associated with 83 + generating a tx/rx fifo interrupt (usr_id). This is the hardware 84 + user id number within a mailbox cluster. 85 + 86 + omap-sub-mailbox: 87 + type: object 88 + description: 89 + The omap-sub-mailbox is a child node within a Mailbox controller device 90 + node and represents the actual communication channel used to send and 91 + receive messages between the host processor and a remote processor. Each 92 + child node should have a unique node name across all the different mailbox 93 + device nodes. 94 + 95 + properties: 96 + ti,mbox-tx: 97 + $ref: "#/$defs/omap-mbox-descriptor" 98 + description: sub-mailbox descriptor property defining a Tx fifo. 99 + 100 + ti,mbox-rx: 101 + $ref: "#/$defs/omap-mbox-descriptor" 102 + description: sub-mailbox descriptor property defining a Rx fifo. 103 + 104 + ti,mbox-send-noirq: 105 + type: boolean 106 + description: 107 + Quirk flag to allow the client user of this sub-mailbox to send 108 + messages without triggering a Tx ready interrupt, and to control 109 + the Tx ticker. Should be used only on sub-mailboxes used to 110 + communicate with WkupM3 remote processor on AM33xx/AM43xx SoCs. 111 + 112 + required: 113 + - ti,mbox-tx 114 + - ti,mbox-rx 115 + 116 + properties: 117 + compatible: 118 + enum: 119 + - ti,omap2-mailbox # for OMAP2420, OMAP2430 SoCs 120 + - ti,omap3-mailbox # for OMAP3430, OMAP3630 SoCs 121 + - ti,omap4-mailbox # for OMAP44xx, OMAP54xx, AM33xx, AM43xx and DRA7xx SoCs 122 + - ti,am654-mailbox # for K3 AM65x, J721E and J7200 SoCs 123 + - ti,am64-mailbox # for K3 AM64x SoCs 124 + 125 + reg: 126 + maxItems: 1 127 + 128 + interrupts: 129 + description: 130 + Contains the interrupt information for the mailbox device. The format is 131 + dependent on which interrupt controller the Mailbox device uses. The 132 + number of interrupts listed will at most be the value specified in 133 + ti,mbox-num-users property, but is usually limited by the number of 134 + interrupts reaching the main processor. An interrupt-parent property 135 + is required on SoCs where the interrupt lines are connected through a 136 + Interrupt Router before reaching the main processor's GIC. 137 + 138 + "#mbox-cells": 139 + const: 1 140 + description: 141 + The specifier is a phandle to an omap-sub-mailbox device. 142 + 143 + ti,mbox-num-users: 144 + $ref: /schemas/types.yaml#/definitions/uint32 145 + description: 146 + Number of targets (processor devices) that the mailbox device can 147 + interrupt. 148 + 149 + ti,mbox-num-fifos: 150 + $ref: /schemas/types.yaml#/definitions/uint32 151 + description: Number of h/w fifo queues within the mailbox IP block. 152 + 153 + ti,hwmods: 154 + $ref: /schemas/types.yaml#/definitions/string 155 + deprecated: true 156 + description: 157 + Name of the hwmod associated with the mailbox. This should be defined 158 + in the mailbox node only if the node is not defined as a child node of 159 + a corresponding sysc interconnect node. 160 + 161 + This property is only needed on some legacy OMAP SoCs which have not 162 + yet been converted to the ti,sysc interconnect hierarachy, but is 163 + otherwise considered obsolete. 164 + 165 + patternProperties: 166 + "^mbox-[a-z0-9-]+$": 167 + $ref: "#/$defs/omap-sub-mailbox" 168 + 169 + required: 170 + - compatible 171 + - reg 172 + - interrupts 173 + - "#mbox-cells" 174 + - ti,mbox-num-users 175 + - ti,mbox-num-fifos 176 + 177 + allOf: 178 + - if: 179 + properties: 180 + compatible: 181 + enum: 182 + - ti,am654-mailbox 183 + then: 184 + required: 185 + - interrupt-parent 186 + 187 + - if: 188 + properties: 189 + compatible: 190 + enum: 191 + - ti,am654-mailbox 192 + - ti,am64-mailbox 193 + then: 194 + properties: 195 + ti,mbox-num-users: 196 + const: 4 197 + ti,mbox-num-fifos: 198 + const: 16 199 + interrupts: 200 + minItems: 1 201 + maxItems: 4 202 + 203 + - if: 204 + properties: 205 + compatible: 206 + enum: 207 + - ti,omap4-mailbox 208 + then: 209 + properties: 210 + ti,mbox-num-users: 211 + enum: [3, 4] 212 + ti,mbox-num-fifos: 213 + enum: [8, 12] 214 + interrupts: 215 + minItems: 1 216 + maxItems: 4 217 + 218 + - if: 219 + properties: 220 + compatible: 221 + enum: 222 + - ti,omap3-mailbox 223 + then: 224 + properties: 225 + ti,mbox-num-users: 226 + const: 2 227 + ti,mbox-num-fifos: 228 + const: 2 229 + interrupts: 230 + minItems: 1 231 + maxItems: 1 232 + 233 + - if: 234 + properties: 235 + compatible: 236 + enum: 237 + - ti,omap2-mailbox 238 + then: 239 + properties: 240 + ti,mbox-num-users: 241 + const: 4 242 + ti,mbox-num-fifos: 243 + const: 6 244 + interrupts: 245 + minItems: 1 246 + maxItems: 2 247 + 248 + additionalProperties: false 249 + 250 + examples: 251 + - | 252 + /* OMAP4 */ 253 + #include <dt-bindings/interrupt-controller/arm-gic.h> 254 + mailbox: mailbox@4a0f4000 { 255 + compatible = "ti,omap4-mailbox"; 256 + reg = <0x4a0f4000 0x200>; 257 + interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 258 + #mbox-cells = <1>; 259 + ti,mbox-num-users = <3>; 260 + ti,mbox-num-fifos = <8>; 261 + 262 + mbox_ipu: mbox-ipu { 263 + ti,mbox-tx = <0 0 0>; 264 + ti,mbox-rx = <1 0 0>; 265 + }; 266 + mbox_dsp: mbox-dsp { 267 + ti,mbox-tx = <3 0 0>; 268 + ti,mbox-rx = <2 0 0>; 269 + }; 270 + }; 271 + 272 + dsp { 273 + mboxes = <&mailbox &mbox_dsp>; 274 + }; 275 + 276 + - | 277 + /* AM33xx */ 278 + mailbox1: mailbox@480c8000 { 279 + compatible = "ti,omap4-mailbox"; 280 + reg = <0x480c8000 0x200>; 281 + interrupts = <77>; 282 + #mbox-cells = <1>; 283 + ti,mbox-num-users = <4>; 284 + ti,mbox-num-fifos = <8>; 285 + 286 + mbox_wkupm3: mbox-wkup-m3 { 287 + ti,mbox-tx = <0 0 0>; 288 + ti,mbox-rx = <0 0 3>; 289 + ti,mbox-send-noirq; 290 + }; 291 + }; 292 + 293 + - | 294 + /* AM65x */ 295 + mailbox0_cluster0: mailbox@31f80000 { 296 + compatible = "ti,am654-mailbox"; 297 + reg = <0x31f80000 0x200>; 298 + #mbox-cells = <1>; 299 + ti,mbox-num-users = <4>; 300 + ti,mbox-num-fifos = <16>; 301 + interrupt-parent = <&intr_main_navss>; 302 + interrupts = <436>; 303 + 304 + mbox_mcu_r5fss0_core0: mbox-mcu-r5fss0-core0 { 305 + ti,mbox-tx = <1 0 0>; 306 + ti,mbox-rx = <0 0 0>; 307 + }; 308 + };
-1
Documentation/devicetree/bindings/media/amlogic,gx-vdec.yaml
··· 67 67 68 68 clock-names: 69 69 minItems: 4 70 - maxItems: 5 71 70 items: 72 71 - const: dos_parser 73 72 - const: dos
+7 -1
Documentation/devicetree/bindings/media/i2c/adv7180.yaml
··· 36 36 maxItems: 1 37 37 38 38 port: 39 - $ref: /schemas/graph.yaml#/properties/port 39 + $ref: /schemas/graph.yaml#/$defs/port-base 40 + unevaluatedProperties: false 41 + 42 + properties: 43 + endpoint: 44 + $ref: /schemas/media/video-interfaces.yaml# 45 + unevaluatedProperties: false 40 46 41 47 ports: true 42 48
-1
Documentation/devicetree/bindings/media/i2c/adv7604.yaml
··· 30 30 31 31 reg-names: 32 32 minItems: 1 33 - maxItems: 13 34 33 items: 35 34 - const: main 36 35 - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
+1 -1
Documentation/devicetree/bindings/media/i2c/imx258.yaml
··· 49 49 50 50 # See ../video-interfaces.txt for more details 51 51 port: 52 - $ref: /schemas/graph.yaml#/properties/port 52 + $ref: /schemas/graph.yaml#/$defs/port-base 53 53 additionalProperties: false 54 54 55 55 properties:
+3 -20
Documentation/devicetree/bindings/media/i2c/maxim,max9286.yaml
··· 111 111 112 112 i2c-mux: 113 113 type: object 114 + $ref: /schemas/i2c/i2c-mux.yaml# 115 + unevaluatedProperties: false 114 116 description: | 115 - Each GMSL link is modelled as a child bus of an i2c bus 116 - multiplexer/switch, in accordance with bindings described in 117 - Documentation/devicetree/bindings/i2c/i2c-mux.txt. 118 - 119 - properties: 120 - '#address-cells': 121 - const: 1 122 - 123 - '#size-cells': 124 - const: 0 117 + Each GMSL link is modelled as a child bus of an i2c bus multiplexer/switch. 125 118 126 119 patternProperties: 127 120 "^i2c@[0-3]$": ··· 126 133 channels. 127 134 128 135 properties: 129 - '#address-cells': 130 - const: 1 131 - 132 - '#size-cells': 133 - const: 0 134 - 135 136 reg: 136 137 description: The index of the GMSL channel. 137 138 maxItems: 1 ··· 159 172 - port 160 173 161 174 additionalProperties: false 162 - 163 - additionalProperties: false 164 - 165 - additionalProperties: false 166 175 167 176 required: 168 177 - compatible
+1 -1
Documentation/devicetree/bindings/media/i2c/ovti,ov5648.yaml
··· 45 45 46 46 port: 47 47 description: MIPI CSI-2 transmitter port 48 - $ref: /schemas/graph.yaml#/properties/port 48 + $ref: /schemas/graph.yaml#/$defs/port-base 49 49 additionalProperties: false 50 50 51 51 properties:
+1 -1
Documentation/devicetree/bindings/media/i2c/ovti,ov8865.yaml
··· 45 45 46 46 port: 47 47 description: MIPI CSI-2 transmitter port 48 - $ref: /schemas/graph.yaml#/properties/port 48 + $ref: /schemas/graph.yaml#/$defs/port-base 49 49 additionalProperties: false 50 50 51 51 properties:
+1 -1
Documentation/devicetree/bindings/media/i2c/sony,imx334.yaml
··· 37 37 38 38 port: 39 39 additionalProperties: false 40 - $ref: /schemas/graph.yaml#/properties/port 40 + $ref: /schemas/graph.yaml#/$defs/port-base 41 41 42 42 properties: 43 43 endpoint:
-1
Documentation/devicetree/bindings/media/marvell,mmp2-ccic.yaml
··· 43 43 44 44 clocks: 45 45 minItems: 1 46 - maxItems: 3 47 46 items: 48 47 - description: AXI bus interface clock 49 48 - description: Peripheral clock
-1
Documentation/devicetree/bindings/media/qcom,sc7180-venus.yaml
··· 30 30 31 31 power-domain-names: 32 32 minItems: 2 33 - maxItems: 3 34 33 items: 35 34 - const: venus 36 35 - const: vcodec0
-1
Documentation/devicetree/bindings/media/qcom,sdm845-venus-v2.yaml
··· 30 30 31 31 power-domain-names: 32 32 minItems: 3 33 - maxItems: 4 34 33 items: 35 34 - const: venus 36 35 - const: vcodec0
-1
Documentation/devicetree/bindings/media/qcom,sm8250-venus.yaml
··· 30 30 31 31 power-domain-names: 32 32 minItems: 2 33 - maxItems: 3 34 33 items: 35 34 - const: venus 36 35 - const: vcodec0
-1
Documentation/devicetree/bindings/media/renesas,drif.yaml
··· 78 78 79 79 dma-names: 80 80 minItems: 1 81 - maxItems: 2 82 81 items: 83 82 - const: rx 84 83 - const: rx
+2 -1
Documentation/devicetree/bindings/media/renesas,vin.yaml
··· 120 120 121 121 properties: 122 122 port@0: 123 - $ref: /schemas/graph.yaml#/properties/port 123 + $ref: /schemas/graph.yaml#/$defs/port-base 124 + unevaluatedProperties: false 124 125 description: 125 126 Input port node, single endpoint describing a parallel input source. 126 127
+2 -4
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-common.yaml
··· 53 53 apb and smi are mandatory. the async is only for generation 1 smi HW. 54 54 gals(global async local sync) also is optional, see below. 55 55 minItems: 2 56 - maxItems: 4 57 56 items: 58 57 - description: apb is Advanced Peripheral Bus clock, It's the clock for 59 58 setting the register. 60 59 - description: smi is the clock for transfer data and command. 61 - - description: async is asynchronous clock, it help transform the smi 62 - clock into the emi clock domain. 63 - - description: gals0 is the path0 clock of gals. 60 + - description: Either asynchronous clock to help transform the smi clock 61 + into the emi clock domain on Gen1 h/w, or the path0 clock of gals. 64 62 - description: gals1 is the path1 clock of gals. 65 63 66 64 clock-names:
-1
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml
··· 37 37 description: | 38 38 apb and smi are mandatory. gals(global async local sync) is optional. 39 39 minItems: 2 40 - maxItems: 3 41 40 items: 42 41 - description: apb is Advanced Peripheral Bus clock, It's the clock for 43 42 setting the register.
-130
Documentation/devicetree/bindings/memory-controllers/nvidia,tegra20-emc.txt
··· 1 - Embedded Memory Controller 2 - 3 - Properties: 4 - - name : Should be emc 5 - - #address-cells : Should be 1 6 - - #size-cells : Should be 0 7 - - compatible : Should contain "nvidia,tegra20-emc". 8 - - reg : Offset and length of the register set for the device 9 - - nvidia,use-ram-code : If present, the sub-nodes will be addressed 10 - and chosen using the ramcode board selector. If omitted, only one 11 - set of tables can be present and said tables will be used 12 - irrespective of ram-code configuration. 13 - - interrupts : Should contain EMC General interrupt. 14 - - clocks : Should contain EMC clock. 15 - - nvidia,memory-controller : Phandle of the Memory Controller node. 16 - - #interconnect-cells : Should be 0. 17 - - operating-points-v2: See ../bindings/opp/opp.txt for details. 18 - 19 - For each opp entry in 'operating-points-v2' table: 20 - - opp-supported-hw: One bitfield indicating SoC process ID mask 21 - 22 - A bitwise AND is performed against this value and if any bit 23 - matches, the OPP gets enabled. 24 - 25 - Optional properties: 26 - - power-domains: Phandle of the SoC "core" power domain. 27 - 28 - Child device nodes describe the memory settings for different configurations and clock rates. 29 - 30 - Example: 31 - 32 - opp_table: opp-table { 33 - compatible = "operating-points-v2"; 34 - 35 - opp@36000000 { 36 - opp-microvolt = <950000 950000 1300000>; 37 - opp-hz = /bits/ 64 <36000000>; 38 - }; 39 - ... 40 - }; 41 - 42 - memory-controller@7000f400 { 43 - #address-cells = < 1 >; 44 - #size-cells = < 0 >; 45 - #interconnect-cells = <0>; 46 - compatible = "nvidia,tegra20-emc"; 47 - reg = <0x7000f400 0x400>; 48 - interrupts = <0 78 0x04>; 49 - clocks = <&tegra_car TEGRA20_CLK_EMC>; 50 - nvidia,memory-controller = <&mc>; 51 - power-domains = <&domain>; 52 - operating-points-v2 = <&opp_table>; 53 - } 54 - 55 - 56 - Embedded Memory Controller ram-code table 57 - 58 - If the emc node has the nvidia,use-ram-code property present, then the 59 - next level of nodes below the emc table are used to specify which settings 60 - apply for which ram-code settings. 61 - 62 - If the emc node lacks the nvidia,use-ram-code property, this level is omitted 63 - and the tables are stored directly under the emc node (see below). 64 - 65 - Properties: 66 - 67 - - name : Should be emc-tables 68 - - nvidia,ram-code : the binary representation of the ram-code board strappings 69 - for which this node (and children) are valid. 70 - 71 - 72 - 73 - Embedded Memory Controller configuration table 74 - 75 - This is a table containing the EMC register settings for the various 76 - operating speeds of the memory controller. They are always located as 77 - subnodes of the emc controller node. 78 - 79 - There are two ways of specifying which tables to use: 80 - 81 - * The simplest is if there is just one set of tables in the device tree, 82 - and they will always be used (based on which frequency is used). 83 - This is the preferred method, especially when firmware can fill in 84 - this information based on the specific system information and just 85 - pass it on to the kernel. 86 - 87 - * The slightly more complex one is when more than one memory configuration 88 - might exist on the system. The Tegra20 platform handles this during 89 - early boot by selecting one out of possible 4 memory settings based 90 - on a 2-pin "ram code" bootstrap setting on the board. The values of 91 - these strappings can be read through a register in the SoC, and thus 92 - used to select which tables to use. 93 - 94 - Properties: 95 - - name : Should be emc-table 96 - - compatible : Should contain "nvidia,tegra20-emc-table". 97 - - reg : either an opaque enumerator to tell different tables apart, or 98 - the valid frequency for which the table should be used (in kHz). 99 - - clock-frequency : the clock frequency for the EMC at which this 100 - table should be used (in kHz). 101 - - nvidia,emc-registers : a 46 word array of EMC registers to be programmed 102 - for operation at the 'clock-frequency' setting. 103 - The order and contents of the registers are: 104 - RC, RFC, RAS, RP, R2W, W2R, R2P, W2P, RD_RCD, WR_RCD, RRD, REXT, 105 - WDV, QUSE, QRST, QSAFE, RDV, REFRESH, BURST_REFRESH_NUM, PDEX2WR, 106 - PDEX2RD, PCHG2PDEN, ACT2PDEN, AR2PDEN, RW2PDEN, TXSR, TCKE, TFAW, 107 - TRPAB, TCLKSTABLE, TCLKSTOP, TREFBW, QUSE_EXTRA, FBIO_CFG6, ODT_WRITE, 108 - ODT_READ, FBIO_CFG5, CFG_DIG_DLL, DLL_XFORM_DQS, DLL_XFORM_QUSE, 109 - ZCAL_REF_CNT, ZCAL_WAIT_CNT, AUTO_CAL_INTERVAL, CFG_CLKTRIM_0, 110 - CFG_CLKTRIM_1, CFG_CLKTRIM_2 111 - 112 - emc-table@166000 { 113 - reg = <166000>; 114 - compatible = "nvidia,tegra20-emc-table"; 115 - clock-frequency = < 166000 >; 116 - nvidia,emc-registers = < 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 119 - 0 0 0 0 >; 120 - }; 121 - 122 - emc-table@333000 { 123 - reg = <333000>; 124 - compatible = "nvidia,tegra20-emc-table"; 125 - clock-frequency = < 333000 >; 126 - nvidia,emc-registers = < 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 - 0 0 0 0 >; 130 - };
+230
Documentation/devicetree/bindings/memory-controllers/nvidia,tegra20-emc.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/nvidia,tegra20-emc.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: NVIDIA Tegra20 SoC External Memory Controller 8 + 9 + maintainers: 10 + - Dmitry Osipenko <digetx@gmail.com> 11 + - Jon Hunter <jonathanh@nvidia.com> 12 + - Thierry Reding <thierry.reding@gmail.com> 13 + 14 + description: | 15 + The External Memory Controller (EMC) interfaces with the off-chip SDRAM to 16 + service the request stream sent from Memory Controller. The EMC also has 17 + various performance-affecting settings beyond the obvious SDRAM configuration 18 + parameters and initialization settings. Tegra20 EMC supports multiple JEDEC 19 + standard protocols: DDR1, LPDDR2 and DDR2. 20 + 21 + properties: 22 + compatible: 23 + const: nvidia,tegra20-emc 24 + 25 + reg: 26 + maxItems: 1 27 + 28 + clocks: 29 + maxItems: 1 30 + 31 + interrupts: 32 + maxItems: 1 33 + 34 + "#address-cells": 35 + const: 1 36 + 37 + "#size-cells": 38 + const: 0 39 + 40 + "#interconnect-cells": 41 + const: 0 42 + 43 + nvidia,memory-controller: 44 + $ref: /schemas/types.yaml#/definitions/phandle 45 + description: 46 + Phandle of the Memory Controller node. 47 + 48 + power-domains: 49 + maxItems: 1 50 + description: 51 + Phandle of the SoC "core" power domain. 52 + 53 + operating-points-v2: 54 + description: 55 + Should contain freqs and voltages and opp-supported-hw property, which 56 + is a bitfield indicating SoC process ID mask. 57 + 58 + nvidia,use-ram-code: 59 + type: boolean 60 + description: 61 + If present, the emc-tables@ sub-nodes will be addressed. 62 + 63 + $defs: 64 + emc-table: 65 + type: object 66 + properties: 67 + compatible: 68 + const: nvidia,tegra20-emc-table 69 + 70 + clock-frequency: 71 + description: 72 + Memory clock rate in kHz. 73 + minimum: 1000 74 + maximum: 900000 75 + 76 + reg: 77 + maxItems: 1 78 + description: 79 + Either an opaque enumerator to tell different tables apart, or 80 + the valid frequency for which the table should be used (in kHz). 81 + 82 + nvidia,emc-registers: 83 + description: 84 + EMC timing characterization data. These are the registers 85 + (see section "15.4.1 EMC Registers" in the TRM) whose values 86 + need to be specified, according to the board documentation. 87 + $ref: /schemas/types.yaml#/definitions/uint32-array 88 + items: 89 + - description: EMC_RC 90 + - description: EMC_RFC 91 + - description: EMC_RAS 92 + - description: EMC_RP 93 + - description: EMC_R2W 94 + - description: EMC_W2R 95 + - description: EMC_R2P 96 + - description: EMC_W2P 97 + - description: EMC_RD_RCD 98 + - description: EMC_WR_RCD 99 + - description: EMC_RRD 100 + - description: EMC_REXT 101 + - description: EMC_WDV 102 + - description: EMC_QUSE 103 + - description: EMC_QRST 104 + - description: EMC_QSAFE 105 + - description: EMC_RDV 106 + - description: EMC_REFRESH 107 + - description: EMC_BURST_REFRESH_NUM 108 + - description: EMC_PDEX2WR 109 + - description: EMC_PDEX2RD 110 + - description: EMC_PCHG2PDEN 111 + - description: EMC_ACT2PDEN 112 + - description: EMC_AR2PDEN 113 + - description: EMC_RW2PDEN 114 + - description: EMC_TXSR 115 + - description: EMC_TCKE 116 + - description: EMC_TFAW 117 + - description: EMC_TRPAB 118 + - description: EMC_TCLKSTABLE 119 + - description: EMC_TCLKSTOP 120 + - description: EMC_TREFBW 121 + - description: EMC_QUSE_EXTRA 122 + - description: EMC_FBIO_CFG6 123 + - description: EMC_ODT_WRITE 124 + - description: EMC_ODT_READ 125 + - description: EMC_FBIO_CFG5 126 + - description: EMC_CFG_DIG_DLL 127 + - description: EMC_DLL_XFORM_DQS 128 + - description: EMC_DLL_XFORM_QUSE 129 + - description: EMC_ZCAL_REF_CNT 130 + - description: EMC_ZCAL_WAIT_CNT 131 + - description: EMC_AUTO_CAL_INTERVAL 132 + - description: EMC_CFG_CLKTRIM_0 133 + - description: EMC_CFG_CLKTRIM_1 134 + - description: EMC_CFG_CLKTRIM_2 135 + 136 + required: 137 + - clock-frequency 138 + - compatible 139 + - reg 140 + - nvidia,emc-registers 141 + 142 + additionalProperties: false 143 + 144 + patternProperties: 145 + "^emc-table@[0-9]+$": 146 + $ref: "#/$defs/emc-table" 147 + 148 + "^emc-tables@[a-z0-9-]+$": 149 + type: object 150 + properties: 151 + reg: 152 + maxItems: 1 153 + description: 154 + An opaque enumerator to tell different tables apart. 155 + 156 + nvidia,ram-code: 157 + $ref: /schemas/types.yaml#/definitions/uint32 158 + description: 159 + Value of RAM_CODE this timing set is used for. 160 + 161 + "#address-cells": 162 + const: 1 163 + 164 + "#size-cells": 165 + const: 0 166 + 167 + patternProperties: 168 + "^emc-table@[0-9]+$": 169 + $ref: "#/$defs/emc-table" 170 + 171 + required: 172 + - nvidia,ram-code 173 + 174 + additionalProperties: false 175 + 176 + required: 177 + - compatible 178 + - reg 179 + - interrupts 180 + - clocks 181 + - nvidia,memory-controller 182 + - "#interconnect-cells" 183 + - operating-points-v2 184 + 185 + additionalProperties: false 186 + 187 + examples: 188 + - | 189 + external-memory-controller@7000f400 { 190 + compatible = "nvidia,tegra20-emc"; 191 + reg = <0x7000f400 0x400>; 192 + interrupts = <0 78 4>; 193 + clocks = <&clock_controller 57>; 194 + 195 + nvidia,memory-controller = <&mc>; 196 + operating-points-v2 = <&dvfs_opp_table>; 197 + power-domains = <&domain>; 198 + 199 + #interconnect-cells = <0>; 200 + #address-cells = <1>; 201 + #size-cells = <0>; 202 + 203 + nvidia,use-ram-code; 204 + 205 + emc-tables@0 { 206 + nvidia,ram-code = <0>; 207 + reg = <0>; 208 + 209 + #address-cells = <1>; 210 + #size-cells = <0>; 211 + 212 + emc-table@333000 { 213 + reg = <333000>; 214 + compatible = "nvidia,tegra20-emc-table"; 215 + clock-frequency = <333000>; 216 + nvidia,emc-registers = <0x00000018 0x00000033 217 + 0x00000012 0x00000004 0x00000004 0x00000005 218 + 0x00000003 0x0000000c 0x00000006 0x00000006 219 + 0x00000003 0x00000001 0x00000004 0x00000005 220 + 0x00000004 0x00000009 0x0000000d 0x00000bff 221 + 0x00000000 0x00000003 0x00000003 0x00000006 222 + 0x00000006 0x00000001 0x00000011 0x000000c8 223 + 0x00000003 0x0000000e 0x00000007 0x00000008 224 + 0x00000002 0x00000000 0x00000000 0x00000002 225 + 0x00000000 0x00000000 0x00000083 0xf0440303 226 + 0x007fe010 0x00001414 0x00000000 0x00000000 227 + 0x00000000 0x00000000 0x00000000 0x00000000>; 228 + }; 229 + }; 230 + };
+2 -2
Documentation/devicetree/bindings/mfd/motorola-cpcap.txt
··· 16 16 The sub-functions of CPCAP get their own node with their own compatible values, 17 17 which are described in the following files: 18 18 19 - - Documentation/devicetree/bindings/power/supply/cpcap-battery.txt 20 - - Documentation/devicetree/bindings/power/supply/cpcap-charger.txt 19 + - Documentation/devicetree/bindings/power/supply/cpcap-battery.yaml 20 + - Documentation/devicetree/bindings/power/supply/cpcap-charger.yaml 21 21 - Documentation/devicetree/bindings/regulator/cpcap-regulator.txt 22 22 - Documentation/devicetree/bindings/phy/phy-cpcap-usb.txt 23 23 - Documentation/devicetree/bindings/input/cpcap-pwrbutton.txt
+13 -6
Documentation/devicetree/bindings/mfd/ti,j721e-system-controller.yaml
··· 43 43 44 44 patternProperties: 45 45 # Optional children 46 - "^serdes-ln-ctrl@[0-9a-f]+$": 46 + "^mux-controller@[0-9a-f]+$": 47 47 type: object 48 - description: | 49 - This is the SERDES lane control mux. It should follow the bindings 50 - specified in 51 - Documentation/devicetree/bindings/mux/reg-mux.txt 48 + description: 49 + This is the SERDES lane control mux. 52 50 53 51 required: 54 52 - compatible ··· 66 68 #size-cells = <1>; 67 69 ranges; 68 70 69 - serdes_ln_ctrl: serdes-ln-ctrl@4080 { 71 + serdes_ln_ctrl: mux-controller@4080 { 70 72 compatible = "mmio-mux"; 71 73 reg = <0x00004080 0x50>; 74 + 75 + #mux-control-cells = <1>; 76 + mux-reg-masks = 77 + <0x4080 0x3>, <0x4084 0x3>, /* SERDES0 lane0/1 select */ 78 + <0x4090 0x3>, <0x4094 0x3>, /* SERDES1 lane0/1 select */ 79 + <0x40a0 0x3>, <0x40a4 0x3>, /* SERDES2 lane0/1 select */ 80 + <0x40b0 0x3>, <0x40b4 0x3>, /* SERDES3 lane0/1 select */ 81 + <0x40c0 0x3>, <0x40c4 0x3>, <0x40c8 0x3>, <0x40cc 0x3>; 82 + /* SERDES4 lane0/1/2/3 select */ 72 83 }; 73 84 }; 74 85 ...
-2
Documentation/devicetree/bindings/mmc/allwinner,sun4i-a10-mmc.yaml
··· 64 64 65 65 clocks: 66 66 minItems: 2 67 - maxItems: 4 68 67 items: 69 68 - description: Bus Clock 70 69 - description: Module Clock ··· 72 73 73 74 clock-names: 74 75 minItems: 2 75 - maxItems: 4 76 76 items: 77 77 - const: ahb 78 78 - const: mmc
-1
Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml
··· 116 116 117 117 pinctrl-names: 118 118 minItems: 1 119 - maxItems: 4 120 119 items: 121 120 - const: default 122 121 - const: state_100mhz
-2
Documentation/devicetree/bindings/mmc/mtk-sd.yaml
··· 38 38 description: 39 39 Should contain phandle for the clock feeding the MMC controller. 40 40 minItems: 2 41 - maxItems: 8 42 41 items: 43 42 - description: source clock (required). 44 43 - description: HCLK which used for host (required). ··· 50 51 51 52 clock-names: 52 53 minItems: 2 53 - maxItems: 8 54 54 items: 55 55 - const: source 56 56 - const: hclk
-2
Documentation/devicetree/bindings/mmc/renesas,sdhi.yaml
··· 75 75 76 76 clock-names: 77 77 minItems: 1 78 - maxItems: 2 79 78 items: 80 79 - const: core 81 80 - const: cd ··· 106 107 107 108 pinctrl-names: 108 109 minItems: 1 109 - maxItems: 2 110 110 items: 111 111 - const: default 112 112 - const: state_uhs
-1
Documentation/devicetree/bindings/mmc/sdhci-am654.yaml
··· 44 44 45 45 clock-names: 46 46 minItems: 1 47 - maxItems: 2 48 47 items: 49 48 - const: clk_ahb 50 49 - const: clk_xin
-1
Documentation/devicetree/bindings/mmc/sdhci-pxa.yaml
··· 57 57 58 58 clock-names: 59 59 minItems: 1 60 - maxItems: 2 61 60 items: 62 61 - const: io 63 62 - const: core
+2 -2
Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
··· 25 25 - power-domains:Should contain a phandle to a PM domain provider node 26 26 and an args specifier containing the MMC device id 27 27 value. This property is as per the binding, 28 - Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt 28 + Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml 29 29 - clocks: Must contain an entry for each entry in clock-names. Should 30 30 be defined as per the he appropriate clock bindings consumer 31 - usage in Documentation/devicetree/bindings/clock/ti,sci-clk.txt 31 + usage in Documentation/devicetree/bindings/clock/ti,sci-clk.yaml 32 32 - clock-names: Shall be "fck" for the functional clock, 33 33 and "mmchsdb_fck" for the debounce clock. 34 34
-26
Documentation/devicetree/bindings/mtd/arm-versatile.txt
··· 1 - Flash device on ARM Versatile board 2 - 3 - These flash chips are found in the ARM reference designs like Integrator, 4 - Versatile, RealView, Versatile Express etc. 5 - 6 - They are regular CFI compatible (Intel or AMD extended) flash chips with 7 - some special write protect/VPP bits that can be controlled by the machine's 8 - system controller. 9 - 10 - Required properties: 11 - - compatible : must be "arm,versatile-flash", "cfi-flash"; 12 - - reg : memory address for the flash chip 13 - - bank-width : width in bytes of flash interface. 14 - 15 - For the rest of the properties, see mtd-physmap.txt. 16 - 17 - The device tree may optionally contain sub-nodes describing partitions of the 18 - address space. See partition.txt for more detail. 19 - 20 - Example: 21 - 22 - flash@34000000 { 23 - compatible = "arm,versatile-flash", "cfi-flash"; 24 - reg = <0x34000000 0x4000000>; 25 - bank-width = <4>; 26 - };
+1 -1
Documentation/devicetree/bindings/mtd/cortina,gemini-flash.txt
··· 9 9 - syscon : must be a phandle to the system controller 10 10 - bank-width : width in bytes of flash interface, should be <2> 11 11 12 - For the rest of the properties, see mtd-physmap.txt. 12 + For the rest of the properties, see mtd-physmap.yaml. 13 13 14 14 The device tree may optionally contain sub-nodes describing partitions of the 15 15 address space. See partition.txt for more detail.
-13
Documentation/devicetree/bindings/mtd/cypress,hyperflash.txt
··· 1 - Bindings for HyperFlash NOR flash chips compliant with Cypress HyperBus 2 - specification and supports Cypress CFI specification 1.5 command set. 3 - 4 - Required properties: 5 - - compatible : "cypress,hyperflash", "cfi-flash" for HyperFlash NOR chips 6 - - reg : Address of flash's memory map 7 - 8 - Example: 9 - 10 - flash@0 { 11 - compatible = "cypress,hyperflash", "cfi-flash"; 12 - reg = <0x0 0x4000000>; 13 - };
-22
Documentation/devicetree/bindings/mtd/intel,ixp4xx-flash.txt
··· 1 - Flash device on Intel IXP4xx SoC 2 - 3 - This flash is regular CFI compatible (Intel or AMD extended) flash chips with 4 - specific big-endian or mixed-endian memory access pattern. 5 - 6 - Required properties: 7 - - compatible : must be "intel,ixp4xx-flash", "cfi-flash"; 8 - - reg : memory address for the flash chip 9 - - bank-width : width in bytes of flash interface, should be <2> 10 - 11 - For the rest of the properties, see mtd-physmap.txt. 12 - 13 - The device tree may optionally contain sub-nodes describing partitions of the 14 - address space. See partition.txt for more detail. 15 - 16 - Example: 17 - 18 - flash@50000000 { 19 - compatible = "intel,ixp4xx-flash", "cfi-flash"; 20 - reg = <0x50000000 0x01000000>; 21 - bank-width = <2>; 22 - };
-114
Documentation/devicetree/bindings/mtd/mtd-physmap.txt
··· 1 - CFI or JEDEC memory-mapped NOR flash, MTD-RAM (NVRAM...) 2 - 3 - Flash chips (Memory Technology Devices) are often used for solid state 4 - file systems on embedded devices. 5 - 6 - - compatible : should contain the specific model of mtd chip(s) 7 - used, if known, followed by either "cfi-flash", "jedec-flash", 8 - "mtd-ram" or "mtd-rom". 9 - - reg : Address range(s) of the mtd chip(s) 10 - It's possible to (optionally) define multiple "reg" tuples so that 11 - non-identical chips can be described in one node. 12 - - bank-width : Width (in bytes) of the bank. Equal to the 13 - device width times the number of interleaved chips. 14 - - device-width : (optional) Width of a single mtd chip. If 15 - omitted, assumed to be equal to 'bank-width'. 16 - - #address-cells, #size-cells : Must be present if the device has 17 - sub-nodes representing partitions (see below). In this case 18 - both #address-cells and #size-cells must be equal to 1. 19 - - no-unaligned-direct-access: boolean to disable the default direct 20 - mapping of the flash. 21 - On some platforms (e.g. MPC5200) a direct 1:1 mapping may cause 22 - problems with JFFS2 usage, as the local bus (LPB) doesn't support 23 - unaligned accesses as implemented in the JFFS2 code via memcpy(). 24 - By defining "no-unaligned-direct-access", the flash will not be 25 - exposed directly to the MTD users (e.g. JFFS2) any more. 26 - - linux,mtd-name: allow to specify the mtd name for retro capability with 27 - physmap-flash drivers as boot loader pass the mtd partition via the old 28 - device name physmap-flash. 29 - - use-advanced-sector-protection: boolean to enable support for the 30 - advanced sector protection (Spansion: PPB - Persistent Protection 31 - Bits) locking. 32 - - addr-gpios : (optional) List of GPIO descriptors that will be used to 33 - address the MSBs address lines. The order goes from LSB to MSB. 34 - 35 - For JEDEC compatible devices, the following additional properties 36 - are defined: 37 - 38 - - vendor-id : Contains the flash chip's vendor id (1 byte). 39 - - device-id : Contains the flash chip's device id (1 byte). 40 - 41 - For ROM compatible devices (and ROM fallback from cfi-flash), the following 42 - additional (optional) property is defined: 43 - 44 - - erase-size : The chip's physical erase block size in bytes. 45 - 46 - The device tree may optionally contain endianness property. 47 - little-endian or big-endian : It Represents the endianness that should be used 48 - by the controller to properly read/write data 49 - from/to the flash. If this property is missing, 50 - the endianness is chosen by the system 51 - (potentially based on extra configuration options). 52 - 53 - The device tree may optionally contain sub-nodes describing partitions of the 54 - address space. See partition.txt for more detail. 55 - 56 - Example: 57 - 58 - flash@ff000000 { 59 - compatible = "amd,am29lv128ml", "cfi-flash"; 60 - reg = <ff000000 01000000>; 61 - bank-width = <4>; 62 - device-width = <1>; 63 - #address-cells = <1>; 64 - #size-cells = <1>; 65 - fs@0 { 66 - label = "fs"; 67 - reg = <0 f80000>; 68 - }; 69 - firmware@f80000 { 70 - label ="firmware"; 71 - reg = <f80000 80000>; 72 - read-only; 73 - }; 74 - }; 75 - 76 - Here an example with multiple "reg" tuples: 77 - 78 - flash@f0000000,0 { 79 - #address-cells = <1>; 80 - #size-cells = <1>; 81 - compatible = "intel,PC48F4400P0VB", "cfi-flash"; 82 - reg = <0 0x00000000 0x02000000 83 - 0 0x02000000 0x02000000>; 84 - bank-width = <2>; 85 - partition@0 { 86 - label = "test-part1"; 87 - reg = <0 0x04000000>; 88 - }; 89 - }; 90 - 91 - An example using SRAM: 92 - 93 - sram@2,0 { 94 - compatible = "samsung,k6f1616u6a", "mtd-ram"; 95 - reg = <2 0 0x00200000>; 96 - bank-width = <2>; 97 - }; 98 - 99 - An example using gpio-addrs 100 - 101 - flash@20000000 { 102 - #address-cells = <1>; 103 - #size-cells = <1>; 104 - compatible = "cfi-flash", "jedec-flash"; 105 - reg = <0x20000000 0x02000000>; 106 - ranges = <0 0x00000000 0x02000000 107 - 1 0x02000000 0x02000000>; 108 - bank-width = <2>; 109 - addr-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>; 110 - partition@0 { 111 - label = "test-part1"; 112 - reg = <0 0x04000000>; 113 - }; 114 - };
+208
Documentation/devicetree/bindings/mtd/mtd-physmap.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/mtd/mtd-physmap.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: CFI or JEDEC memory-mapped NOR flash, MTD-RAM (NVRAM...) 8 + 9 + maintainers: 10 + - Rob Herring <robh@kernel.org> 11 + 12 + description: | 13 + Flash chips (Memory Technology Devices) are often used for solid state 14 + file systems on embedded devices. 15 + 16 + properties: 17 + compatible: 18 + oneOf: 19 + - items: 20 + - enum: 21 + - amd,s29gl01gp 22 + - amd,s29gl032a 23 + - amd,s29gl256n 24 + - amd,s29gl512n 25 + - arm,versatile-flash 26 + - cortina,gemini-flash 27 + - cypress,hyperflash 28 + - ge,imp3a-firmware-mirror 29 + - ge,imp3a-paged-flash 30 + - gef,ppc9a-firmware-mirror 31 + - gef,ppc9a-paged-flash 32 + - gef,sbc310-firmware-mirror 33 + - gef,sbc310-paged-flash 34 + - gef,sbc610-firmware-mirror 35 + - gef,sbc610-paged-flash 36 + - intel,28f128j3 37 + - intel,dt28f160 38 + - intel,ixp4xx-flash 39 + - intel,JS28F128 40 + - intel,JS28F640 41 + - intel,PC28F640P30T85 42 + - numonyx,js28f00a 43 + - numonyx,js28f128 44 + - sst,sst39vf320 45 + - xlnx,xps-mch-emc-2.00.a 46 + - const: cfi-flash 47 + - items: 48 + - enum: 49 + - cypress,cy7c1019dv33-10zsxi 50 + - arm,vexpress-psram 51 + - const: mtd-ram 52 + - enum: 53 + - cfi-flash 54 + - jedec-flash 55 + - mtd-ram 56 + - mtd-rom 57 + 58 + reg: 59 + description: | 60 + It's possible to (optionally) define multiple "reg" tuples so that 61 + non-identical chips can be described in one node. 62 + minItems: 1 63 + maxItems: 8 64 + 65 + bank-width: 66 + description: Width (in bytes) of the bank. Equal to the device width times 67 + the number of interleaved chips. 68 + $ref: /schemas/types.yaml#/definitions/uint32 69 + enum: [ 1, 2, 4 ] 70 + 71 + device-width: 72 + description: 73 + Width of a single mtd chip. If omitted, assumed to be equal to 'bank-width'. 74 + $ref: /schemas/types.yaml#/definitions/uint32 75 + enum: [ 1, 2 ] 76 + 77 + no-unaligned-direct-access: 78 + type: boolean 79 + description: | 80 + Disables the default direct mapping of the flash. 81 + 82 + On some platforms (e.g. MPC5200) a direct 1:1 mapping may cause problems 83 + with JFFS2 usage, as the local bus (LPB) doesn't support unaligned 84 + accesses as implemented in the JFFS2 code via memcpy(). By defining 85 + "no-unaligned-direct-access", the flash will not be exposed directly to 86 + the MTD users (e.g. JFFS2) any more. 87 + 88 + linux,mtd-name: 89 + description: 90 + Allows specifying the mtd name for retro capability with physmap-flash 91 + drivers as boot loader pass the mtd partition via the old device name 92 + physmap-flash. 93 + $ref: /schemas/types.yaml#/definitions/string 94 + 95 + use-advanced-sector-protection: 96 + type: boolean 97 + description: | 98 + Enables support for the advanced sector protection (Spansion: PPB - 99 + Persistent Protection Bits) locking. 100 + 101 + erase-size: 102 + description: The chip's physical erase block size in bytes. 103 + $ref: /schemas/types.yaml#/definitions/uint32 104 + 105 + addr-gpios: 106 + description: 107 + List of GPIO descriptors that will be used to address the MSBs address 108 + lines. The order goes from LSB to MSB. 109 + minItems: 1 110 + maxItems: 8 111 + 112 + '#address-cells': 113 + const: 1 114 + 115 + '#size-cells': 116 + const: 1 117 + 118 + big-endian: true 119 + little-endian: true 120 + 121 + patternProperties: 122 + '@[0-9a-f]+$': 123 + $ref: partitions/partition.yaml 124 + 125 + required: 126 + - compatible 127 + - reg 128 + 129 + # FIXME: A parent bus may define timing properties 130 + additionalProperties: true 131 + 132 + examples: 133 + - | 134 + 135 + flash@ff000000 { 136 + compatible = "cfi-flash"; 137 + reg = <0xff000000 0x01000000>; 138 + bank-width = <4>; 139 + device-width = <1>; 140 + 141 + #address-cells = <1>; 142 + #size-cells = <1>; 143 + ranges = <0 0xff000000 0x01000000>; 144 + 145 + fs@0 { 146 + label = "fs"; 147 + reg = <0 0xf80000>; 148 + }; 149 + firmware@f80000 { 150 + label ="firmware"; 151 + reg = <0xf80000 0x80000>; 152 + read-only; 153 + }; 154 + }; 155 + 156 + - | 157 + /* An example with multiple "reg" tuples */ 158 + 159 + flash@0 { 160 + compatible = "intel,PC28F640P30T85", "cfi-flash"; 161 + reg = <0x00000000 0x02000000>, 162 + <0x02000000 0x02000000>; 163 + bank-width = <2>; 164 + 165 + #address-cells = <1>; 166 + #size-cells = <1>; 167 + ranges = <0 0 0x04000000>; 168 + 169 + partition@0 { 170 + label = "test-part1"; 171 + reg = <0 0x04000000>; 172 + }; 173 + }; 174 + 175 + - | 176 + /* An example using SRAM */ 177 + bus { 178 + #address-cells = <2>; 179 + #size-cells = <1>; 180 + 181 + sram@2,0 { 182 + compatible = "mtd-ram"; 183 + reg = <2 0 0x00200000>; 184 + bank-width = <2>; 185 + }; 186 + }; 187 + 188 + - | 189 + /* An example using addr-gpios */ 190 + #include <dt-bindings/gpio/gpio.h> 191 + 192 + flash@20000000 { 193 + compatible = "cfi-flash"; 194 + reg = <0x20000000 0x02000000>; 195 + bank-width = <2>; 196 + addr-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>; 197 + 198 + #address-cells = <1>; 199 + #size-cells = <1>; 200 + ranges = <0 0x00000000 0x02000000>, 201 + <1 0x02000000 0x02000000>; 202 + 203 + partition@0 { 204 + label = "test-part1"; 205 + reg = <0 0x04000000>; 206 + }; 207 + }; 208 + ...
+1 -1
Documentation/devicetree/bindings/mtd/ti,am654-hbmc.txt
··· 13 13 - mux-controls : phandle to the multiplexer that controls selection of 14 14 HBMC vs OSPI inside Flash SubSystem (FSS). Default is OSPI, 15 15 if property is absent. 16 - See Documentation/devicetree/bindings/mux/reg-mux.txt 16 + See Documentation/devicetree/bindings/mux/reg-mux.yaml 17 17 for mmio-mux binding details 18 18 19 19 Example:
+1 -1
Documentation/devicetree/bindings/mux/adi,adg792a.txt
··· 5 5 - #mux-control-cells : <0> if parallel (the three muxes are bound together 6 6 with a single mux controller controlling all three muxes), or <1> if 7 7 not (one mux controller for each mux). 8 - * Standard mux-controller bindings as described in mux-controller.txt 8 + * Standard mux-controller bindings as described in mux-controller.yaml 9 9 10 10 Optional properties for ADG792G: 11 11 - gpio-controller : if present, #gpio-cells below is required.
+1 -1
Documentation/devicetree/bindings/mux/adi,adgs1408.txt
··· 4 4 - compatible : Should be one of 5 5 * "adi,adgs1408" 6 6 * "adi,adgs1409" 7 - * Standard mux-controller bindings as described in mux-controller.txt 7 + * Standard mux-controller bindings as described in mux-controller.yaml 8 8 9 9 Optional properties for ADGS1408/1409: 10 10 - gpio-controller : if present, #gpio-cells is required.
-69
Documentation/devicetree/bindings/mux/gpio-mux.txt
··· 1 - GPIO-based multiplexer controller bindings 2 - 3 - Define what GPIO pins are used to control a multiplexer. Or several 4 - multiplexers, if the same pins control more than one multiplexer. 5 - 6 - Required properties: 7 - - compatible : "gpio-mux" 8 - - mux-gpios : list of gpios used to control the multiplexer, least 9 - significant bit first. 10 - - #mux-control-cells : <0> 11 - * Standard mux-controller bindings as decribed in mux-controller.txt 12 - 13 - Optional properties: 14 - - idle-state : if present, the state the mux will have when idle. The 15 - special state MUX_IDLE_AS_IS is the default. 16 - 17 - The multiplexer state is defined as the number represented by the 18 - multiplexer GPIO pins, where the first pin is the least significant 19 - bit. An active pin is a binary 1, an inactive pin is a binary 0. 20 - 21 - Example: 22 - 23 - mux: mux-controller { 24 - compatible = "gpio-mux"; 25 - #mux-control-cells = <0>; 26 - 27 - mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>, 28 - <&pioA 1 GPIO_ACTIVE_HIGH>; 29 - }; 30 - 31 - adc-mux { 32 - compatible = "io-channel-mux"; 33 - io-channels = <&adc 0>; 34 - io-channel-names = "parent"; 35 - 36 - mux-controls = <&mux>; 37 - 38 - channels = "sync-1", "in", "out", "sync-2"; 39 - }; 40 - 41 - i2c-mux { 42 - compatible = "i2c-mux"; 43 - i2c-parent = <&i2c1>; 44 - 45 - mux-controls = <&mux>; 46 - 47 - #address-cells = <1>; 48 - #size-cells = <0>; 49 - 50 - i2c@0 { 51 - reg = <0>; 52 - #address-cells = <1>; 53 - #size-cells = <0>; 54 - 55 - ssd1307: oled@3c { 56 - /* ... */ 57 - }; 58 - }; 59 - 60 - i2c@3 { 61 - reg = <3>; 62 - #address-cells = <1>; 63 - #size-cells = <0>; 64 - 65 - pca9555: pca9555@20 { 66 - /* ... */ 67 - }; 68 - }; 69 - };
+92
Documentation/devicetree/bindings/mux/gpio-mux.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/mux/gpio-mux.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: GPIO-based multiplexer controller bindings 8 + 9 + maintainers: 10 + - Peter Rosin <peda@axentia.se> 11 + 12 + description: |+ 13 + Define what GPIO pins are used to control a multiplexer. Or several 14 + multiplexers, if the same pins control more than one multiplexer. 15 + 16 + The multiplexer state is defined as the number represented by the 17 + multiplexer GPIO pins, where the first pin is the least significant 18 + bit. An active pin is a binary 1, an inactive pin is a binary 0. 19 + 20 + properties: 21 + compatible: 22 + const: gpio-mux 23 + 24 + mux-gpios: 25 + description: 26 + List of gpios used to control the multiplexer, least significant bit first. 27 + 28 + '#mux-control-cells': 29 + const: 0 30 + 31 + idle-state: 32 + default: -1 33 + 34 + required: 35 + - compatible 36 + - mux-gpios 37 + - "#mux-control-cells" 38 + 39 + additionalProperties: false 40 + 41 + examples: 42 + - | 43 + #include <dt-bindings/gpio/gpio.h> 44 + 45 + mux: mux-controller { 46 + compatible = "gpio-mux"; 47 + #mux-control-cells = <0>; 48 + 49 + mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>, 50 + <&pioA 1 GPIO_ACTIVE_HIGH>; 51 + }; 52 + 53 + adc-mux { 54 + compatible = "io-channel-mux"; 55 + io-channels = <&adc 0>; 56 + io-channel-names = "parent"; 57 + 58 + mux-controls = <&mux>; 59 + 60 + channels = "sync-1", "in", "out", "sync-2"; 61 + }; 62 + 63 + i2c-mux { 64 + compatible = "i2c-mux"; 65 + i2c-parent = <&i2c1>; 66 + 67 + mux-controls = <&mux>; 68 + 69 + #address-cells = <1>; 70 + #size-cells = <0>; 71 + 72 + i2c@0 { 73 + reg = <0>; 74 + #address-cells = <1>; 75 + #size-cells = <0>; 76 + 77 + ssd1307: oled@3c { 78 + reg = <0x3c>; 79 + }; 80 + }; 81 + 82 + i2c@3 { 83 + reg = <3>; 84 + #address-cells = <1>; 85 + #size-cells = <0>; 86 + 87 + pca9555: pca9555@20 { 88 + reg = <0x20>; 89 + }; 90 + }; 91 + }; 92 + ...
+46
Documentation/devicetree/bindings/mux/mux-consumer.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/mux/mux-consumer.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Common multiplexer controller consumer bindings 8 + 9 + maintainers: 10 + - Peter Rosin <peda@axentia.se> 11 + 12 + description: | 13 + Mux controller consumers should specify a list of mux controllers that they 14 + want to use with a property containing a 'mux-ctrl-list': 15 + 16 + mux-ctrl-list ::= <single-mux-ctrl> [mux-ctrl-list] 17 + single-mux-ctrl ::= <mux-ctrl-phandle> [mux-ctrl-specifier] 18 + mux-ctrl-phandle : phandle to mux controller node 19 + mux-ctrl-specifier : array of #mux-control-cells specifying the 20 + given mux controller (controller specific) 21 + 22 + Mux controller properties should be named "mux-controls". The exact meaning of 23 + each mux controller property must be documented in the device tree binding for 24 + each consumer. An optional property "mux-control-names" may contain a list of 25 + strings to label each of the mux controllers listed in the "mux-controls" 26 + property. 27 + 28 + mux-ctrl-specifier typically encodes the chip-relative mux controller number. 29 + If the mux controller chip only provides a single mux controller, the 30 + mux-ctrl-specifier can typically be left out. 31 + 32 + select: true 33 + 34 + properties: 35 + mux-controls: 36 + $ref: /schemas/types.yaml#/definitions/phandle-array 37 + 38 + mux-control-names: 39 + description: 40 + Devices that use more than a single mux controller can use the 41 + "mux-control-names" property to map the name of the requested mux 42 + controller to an index into the list given by the "mux-controls" property. 43 + 44 + additionalProperties: true 45 + 46 + ...
-157
Documentation/devicetree/bindings/mux/mux-controller.txt
··· 1 - Common multiplexer controller bindings 2 - ====================================== 3 - 4 - A multiplexer (or mux) controller will have one, or several, consumer devices 5 - that uses the mux controller. Thus, a mux controller can possibly control 6 - several parallel multiplexers. Presumably there will be at least one 7 - multiplexer needed by each consumer, but a single mux controller can of course 8 - control several multiplexers for a single consumer. 9 - 10 - A mux controller provides a number of states to its consumers, and the state 11 - space is a simple zero-based enumeration. I.e. 0-1 for a 2-way multiplexer, 12 - 0-7 for an 8-way multiplexer, etc. 13 - 14 - 15 - Consumers 16 - --------- 17 - 18 - Mux controller consumers should specify a list of mux controllers that they 19 - want to use with a property containing a 'mux-ctrl-list': 20 - 21 - mux-ctrl-list ::= <single-mux-ctrl> [mux-ctrl-list] 22 - single-mux-ctrl ::= <mux-ctrl-phandle> [mux-ctrl-specifier] 23 - mux-ctrl-phandle : phandle to mux controller node 24 - mux-ctrl-specifier : array of #mux-control-cells specifying the 25 - given mux controller (controller specific) 26 - 27 - Mux controller properties should be named "mux-controls". The exact meaning of 28 - each mux controller property must be documented in the device tree binding for 29 - each consumer. An optional property "mux-control-names" may contain a list of 30 - strings to label each of the mux controllers listed in the "mux-controls" 31 - property. 32 - 33 - Drivers for devices that use more than a single mux controller can use the 34 - "mux-control-names" property to map the name of the requested mux controller 35 - to an index into the list given by the "mux-controls" property. 36 - 37 - mux-ctrl-specifier typically encodes the chip-relative mux controller number. 38 - If the mux controller chip only provides a single mux controller, the 39 - mux-ctrl-specifier can typically be left out. 40 - 41 - Example: 42 - 43 - /* One consumer of a 2-way mux controller (one GPIO-line) */ 44 - mux: mux-controller { 45 - compatible = "gpio-mux"; 46 - #mux-control-cells = <0>; 47 - 48 - mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>; 49 - }; 50 - 51 - adc-mux { 52 - compatible = "io-channel-mux"; 53 - io-channels = <&adc 0>; 54 - io-channel-names = "parent"; 55 - 56 - mux-controls = <&mux>; 57 - mux-control-names = "adc"; 58 - 59 - channels = "sync", "in"; 60 - }; 61 - 62 - Note that in the example above, specifying the "mux-control-names" is redundant 63 - because there is only one mux controller in the list. However, if the driver 64 - for the consumer node in fact asks for a named mux controller, that name is of 65 - course still required. 66 - 67 - /* 68 - * Two consumers (one for an ADC line and one for an i2c bus) of 69 - * parallel 4-way multiplexers controlled by the same two GPIO-lines. 70 - */ 71 - mux: mux-controller { 72 - compatible = "gpio-mux"; 73 - #mux-control-cells = <0>; 74 - 75 - mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>, 76 - <&pioA 1 GPIO_ACTIVE_HIGH>; 77 - }; 78 - 79 - adc-mux { 80 - compatible = "io-channel-mux"; 81 - io-channels = <&adc 0>; 82 - io-channel-names = "parent"; 83 - 84 - mux-controls = <&mux>; 85 - 86 - channels = "sync-1", "in", "out", "sync-2"; 87 - }; 88 - 89 - i2c-mux { 90 - compatible = "i2c-mux"; 91 - i2c-parent = <&i2c1>; 92 - 93 - mux-controls = <&mux>; 94 - 95 - #address-cells = <1>; 96 - #size-cells = <0>; 97 - 98 - i2c@0 { 99 - reg = <0>; 100 - #address-cells = <1>; 101 - #size-cells = <0>; 102 - 103 - ssd1307: oled@3c { 104 - /* ... */ 105 - }; 106 - }; 107 - 108 - i2c@3 { 109 - reg = <3>; 110 - #address-cells = <1>; 111 - #size-cells = <0>; 112 - 113 - pca9555: pca9555@20 { 114 - /* ... */ 115 - }; 116 - }; 117 - }; 118 - 119 - 120 - Mux controller nodes 121 - -------------------- 122 - 123 - Mux controller nodes must specify the number of cells used for the 124 - specifier using the '#mux-control-cells' property. 125 - 126 - Optionally, mux controller nodes can also specify the state the mux should 127 - have when it is idle. The idle-state property is used for this. If the 128 - idle-state is not present, the mux controller is typically left as is when 129 - it is idle. For multiplexer chips that expose several mux controllers, the 130 - idle-state property is an array with one idle state for each mux controller. 131 - 132 - The special value (-1) may be used to indicate that the mux should be left 133 - as is when it is idle. This is the default, but can still be useful for 134 - mux controller chips with more than one mux controller, particularly when 135 - there is a need to "step past" a mux controller and set some other idle 136 - state for a mux controller with a higher index. 137 - 138 - Some mux controllers have the ability to disconnect the input/output of the 139 - multiplexer. Using this disconnected high-impedance state as the idle state 140 - is indicated with idle state (-2). 141 - 142 - These constants are available in 143 - 144 - #include <dt-bindings/mux/mux.h> 145 - 146 - as MUX_IDLE_AS_IS (-1) and MUX_IDLE_DISCONNECT (-2). 147 - 148 - An example mux controller node look like this (the adg972a chip is a triple 149 - 4-way multiplexer): 150 - 151 - mux: mux-controller@50 { 152 - compatible = "adi,adg792a"; 153 - reg = <0x50>; 154 - #mux-control-cells = <1>; 155 - 156 - idle-state = <MUX_IDLE_DISCONNECT MUX_IDLE_AS_IS 2>; 157 - };
+182
Documentation/devicetree/bindings/mux/mux-controller.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/mux/mux-controller.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Common multiplexer controller provider bindings 8 + 9 + maintainers: 10 + - Peter Rosin <peda@axentia.se> 11 + 12 + description: | 13 + A multiplexer (or mux) controller will have one, or several, consumer devices 14 + that uses the mux controller. Thus, a mux controller can possibly control 15 + several parallel multiplexers. Presumably there will be at least one 16 + multiplexer needed by each consumer, but a single mux controller can of course 17 + control several multiplexers for a single consumer. 18 + 19 + A mux controller provides a number of states to its consumers, and the state 20 + space is a simple zero-based enumeration. I.e. 0-1 for a 2-way multiplexer, 21 + 0-7 for an 8-way multiplexer, etc. 22 + 23 + 24 + Mux controller nodes 25 + -------------------- 26 + 27 + Mux controller nodes must specify the number of cells used for the 28 + specifier using the '#mux-control-cells' property. 29 + 30 + Optionally, mux controller nodes can also specify the state the mux should 31 + have when it is idle. The idle-state property is used for this. If the 32 + idle-state is not present, the mux controller is typically left as is when 33 + it is idle. For multiplexer chips that expose several mux controllers, the 34 + idle-state property is an array with one idle state for each mux controller. 35 + 36 + The special value (-1) may be used to indicate that the mux should be left 37 + as is when it is idle. This is the default, but can still be useful for 38 + mux controller chips with more than one mux controller, particularly when 39 + there is a need to "step past" a mux controller and set some other idle 40 + state for a mux controller with a higher index. 41 + 42 + Some mux controllers have the ability to disconnect the input/output of the 43 + multiplexer. Using this disconnected high-impedance state as the idle state 44 + is indicated with idle state (-2). 45 + 46 + These constants are available in 47 + 48 + #include <dt-bindings/mux/mux.h> 49 + 50 + as MUX_IDLE_AS_IS (-1) and MUX_IDLE_DISCONNECT (-2). 51 + 52 + An example mux controller node look like this (the adg972a chip is a triple 53 + 4-way multiplexer): 54 + 55 + mux: mux-controller@50 { 56 + compatible = "adi,adg792a"; 57 + reg = <0x50>; 58 + #mux-control-cells = <1>; 59 + 60 + idle-state = <MUX_IDLE_DISCONNECT MUX_IDLE_AS_IS 2>; 61 + }; 62 + 63 + select: 64 + anyOf: 65 + - properties: 66 + $nodename: 67 + pattern: '^mux-controller' 68 + - required: 69 + - '#mux-control-cells' 70 + 71 + properties: 72 + $nodename: 73 + pattern: '^mux-controller(@.*|-[0-9a-f]+)?$' 74 + 75 + '#mux-control-cells': 76 + enum: [ 0, 1 ] 77 + 78 + idle-state: 79 + $ref: /schemas/types.yaml#/definitions/int32 80 + minimum: -2 81 + 82 + idle-states: 83 + description: | 84 + Mux controller nodes can specify the state the mux should have when it is 85 + idle. If the idle-state is not present, the mux controller is typically 86 + left as is when it is idle. For multiplexer chips that expose several mux 87 + controllers, the idle-state property is an array with one idle state for 88 + each mux controller. 89 + 90 + The special value (-1) may be used to indicate that the mux should be left 91 + as is when it is idle. This is the default, but can still be useful for 92 + mux controller chips with more than one mux controller, particularly when 93 + there is a need to "step past" a mux controller and set some other idle 94 + state for a mux controller with a higher index. 95 + 96 + Some mux controllers have the ability to disconnect the input/output of the 97 + multiplexer. Using this disconnected high-impedance state as the idle state 98 + is indicated with idle state (-2). 99 + $ref: /schemas/types.yaml#/definitions/int32-array 100 + items: 101 + minimum: -2 102 + 103 + additionalProperties: true 104 + 105 + examples: 106 + - | 107 + #include <dt-bindings/gpio/gpio.h> 108 + 109 + /* One consumer of a 2-way mux controller (one GPIO-line) */ 110 + mux: mux-controller { 111 + compatible = "gpio-mux"; 112 + #mux-control-cells = <0>; 113 + 114 + mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>; 115 + }; 116 + 117 + adc-mux { 118 + compatible = "io-channel-mux"; 119 + io-channels = <&adc 0>; 120 + io-channel-names = "parent"; 121 + 122 + mux-controls = <&mux>; 123 + mux-control-names = "adc"; 124 + 125 + channels = "sync", "in"; 126 + }; 127 + 128 + - | 129 + #include <dt-bindings/gpio/gpio.h> 130 + 131 + /* 132 + * Two consumers (one for an ADC line and one for an i2c bus) of 133 + * parallel 4-way multiplexers controlled by the same two GPIO-lines. 134 + */ 135 + mux2: mux-controller { 136 + compatible = "gpio-mux"; 137 + #mux-control-cells = <0>; 138 + 139 + mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>, 140 + <&pioA 1 GPIO_ACTIVE_HIGH>; 141 + }; 142 + 143 + adc-mux { 144 + compatible = "io-channel-mux"; 145 + io-channels = <&adc 0>; 146 + io-channel-names = "parent"; 147 + 148 + mux-controls = <&mux2>; 149 + 150 + channels = "sync-1", "in", "out", "sync-2"; 151 + }; 152 + 153 + i2c-mux { 154 + compatible = "i2c-mux"; 155 + i2c-parent = <&i2c1>; 156 + 157 + mux-controls = <&mux2>; 158 + 159 + #address-cells = <1>; 160 + #size-cells = <0>; 161 + 162 + i2c@0 { 163 + reg = <0>; 164 + #address-cells = <1>; 165 + #size-cells = <0>; 166 + 167 + ssd1307: oled@3c { 168 + reg = <0x3c>; 169 + }; 170 + }; 171 + 172 + i2c@3 { 173 + reg = <3>; 174 + #address-cells = <1>; 175 + #size-cells = <0>; 176 + 177 + pca9555: pca9555@20 { 178 + reg = <0x20>; 179 + }; 180 + }; 181 + }; 182 + ...
-129
Documentation/devicetree/bindings/mux/reg-mux.txt
··· 1 - Generic register bitfield-based multiplexer controller bindings 2 - 3 - Define register bitfields to be used to control multiplexers. The parent 4 - device tree node must be a device node to provide register r/w access. 5 - 6 - Required properties: 7 - - compatible : should be one of 8 - "reg-mux" : if parent device of mux controller is not syscon device 9 - "mmio-mux" : if parent device of mux controller is syscon device 10 - - #mux-control-cells : <1> 11 - - mux-reg-masks : an array of register offset and pre-shifted bitfield mask 12 - pairs, each describing a single mux control. 13 - * Standard mux-controller bindings as decribed in mux-controller.txt 14 - 15 - Optional properties: 16 - - idle-states : if present, the state the muxes will have when idle. The 17 - special state MUX_IDLE_AS_IS is the default. 18 - 19 - The multiplexer state of each multiplexer is defined as the value of the 20 - bitfield described by the corresponding register offset and bitfield mask 21 - pair in the mux-reg-masks array. 22 - 23 - Example 1: 24 - The parent device of mux controller is not a syscon device. 25 - 26 - &i2c0 { 27 - fpga@66 { // fpga connected to i2c 28 - compatible = "fsl,lx2160aqds-fpga", "fsl,fpga-qixis-i2c", 29 - "simple-mfd"; 30 - reg = <0x66>; 31 - 32 - mux: mux-controller { 33 - compatible = "reg-mux"; 34 - #mux-control-cells = <1>; 35 - mux-reg-masks = <0x54 0xf8>, /* 0: reg 0x54, bits 7:3 */ 36 - <0x54 0x07>; /* 1: reg 0x54, bits 2:0 */ 37 - }; 38 - }; 39 - }; 40 - 41 - mdio-mux-1 { 42 - compatible = "mdio-mux-multiplexer"; 43 - mux-controls = <&mux 0>; 44 - mdio-parent-bus = <&emdio1>; 45 - #address-cells = <1>; 46 - #size-cells = <0>; 47 - 48 - mdio@0 { 49 - reg = <0x0>; 50 - #address-cells = <1>; 51 - #size-cells = <0>; 52 - }; 53 - 54 - mdio@8 { 55 - reg = <0x8>; 56 - #address-cells = <1>; 57 - #size-cells = <0>; 58 - }; 59 - 60 - .. 61 - .. 62 - }; 63 - 64 - mdio-mux-2 { 65 - compatible = "mdio-mux-multiplexer"; 66 - mux-controls = <&mux 1>; 67 - mdio-parent-bus = <&emdio2>; 68 - #address-cells = <1>; 69 - #size-cells = <0>; 70 - 71 - mdio@0 { 72 - reg = <0x0>; 73 - #address-cells = <1>; 74 - #size-cells = <0>; 75 - }; 76 - 77 - mdio@1 { 78 - reg = <0x1>; 79 - #address-cells = <1>; 80 - #size-cells = <0>; 81 - }; 82 - 83 - .. 84 - .. 85 - }; 86 - 87 - Example 2: 88 - The parent device of mux controller is syscon device. 89 - 90 - syscon { 91 - compatible = "syscon"; 92 - 93 - mux: mux-controller { 94 - compatible = "mmio-mux"; 95 - #mux-control-cells = <1>; 96 - 97 - mux-reg-masks = <0x3 0x30>, /* 0: reg 0x3, bits 5:4 */ 98 - <0x3 0x40>, /* 1: reg 0x3, bit 6 */ 99 - idle-states = <MUX_IDLE_AS_IS>, <0>; 100 - }; 101 - }; 102 - 103 - video-mux { 104 - compatible = "video-mux"; 105 - mux-controls = <&mux 0>; 106 - #address-cells = <1>; 107 - #size-cells = <0>; 108 - 109 - ports { 110 - /* inputs 0..3 */ 111 - port@0 { 112 - reg = <0>; 113 - }; 114 - port@1 { 115 - reg = <1>; 116 - }; 117 - port@2 { 118 - reg = <2>; 119 - }; 120 - port@3 { 121 - reg = <3>; 122 - }; 123 - 124 - /* output */ 125 - port@4 { 126 - reg = <4>; 127 - }; 128 - }; 129 - };
+143
Documentation/devicetree/bindings/mux/reg-mux.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/mux/reg-mux.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Generic register bitfield-based multiplexer controller bindings 8 + 9 + maintainers: 10 + - Peter Rosin <peda@axentia.se> 11 + 12 + description: |+ 13 + Define register bitfields to be used to control multiplexers. The parent 14 + device tree node must be a device node to provide register r/w access. 15 + 16 + properties: 17 + compatible: 18 + enum: 19 + - reg-mux # parent device of mux controller is not syscon device 20 + - mmio-mux # parent device of mux controller is syscon device 21 + 22 + reg: true 23 + 24 + '#mux-control-cells': 25 + const: 1 26 + 27 + mux-reg-masks: 28 + description: an array of register offset and pre-shifted bitfield mask 29 + pairs, each describing a single mux control. 30 + 31 + idle-states: true 32 + 33 + required: 34 + - compatible 35 + - mux-reg-masks 36 + - '#mux-control-cells' 37 + 38 + additionalProperties: false 39 + 40 + examples: 41 + - | 42 + /* The parent device of mux controller is not a syscon device. */ 43 + 44 + #include <dt-bindings/mux/mux.h> 45 + 46 + mux-controller { 47 + compatible = "reg-mux"; 48 + #mux-control-cells = <1>; 49 + mux-reg-masks = 50 + <0x54 0xf8>, /* 0: reg 0x54, bits 7:3 */ 51 + <0x54 0x07>; /* 1: reg 0x54, bits 2:0 */ 52 + }; 53 + 54 + mdio-mux-1 { 55 + compatible = "mdio-mux-multiplexer"; 56 + mux-controls = <&mux1 0>; 57 + mdio-parent-bus = <&emdio1>; 58 + #address-cells = <1>; 59 + #size-cells = <0>; 60 + 61 + mdio@0 { 62 + reg = <0x0>; 63 + #address-cells = <1>; 64 + #size-cells = <0>; 65 + }; 66 + 67 + mdio@8 { 68 + reg = <0x8>; 69 + #address-cells = <1>; 70 + #size-cells = <0>; 71 + }; 72 + }; 73 + 74 + mdio-mux-2 { 75 + compatible = "mdio-mux-multiplexer"; 76 + mux-controls = <&mux1 1>; 77 + mdio-parent-bus = <&emdio2>; 78 + #address-cells = <1>; 79 + #size-cells = <0>; 80 + 81 + mdio@0 { 82 + reg = <0x0>; 83 + #address-cells = <1>; 84 + #size-cells = <0>; 85 + }; 86 + 87 + mdio@1 { 88 + reg = <0x1>; 89 + #address-cells = <1>; 90 + #size-cells = <0>; 91 + }; 92 + }; 93 + 94 + - | 95 + /* The parent device of mux controller is syscon device. */ 96 + 97 + #include <dt-bindings/mux/mux.h> 98 + syscon@1000 { 99 + compatible = "fsl,imx7d-iomuxc-gpr", "fsl,imx6q-iomuxc-gpr", "syscon", "simple-mfd"; 100 + reg = <0x1000 0x100>; 101 + 102 + mux2: mux-controller { 103 + compatible = "mmio-mux"; 104 + #mux-control-cells = <1>; 105 + 106 + mux-reg-masks = 107 + <0x3 0x30>, /* 0: reg 0x3, bits 5:4 */ 108 + <0x3 0x40>; /* 1: reg 0x3, bit 6 */ 109 + idle-states = <MUX_IDLE_AS_IS>, <0>; 110 + }; 111 + }; 112 + 113 + video-mux { 114 + compatible = "video-mux"; 115 + mux-controls = <&mux2 0>; 116 + #address-cells = <1>; 117 + #size-cells = <0>; 118 + 119 + ports { 120 + #address-cells = <1>; 121 + #size-cells = <0>; 122 + 123 + /* inputs 0..3 */ 124 + port@0 { 125 + reg = <0>; 126 + }; 127 + port@1 { 128 + reg = <1>; 129 + }; 130 + port@2 { 131 + reg = <2>; 132 + }; 133 + port@3 { 134 + reg = <3>; 135 + }; 136 + 137 + /* output */ 138 + port@4 { 139 + reg = <4>; 140 + }; 141 + }; 142 + }; 143 + ...
-2
Documentation/devicetree/bindings/net/amlogic,meson-dwmac.yaml
··· 43 43 properties: 44 44 clocks: 45 45 minItems: 3 46 - maxItems: 4 47 46 items: 48 47 - description: GMAC main clock 49 48 - description: First parent clock of the internal mux ··· 51 52 52 53 clock-names: 53 54 minItems: 3 54 - maxItems: 4 55 55 items: 56 56 - const: stmmaceth 57 57 - const: clkin0
-2
Documentation/devicetree/bindings/net/brcm,bcm4908-enet.yaml
··· 23 23 24 24 interrupts: 25 25 minItems: 1 26 - maxItems: 2 27 26 items: 28 27 - description: RX interrupt 29 28 - description: TX interrupt 30 29 31 30 interrupt-names: 32 31 minItems: 1 33 - maxItems: 2 34 32 items: 35 33 - const: rx 36 34 - const: tx
+1 -1
Documentation/devicetree/bindings/net/brcm,mdio-mux-iproc.txt
··· 17 17 - clocks: phandle of the core clock which drives the mdio block. 18 18 19 19 Additional information regarding generic multiplexer properties can be found 20 - at- Documentation/devicetree/bindings/net/mdio-mux.txt 20 + at- Documentation/devicetree/bindings/net/mdio-mux.yaml 21 21 22 22 23 23 for example:
-2
Documentation/devicetree/bindings/net/can/bosch,m_can.yaml
··· 30 30 - description: interrupt line0 31 31 - description: interrupt line1 32 32 minItems: 1 33 - maxItems: 2 34 33 35 34 interrupt-names: 36 35 items: 37 36 - const: int0 38 37 - const: int1 39 38 minItems: 1 40 - maxItems: 2 41 39 42 40 clocks: 43 41 items:
+2 -2
Documentation/devicetree/bindings/net/can/c_can.txt
··· 19 19 - power-domains : Should contain a phandle to a PM domain provider node 20 20 and an args specifier containing the DCAN device id 21 21 value. This property is as per the binding, 22 - Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt 22 + Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml 23 23 - clocks : CAN functional clock phandle. This property is as per the 24 24 binding, 25 - Documentation/devicetree/bindings/clock/ti,sci-clk.txt 25 + Documentation/devicetree/bindings/clock/ti,sci-clk.yaml 26 26 27 27 Optional properties: 28 28 - syscon-raminit : Handle to system control region that contains the
-2
Documentation/devicetree/bindings/net/dsa/brcm,sf2.yaml
··· 48 48 49 49 clocks: 50 50 minItems: 1 51 - maxItems: 2 52 51 items: 53 52 - description: switch's main clock 54 53 - description: dividing of the switch core clock 55 54 56 55 clock-names: 57 56 minItems: 1 58 - maxItems: 2 59 57 items: 60 58 - const: sw_switch 61 59 - const: sw_switch_mdiv
-27
Documentation/devicetree/bindings/net/mdio-gpio.txt
··· 1 - MDIO on GPIOs 2 - 3 - Currently defined compatibles: 4 - - virtual,gpio-mdio 5 - - microchip,mdio-smi0 6 - 7 - MDC and MDIO lines connected to GPIO controllers are listed in the 8 - gpios property as described in section VIII.1 in the following order: 9 - 10 - MDC, MDIO. 11 - 12 - Note: Each gpio-mdio bus should have an alias correctly numbered in "aliases" 13 - node. 14 - 15 - Example: 16 - 17 - aliases { 18 - mdio-gpio0 = &mdio0; 19 - }; 20 - 21 - mdio0: mdio { 22 - compatible = "virtual,mdio-gpio"; 23 - #address-cells = <1>; 24 - #size-cells = <0>; 25 - gpios = <&qe_pio_a 11 26 - &qe_pio_c 6>; 27 - };
+57
Documentation/devicetree/bindings/net/mdio-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/net/mdio-gpio.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: MDIO on GPIOs 8 + 9 + maintainers: 10 + - Andrew Lunn <andrew@lunn.ch> 11 + - Heiner Kallweit <hkallweit1@gmail.com> 12 + - Russell King <linux@armlinux.org.uk> 13 + 14 + allOf: 15 + - $ref: "mdio.yaml#" 16 + 17 + properties: 18 + compatible: 19 + enum: 20 + - virtual,mdio-gpio 21 + - microchip,mdio-smi0 22 + 23 + "#address-cells": 24 + const: 1 25 + 26 + "#size-cells": 27 + const: 0 28 + 29 + gpios: 30 + minItems: 2 31 + items: 32 + - description: MDC 33 + - description: MDIO 34 + - description: MDO 35 + 36 + #Note: Each gpio-mdio bus should have an alias correctly numbered in "aliases" 37 + #node. 38 + additionalProperties: 39 + type: object 40 + 41 + examples: 42 + - | 43 + aliases { 44 + mdio-gpio0 = &mdio0; 45 + }; 46 + 47 + mdio0: mdio { 48 + compatible = "virtual,mdio-gpio"; 49 + #address-cells = <1>; 50 + #size-cells = <0>; 51 + gpios = <&qe_pio_a 11>, 52 + <&qe_pio_c 6>; 53 + ethphy0: ethernet-phy@0 { 54 + reg = <0>; 55 + }; 56 + }; 57 + ...
-119
Documentation/devicetree/bindings/net/mdio-mux-gpio.txt
··· 1 - Properties for an MDIO bus multiplexer/switch controlled by GPIO pins. 2 - 3 - This is a special case of a MDIO bus multiplexer. One or more GPIO 4 - lines are used to control which child bus is connected. 5 - 6 - Required properties in addition to the generic multiplexer properties: 7 - 8 - - compatible : mdio-mux-gpio. 9 - - gpios : GPIO specifiers for each GPIO line. One or more must be specified. 10 - 11 - 12 - Example : 13 - 14 - /* The parent MDIO bus. */ 15 - smi1: mdio@1180000001900 { 16 - compatible = "cavium,octeon-3860-mdio"; 17 - #address-cells = <1>; 18 - #size-cells = <0>; 19 - reg = <0x11800 0x00001900 0x0 0x40>; 20 - }; 21 - 22 - /* 23 - An NXP sn74cbtlv3253 dual 1-of-4 switch controlled by a 24 - pair of GPIO lines. Child busses 2 and 3 populated with 4 25 - PHYs each. 26 - */ 27 - mdio-mux { 28 - compatible = "mdio-mux-gpio"; 29 - gpios = <&gpio1 3 0>, <&gpio1 4 0>; 30 - mdio-parent-bus = <&smi1>; 31 - #address-cells = <1>; 32 - #size-cells = <0>; 33 - 34 - mdio@2 { 35 - reg = <2>; 36 - #address-cells = <1>; 37 - #size-cells = <0>; 38 - 39 - phy11: ethernet-phy@1 { 40 - reg = <1>; 41 - marvell,reg-init = <3 0x10 0 0x5777>, 42 - <3 0x11 0 0x00aa>, 43 - <3 0x12 0 0x4105>, 44 - <3 0x13 0 0x0a60>; 45 - interrupt-parent = <&gpio>; 46 - interrupts = <10 8>; /* Pin 10, active low */ 47 - }; 48 - phy12: ethernet-phy@2 { 49 - reg = <2>; 50 - marvell,reg-init = <3 0x10 0 0x5777>, 51 - <3 0x11 0 0x00aa>, 52 - <3 0x12 0 0x4105>, 53 - <3 0x13 0 0x0a60>; 54 - interrupt-parent = <&gpio>; 55 - interrupts = <10 8>; /* Pin 10, active low */ 56 - }; 57 - phy13: ethernet-phy@3 { 58 - reg = <3>; 59 - marvell,reg-init = <3 0x10 0 0x5777>, 60 - <3 0x11 0 0x00aa>, 61 - <3 0x12 0 0x4105>, 62 - <3 0x13 0 0x0a60>; 63 - interrupt-parent = <&gpio>; 64 - interrupts = <10 8>; /* Pin 10, active low */ 65 - }; 66 - phy14: ethernet-phy@4 { 67 - reg = <4>; 68 - marvell,reg-init = <3 0x10 0 0x5777>, 69 - <3 0x11 0 0x00aa>, 70 - <3 0x12 0 0x4105>, 71 - <3 0x13 0 0x0a60>; 72 - interrupt-parent = <&gpio>; 73 - interrupts = <10 8>; /* Pin 10, active low */ 74 - }; 75 - }; 76 - 77 - mdio@3 { 78 - reg = <3>; 79 - #address-cells = <1>; 80 - #size-cells = <0>; 81 - 82 - phy21: ethernet-phy@1 { 83 - reg = <1>; 84 - marvell,reg-init = <3 0x10 0 0x5777>, 85 - <3 0x11 0 0x00aa>, 86 - <3 0x12 0 0x4105>, 87 - <3 0x13 0 0x0a60>; 88 - interrupt-parent = <&gpio>; 89 - interrupts = <12 8>; /* Pin 12, active low */ 90 - }; 91 - phy22: ethernet-phy@2 { 92 - reg = <2>; 93 - marvell,reg-init = <3 0x10 0 0x5777>, 94 - <3 0x11 0 0x00aa>, 95 - <3 0x12 0 0x4105>, 96 - <3 0x13 0 0x0a60>; 97 - interrupt-parent = <&gpio>; 98 - interrupts = <12 8>; /* Pin 12, active low */ 99 - }; 100 - phy23: ethernet-phy@3 { 101 - reg = <3>; 102 - marvell,reg-init = <3 0x10 0 0x5777>, 103 - <3 0x11 0 0x00aa>, 104 - <3 0x12 0 0x4105>, 105 - <3 0x13 0 0x0a60>; 106 - interrupt-parent = <&gpio>; 107 - interrupts = <12 8>; /* Pin 12, active low */ 108 - }; 109 - phy24: ethernet-phy@4 { 110 - reg = <4>; 111 - marvell,reg-init = <3 0x10 0 0x5777>, 112 - <3 0x11 0 0x00aa>, 113 - <3 0x12 0 0x4105>, 114 - <3 0x13 0 0x0a60>; 115 - interrupt-parent = <&gpio>; 116 - interrupts = <12 8>; /* Pin 12, active low */ 117 - }; 118 - }; 119 - };
+135
Documentation/devicetree/bindings/net/mdio-mux-gpio.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/net/mdio-mux-gpio.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Properties for an MDIO bus multiplexer/switch controlled by GPIO pins. 8 + 9 + maintainers: 10 + - Andrew Lunn <andrew@lunn.ch> 11 + 12 + description: 13 + This is a special case of a MDIO bus multiplexer. One or more GPIO 14 + lines are used to control which child bus is connected. 15 + 16 + allOf: 17 + - $ref: /schemas/net/mdio-mux.yaml# 18 + 19 + properties: 20 + compatible: 21 + const: mdio-mux-gpio 22 + 23 + gpios: 24 + description: 25 + List of GPIOs used to control the multiplexer, least significant bit first. 26 + minItems: 1 27 + maxItems: 32 28 + 29 + required: 30 + - compatible 31 + - gpios 32 + 33 + unevaluatedProperties: false 34 + 35 + examples: 36 + - | 37 + /* 38 + An NXP sn74cbtlv3253 dual 1-of-4 switch controlled by a 39 + pair of GPIO lines. Child busses 2 and 3 populated with 4 40 + PHYs each. 41 + */ 42 + mdio-mux { 43 + compatible = "mdio-mux-gpio"; 44 + gpios = <&gpio1 3 0>, <&gpio1 4 0>; 45 + mdio-parent-bus = <&smi1>; 46 + #address-cells = <1>; 47 + #size-cells = <0>; 48 + 49 + mdio@2 { 50 + reg = <2>; 51 + #address-cells = <1>; 52 + #size-cells = <0>; 53 + 54 + ethernet-phy@1 { 55 + reg = <1>; 56 + marvell,reg-init = <3 0x10 0 0x5777>, 57 + <3 0x11 0 0x00aa>, 58 + <3 0x12 0 0x4105>, 59 + <3 0x13 0 0x0a60>; 60 + interrupt-parent = <&gpio>; 61 + interrupts = <10 8>; /* Pin 10, active low */ 62 + }; 63 + ethernet-phy@2 { 64 + reg = <2>; 65 + marvell,reg-init = <3 0x10 0 0x5777>, 66 + <3 0x11 0 0x00aa>, 67 + <3 0x12 0 0x4105>, 68 + <3 0x13 0 0x0a60>; 69 + interrupt-parent = <&gpio>; 70 + interrupts = <10 8>; /* Pin 10, active low */ 71 + }; 72 + ethernet-phy@3 { 73 + reg = <3>; 74 + marvell,reg-init = <3 0x10 0 0x5777>, 75 + <3 0x11 0 0x00aa>, 76 + <3 0x12 0 0x4105>, 77 + <3 0x13 0 0x0a60>; 78 + interrupt-parent = <&gpio>; 79 + interrupts = <10 8>; /* Pin 10, active low */ 80 + }; 81 + ethernet-phy@4 { 82 + reg = <4>; 83 + marvell,reg-init = <3 0x10 0 0x5777>, 84 + <3 0x11 0 0x00aa>, 85 + <3 0x12 0 0x4105>, 86 + <3 0x13 0 0x0a60>; 87 + interrupt-parent = <&gpio>; 88 + interrupts = <10 8>; /* Pin 10, active low */ 89 + }; 90 + }; 91 + 92 + mdio@3 { 93 + reg = <3>; 94 + #address-cells = <1>; 95 + #size-cells = <0>; 96 + 97 + ethernet-phy@1 { 98 + reg = <1>; 99 + marvell,reg-init = <3 0x10 0 0x5777>, 100 + <3 0x11 0 0x00aa>, 101 + <3 0x12 0 0x4105>, 102 + <3 0x13 0 0x0a60>; 103 + interrupt-parent = <&gpio>; 104 + interrupts = <12 8>; /* Pin 12, active low */ 105 + }; 106 + ethernet-phy@2 { 107 + reg = <2>; 108 + marvell,reg-init = <3 0x10 0 0x5777>, 109 + <3 0x11 0 0x00aa>, 110 + <3 0x12 0 0x4105>, 111 + <3 0x13 0 0x0a60>; 112 + interrupt-parent = <&gpio>; 113 + interrupts = <12 8>; /* Pin 12, active low */ 114 + }; 115 + ethernet-phy@3 { 116 + reg = <3>; 117 + marvell,reg-init = <3 0x10 0 0x5777>, 118 + <3 0x11 0 0x00aa>, 119 + <3 0x12 0 0x4105>, 120 + <3 0x13 0 0x0a60>; 121 + interrupt-parent = <&gpio>; 122 + interrupts = <12 8>; /* Pin 12, active low */ 123 + }; 124 + ethernet-phy@4 { 125 + reg = <4>; 126 + marvell,reg-init = <3 0x10 0 0x5777>, 127 + <3 0x11 0 0x00aa>, 128 + <3 0x12 0 0x4105>, 129 + <3 0x13 0 0x0a60>; 130 + interrupt-parent = <&gpio>; 131 + interrupts = <12 8>; /* Pin 12, active low */ 132 + }; 133 + }; 134 + }; 135 + ...
-75
Documentation/devicetree/bindings/net/mdio-mux-mmioreg.txt
··· 1 - Properties for an MDIO bus multiplexer controlled by a memory-mapped device 2 - 3 - This is a special case of a MDIO bus multiplexer. A memory-mapped device, 4 - like an FPGA, is used to control which child bus is connected. The mdio-mux 5 - node must be a child of the memory-mapped device. The driver currently only 6 - supports devices with 8, 16 or 32-bit registers. 7 - 8 - Required properties in addition to the generic multiplexer properties: 9 - 10 - - compatible : string, must contain "mdio-mux-mmioreg" 11 - 12 - - reg : integer, contains the offset of the register that controls the bus 13 - multiplexer. The size field in the 'reg' property is the size of 14 - register, and must therefore be 1, 2, or 4. 15 - 16 - - mux-mask : integer, contains an eight-bit mask that specifies which 17 - bits in the register control the actual bus multiplexer. The 18 - 'reg' property of each child mdio-mux node must be constrained by 19 - this mask. 20 - 21 - Example: 22 - 23 - The FPGA node defines a memory-mapped FPGA with a register space of 0x30 bytes. 24 - For the "EMI2" MDIO bus, register 9 (BRDCFG1) controls the mux on that bus. 25 - A bitmask of 0x6 means that bits 1 and 2 (bit 0 is lsb) are the bits on 26 - BRDCFG1 that control the actual mux. 27 - 28 - /* The FPGA node */ 29 - fpga: board-control@3,0 { 30 - #address-cells = <1>; 31 - #size-cells = <1>; 32 - compatible = "fsl,p5020ds-fpga", "fsl,fpga-ngpixis"; 33 - reg = <3 0 0x30>; 34 - ranges = <0 3 0 0x30>; 35 - 36 - mdio-mux-emi2 { 37 - compatible = "mdio-mux-mmioreg", "mdio-mux"; 38 - mdio-parent-bus = <&xmdio0>; 39 - #address-cells = <1>; 40 - #size-cells = <0>; 41 - reg = <9 1>; // BRDCFG1 42 - mux-mask = <0x6>; // EMI2 43 - 44 - emi2_slot1: mdio@0 { // Slot 1 XAUI (FM2) 45 - reg = <0>; 46 - #address-cells = <1>; 47 - #size-cells = <0>; 48 - 49 - phy_xgmii_slot1: ethernet-phy@0 { 50 - compatible = "ethernet-phy-ieee802.3-c45"; 51 - reg = <4>; 52 - }; 53 - }; 54 - 55 - emi2_slot2: mdio@2 { // Slot 2 XAUI (FM1) 56 - reg = <2>; 57 - #address-cells = <1>; 58 - #size-cells = <0>; 59 - 60 - phy_xgmii_slot2: ethernet-phy@4 { 61 - compatible = "ethernet-phy-ieee802.3-c45"; 62 - reg = <0>; 63 - }; 64 - }; 65 - }; 66 - }; 67 - 68 - /* The parent MDIO bus. */ 69 - xmdio0: mdio@f1000 { 70 - #address-cells = <1>; 71 - #size-cells = <0>; 72 - compatible = "fsl,fman-xmdio"; 73 - reg = <0xf1000 0x1000>; 74 - interrupts = <100 1 0 0>; 75 - };
+78
Documentation/devicetree/bindings/net/mdio-mux-mmioreg.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/net/mdio-mux-mmioreg.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Properties for an MDIO bus multiplexer controlled by a memory-mapped device 8 + 9 + maintainers: 10 + - Andrew Lunn <andrew@lunn.ch> 11 + 12 + description: |+ 13 + This is a special case of a MDIO bus multiplexer. A memory-mapped device, 14 + like an FPGA, is used to control which child bus is connected. The mdio-mux 15 + node must be a child of the memory-mapped device. The driver currently only 16 + supports devices with 8, 16 or 32-bit registers. 17 + 18 + allOf: 19 + - $ref: /schemas/net/mdio-mux.yaml# 20 + 21 + properties: 22 + compatible: 23 + items: 24 + - const: mdio-mux-mmioreg 25 + - const: mdio-mux 26 + 27 + reg: 28 + description: Contains the offset of the register that controls the bus 29 + multiplexer. The size field in the 'reg' property is the size of register, 30 + and must therefore be 1, 2, or 4. 31 + maxItems: 1 32 + 33 + mux-mask: 34 + $ref: /schemas/types.yaml#/definitions/uint32 35 + description: Contains an eight-bit mask that specifies which bits in the 36 + register control the actual bus multiplexer. The 'reg' property of each 37 + child mdio-mux node must be constrained by this mask. 38 + 39 + required: 40 + - compatible 41 + - reg 42 + - mux-mask 43 + 44 + unevaluatedProperties: false 45 + 46 + examples: 47 + - | 48 + mdio-mux@9 { 49 + compatible = "mdio-mux-mmioreg", "mdio-mux"; 50 + mdio-parent-bus = <&xmdio0>; 51 + #address-cells = <1>; 52 + #size-cells = <0>; 53 + reg = <9 1>; // BRDCFG1 54 + mux-mask = <0x6>; // EMI2 55 + 56 + mdio@0 { // Slot 1 XAUI (FM2) 57 + reg = <0>; 58 + #address-cells = <1>; 59 + #size-cells = <0>; 60 + 61 + phy_xgmii_slot1: ethernet-phy@4 { 62 + compatible = "ethernet-phy-ieee802.3-c45"; 63 + reg = <4>; 64 + }; 65 + }; 66 + 67 + mdio@2 { // Slot 2 XAUI (FM1) 68 + reg = <2>; 69 + #address-cells = <1>; 70 + #size-cells = <0>; 71 + 72 + ethernet-phy@4 { 73 + compatible = "ethernet-phy-ieee802.3-c45"; 74 + reg = <4>; 75 + }; 76 + }; 77 + }; 78 + ...
-82
Documentation/devicetree/bindings/net/mdio-mux-multiplexer.txt
··· 1 - Properties for an MDIO bus multiplexer consumer device 2 - 3 - This is a special case of MDIO mux when MDIO mux is defined as a consumer 4 - of a mux producer device. The mux producer can be of any type like mmio mux 5 - producer, gpio mux producer or generic register based mux producer. 6 - 7 - Required properties in addition to the MDIO Bus multiplexer properties: 8 - 9 - - compatible : should be "mmio-mux-multiplexer" 10 - - mux-controls : mux controller node to use for operating the mux 11 - - mdio-parent-bus : phandle to the parent MDIO bus. 12 - 13 - each child node of mdio bus multiplexer consumer device represent a mdio 14 - bus. 15 - 16 - for more information please refer 17 - Documentation/devicetree/bindings/mux/mux-controller.txt 18 - and Documentation/devicetree/bindings/net/mdio-mux.txt 19 - 20 - Example: 21 - In below example the Mux producer and consumer are separate nodes. 22 - 23 - &i2c0 { 24 - fpga@66 { // fpga connected to i2c 25 - compatible = "fsl,lx2160aqds-fpga", "fsl,fpga-qixis-i2c", 26 - "simple-mfd"; 27 - reg = <0x66>; 28 - 29 - mux: mux-controller { // Mux Producer 30 - compatible = "reg-mux"; 31 - #mux-control-cells = <1>; 32 - mux-reg-masks = <0x54 0xf8>, /* 0: reg 0x54, bits 7:3 */ 33 - <0x54 0x07>; /* 1: reg 0x54, bits 2:0 */ 34 - }; 35 - }; 36 - }; 37 - 38 - mdio-mux-1 { // Mux consumer 39 - compatible = "mdio-mux-multiplexer"; 40 - mux-controls = <&mux 0>; 41 - mdio-parent-bus = <&emdio1>; 42 - #address-cells = <1>; 43 - #size-cells = <0>; 44 - 45 - mdio@0 { 46 - reg = <0x0>; 47 - #address-cells = <1>; 48 - #size-cells = <0>; 49 - }; 50 - 51 - mdio@8 { 52 - reg = <0x8>; 53 - #address-cells = <1>; 54 - #size-cells = <0>; 55 - }; 56 - 57 - .. 58 - .. 59 - }; 60 - 61 - mdio-mux-2 { // Mux consumer 62 - compatible = "mdio-mux-multiplexer"; 63 - mux-controls = <&mux 1>; 64 - mdio-parent-bus = <&emdio2>; 65 - #address-cells = <1>; 66 - #size-cells = <0>; 67 - 68 - mdio@0 { 69 - reg = <0x0>; 70 - #address-cells = <1>; 71 - #size-cells = <0>; 72 - }; 73 - 74 - mdio@1 { 75 - reg = <0x1>; 76 - #address-cells = <1>; 77 - #size-cells = <0>; 78 - }; 79 - 80 - .. 81 - .. 82 - };
+82
Documentation/devicetree/bindings/net/mdio-mux-multiplexer.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/net/mdio-mux-multiplexer.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Properties for an MDIO bus multiplexer consumer device 8 + 9 + maintainers: 10 + - Andrew Lunn <andrew@lunn.ch> 11 + 12 + description: |+ 13 + This is a special case of MDIO mux when MDIO mux is defined as a consumer 14 + of a mux producer device. The mux producer can be of any type like mmio mux 15 + producer, gpio mux producer or generic register based mux producer. 16 + 17 + 18 + allOf: 19 + - $ref: /schemas/net/mdio-mux.yaml# 20 + 21 + properties: 22 + compatible: 23 + const: mdio-mux-multiplexer 24 + 25 + mux-controls: 26 + maxItems: 1 27 + 28 + required: 29 + - compatible 30 + - mux-controls 31 + 32 + unevaluatedProperties: false 33 + 34 + examples: 35 + - | 36 + mux: mux-controller { // Mux Producer 37 + compatible = "reg-mux"; 38 + #mux-control-cells = <1>; 39 + mux-reg-masks = <0x54 0xf8>, /* 0: reg 0x54, bits 7:3 */ 40 + <0x54 0x07>; /* 1: reg 0x54, bits 2:0 */ 41 + }; 42 + 43 + mdio-mux-1 { // Mux consumer 44 + compatible = "mdio-mux-multiplexer"; 45 + mux-controls = <&mux 0>; 46 + mdio-parent-bus = <&emdio1>; 47 + #address-cells = <1>; 48 + #size-cells = <0>; 49 + 50 + mdio@0 { 51 + reg = <0x0>; 52 + #address-cells = <1>; 53 + #size-cells = <0>; 54 + }; 55 + 56 + mdio@8 { 57 + reg = <0x8>; 58 + #address-cells = <1>; 59 + #size-cells = <0>; 60 + }; 61 + }; 62 + 63 + mdio-mux-2 { // Mux consumer 64 + compatible = "mdio-mux-multiplexer"; 65 + mux-controls = <&mux 1>; 66 + mdio-parent-bus = <&emdio2>; 67 + #address-cells = <1>; 68 + #size-cells = <0>; 69 + 70 + mdio@0 { 71 + reg = <0x0>; 72 + #address-cells = <1>; 73 + #size-cells = <0>; 74 + }; 75 + 76 + mdio@1 { 77 + reg = <0x1>; 78 + #address-cells = <1>; 79 + #size-cells = <0>; 80 + }; 81 + }; 82 + ...
-129
Documentation/devicetree/bindings/net/mdio-mux.txt
··· 1 - Common MDIO bus multiplexer/switch properties. 2 - 3 - An MDIO bus multiplexer/switch will have several child busses that are 4 - numbered uniquely in a device dependent manner. The nodes for an MDIO 5 - bus multiplexer/switch will have one child node for each child bus. 6 - 7 - Required properties: 8 - - #address-cells = <1>; 9 - - #size-cells = <0>; 10 - 11 - Optional properties: 12 - - mdio-parent-bus : phandle to the parent MDIO bus. 13 - 14 - - Other properties specific to the multiplexer/switch hardware. 15 - 16 - Required properties for child nodes: 17 - - #address-cells = <1>; 18 - - #size-cells = <0>; 19 - - reg : The sub-bus number. 20 - 21 - 22 - Example : 23 - 24 - /* The parent MDIO bus. */ 25 - smi1: mdio@1180000001900 { 26 - compatible = "cavium,octeon-3860-mdio"; 27 - #address-cells = <1>; 28 - #size-cells = <0>; 29 - reg = <0x11800 0x00001900 0x0 0x40>; 30 - }; 31 - 32 - /* 33 - An NXP sn74cbtlv3253 dual 1-of-4 switch controlled by a 34 - pair of GPIO lines. Child busses 2 and 3 populated with 4 35 - PHYs each. 36 - */ 37 - mdio-mux { 38 - compatible = "mdio-mux-gpio"; 39 - gpios = <&gpio1 3 0>, <&gpio1 4 0>; 40 - mdio-parent-bus = <&smi1>; 41 - #address-cells = <1>; 42 - #size-cells = <0>; 43 - 44 - mdio@2 { 45 - reg = <2>; 46 - #address-cells = <1>; 47 - #size-cells = <0>; 48 - 49 - phy11: ethernet-phy@1 { 50 - reg = <1>; 51 - marvell,reg-init = <3 0x10 0 0x5777>, 52 - <3 0x11 0 0x00aa>, 53 - <3 0x12 0 0x4105>, 54 - <3 0x13 0 0x0a60>; 55 - interrupt-parent = <&gpio>; 56 - interrupts = <10 8>; /* Pin 10, active low */ 57 - }; 58 - phy12: ethernet-phy@2 { 59 - reg = <2>; 60 - marvell,reg-init = <3 0x10 0 0x5777>, 61 - <3 0x11 0 0x00aa>, 62 - <3 0x12 0 0x4105>, 63 - <3 0x13 0 0x0a60>; 64 - interrupt-parent = <&gpio>; 65 - interrupts = <10 8>; /* Pin 10, active low */ 66 - }; 67 - phy13: ethernet-phy@3 { 68 - reg = <3>; 69 - marvell,reg-init = <3 0x10 0 0x5777>, 70 - <3 0x11 0 0x00aa>, 71 - <3 0x12 0 0x4105>, 72 - <3 0x13 0 0x0a60>; 73 - interrupt-parent = <&gpio>; 74 - interrupts = <10 8>; /* Pin 10, active low */ 75 - }; 76 - phy14: ethernet-phy@4 { 77 - reg = <4>; 78 - marvell,reg-init = <3 0x10 0 0x5777>, 79 - <3 0x11 0 0x00aa>, 80 - <3 0x12 0 0x4105>, 81 - <3 0x13 0 0x0a60>; 82 - interrupt-parent = <&gpio>; 83 - interrupts = <10 8>; /* Pin 10, active low */ 84 - }; 85 - }; 86 - 87 - mdio@3 { 88 - reg = <3>; 89 - #address-cells = <1>; 90 - #size-cells = <0>; 91 - 92 - phy21: ethernet-phy@1 { 93 - reg = <1>; 94 - marvell,reg-init = <3 0x10 0 0x5777>, 95 - <3 0x11 0 0x00aa>, 96 - <3 0x12 0 0x4105>, 97 - <3 0x13 0 0x0a60>; 98 - interrupt-parent = <&gpio>; 99 - interrupts = <12 8>; /* Pin 12, active low */ 100 - }; 101 - phy22: ethernet-phy@2 { 102 - reg = <2>; 103 - marvell,reg-init = <3 0x10 0 0x5777>, 104 - <3 0x11 0 0x00aa>, 105 - <3 0x12 0 0x4105>, 106 - <3 0x13 0 0x0a60>; 107 - interrupt-parent = <&gpio>; 108 - interrupts = <12 8>; /* Pin 12, active low */ 109 - }; 110 - phy23: ethernet-phy@3 { 111 - reg = <3>; 112 - marvell,reg-init = <3 0x10 0 0x5777>, 113 - <3 0x11 0 0x00aa>, 114 - <3 0x12 0 0x4105>, 115 - <3 0x13 0 0x0a60>; 116 - interrupt-parent = <&gpio>; 117 - interrupts = <12 8>; /* Pin 12, active low */ 118 - }; 119 - phy24: ethernet-phy@4 { 120 - reg = <4>; 121 - marvell,reg-init = <3 0x10 0 0x5777>, 122 - <3 0x11 0 0x00aa>, 123 - <3 0x12 0 0x4105>, 124 - <3 0x13 0 0x0a60>; 125 - interrupt-parent = <&gpio>; 126 - interrupts = <12 8>; /* Pin 12, active low */ 127 - }; 128 - }; 129 - };
+44
Documentation/devicetree/bindings/net/mdio-mux.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/net/mdio-mux.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Common MDIO bus multiplexer/switch properties. 8 + 9 + maintainers: 10 + - Andrew Lunn <andrew@lunn.ch> 11 + 12 + description: |+ 13 + An MDIO bus multiplexer/switch will have several child busses that are 14 + numbered uniquely in a device dependent manner. The nodes for an MDIO 15 + bus multiplexer/switch will have one child node for each child bus. 16 + 17 + properties: 18 + $nodename: 19 + pattern: '^mdio-mux[\-@]?' 20 + 21 + mdio-parent-bus: 22 + $ref: /schemas/types.yaml#/definitions/phandle 23 + description: 24 + The phandle of the MDIO bus that this multiplexer's master-side port is 25 + connected to. 26 + 27 + '#address-cells': 28 + const: 1 29 + 30 + '#size-cells': 31 + const: 0 32 + 33 + patternProperties: 34 + '^mdio@[0-9a-f]+$': 35 + type: object 36 + 37 + properties: 38 + reg: 39 + maxItems: 1 40 + description: The sub-bus number. 41 + 42 + additionalProperties: true 43 + 44 + ...
-2
Documentation/devicetree/bindings/net/snps,dwmac.yaml
··· 91 91 92 92 interrupts: 93 93 minItems: 1 94 - maxItems: 3 95 94 items: 96 95 - description: Combined signal for various interrupt events 97 96 - description: The interrupt to manage the remote wake-up packet detection ··· 98 99 99 100 interrupt-names: 100 101 minItems: 1 101 - maxItems: 3 102 102 items: 103 103 - const: macirq 104 104 - const: eth_wake_irq
-1
Documentation/devicetree/bindings/net/stm32-dwmac.yaml
··· 46 46 47 47 clocks: 48 48 minItems: 3 49 - maxItems: 5 50 49 items: 51 50 - description: GMAC main clock 52 51 - description: MAC TX clock
-2
Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml
··· 25 25 26 26 interrupts: 27 27 minItems: 1 28 - maxItems: 2 29 28 items: 30 29 - description: PCIe host controller 31 30 - description: builtin MSI controller 32 31 33 32 interrupt-names: 34 33 minItems: 1 35 - maxItems: 2 36 34 items: 37 35 - const: pcie 38 36 - const: msi
-1
Documentation/devicetree/bindings/pci/loongson.yaml
··· 24 24 25 25 reg: 26 26 minItems: 1 27 - maxItems: 2 28 27 items: 29 28 - description: CFG0 standard config space register 30 29 - description: CFG1 extended config space register
-1
Documentation/devicetree/bindings/pci/mediatek-pcie-gen3.yaml
··· 70 70 71 71 reset-names: 72 72 minItems: 1 73 - maxItems: 2 74 73 items: 75 74 - const: phy 76 75 - const: mac
-2
Documentation/devicetree/bindings/pci/microchip,pcie-host.yaml
··· 26 26 27 27 interrupts: 28 28 minItems: 1 29 - maxItems: 2 30 29 items: 31 30 - description: PCIe host controller 32 31 - description: builtin MSI controller 33 32 34 33 interrupt-names: 35 34 minItems: 1 36 - maxItems: 2 37 35 items: 38 36 - const: pcie 39 37 - const: msi
-115
Documentation/devicetree/bindings/pci/pci-keystone.txt
··· 1 - TI Keystone PCIe interface 2 - 3 - Keystone PCI host Controller is based on the Synopsys DesignWare PCI 4 - hardware version 3.65. It shares common functions with the PCIe DesignWare 5 - core driver and inherits common properties defined in 6 - Documentation/devicetree/bindings/pci/designware-pcie.txt 7 - 8 - Please refer to Documentation/devicetree/bindings/pci/designware-pcie.txt 9 - for the details of DesignWare DT bindings. Additional properties are 10 - described here as well as properties that are not applicable. 11 - 12 - Required Properties:- 13 - 14 - compatibility: Should be "ti,keystone-pcie" for RC on Keystone2 SoC 15 - Should be "ti,am654-pcie-rc" for RC on AM654x SoC 16 - reg: Three register ranges as listed in the reg-names property 17 - reg-names: "dbics" for the DesignWare PCIe registers, "app" for the 18 - TI specific application registers, "config" for the 19 - configuration space address 20 - 21 - pcie_msi_intc : Interrupt controller device node for MSI IRQ chip 22 - interrupt-cells: should be set to 1 23 - interrupts: GIC interrupt lines connected to PCI MSI interrupt lines 24 - (required if the compatible is "ti,keystone-pcie") 25 - msi-map: As specified in Documentation/devicetree/bindings/pci/pci-msi.txt 26 - (required if the compatible is "ti,am654-pcie-rc". 27 - 28 - ti,syscon-pcie-id : phandle to the device control module required to set device 29 - id and vendor id. 30 - ti,syscon-pcie-mode : phandle to the device control module required to configure 31 - PCI in either RC mode or EP mode. 32 - 33 - Example: 34 - pcie_msi_intc: msi-interrupt-controller { 35 - interrupt-controller; 36 - #interrupt-cells = <1>; 37 - interrupt-parent = <&gic>; 38 - interrupts = <GIC_SPI 30 IRQ_TYPE_EDGE_RISING>, 39 - <GIC_SPI 31 IRQ_TYPE_EDGE_RISING>, 40 - <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>, 41 - <GIC_SPI 33 IRQ_TYPE_EDGE_RISING>, 42 - <GIC_SPI 34 IRQ_TYPE_EDGE_RISING>, 43 - <GIC_SPI 35 IRQ_TYPE_EDGE_RISING>, 44 - <GIC_SPI 36 IRQ_TYPE_EDGE_RISING>, 45 - <GIC_SPI 37 IRQ_TYPE_EDGE_RISING>; 46 - }; 47 - 48 - pcie_intc: Interrupt controller device node for Legacy IRQ chip 49 - interrupt-cells: should be set to 1 50 - 51 - Example: 52 - pcie_intc: legacy-interrupt-controller { 53 - interrupt-controller; 54 - #interrupt-cells = <1>; 55 - interrupt-parent = <&gic>; 56 - interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>, 57 - <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>, 58 - <GIC_SPI 28 IRQ_TYPE_EDGE_RISING>, 59 - <GIC_SPI 29 IRQ_TYPE_EDGE_RISING>; 60 - }; 61 - 62 - Optional properties:- 63 - phys: phandle to generic Keystone SerDes PHY for PCI 64 - phy-names: name of the generic Keystone SerDes PHY for PCI 65 - - If boot loader already does PCI link establishment, then phys and 66 - phy-names shouldn't be present. 67 - interrupts: platform interrupt for error interrupts. 68 - 69 - DesignWare DT Properties not applicable for Keystone PCI 70 - 71 - 1. pcie_bus clock-names not used. Instead, a phandle to phys is used. 72 - 73 - AM654 PCIe Endpoint 74 - =================== 75 - 76 - Required Properties:- 77 - 78 - compatibility: Should be "ti,am654-pcie-ep" for EP on AM654x SoC 79 - reg: Four register ranges as listed in the reg-names property 80 - reg-names: "dbics" for the DesignWare PCIe registers, "app" for the 81 - TI specific application registers, "atu" for the 82 - Address Translation Unit configuration registers and 83 - "addr_space" used to map remote RC address space 84 - num-ib-windows: As specified in 85 - Documentation/devicetree/bindings/pci/designware-pcie.txt 86 - num-ob-windows: As specified in 87 - Documentation/devicetree/bindings/pci/designware-pcie.txt 88 - num-lanes: As specified in 89 - Documentation/devicetree/bindings/pci/designware-pcie.txt 90 - power-domains: As documented by the generic PM domain bindings in 91 - Documentation/devicetree/bindings/power/power_domain.txt. 92 - ti,syscon-pcie-mode: phandle to the device control module required to configure 93 - PCI in either RC mode or EP mode. 94 - 95 - Optional properties:- 96 - 97 - phys: list of PHY specifiers (used by generic PHY framework) 98 - phy-names: must be "pcie-phy0", "pcie-phy1", "pcie-phyN".. based on the 99 - number of lanes as specified in *num-lanes* property. 100 - ("phys" and "phy-names" DT bindings are specified in 101 - Documentation/devicetree/bindings/phy/phy-bindings.txt) 102 - interrupts: platform interrupt for error interrupts. 103 - 104 - pcie-ep { 105 - compatible = "ti,am654-pcie-ep"; 106 - reg = <0x5500000 0x1000>, <0x5501000 0x1000>, 107 - <0x10000000 0x8000000>, <0x5506000 0x1000>; 108 - reg-names = "app", "dbics", "addr_space", "atu"; 109 - power-domains = <&k3_pds 120>; 110 - ti,syscon-pcie-mode = <&pcie0_mode>; 111 - num-lanes = <1>; 112 - num-ib-windows = <16>; 113 - num-ob-windows = <16>; 114 - interrupts = <GIC_SPI 340 IRQ_TYPE_EDGE_RISING>; 115 - };
+74
Documentation/devicetree/bindings/pci/ti,am65-pci-ep.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + # Copyright (C) 2021 Texas Instruments Incorporated - http://www.ti.com/ 3 + %YAML 1.2 4 + --- 5 + $id: http://devicetree.org/schemas/pci/ti,am65-pci-ep.yaml# 6 + $schema: http://devicetree.org/meta-schemas/core.yaml# 7 + 8 + title: TI AM65 PCI Endpoint 9 + 10 + maintainers: 11 + - Kishon Vijay Abraham I <kishon@ti.com> 12 + 13 + allOf: 14 + - $ref: pci-ep.yaml# 15 + 16 + properties: 17 + compatible: 18 + enum: 19 + - ti,am654-pcie-ep 20 + 21 + reg: 22 + maxItems: 4 23 + 24 + reg-names: 25 + items: 26 + - const: app 27 + - const: dbics 28 + - const: addr_space 29 + - const: atu 30 + 31 + power-domains: 32 + maxItems: 1 33 + 34 + ti,syscon-pcie-mode: 35 + description: Phandle to the SYSCON entry required for configuring PCIe in RC or EP mode. 36 + $ref: /schemas/types.yaml#/definitions/phandle 37 + 38 + interrupts: 39 + minItems: 1 40 + 41 + dma-coherent: true 42 + 43 + required: 44 + - compatible 45 + - reg 46 + - reg-names 47 + - max-link-speed 48 + - power-domains 49 + - ti,syscon-pcie-mode 50 + - dma-coherent 51 + 52 + unevaluatedProperties: false 53 + 54 + examples: 55 + - | 56 + #include <dt-bindings/interrupt-controller/arm-gic.h> 57 + #include <dt-bindings/interrupt-controller/irq.h> 58 + #include <dt-bindings/soc/ti,sci_pm_domain.h> 59 + 60 + pcie0_ep: pcie-ep@5500000 { 61 + compatible = "ti,am654-pcie-ep"; 62 + reg = <0x5500000 0x1000>, 63 + <0x5501000 0x1000>, 64 + <0x10000000 0x8000000>, 65 + <0x5506000 0x1000>; 66 + reg-names = "app", "dbics", "addr_space", "atu"; 67 + power-domains = <&k3_pds 120 TI_SCI_PD_EXCLUSIVE>; 68 + ti,syscon-pcie-mode = <&pcie0_mode>; 69 + num-ib-windows = <16>; 70 + num-ob-windows = <16>; 71 + max-link-speed = <2>; 72 + dma-coherent; 73 + interrupts = <GIC_SPI 340 IRQ_TYPE_EDGE_RISING>; 74 + };
+96
Documentation/devicetree/bindings/pci/ti,am65-pci-host.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + # Copyright (C) 2021 Texas Instruments Incorporated - http://www.ti.com/ 3 + %YAML 1.2 4 + --- 5 + $id: http://devicetree.org/schemas/pci/ti,am65-pci-host.yaml# 6 + $schema: http://devicetree.org/meta-schemas/core.yaml# 7 + 8 + title: TI AM65 PCI Host 9 + 10 + maintainers: 11 + - Kishon Vijay Abraham I <kishon@ti.com> 12 + 13 + allOf: 14 + - $ref: /schemas/pci/pci-bus.yaml# 15 + 16 + properties: 17 + compatible: 18 + enum: 19 + - ti,am654-pcie-rc 20 + - ti,keystone-pcie 21 + 22 + reg: 23 + maxItems: 4 24 + 25 + reg-names: 26 + items: 27 + - const: app 28 + - const: dbics 29 + - const: config 30 + - const: atu 31 + 32 + power-domains: 33 + maxItems: 1 34 + 35 + ti,syscon-pcie-id: 36 + description: Phandle to the SYSCON entry required for getting PCIe device/vendor ID 37 + $ref: /schemas/types.yaml#/definitions/phandle 38 + 39 + ti,syscon-pcie-mode: 40 + description: Phandle to the SYSCON entry required for configuring PCIe in RC or EP mode. 41 + $ref: /schemas/types.yaml#/definitions/phandle 42 + 43 + msi-map: true 44 + 45 + dma-coherent: true 46 + 47 + required: 48 + - compatible 49 + - reg 50 + - reg-names 51 + - max-link-speed 52 + - ti,syscon-pcie-id 53 + - ti,syscon-pcie-mode 54 + - ranges 55 + 56 + if: 57 + properties: 58 + compatible: 59 + enum: 60 + - ti,am654-pcie-rc 61 + then: 62 + required: 63 + - dma-coherent 64 + - power-domains 65 + - msi-map 66 + 67 + unevaluatedProperties: false 68 + 69 + examples: 70 + - | 71 + #include <dt-bindings/interrupt-controller/arm-gic.h> 72 + #include <dt-bindings/interrupt-controller/irq.h> 73 + #include <dt-bindings/soc/ti,sci_pm_domain.h> 74 + 75 + pcie0_rc: pcie@5500000 { 76 + compatible = "ti,am654-pcie-rc"; 77 + reg = <0x5500000 0x1000>, 78 + <0x5501000 0x1000>, 79 + <0x10000000 0x2000>, 80 + <0x5506000 0x1000>; 81 + reg-names = "app", "dbics", "config", "atu"; 82 + power-domains = <&k3_pds 120 TI_SCI_PD_EXCLUSIVE>; 83 + #address-cells = <3>; 84 + #size-cells = <2>; 85 + ranges = <0x81000000 0 0 0x10020000 0 0x00010000>, 86 + <0x82000000 0 0x10030000 0x10030000 0 0x07FD0000>; 87 + ti,syscon-pcie-id = <&pcie_devid>; 88 + ti,syscon-pcie-mode = <&pcie0_mode>; 89 + bus-range = <0x0 0xff>; 90 + num-viewport = <16>; 91 + max-link-speed = <2>; 92 + dma-coherent; 93 + interrupts = <GIC_SPI 340 IRQ_TYPE_EDGE_RISING>; 94 + msi-map = <0x0 &gic_its 0x0 0x10000>; 95 + device_type = "pci"; 96 + };
-1
Documentation/devicetree/bindings/perf/arm,cmn.yaml
··· 21 21 22 22 interrupts: 23 23 minItems: 1 24 - maxItems: 4 25 24 items: 26 25 - description: Overflow interrupt for DTC0 27 26 - description: Overflow interrupt for DTC1
-1
Documentation/devicetree/bindings/phy/brcm,bcm63xx-usbh-phy.yaml
··· 28 28 29 29 clock-names: 30 30 minItems: 1 31 - maxItems: 2 32 31 items: 33 32 - const: usbh 34 33 - const: usb_ref
-3
Documentation/devicetree/bindings/phy/brcm,brcmstb-usb-phy.yaml
··· 22 22 23 23 reg: 24 24 minItems: 1 25 - maxItems: 6 26 25 items: 27 26 - description: the base CTRL register 28 27 - description: XHCI EC register ··· 32 33 33 34 reg-names: 34 35 minItems: 1 35 - maxItems: 6 36 36 items: 37 37 - const: ctrl 38 38 - const: xhci_ec ··· 49 51 50 52 clock-names: 51 53 minItems: 1 52 - maxItems: 2 53 54 items: 54 55 - const: sw_usb 55 56 - const: sw_usb3
-1
Documentation/devicetree/bindings/phy/brcm,sata-phy.yaml
··· 35 35 36 36 reg-names: 37 37 minItems: 1 38 - maxItems: 2 39 38 items: 40 39 - const: phy 41 40 - const: phy-ctrl
-2
Documentation/devicetree/bindings/phy/mediatek,tphy.yaml
··· 131 131 132 132 clocks: 133 133 minItems: 1 134 - maxItems: 2 135 134 items: 136 135 - description: Reference clock, (HS is 48Mhz, SS/P is 24~27Mhz) 137 136 - description: Reference clock of analog phy ··· 140 141 141 142 clock-names: 142 143 minItems: 1 143 - maxItems: 2 144 144 items: 145 145 - const: ref 146 146 - const: da_ref
-2
Documentation/devicetree/bindings/phy/phy-cadence-sierra.yaml
··· 31 31 32 32 resets: 33 33 minItems: 1 34 - maxItems: 2 35 34 items: 36 35 - description: Sierra PHY reset. 37 36 - description: Sierra APB reset. This is optional. 38 37 39 38 reset-names: 40 39 minItems: 1 41 - maxItems: 2 42 40 items: 43 41 - const: sierra_reset 44 42 - const: sierra_apb
-4
Documentation/devicetree/bindings/phy/phy-cadence-torrent.yaml
··· 52 52 53 53 reg: 54 54 minItems: 1 55 - maxItems: 2 56 55 items: 57 56 - description: Offset of the Torrent PHY configuration registers. 58 57 - description: Offset of the DPTX PHY configuration registers. 59 58 60 59 reg-names: 61 60 minItems: 1 62 - maxItems: 2 63 61 items: 64 62 - const: torrent_phy 65 63 - const: dptx_phy 66 64 67 65 resets: 68 66 minItems: 1 69 - maxItems: 2 70 67 items: 71 68 - description: Torrent PHY reset. 72 69 - description: Torrent APB reset. This is optional. 73 70 74 71 reset-names: 75 72 minItems: 1 76 - maxItems: 2 77 73 items: 78 74 - const: torrent_reset 79 75 - const: torrent_apb
-1
Documentation/devicetree/bindings/phy/qcom,ipq806x-usb-phy-hs.yaml
··· 30 30 31 31 clock-names: 32 32 minItems: 1 33 - maxItems: 2 34 33 items: 35 34 - const: ref 36 35 - const: xo
-1
Documentation/devicetree/bindings/phy/qcom,ipq806x-usb-phy-ss.yaml
··· 30 30 31 31 clock-names: 32 32 minItems: 1 33 - maxItems: 2 34 33 items: 35 34 - const: ref 36 35 - const: xo
-1
Documentation/devicetree/bindings/phy/qcom,qmp-phy.yaml
··· 49 49 50 50 reg: 51 51 minItems: 1 52 - maxItems: 2 53 52 items: 54 53 - description: Address and length of PHY's common serdes block. 55 54 - description: Address and length of PHY's DP_COM control block.
-2
Documentation/devicetree/bindings/phy/qcom,qusb2-phy.yaml
··· 36 36 37 37 clocks: 38 38 minItems: 2 39 - maxItems: 3 40 39 items: 41 40 - description: phy config clock 42 41 - description: 19.2 MHz ref clk ··· 43 44 44 45 clock-names: 45 46 minItems: 2 46 - maxItems: 3 47 47 items: 48 48 - const: cfg_ahb 49 49 - const: ref
-2
Documentation/devicetree/bindings/phy/renesas,usb2-phy.yaml
··· 39 39 40 40 clock-names: 41 41 minItems: 1 42 - maxItems: 2 43 42 items: 44 43 - const: fck 45 44 - const: usb_x1 ··· 60 61 61 62 resets: 62 63 minItems: 1 63 - maxItems: 2 64 64 items: 65 65 - description: reset of USB 2.0 host side 66 66 - description: reset of USB 2.0 peripheral side
-1
Documentation/devicetree/bindings/phy/renesas,usb3-phy.yaml
··· 33 33 # If you want to use the ssc, the clock-frequency of usb_extal 34 34 # must not be 0. 35 35 minItems: 2 36 - maxItems: 3 37 36 items: 38 37 - const: usb3-if # The funcional clock 39 38 - const: usb3s_clk # The usb3's external clock
-1
Documentation/devicetree/bindings/pinctrl/actions,s500-pinctrl.yaml
··· 26 26 - description: PAD Pull Control + PAD Schmitt Trigger Enable + PAD Control 27 27 - description: PAD Drive Capacity Select 28 28 minItems: 1 29 - maxItems: 4 30 29 31 30 clocks: 32 31 maxItems: 1
-1
Documentation/devicetree/bindings/power/amlogic,meson-ee-pwrc.yaml
··· 37 37 38 38 clock-names: 39 39 minItems: 1 40 - maxItems: 2 41 40 items: 42 41 - const: vpu 43 42 - const: vapb
-100
Documentation/devicetree/bindings/power/renesas,sysc-rmobile.txt
··· 1 - DT bindings for the Renesas R-Mobile System Controller 2 - 3 - == System Controller Node == 4 - 5 - The R-Mobile System Controller provides the following functions: 6 - - Boot mode management, 7 - - Reset generation, 8 - - Power management. 9 - 10 - Required properties: 11 - - compatible: Should be "renesas,sysc-<soctype>", "renesas,sysc-rmobile" as 12 - fallback. 13 - Examples with soctypes are: 14 - - "renesas,sysc-r8a73a4" (R-Mobile APE6) 15 - - "renesas,sysc-r8a7740" (R-Mobile A1) 16 - - "renesas,sysc-sh73a0" (SH-Mobile AG5) 17 - - reg: Two address start and address range blocks for the device: 18 - - The first block refers to the normally accessible registers, 19 - - the second block refers to the registers protected by the HPB 20 - semaphore. 21 - 22 - Optional nodes: 23 - - pm-domains: This node contains a hierarchy of PM domain nodes, which should 24 - match the Power Area Hierarchy in the Power Domain Specifications section of 25 - the device's datasheet. 26 - 27 - 28 - == PM Domain Nodes == 29 - 30 - Each of the PM domain nodes represents a PM domain, as documented by the 31 - generic PM domain bindings in 32 - Documentation/devicetree/bindings/power/power-domain.yaml. 33 - 34 - The nodes should be named by the real power area names, and thus their names 35 - should be unique. 36 - 37 - Required properties: 38 - - #power-domain-cells: Must be 0. 39 - 40 - Optional properties: 41 - - reg: If the PM domain is not always-on, this property must contain the bit 42 - index number for the corresponding power area in the various Power 43 - Control and Status Registers. The parent's node must contain the 44 - following two properties: 45 - - #address-cells: Must be 1, 46 - - #size-cells: Must be 0. 47 - If the PM domain is always-on, this property must be omitted. 48 - 49 - 50 - Example: 51 - 52 - This shows a subset of the r8a7740 PM domain hierarchy, containing the 53 - C5 "always-on" domain, 2 of its subdomains (A4S and A4SU), and the A3SP domain, 54 - which is a subdomain of A4S. 55 - 56 - sysc: system-controller@e6180000 { 57 - compatible = "renesas,sysc-r8a7740", "renesas,sysc-rmobile"; 58 - reg = <0xe6180000 0x8000>, <0xe6188000 0x8000>; 59 - 60 - pm-domains { 61 - pd_c5: c5 { 62 - #address-cells = <1>; 63 - #size-cells = <0>; 64 - #power-domain-cells = <0>; 65 - 66 - pd_a4s: a4s@10 { 67 - reg = <10>; 68 - #address-cells = <1>; 69 - #size-cells = <0>; 70 - #power-domain-cells = <0>; 71 - 72 - pd_a3sp: a3sp@11 { 73 - reg = <11>; 74 - #power-domain-cells = <0>; 75 - }; 76 - }; 77 - 78 - pd_a4su: a4su@20 { 79 - reg = <20>; 80 - #power-domain-cells = <0>; 81 - }; 82 - }; 83 - }; 84 - }; 85 - 86 - 87 - == PM Domain Consumers == 88 - 89 - Hardware blocks belonging to a PM domain should contain a "power-domains" 90 - property that is a phandle pointing to the corresponding PM domain node. 91 - 92 - Example: 93 - 94 - tpu: pwm@e6600000 { 95 - compatible = "renesas,tpu-r8a7740", "renesas,tpu"; 96 - reg = <0xe6600000 0x100>; 97 - clocks = <&mstp3_clks R8A7740_CLK_TPU0>; 98 - power-domains = <&pd_a3sp>; 99 - #pwm-cells = <3>; 100 - };
+121
Documentation/devicetree/bindings/power/renesas,sysc-rmobile.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/renesas,sysc-rmobile.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Renesas R-Mobile System Controller 8 + 9 + maintainers: 10 + - Geert Uytterhoeven <geert+renesas@glider.be> 11 + - Magnus Damm <magnus.damm@gmail.com> 12 + 13 + description: | 14 + The R-Mobile System Controller provides the following functions: 15 + - Boot mode management, 16 + - Reset generation, 17 + - Power management. 18 + 19 + properties: 20 + compatible: 21 + items: 22 + - enum: 23 + - renesas,sysc-r8a73a4 # R-Mobile APE6 24 + - renesas,sysc-r8a7740 # R-Mobile A1 25 + - renesas,sysc-sh73a0 # SH-Mobile AG5 26 + - const: renesas,sysc-rmobile # Generic SH/R-Mobile 27 + 28 + reg: 29 + items: 30 + - description: Normally accessible register block 31 + - description: Register block protected by the HPB semaphore 32 + 33 + pm-domains: 34 + type: object 35 + description: | 36 + This node contains a hierarchy of PM domain nodes, which should match the 37 + Power Area Hierarchy in the Power Domain Specifications section of the 38 + device's datasheet. 39 + 40 + properties: 41 + '#address-cells': 42 + const: 1 43 + 44 + '#size-cells': 45 + const: 0 46 + 47 + additionalProperties: 48 + $ref: "#/$defs/pd-node" 49 + 50 + required: 51 + - compatible 52 + - reg 53 + - pm-domains 54 + 55 + additionalProperties: false 56 + 57 + $defs: 58 + pd-node: 59 + type: object 60 + description: 61 + PM domain node representing a PM domain. This node hould be named by 62 + the real power area name, and thus its name should be unique. 63 + 64 + properties: 65 + reg: 66 + maxItems: 1 67 + description: 68 + If the PM domain is not always-on, this property must contain the 69 + bit index number for the corresponding power area in the various 70 + Power Control and Status Registers. 71 + If the PM domain is always-on, this property must be omitted. 72 + 73 + '#address-cells': 74 + const: 1 75 + 76 + '#size-cells': 77 + const: 0 78 + 79 + '#power-domain-cells': 80 + const: 0 81 + 82 + required: 83 + - '#power-domain-cells' 84 + 85 + additionalProperties: 86 + $ref: "#/$defs/pd-node" 87 + 88 + examples: 89 + - | 90 + // This shows a subset of the r8a7740 PM domain hierarchy, containing the 91 + // C5 "always-on" domain, 2 of its subdomains (A4S and A4SU), and the A3SP 92 + // domain, which is a subdomain of A4S. 93 + sysc: system-controller@e6180000 { 94 + compatible = "renesas,sysc-r8a7740", "renesas,sysc-rmobile"; 95 + reg = <0xe6180000 0x8000>, <0xe6188000 0x8000>; 96 + 97 + pm-domains { 98 + pd_c5: c5 { 99 + #address-cells = <1>; 100 + #size-cells = <0>; 101 + #power-domain-cells = <0>; 102 + 103 + pd_a4s: a4s@10 { 104 + reg = <10>; 105 + #address-cells = <1>; 106 + #size-cells = <0>; 107 + #power-domain-cells = <0>; 108 + 109 + pd_a3sp: a3sp@11 { 110 + reg = <11>; 111 + #power-domain-cells = <0>; 112 + }; 113 + }; 114 + 115 + pd_a4su: a4su@20 { 116 + reg = <20>; 117 + #power-domain-cells = <0>; 118 + }; 119 + }; 120 + }; 121 + };
-48
Documentation/devicetree/bindings/property-units.txt
··· 1 - Standard Unit Suffixes for Property names 2 - 3 - Properties which have a unit of measure are recommended to have a unit 4 - suffix appended to the property name. The list below contains the 5 - recommended suffixes. Other variations exist in bindings, but should not 6 - be used in new bindings or added here. The inconsistency in the unit 7 - prefixes is due to selecting the most commonly used variants. 8 - 9 - It is also recommended to use the units listed here and not add additional 10 - unit prefixes. 11 - 12 - Time/Frequency 13 - ---------------------------------------- 14 - -mhz : megahertz 15 - -hz : hertz (preferred) 16 - -sec : second 17 - -ms : millisecond 18 - -us : microsecond 19 - -ns : nanosecond 20 - -ps : picosecond 21 - 22 - Distance 23 - ---------------------------------------- 24 - -mm : millimeter 25 - 26 - Electricity 27 - ---------------------------------------- 28 - -microamp : microampere 29 - -microamp-hours : microampere hour 30 - -ohms : ohm 31 - -micro-ohms : microohm 32 - -microwatt-hours: microwatt hour 33 - -microvolt : microvolt 34 - -picofarads : picofarad 35 - -femtofarads : femtofarad 36 - 37 - Temperature 38 - ---------------------------------------- 39 - -celsius : degree Celsius 40 - -millicelsius : millidegree Celsius 41 - 42 - Pressure 43 - ---------------------------------------- 44 - -kpascal : kilopascal 45 - 46 - Throughput 47 - ---------------------------------------- 48 - -kBps : kilobytes per second
-1
Documentation/devicetree/bindings/pwm/allwinner,sun4i-a10-pwm.yaml
··· 37 37 38 38 clocks: 39 39 minItems: 1 40 - maxItems: 2 41 40 items: 42 41 - description: Module Clock 43 42 - description: Bus Clock
-21
Documentation/devicetree/bindings/pwm/brcm,iproc-pwm.txt
··· 1 - Broadcom iProc PWM controller device tree bindings 2 - 3 - This controller has 4 channels. 4 - 5 - Required Properties : 6 - - compatible: must be "brcm,iproc-pwm" 7 - - reg: physical base address and length of the controller's registers 8 - - clocks: phandle + clock specifier pair for the external clock 9 - - #pwm-cells: Should be 3. See pwm.yaml in this directory for a 10 - description of the cells format. 11 - 12 - Refer to clocks/clock-bindings.txt for generic clock consumer properties. 13 - 14 - Example: 15 - 16 - pwm: pwm@18031000 { 17 - compatible = "brcm,iproc-pwm"; 18 - reg = <0x18031000 0x28>; 19 - clocks = <&osc>; 20 - #pwm-cells = <3>; 21 - };
+45
Documentation/devicetree/bindings/pwm/brcm,iproc-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/brcm,iproc-pwm.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Broadcom iProc PWM controller 8 + 9 + maintainers: 10 + - Rafał Miłecki <rafal@milecki.pl> 11 + 12 + description: 13 + This controller has 4 channels. 14 + 15 + allOf: 16 + - $ref: pwm.yaml# 17 + 18 + properties: 19 + compatible: 20 + const: brcm,iproc-pwm 21 + 22 + reg: 23 + maxItems: 1 24 + 25 + clocks: 26 + description: external clock 27 + maxItems: 1 28 + 29 + "#pwm-cells": 30 + const: 3 31 + 32 + unevaluatedProperties: false 33 + 34 + required: 35 + - reg 36 + - clocks 37 + 38 + examples: 39 + - | 40 + pwm@18031000 { 41 + compatible = "brcm,iproc-pwm"; 42 + reg = <0x18031000 0x28>; 43 + clocks = <&osc>; 44 + #pwm-cells = <3>; 45 + };
+5 -4
Documentation/devicetree/bindings/pwm/pwm.yaml
··· 24 24 25 25 examples: 26 26 - | 27 - pwm: pwm@7000a000 { 28 - compatible = "nvidia,tegra20-pwm"; 29 - reg = <0x7000a000 0x100>; 30 - #pwm-cells = <2>; 27 + pwm: pwm@1c20e00 { 28 + compatible = "allwinner,sun7i-a20-pwm"; 29 + reg = <0x01c20e00 0xc>; 30 + clocks = <&osc24M>; 31 + #pwm-cells = <3>; 31 32 };
+13
Documentation/devicetree/bindings/pwm/renesas,pwm-rcar.yaml
··· 61 61 - reg 62 62 - '#pwm-cells' 63 63 - clocks 64 + - power-domains 65 + 66 + if: 67 + not: 68 + properties: 69 + compatible: 70 + contains: 71 + enum: 72 + - renesas,pwm-r8a7778 73 + - renesas,pwm-r8a7779 74 + then: 75 + required: 76 + - resets 64 77 65 78 additionalProperties: false 66 79
+26
Documentation/devicetree/bindings/pwm/renesas,tpu-pwm.yaml
··· 9 9 maintainers: 10 10 - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> 11 11 12 + select: 13 + properties: 14 + compatible: 15 + contains: 16 + const: renesas,tpu 17 + required: 18 + - compatible 19 + - '#pwm-cells' 20 + 12 21 properties: 13 22 compatible: 14 23 items: ··· 67 58 - compatible 68 59 - reg 69 60 - '#pwm-cells' 61 + - clocks 62 + - power-domains 63 + 64 + allOf: 65 + - $ref: pwm.yaml# 66 + 67 + - if: 68 + not: 69 + properties: 70 + compatible: 71 + contains: 72 + enum: 73 + - renesas,tpu-r8a73a4 74 + - renesas,tpu-r8a7740 75 + then: 76 + required: 77 + - resets 70 78 71 79 additionalProperties: false 72 80
-2
Documentation/devicetree/bindings/remoteproc/st,stm32-rproc.yaml
··· 72 72 - from local to remote, where ACK from the remote means that communnication 73 73 as been stopped on the remote side. 74 74 minItems: 1 75 - maxItems: 4 76 75 77 76 mbox-names: 78 77 items: ··· 80 81 - const: shutdown 81 82 - const: detach 82 83 minItems: 1 83 - maxItems: 4 84 84 85 85 memory-region: 86 86 description:
+2 -2
Documentation/devicetree/bindings/remoteproc/ti,keystone-rproc.txt
··· 48 48 bindings for the reset argument specifier as per SoC, 49 49 Documentation/devicetree/bindings/reset/ti-syscon-reset.txt 50 50 for 66AK2HK/66AK2L/66AK2E SoCs or, 51 - Documentation/devicetree/bindings/reset/ti,sci-reset.txt 51 + Documentation/devicetree/bindings/reset/ti,sci-reset.yaml 52 52 for 66AK2G SoCs 53 53 54 54 - interrupts: Should contain an entry for each value in 'interrupt-names'. ··· 82 82 - power-domains: Should contain a phandle to a PM domain provider node 83 83 and an args specifier containing the DSP device id 84 84 value. This property is as per the binding, 85 - Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt 85 + Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml 86 86 87 87 Optional properties: 88 88 --------------------
+1 -2
Documentation/devicetree/bindings/remoteproc/ti,omap-remoteproc.yaml
··· 65 65 OMAP Mailbox specifier denoting the sub-mailbox, to be used for 66 66 communication with the remote processor. The specifier format is 67 67 as per the bindings, 68 - Documentation/devicetree/bindings/mailbox/omap-mailbox.txt 68 + Documentation/devicetree/bindings/mailbox/ti,omap-mailbox.yaml 69 69 This property should match with the sub-mailbox node used in 70 70 the firmware image. 71 71 ··· 116 116 list, in the specified order, each representing the corresponding 117 117 internal RAM memory region. 118 118 minItems: 1 119 - maxItems: 3 120 119 items: 121 120 - const: l2ram 122 121 - const: l1pram
-1
Documentation/devicetree/bindings/reset/fsl,imx-src.yaml
··· 59 59 - description: SRC interrupt 60 60 - description: CPU WDOG interrupts out of SRC 61 61 minItems: 1 62 - maxItems: 2 63 62 64 63 '#reset-cells': 65 64 const: 1
-62
Documentation/devicetree/bindings/reset/ti,sci-reset.txt
··· 1 - Texas Instruments System Control Interface (TI-SCI) Reset Controller 2 - ===================================================================== 3 - 4 - Some TI SoCs contain a system controller (like the Power Management Micro 5 - Controller (PMMC) on Keystone 66AK2G SoC) that are responsible for controlling 6 - the state of the various hardware modules present on the SoC. Communication 7 - between the host processor running an OS and the system controller happens 8 - through a protocol called TI System Control Interface (TI-SCI protocol). 9 - For TI SCI details, please refer to the document, 10 - Documentation/devicetree/bindings/arm/keystone/ti,sci.txt 11 - 12 - TI-SCI Reset Controller Node 13 - ============================ 14 - This reset controller node uses the TI SCI protocol to perform the reset 15 - management of various hardware modules present on the SoC. Must be a child 16 - node of the associated TI-SCI system controller node. 17 - 18 - Required properties: 19 - -------------------- 20 - - compatible : Should be "ti,sci-reset" 21 - - #reset-cells : Should be 2. Please see the reset consumer node below for 22 - usage details. 23 - 24 - TI-SCI Reset Consumer Nodes 25 - =========================== 26 - Each of the reset consumer nodes should have the following properties, 27 - in addition to their own properties. 28 - 29 - Required properties: 30 - -------------------- 31 - - resets : A phandle and reset specifier pair, one pair for each reset 32 - signal that affects the device, or that the device manages. 33 - The phandle should point to the TI-SCI reset controller node, 34 - and the reset specifier should have 2 cell-values. The first 35 - cell should contain the device ID. The second cell should 36 - contain the reset mask value used by system controller. 37 - Please refer to the protocol documentation for these values 38 - to be used for different devices, 39 - http://processors.wiki.ti.com/index.php/TISCI#66AK2G02_Data 40 - 41 - Please also refer to Documentation/devicetree/bindings/reset/reset.txt for 42 - common reset controller usage by consumers. 43 - 44 - Example: 45 - -------- 46 - The following example demonstrates both a TI-SCI reset controller node and a 47 - consumer (a DSP device) on the 66AK2G SoC. 48 - 49 - pmmc: pmmc { 50 - compatible = "ti,k2g-sci"; 51 - 52 - k2g_reset: reset-controller { 53 - compatible = "ti,sci-reset"; 54 - #reset-cells = <2>; 55 - }; 56 - }; 57 - 58 - dsp0: dsp@10800000 { 59 - ... 60 - resets = <&k2g_reset 0x0046 0x1>; 61 - ... 62 - };
+51
Documentation/devicetree/bindings/reset/ti,sci-reset.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/reset/ti,sci-reset.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: TI-SCI reset controller node bindings 8 + 9 + maintainers: 10 + - Nishanth Menon <nm@ti.com> 11 + 12 + description: | 13 + Some TI SoCs contain a system controller (like the Power Management Micro 14 + Controller (PMMC) on Keystone 66AK2G SoC) that are responsible for controlling 15 + the state of the various hardware modules present on the SoC. Communication 16 + between the host processor running an OS and the system controller happens 17 + through a protocol called TI System Control Interface (TI-SCI protocol). 18 + 19 + This reset controller node uses the TI SCI protocol to perform the reset 20 + management of various hardware modules present on the SoC. Must be a child 21 + node of the associated TI-SCI system controller node. 22 + 23 + properties: 24 + $nodename: 25 + pattern: "^reset-controller$" 26 + 27 + compatible: 28 + const: ti,sci-reset 29 + 30 + "#reset-cells": 31 + const: 2 32 + description: 33 + The two cells represent values that the TI-SCI controller defines. 34 + 35 + The first cell should contain the device ID. 36 + 37 + The second cell should contain the reset mask corresponding to the device 38 + used by system controller. 39 + 40 + Please see http://processors.wiki.ti.com/index.php/TISCI for 41 + protocol documentation for the values to be used for different devices. 42 + 43 + 44 + additionalProperties: false 45 + 46 + examples: 47 + - | 48 + k3_reset: reset-controller { 49 + compatible = "ti,sci-reset"; 50 + #reset-cells = <2>; 51 + };
-1
Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
··· 56 56 57 57 interrupts: 58 58 minItems: 3 59 - maxItems: 4 60 59 items: 61 60 - description: DirError interrupt 62 61 - description: DataError interrupt
-22
Documentation/devicetree/bindings/rng/mtk-rng.txt
··· 1 - Device-Tree bindings for Mediatek random number generator 2 - found in MediaTek SoC family 3 - 4 - Required properties: 5 - - compatible : Should be 6 - "mediatek,mt7622-rng", "mediatek,mt7623-rng" : for MT7622 7 - "mediatek,mt7629-rng", "mediatek,mt7623-rng" : for MT7629 8 - "mediatek,mt7623-rng" : for MT7623 9 - "mediatek,mt8516-rng", "mediatek,mt7623-rng" : for MT8516 10 - - clocks : list of clock specifiers, corresponding to 11 - entries in clock-names property; 12 - - clock-names : Should contain "rng" entries; 13 - - reg : Specifies base physical address and size of the registers 14 - 15 - Example: 16 - 17 - rng: rng@1020f000 { 18 - compatible = "mediatek,mt7623-rng"; 19 - reg = <0 0x1020f000 0 0x1000>; 20 - clocks = <&infracfg CLK_INFRA_TRNG>; 21 - clock-names = "rng"; 22 - };
+54
Documentation/devicetree/bindings/rng/mtk-rng.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: "http://devicetree.org/schemas/rng/mtk-rng.yaml#" 5 + $schema: "http://devicetree.org/meta-schemas/core.yaml#" 6 + 7 + title: MediaTek Random number generator 8 + 9 + maintainers: 10 + - Sean Wang <sean.wang@mediatek.com> 11 + 12 + properties: 13 + $nodename: 14 + pattern: "^rng@[0-9a-f]+$" 15 + 16 + compatible: 17 + oneOf: 18 + - enum: 19 + - mediatek,mt7623-rng 20 + - items: 21 + - enum: 22 + - mediatek,mt7622-rng 23 + - mediatek,mt7629-rng 24 + - mediatek,mt8365-rng 25 + - mediatek,mt8516-rng 26 + - const: mediatek,mt7623-rng 27 + 28 + reg: 29 + maxItems: 1 30 + 31 + clocks: 32 + maxItems: 1 33 + 34 + clock-names: 35 + items: 36 + - const: rng 37 + 38 + required: 39 + - compatible 40 + - reg 41 + - clocks 42 + - clock-names 43 + 44 + additionalProperties: false 45 + 46 + examples: 47 + - | 48 + #include <dt-bindings/clock/mt2701-clk.h> 49 + rng: rng@1020f000 { 50 + compatible = "mediatek,mt7623-rng"; 51 + reg = <0x1020f000 0x1000>; 52 + clocks = <&infracfg CLK_INFRA_TRNG>; 53 + clock-names = "rng"; 54 + };
-1
Documentation/devicetree/bindings/rtc/allwinner,sun6i-a31-rtc.yaml
··· 32 32 33 33 interrupts: 34 34 minItems: 1 35 - maxItems: 2 36 35 items: 37 36 - description: RTC Alarm 0 38 37 - description: RTC Alarm 1
+58
Documentation/devicetree/bindings/rtc/arm,pl031.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/arm,pl031.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Arm Primecell PL031 Real Time Clock 8 + 9 + select: 10 + properties: 11 + compatible: 12 + contains: 13 + const: arm,pl031 14 + required: 15 + - compatible 16 + 17 + allOf: 18 + - $ref: rtc.yaml# 19 + 20 + maintainers: 21 + - Rob Herring <robh@kernel.org> 22 + 23 + properties: 24 + compatible: 25 + items: 26 + - const: arm,pl031 27 + - const: arm,primecell 28 + 29 + reg: 30 + maxItems: 1 31 + 32 + interrupts: 33 + maxItems: 1 34 + 35 + clocks: 36 + maxItems: 1 37 + 38 + clock-names: 39 + maxItems: 1 40 + 41 + start-year: true 42 + 43 + required: 44 + - compatible 45 + - reg 46 + - clocks 47 + - clock-names 48 + 49 + additionalProperties: false 50 + 51 + examples: 52 + - | 53 + rtc@10017000 { 54 + compatible = "arm,pl031", "arm,primecell"; 55 + reg = <0x10017000 0x1000>; 56 + clocks = <&pclk>; 57 + clock-names = "apb_pclk"; 58 + };
-1
Documentation/devicetree/bindings/rtc/imxdi-rtc.yaml
··· 21 21 - description: rtc alarm interrupt 22 22 - description: dryice security violation interrupt 23 23 minItems: 1 24 - maxItems: 2 25 24 26 25 clocks: 27 26 maxItems: 1
+58
Documentation/devicetree/bindings/rtc/nxp,pcf8563.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/rtc/nxp,pcf8563.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Philips PCF8563/Epson RTC8564 Real Time Clock 8 + 9 + maintainers: 10 + - Alexandre Belloni <alexandre.belloni@bootlin.com> 11 + 12 + allOf: 13 + - $ref: rtc.yaml# 14 + 15 + properties: 16 + compatible: 17 + enum: 18 + - epson,rtc8564 19 + - microcrystal,rv8564 20 + - nxp,pca8565 21 + - nxp,pcf8563 22 + - nxp,pcf85263 23 + - nxp,pcf85363 24 + 25 + reg: 26 + maxItems: 1 27 + 28 + "#clock-cells": 29 + const: 0 30 + 31 + clock-output-names: 32 + maxItems: 1 33 + 34 + interrupts: 35 + maxItems: 1 36 + 37 + start-year: true 38 + wakeup-source: true 39 + 40 + required: 41 + - compatible 42 + - reg 43 + 44 + additionalProperties: false 45 + 46 + examples: 47 + - | 48 + i2c { 49 + #address-cells = <1>; 50 + #size-cells = <0>; 51 + 52 + rtc@51 { 53 + compatible = "nxp,pcf8563"; 54 + reg = <0x51>; 55 + #clock-cells = <0>; 56 + }; 57 + }; 58 + ...
-17
Documentation/devicetree/bindings/rtc/pcf85363.txt
··· 1 - NXP PCF85263/PCF85363 Real Time Clock 2 - ============================ 3 - 4 - Required properties: 5 - - compatible: Should contain "nxp,pcf85263" or "nxp,pcf85363". 6 - - reg: I2C address for chip. 7 - 8 - Optional properties: 9 - - interrupts: IRQ line for the RTC (not implemented). 10 - 11 - Example: 12 - 13 - pcf85363: pcf85363@51 { 14 - compatible = "nxp,pcf85363"; 15 - reg = <0x51>; 16 - }; 17 -
-29
Documentation/devicetree/bindings/rtc/pcf8563.txt
··· 1 - * Philips PCF8563/Epson RTC8564 Real Time Clock 2 - 3 - Philips PCF8563/Epson RTC8564 Real Time Clock 4 - 5 - Required properties: 6 - - compatible: Should contain "nxp,pcf8563", 7 - "epson,rtc8564" or 8 - "microcrystal,rv8564" or 9 - "nxp,pca8565" 10 - - reg: I2C address for chip. 11 - 12 - Optional property: 13 - - #clock-cells: Should be 0. 14 - - clock-output-names: 15 - overwrite the default clock name "pcf8563-clkout" 16 - 17 - Example: 18 - 19 - pcf8563: pcf8563@51 { 20 - compatible = "nxp,pcf8563"; 21 - reg = <0x51>; 22 - #clock-cells = <0>; 23 - }; 24 - 25 - device { 26 - ... 27 - clocks = <&pcf8563>; 28 - ... 29 - };
+65
Documentation/devicetree/bindings/rtc/xlnx,zynqmp-rtc.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/xlnx,zynqmp-rtc.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Xilinx Zynq Ultrascale+ MPSoC Real Time Clock 8 + 9 + description: 10 + RTC controller for the Xilinx Zynq MPSoC Real Time Clock. 11 + The RTC controller has separate IRQ lines for seconds and alarm. 12 + 13 + maintainers: 14 + - Michal Simek <michal.simek@xilinx.com> 15 + 16 + allOf: 17 + - $ref: rtc.yaml# 18 + 19 + properties: 20 + compatible: 21 + const: xlnx,zynqmp-rtc 22 + 23 + reg: 24 + maxItems: 1 25 + 26 + interrupts: 27 + minItems: 2 28 + 29 + interrupt-names: 30 + items: 31 + - const: alarm 32 + - const: sec 33 + 34 + calibration: 35 + description: | 36 + calibration value for 1 sec period which will 37 + be programmed directly to calibration register. 38 + $ref: /schemas/types.yaml#/definitions/uint32 39 + minimum: 0x1 40 + maximum: 0x1FFFFF 41 + default: 0x198233 42 + 43 + required: 44 + - compatible 45 + - reg 46 + - interrupts 47 + - interrupt-names 48 + 49 + additionalProperties: false 50 + 51 + examples: 52 + - | 53 + soc { 54 + #address-cells = <2>; 55 + #size-cells = <2>; 56 + 57 + rtc: rtc@ffa60000 { 58 + compatible = "xlnx,zynqmp-rtc"; 59 + reg = <0x0 0xffa60000 0x0 0x100>; 60 + interrupt-parent = <&gic>; 61 + interrupts = <0 26 4>, <0 27 4>; 62 + interrupt-names = "alarm", "sec"; 63 + calibration = <0x198233>; 64 + }; 65 + };
-25
Documentation/devicetree/bindings/rtc/xlnx-rtc.txt
··· 1 - * Xilinx Zynq Ultrascale+ MPSoC Real Time Clock 2 - 3 - RTC controller for the Xilinx Zynq MPSoC Real Time Clock 4 - Separate IRQ lines for seconds and alarm 5 - 6 - Required properties: 7 - - compatible: Should be "xlnx,zynqmp-rtc" 8 - - reg: Physical base address of the controller and length 9 - of memory mapped region. 10 - - interrupts: IRQ lines for the RTC. 11 - - interrupt-names: interrupt line names eg. "sec" "alarm" 12 - 13 - Optional: 14 - - calibration: calibration value for 1 sec period which will 15 - be programmed directly to calibration register 16 - 17 - Example: 18 - rtc: rtc@ffa60000 { 19 - compatible = "xlnx,zynqmp-rtc"; 20 - reg = <0x0 0xffa60000 0x100>; 21 - interrupt-parent = <&gic>; 22 - interrupts = <0 26 4>, <0 27 4>; 23 - interrupt-names = "alarm", "sec"; 24 - calibration = <0x198233>; 25 - };
-2
Documentation/devicetree/bindings/serial/fsl-lpuart.yaml
··· 36 36 - description: ipg clock 37 37 - description: baud clock 38 38 minItems: 1 39 - maxItems: 2 40 39 41 40 clock-names: 42 41 items: 43 42 - const: ipg 44 43 - const: baud 45 44 minItems: 1 46 - maxItems: 2 47 45 48 46 dmas: 49 47 items:
-1
Documentation/devicetree/bindings/serial/samsung_uart.yaml
··· 44 44 clock-names: 45 45 description: N = 0 is allowed for SoCs without internal baud clock mux. 46 46 minItems: 2 47 - maxItems: 5 48 47 items: 49 48 - const: uart 50 49 - pattern: '^clk_uart_baud[0-3]$'
-1
Documentation/devicetree/bindings/soc/qcom/qcom,geni-se.yaml
··· 164 164 165 165 interrupts: 166 166 minItems: 1 167 - maxItems: 2 168 167 items: 169 168 - description: UART core irq 170 169 - description: Wakeup irq (RX GPIO)
-65
Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
··· 1 - Texas Instruments TI-SCI Generic Power Domain 2 - --------------------------------------------- 3 - 4 - Some TI SoCs contain a system controller (like the PMMC, etc...) that is 5 - responsible for controlling the state of the IPs that are present. 6 - Communication between the host processor running an OS and the system 7 - controller happens through a protocol known as TI-SCI [1]. 8 - 9 - [1] Documentation/devicetree/bindings/arm/keystone/ti,sci.txt 10 - 11 - PM Domain Node 12 - ============== 13 - The PM domain node represents the global PM domain managed by the PMMC, which 14 - in this case is the implementation as documented by the generic PM domain 15 - bindings in Documentation/devicetree/bindings/power/power-domain.yaml. Because 16 - this relies on the TI SCI protocol to communicate with the PMMC it must be a 17 - child of the pmmc node. 18 - 19 - Required Properties: 20 - -------------------- 21 - - compatible: should be "ti,sci-pm-domain" 22 - - #power-domain-cells: Can be one of the following: 23 - 1: Containing the device id of each node 24 - 2: First entry should be device id 25 - Second entry should be one of the floowing: 26 - TI_SCI_PD_EXCLUSIVE: To allow device to be 27 - exclusively controlled by 28 - the requesting hosts. 29 - TI_SCI_PD_SHARED: To allow device to be shared 30 - by multiple hosts. 31 - 32 - Example (K2G): 33 - ------------- 34 - pmmc: pmmc { 35 - compatible = "ti,k2g-sci"; 36 - ... 37 - 38 - k2g_pds: power-controller { 39 - compatible = "ti,sci-pm-domain"; 40 - #power-domain-cells = <1>; 41 - }; 42 - }; 43 - 44 - PM Domain Consumers 45 - =================== 46 - Hardware blocks belonging to a PM domain should contain a "power-domains" 47 - property that is a phandle pointing to the corresponding PM domain node 48 - along with an index representing the device id to be passed to the PMMC 49 - for device control. 50 - 51 - Required Properties: 52 - -------------------- 53 - - power-domains: phandle pointing to the corresponding PM domain node 54 - and an ID representing the device. 55 - 56 - See http://processors.wiki.ti.com/index.php/TISCI#66AK2G02_Data for the list 57 - of valid identifiers for k2g. 58 - 59 - Example (K2G): 60 - -------------------- 61 - uart0: serial@2530c00 { 62 - compatible = "ns16550a"; 63 - ... 64 - power-domains = <&k2g_pds 0x002c>; 65 - };
+59
Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/soc/ti/sci-pm-domain.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: TI-SCI generic power domain node bindings 8 + 9 + maintainers: 10 + - Nishanth Menon <nm@ti.com> 11 + 12 + allOf: 13 + - $ref: /schemas/power/power-domain.yaml# 14 + 15 + description: | 16 + Some TI SoCs contain a system controller (like the Power Management Micro 17 + Controller (PMMC) on Keystone 66AK2G SoC) that are responsible for controlling 18 + the state of the various hardware modules present on the SoC. Communication 19 + between the host processor running an OS and the system controller happens 20 + through a protocol called TI System Control Interface (TI-SCI protocol). 21 + 22 + This PM domain node represents the global PM domain managed by the TI-SCI 23 + controller. Since this relies on the TI SCI protocol to communicate with 24 + the TI-SCI controller, it must be a child of the TI-SCI controller node. 25 + 26 + properties: 27 + compatible: 28 + const: ti,sci-pm-domain 29 + 30 + "#power-domain-cells": 31 + enum: [1, 2] 32 + description: 33 + The two cells represent values that the TI-SCI controller defines. 34 + 35 + The first cell should contain the device ID. 36 + 37 + The second cell, if cell-value is 2, should be one of the following 38 + TI_SCI_PD_EXCLUSIVE - Allows the device to be exclusively controlled 39 + or 40 + TI_SCI_PD_SHARED - Allows the device to be shared by multiple hosts. 41 + Please refer to dt-bindings/soc/ti,sci_pm_domain.h for the definitions. 42 + 43 + Please see http://processors.wiki.ti.com/index.php/TISCI for 44 + protocol documentation for the values to be used for different devices. 45 + 46 + additionalProperties: false 47 + 48 + examples: 49 + - | 50 + k2g_pds: power-controller { 51 + compatible = "ti,sci-pm-domain"; 52 + #power-domain-cells = <1>; 53 + }; 54 + 55 + - | 56 + k3_pds: power-controller { 57 + compatible = "ti,sci-pm-domain"; 58 + #power-domain-cells = <2>; 59 + };
-2
Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml
··· 100 100 properties: 101 101 reg: 102 102 minItems: 2 # On AM437x one of two PRUSS units don't contain Shared RAM. 103 - maxItems: 3 104 103 items: 105 104 - description: Address and size of the Data RAM0. 106 105 - description: Address and size of the Data RAM1. ··· 110 111 111 112 reg-names: 112 113 minItems: 2 113 - maxItems: 3 114 114 items: 115 115 - const: dram0 116 116 - const: dram1
-1
Documentation/devicetree/bindings/sound/nvidia,tegra-audio-graph-card.yaml
··· 28 28 minItems: 2 29 29 30 30 clock-names: 31 - minItems: 2 32 31 items: 33 32 - const: pll_a 34 33 - const: plla_out0
-2
Documentation/devicetree/bindings/sound/nvidia,tegra210-i2s.yaml
··· 34 34 35 35 clocks: 36 36 minItems: 1 37 - maxItems: 2 38 37 items: 39 38 - description: I2S bit clock 40 39 - description: ··· 47 48 48 49 clock-names: 49 50 minItems: 1 50 - maxItems: 2 51 51 items: 52 52 - const: i2s 53 53 - const: sync_input
-3
Documentation/devicetree/bindings/sound/st,stm32-sai.yaml
··· 26 26 - description: Base address and size of SAI common register set. 27 27 - description: Base address and size of SAI identification register set. 28 28 minItems: 1 29 - maxItems: 2 30 29 31 30 ranges: 32 31 maxItems: 1 ··· 80 81 - description: sai_ck clock feeding the internal clock generator. 81 82 - description: MCLK clock from a SAI set as master clock provider. 82 83 minItems: 1 83 - maxItems: 2 84 84 85 85 clock-names: 86 86 items: 87 87 - const: sai_ck 88 88 - const: MCLK 89 89 minItems: 1 90 - maxItems: 2 91 90 92 91 dmas: 93 92 maxItems: 1
-1
Documentation/devicetree/bindings/spi/amlogic,meson-gx-spicc.yaml
··· 35 35 36 36 clocks: 37 37 minItems: 1 38 - maxItems: 2 39 38 items: 40 39 - description: controller register bus clock 41 40 - description: baud rate generator and delay control clock
-2
Documentation/devicetree/bindings/spi/brcm,spi-bcm-qspi.yaml
··· 56 56 57 57 reg-names: 58 58 minItems: 1 59 - maxItems: 5 60 59 items: 61 60 - const: mspi 62 61 - const: bspi ··· 70 71 interrupt-names: 71 72 oneOf: 72 73 - minItems: 1 73 - maxItems: 7 74 74 items: 75 75 - const: mspi_done 76 76 - const: mspi_halted
+1 -1
Documentation/devicetree/bindings/spi/spi-davinci.txt
··· 25 25 - interrupts: interrupt number mapped to CPU. 26 26 - clocks: spi clk phandle 27 27 For 66AK2G this property should be set per binding, 28 - Documentation/devicetree/bindings/clock/ti,sci-clk.txt 28 + Documentation/devicetree/bindings/clock/ti,sci-clk.yaml 29 29 30 30 SoC-specific Required Properties: 31 31
+8 -7
Documentation/devicetree/bindings/spmi/spmi.yaml
··· 40 40 41 41 properties: 42 42 reg: 43 - minItems: 1 44 - maxItems: 2 45 43 items: 46 - - minimum: 0 47 - maximum: 0xf 48 - - enum: [ 0 ] 49 - description: | 50 - 0 means user ID address. 1 is reserved for group ID address. 44 + - minItems: 1 45 + items: 46 + - minimum: 0 47 + maximum: 0xf 48 + - enum: [ 0 ] 49 + description: 50 + 0 means user ID address. 1 is reserved for group ID 51 + address. 51 52 52 53 required: 53 54 - reg
+5
Documentation/devicetree/bindings/sram/sram.yaml
··· 28 28 contains: 29 29 enum: 30 30 - mmio-sram 31 + - amlogic,meson-gxbb-sram 32 + - arm,juno-sram-ns 31 33 - atmel,sama5d2-securam 32 34 - rockchip,rk3288-pmu-sram 33 35 ··· 82 80 - amlogic,meson8b-smp-sram 83 81 - amlogic,meson-gxbb-scp-shmem 84 82 - amlogic,meson-axg-scp-shmem 83 + - arm,juno-scp-shmem 84 + - arm,scmi-shmem 85 + - arm,scp-shmem 85 86 - renesas,smp-sram 86 87 - rockchip,rk3066-smp-sram 87 88 - samsung,exynos4210-sysram
-2
Documentation/devicetree/bindings/thermal/allwinner,sun8i-a83t-ths.yaml
··· 23 23 24 24 clocks: 25 25 minItems: 1 26 - maxItems: 2 27 26 items: 28 27 - description: Bus Clock 29 28 - description: Module Clock 30 29 31 30 clock-names: 32 31 minItems: 1 33 - maxItems: 2 34 32 items: 35 33 - const: bus 36 34 - const: mod
-1
Documentation/devicetree/bindings/thermal/qcom-tsens.yaml
··· 77 77 78 78 nvmem-cell-names: 79 79 minItems: 1 80 - maxItems: 2 81 80 items: 82 81 - const: calib 83 82 - enum:
-1
Documentation/devicetree/bindings/timer/allwinner,sun5i-a13-hstimer.yaml
··· 24 24 25 25 interrupts: 26 26 minItems: 2 27 - maxItems: 4 28 27 items: 29 28 - description: Timer 0 Interrupt 30 29 - description: Timer 1 Interrupt
-1
Documentation/devicetree/bindings/timer/arm,arch_timer.yaml
··· 35 35 36 36 interrupts: 37 37 minItems: 1 38 - maxItems: 5 39 38 items: 40 39 - description: secure timer irq 41 40 - description: non-secure timer irq
-2
Documentation/devicetree/bindings/timer/arm,arch_timer_mmio.yaml
··· 71 71 72 72 interrupts: 73 73 minItems: 1 74 - maxItems: 2 75 74 items: 76 75 - description: physical timer irq 77 76 - description: virtual timer irq 78 77 79 78 reg: 80 79 minItems: 1 81 - maxItems: 2 82 80 items: 83 81 - description: 1st view base address 84 82 - description: 2nd optional view base address
+56
Documentation/devicetree/bindings/timer/arm,twd-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/arm,twd-timer.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: ARM Timer-Watchdog Timer 8 + 9 + maintainers: 10 + - Rob Herring <robh@kernel.org> 11 + 12 + description: 13 + ARM 11MP, Cortex-A5 and Cortex-A9 are often associated with a per-core 14 + Timer-Watchdog (aka TWD), which provides both a per-cpu local timer 15 + and watchdog. 16 + 17 + The TWD is usually attached to a GIC to deliver its two per-processor 18 + interrupts. 19 + 20 + properties: 21 + compatible: 22 + enum: 23 + - arm,cortex-a9-twd-timer 24 + - arm,cortex-a5-twd-timer 25 + - arm,arm11mp-twd-timer 26 + 27 + reg: 28 + maxItems: 1 29 + 30 + interrupts: 31 + maxItems: 1 32 + 33 + clocks: 34 + maxItems: 1 35 + 36 + always-on: 37 + description: 38 + If present, the timer is powered through an always-on power domain, 39 + therefore it never loses context. 40 + 41 + required: 42 + - compatible 43 + - reg 44 + - interrupts 45 + 46 + additionalProperties: false 47 + 48 + examples: 49 + - | 50 + #include <dt-bindings/interrupt-controller/arm-gic.h> 51 + 52 + timer@2c000600 { 53 + compatible = "arm,arm11mp-twd-timer"; 54 + reg = <0x2c000600 0x20>; 55 + interrupts = <GIC_PPI 13 0xf01>; 56 + };
-53
Documentation/devicetree/bindings/timer/arm,twd.txt
··· 1 - * ARM Timer Watchdog 2 - 3 - ARM 11MP, Cortex-A5 and Cortex-A9 are often associated with a per-core 4 - Timer-Watchdog (aka TWD), which provides both a per-cpu local timer 5 - and watchdog. 6 - 7 - The TWD is usually attached to a GIC to deliver its two per-processor 8 - interrupts. 9 - 10 - ** Timer node required properties: 11 - 12 - - compatible : Should be one of: 13 - "arm,cortex-a9-twd-timer" 14 - "arm,cortex-a5-twd-timer" 15 - "arm,arm11mp-twd-timer" 16 - 17 - - interrupts : One interrupt to each core 18 - 19 - - reg : Specify the base address and the size of the TWD timer 20 - register window. 21 - 22 - Optional 23 - 24 - - always-on : a boolean property. If present, the timer is powered through 25 - an always-on power domain, therefore it never loses context. 26 - 27 - Example: 28 - 29 - twd-timer@2c000600 { 30 - compatible = "arm,arm11mp-twd-timer""; 31 - reg = <0x2c000600 0x20>; 32 - interrupts = <1 13 0xf01>; 33 - }; 34 - 35 - ** Watchdog node properties: 36 - 37 - - compatible : Should be one of: 38 - "arm,cortex-a9-twd-wdt" 39 - "arm,cortex-a5-twd-wdt" 40 - "arm,arm11mp-twd-wdt" 41 - 42 - - interrupts : One interrupt to each core 43 - 44 - - reg : Specify the base address and the size of the TWD watchdog 45 - register window. 46 - 47 - Example: 48 - 49 - twd-watchdog@2c000620 { 50 - compatible = "arm,arm11mp-twd-wdt"; 51 - reg = <0x2c000620 0x20>; 52 - interrupts = <1 14 0xf01>; 53 - };
-1
Documentation/devicetree/bindings/timer/intel,ixp4xx-timer.yaml
··· 22 22 23 23 interrupts: 24 24 minItems: 1 25 - maxItems: 2 26 25 items: 27 26 - description: Timer 1 interrupt 28 27 - description: Timer 2 interrupt
+1
Documentation/devicetree/bindings/timer/renesas,tmu.yaml
··· 36 36 - renesas,tmu-r8a77980 # R-Car V3H 37 37 - renesas,tmu-r8a77990 # R-Car E3 38 38 - renesas,tmu-r8a77995 # R-Car D3 39 + - renesas,tmu-r8a779a0 # R-Car V3U 39 40 - const: renesas,tmu 40 41 41 42 reg:
-21
Documentation/devicetree/bindings/timer/renesas,tpu.txt
··· 1 - * Renesas H8/300 Timer Pulse Unit 2 - 3 - The TPU is a 16bit timer/counter with configurable clock inputs and 4 - programmable compare match. 5 - This implementation support only cascade mode. 6 - 7 - Required Properties: 8 - 9 - - compatible: must contain "renesas,tpu" 10 - - reg: base address and length of the registers block in 2 channel. 11 - - clocks: a list of phandle, one for each entry in clock-names. 12 - - clock-names: must contain "peripheral_clk" for the functional clock. 13 - 14 - 15 - Example: 16 - tpu: tpu@ffffe0 { 17 - compatible = "renesas,tpu"; 18 - reg = <0xffffe0 16>, <0xfffff0 12>; 19 - clocks = <&pclk>; 20 - clock-names = "peripheral_clk"; 21 - };
+56
Documentation/devicetree/bindings/timer/renesas,tpu.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,tpu.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Renesas H8/300 Timer Pulse Unit 8 + 9 + maintainers: 10 + - Yoshinori Sato <ysato@users.sourceforge.jp> 11 + 12 + description: 13 + The TPU is a 16bit timer/counter with configurable clock inputs and 14 + programmable compare match. 15 + This implementation supports only cascade mode. 16 + 17 + select: 18 + properties: 19 + compatible: 20 + contains: 21 + const: renesas,tpu 22 + '#pwm-cells': false 23 + required: 24 + - compatible 25 + 26 + properties: 27 + compatible: 28 + const: renesas,tpu 29 + 30 + reg: 31 + items: 32 + - description: First channel 33 + - description: Second channel 34 + 35 + clocks: 36 + maxItems: 1 37 + 38 + clock-names: 39 + const: fck 40 + 41 + required: 42 + - compatible 43 + - reg 44 + - clocks 45 + - clock-names 46 + 47 + additionalProperties: false 48 + 49 + examples: 50 + - | 51 + tpu: tpu@ffffe0 { 52 + compatible = "renesas,tpu"; 53 + reg = <0xffffe0 16>, <0xfffff0 12>; 54 + clocks = <&pclk>; 55 + clock-names = "fck"; 56 + };
+1 -1
Documentation/devicetree/bindings/usb/cdns,usb3.yaml
··· 28 28 interrupts: 29 29 minItems: 3 30 30 items: 31 - - description: OTG/DRD controller interrupt 32 31 - description: XHCI host controller interrupt 33 32 - description: Device controller interrupt 33 + - description: OTG/DRD controller interrupt 34 34 - description: interrupt used to wake up core, e.g when usbcmd.rs is 35 35 cleared by xhci core, this interrupt is optional 36 36
-2
Documentation/devicetree/bindings/usb/maxim,max3420-udc.yaml
··· 30 30 - description: usb irq from max3420 31 31 - description: vbus detection irq 32 32 minItems: 1 33 - maxItems: 2 34 33 35 34 interrupt-names: 36 35 items: 37 36 - const: udc 38 37 - const: vbus 39 38 minItems: 1 40 - maxItems: 2 41 39 42 40 spi-max-frequency: 43 41 maximum: 26000000
-4
Documentation/devicetree/bindings/usb/nvidia,tegra-xudc.yaml
··· 25 25 26 26 reg: 27 27 minItems: 2 28 - maxItems: 3 29 28 items: 30 29 - description: XUSB device controller registers 31 30 - description: XUSB device PCI Config registers ··· 32 33 33 34 reg-names: 34 35 minItems: 2 35 - maxItems: 3 36 36 items: 37 37 - const: base 38 38 - const: fpci ··· 43 45 44 46 clocks: 45 47 minItems: 4 46 - maxItems: 5 47 48 items: 48 49 - description: Clock to enable core XUSB dev clock. 49 50 - description: Clock to enable XUSB super speed clock. ··· 52 55 53 56 clock-names: 54 57 minItems: 4 55 - maxItems: 5 56 58 items: 57 59 - const: dev 58 60 - const: ss
-3
Documentation/devicetree/bindings/usb/renesas,usbhs.yaml
··· 53 53 54 54 clocks: 55 55 minItems: 1 56 - maxItems: 3 57 56 items: 58 57 - description: USB 2.0 host 59 58 - description: USB 2.0 peripheral ··· 85 86 86 87 dma-names: 87 88 minItems: 2 88 - maxItems: 4 89 89 items: 90 90 - const: ch0 91 91 - const: ch1 ··· 98 100 99 101 resets: 100 102 minItems: 1 101 - maxItems: 2 102 103 items: 103 104 - description: USB 2.0 host 104 105 - description: USB 2.0 peripheral
+1 -1
Documentation/devicetree/bindings/usb/ti,j721e-usb.yaml
··· 27 27 description: 28 28 PM domain provider node and an args specifier containing 29 29 the USB device id value. See, 30 - Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt 30 + Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml 31 31 maxItems: 1 32 32 33 33 clocks:
+1 -1
Documentation/devicetree/bindings/usb/ti,keystone-dwc3.yaml
··· 47 47 description: Should contain a phandle to a PM domain provider node 48 48 and an args specifier containing the USB device id 49 49 value. This property is as per the binding, 50 - Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt 50 + Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml 51 51 52 52 phys: 53 53 maxItems: 1
+5 -1
Documentation/devicetree/bindings/vendor-prefixes.yaml
··· 472 472 "^hirschmann,.*": 473 473 description: Hirschmann Automation and Control GmbH 474 474 "^hisilicon,.*": 475 - description: Hisilicon Limited. 475 + description: HiSilicon Limited. 476 476 "^hit,.*": 477 477 description: Hitachi Ltd. 478 478 "^hitex,.*": ··· 533 533 description: Innolux Corporation 534 534 "^inside-secure,.*": 535 535 description: INSIDE Secure 536 + "^insignal,.*": 537 + description: Insignal Ltd. 536 538 "^inspur,.*": 537 539 description: Inspur Corporation 538 540 "^intel,.*": ··· 1089 1087 (formerly part of MStar Semiconductor, Inc.) 1090 1088 "^st,.*": 1091 1089 description: STMicroelectronics 1090 + "^starfive,.*": 1091 + description: StarFive Technology Co. Ltd. 1092 1092 "^starry,.*": 1093 1093 description: Starry Electronic Technology (ShenZhen) Co., LTD 1094 1094 "^startek,.*":
-47
Documentation/devicetree/bindings/virtio/mmio.txt
··· 1 - * virtio memory mapped device 2 - 3 - See https://ozlabs.org/~rusty/virtio-spec/ for more details. 4 - 5 - Required properties: 6 - 7 - - compatible: "virtio,mmio" compatibility string 8 - - reg: control registers base address and size including configuration space 9 - - interrupts: interrupt generated by the device 10 - 11 - Required properties for virtio-iommu: 12 - 13 - - #iommu-cells: When the node corresponds to a virtio-iommu device, it is 14 - linked to DMA masters using the "iommus" or "iommu-map" 15 - properties [1][2]. #iommu-cells specifies the size of the 16 - "iommus" property. For virtio-iommu #iommu-cells must be 17 - 1, each cell describing a single endpoint ID. 18 - 19 - Optional properties: 20 - 21 - - iommus: If the device accesses memory through an IOMMU, it should 22 - have an "iommus" property [1]. Since virtio-iommu itself 23 - does not access memory through an IOMMU, the "virtio,mmio" 24 - node cannot have both an "#iommu-cells" and an "iommus" 25 - property. 26 - 27 - Example: 28 - 29 - virtio_block@3000 { 30 - compatible = "virtio,mmio"; 31 - reg = <0x3000 0x100>; 32 - interrupts = <41>; 33 - 34 - /* Device has endpoint ID 23 */ 35 - iommus = <&viommu 23> 36 - } 37 - 38 - viommu: iommu@3100 { 39 - compatible = "virtio,mmio"; 40 - reg = <0x3100 0x100>; 41 - interrupts = <42>; 42 - 43 - #iommu-cells = <1> 44 - } 45 - 46 - [1] Documentation/devicetree/bindings/iommu/iommu.txt 47 - [2] Documentation/devicetree/bindings/pci/pci-iommu.txt
+60
Documentation/devicetree/bindings/virtio/mmio.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/virtio/mmio.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: virtio memory mapped devices 8 + 9 + maintainers: 10 + - Jean-Philippe Brucker <jean-philippe@linaro.org> 11 + 12 + description: 13 + See https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=virtio for 14 + more details. 15 + 16 + properties: 17 + compatible: 18 + const: virtio,mmio 19 + 20 + reg: 21 + maxItems: 1 22 + 23 + interrupts: 24 + maxItems: 1 25 + 26 + '#iommu-cells': 27 + description: Required when the node corresponds to a virtio-iommu device. 28 + const: 1 29 + 30 + iommus: 31 + description: Required for devices making accesses thru an IOMMU. 32 + maxItems: 1 33 + 34 + required: 35 + - compatible 36 + - reg 37 + - interrupts 38 + 39 + additionalProperties: false 40 + 41 + examples: 42 + - | 43 + virtio@3000 { 44 + compatible = "virtio,mmio"; 45 + reg = <0x3000 0x100>; 46 + interrupts = <41>; 47 + 48 + /* Device has endpoint ID 23 */ 49 + iommus = <&viommu 23>; 50 + }; 51 + 52 + viommu: iommu@3100 { 53 + compatible = "virtio,mmio"; 54 + reg = <0x3100 0x100>; 55 + interrupts = <42>; 56 + 57 + #iommu-cells = <1>; 58 + }; 59 + 60 + ...
+51
Documentation/devicetree/bindings/watchdog/arm,sbsa-gwdt.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/arm,sbsa-gwdt.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: SBSA (Server Base System Architecture) Generic Watchdog 8 + 9 + maintainers: 10 + - Fu Wei <fu.wei@linaro.org> 11 + 12 + description: | 13 + The SBSA Generic Watchdog Timer is used to force a reset of the system after 14 + two stages of timeout have elapsed. A detailed definition of the watchdog 15 + timer can be found in the ARM document: ARM-DEN-0029 - Server Base System 16 + Architecture (SBSA) 17 + 18 + allOf: 19 + - $ref: watchdog.yaml# 20 + 21 + properties: 22 + compatible: 23 + const: arm,sbsa-gwdt 24 + 25 + reg: 26 + items: 27 + - description: Watchdog control frame 28 + - description: Refresh frame 29 + 30 + interrupts: 31 + description: The Watchdog Signal 0 (WS0) SPI (Shared Peripheral Interrupt) 32 + maxItems: 1 33 + 34 + required: 35 + - compatible 36 + - reg 37 + - interrupts 38 + 39 + unevaluatedProperties: false 40 + 41 + examples: 42 + - | 43 + 44 + watchdog@2a440000 { 45 + compatible = "arm,sbsa-gwdt"; 46 + reg = <0x2a440000 0x1000>, 47 + <0x2a450000 0x1000>; 48 + interrupts = <0 27 4>; 49 + timeout-sec = <30>; 50 + }; 51 + ...
+50
Documentation/devicetree/bindings/watchdog/arm,twd-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/arm,twd-wdt.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: ARM Timer-Watchdog Watchdog 8 + 9 + maintainers: 10 + - Rob Herring <robh@kernel.org> 11 + 12 + description: 13 + ARM 11MP, Cortex-A5 and Cortex-A9 are often associated with a per-core 14 + Timer-Watchdog (aka TWD), which provides both a per-cpu local timer 15 + and watchdog. 16 + 17 + The TWD is usually attached to a GIC to deliver its two per-processor 18 + interrupts. 19 + 20 + properties: 21 + compatible: 22 + enum: 23 + - arm,cortex-a9-twd-wdt 24 + - arm,cortex-a5-twd-wdt 25 + - arm,arm11mp-twd-wdt 26 + 27 + reg: 28 + maxItems: 1 29 + 30 + interrupts: 31 + maxItems: 1 32 + 33 + clocks: 34 + maxItems: 1 35 + 36 + required: 37 + - compatible 38 + - reg 39 + 40 + additionalProperties: false 41 + 42 + examples: 43 + - | 44 + #include <dt-bindings/interrupt-controller/arm-gic.h> 45 + 46 + watchdog@2c000620 { 47 + compatible = "arm,arm11mp-twd-wdt"; 48 + reg = <0x2c000620 0x20>; 49 + interrupts = <GIC_PPI 14 0xf01>; 50 + };
-31
Documentation/devicetree/bindings/watchdog/sbsa-gwdt.txt
··· 1 - * SBSA (Server Base System Architecture) Generic Watchdog 2 - 3 - The SBSA Generic Watchdog Timer is used to force a reset of the system 4 - after two stages of timeout have elapsed. A detailed definition of the 5 - watchdog timer can be found in the ARM document: ARM-DEN-0029 - Server 6 - Base System Architecture (SBSA) 7 - 8 - Required properties: 9 - - compatible: Should at least contain "arm,sbsa-gwdt". 10 - 11 - - reg: Each entry specifies the base physical address of a register frame 12 - and the length of that frame; currently, two frames must be defined, 13 - in this order: 14 - 1: Watchdog control frame; 15 - 2: Refresh frame. 16 - 17 - - interrupts: Should contain the Watchdog Signal 0 (WS0) SPI (Shared 18 - Peripheral Interrupt) number of SBSA Generic Watchdog. 19 - 20 - Optional properties 21 - - timeout-sec: Watchdog timeout values (in seconds). 22 - 23 - Example for FVP Foundation Model v8: 24 - 25 - watchdog@2a440000 { 26 - compatible = "arm,sbsa-gwdt"; 27 - reg = <0x0 0x2a440000 0 0x1000>, 28 - <0x0 0x2a450000 0 0x1000>; 29 - interrupts = <0 27 4>; 30 - timeout-sec = <30>; 31 - };
-1
Documentation/devicetree/bindings/watchdog/st,stm32-iwdg.yaml
··· 27 27 - description: Low speed clock 28 28 - description: Optional peripheral clock 29 29 minItems: 1 30 - maxItems: 2 31 30 32 31 clock-names: 33 32 items:
+2 -1
Documentation/devicetree/bindings/writing-bindings.rst
··· 52 52 constraints specific to the device. 53 53 54 54 - DO use common property unit suffixes for properties with scientific units. 55 - See property-units.txt. 55 + Recommended suffixes are listed at 56 + https://github.com/devicetree-org/dt-schema/blob/master/schemas/property-units.yaml 56 57 57 58 - DO define properties in terms of constraints. How many entries? What are 58 59 possible values? What is the order?
+5 -5
MAINTAINERS
··· 8938 8938 M: Peter Rosin <peda@axentia.se> 8939 8939 L: linux-iio@vger.kernel.org 8940 8940 S: Maintained 8941 - F: Documentation/devicetree/bindings/iio/multiplexer/io-channel-mux.txt 8941 + F: Documentation/devicetree/bindings/iio/multiplexer/io-channel-mux.yaml 8942 8942 F: drivers/iio/multiplexer/iio-mux.c 8943 8943 8944 8944 IIO SCMI BASED DRIVER ··· 17868 17868 R: Cristian Marussi <cristian.marussi@arm.com> 17869 17869 L: linux-arm-kernel@lists.infradead.org 17870 17870 S: Maintained 17871 - F: Documentation/devicetree/bindings/arm/arm,sc[mp]i.txt 17871 + F: Documentation/devicetree/bindings/firmware/arm,sc[mp]i.yaml 17872 17872 F: drivers/clk/clk-sc[mp]i.c 17873 17873 F: drivers/cpufreq/sc[mp]i-cpufreq.c 17874 17874 F: drivers/firmware/arm_scmi/ ··· 18241 18241 S: Maintained 18242 18242 F: Documentation/devicetree/bindings/arm/keystone/ti,k3-sci-common.yaml 18243 18243 F: Documentation/devicetree/bindings/arm/keystone/ti,sci.txt 18244 - F: Documentation/devicetree/bindings/clock/ti,sci-clk.txt 18244 + F: Documentation/devicetree/bindings/clock/ti,sci-clk.yaml 18245 18245 F: Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml 18246 18246 F: Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.yaml 18247 - F: Documentation/devicetree/bindings/reset/ti,sci-reset.txt 18248 - F: Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt 18247 + F: Documentation/devicetree/bindings/reset/ti,sci-reset.yaml 18248 + F: Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml 18249 18249 F: drivers/clk/keystone/sci-clk.c 18250 18250 F: drivers/firmware/ti_sci* 18251 18251 F: drivers/irqchip/irq-ti-sci-inta.c
+1 -3
drivers/of/Kconfig
··· 75 75 def_bool y 76 76 77 77 config OF_RESERVED_MEM 78 - bool 79 - depends on OF_EARLY_FLATTREE 80 - default y if DMA_DECLARE_COHERENT || DMA_CMA 78 + def_bool OF_EARLY_FLATTREE 81 79 82 80 config OF_RESOLVE 83 81 bool
+42 -86
drivers/of/address.c
··· 23 23 #define OF_CHECK_COUNTS(na, ns) (OF_CHECK_ADDR_COUNT(na) && (ns) > 0) 24 24 25 25 static struct of_bus *of_match_bus(struct device_node *np); 26 - static int __of_address_to_resource(struct device_node *dev, 27 - const __be32 *addrp, u64 size, unsigned int flags, 28 - const char *name, struct resource *r); 26 + static int __of_address_to_resource(struct device_node *dev, int index, 27 + int bar_no, struct resource *r); 29 28 static bool of_mmio_is_nonposted(struct device_node *np); 30 29 31 30 /* Debug utility */ ··· 76 77 s = of_read_number(range + na + pna, ns); 77 78 da = of_read_number(addr, na); 78 79 79 - pr_debug("default map, cp=%llx, s=%llx, da=%llx\n", 80 - (unsigned long long)cp, (unsigned long long)s, 81 - (unsigned long long)da); 80 + pr_debug("default map, cp=%llx, s=%llx, da=%llx\n", cp, s, da); 82 81 83 82 if (da < cp || da >= (cp + s)) 84 83 return OF_BAD_ADDR; ··· 182 185 s = of_read_number(range + na + pna, ns); 183 186 da = of_read_number(addr + 1, na - 1); 184 187 185 - pr_debug("PCI map, cp=%llx, s=%llx, da=%llx\n", 186 - (unsigned long long)cp, (unsigned long long)s, 187 - (unsigned long long)da); 188 + pr_debug("PCI map, cp=%llx, s=%llx, da=%llx\n", cp, s, da); 188 189 189 190 if (da < cp || da >= (cp + s)) 190 191 return OF_BAD_ADDR; ··· 193 198 { 194 199 return of_bus_default_translate(addr + 1, offset, na - 1); 195 200 } 196 - 197 - const __be32 *of_get_pci_address(struct device_node *dev, int bar_no, u64 *size, 198 - unsigned int *flags) 199 - { 200 - const __be32 *prop; 201 - unsigned int psize; 202 - struct device_node *parent; 203 - struct of_bus *bus; 204 - int onesize, i, na, ns; 205 - 206 - /* Get parent & match bus type */ 207 - parent = of_get_parent(dev); 208 - if (parent == NULL) 209 - return NULL; 210 - bus = of_match_bus(parent); 211 - if (strcmp(bus->name, "pci")) { 212 - of_node_put(parent); 213 - return NULL; 214 - } 215 - bus->count_cells(dev, &na, &ns); 216 - of_node_put(parent); 217 - if (!OF_CHECK_ADDR_COUNT(na)) 218 - return NULL; 219 - 220 - /* Get "reg" or "assigned-addresses" property */ 221 - prop = of_get_property(dev, bus->addresses, &psize); 222 - if (prop == NULL) 223 - return NULL; 224 - psize /= 4; 225 - 226 - onesize = na + ns; 227 - for (i = 0; psize >= onesize; psize -= onesize, prop += onesize, i++) { 228 - u32 val = be32_to_cpu(prop[0]); 229 - if ((val & 0xff) == ((bar_no * 4) + PCI_BASE_ADDRESS_0)) { 230 - if (size) 231 - *size = of_read_number(prop + na, ns); 232 - if (flags) 233 - *flags = bus->get_flags(prop); 234 - return prop; 235 - } 236 - } 237 - return NULL; 238 - } 239 - EXPORT_SYMBOL(of_get_pci_address); 201 + #endif /* CONFIG_PCI */ 240 202 241 203 int of_pci_address_to_resource(struct device_node *dev, int bar, 242 204 struct resource *r) 243 205 { 244 - const __be32 *addrp; 245 - u64 size; 246 - unsigned int flags; 247 206 248 - addrp = of_get_pci_address(dev, bar, &size, &flags); 249 - if (addrp == NULL) 250 - return -EINVAL; 251 - return __of_address_to_resource(dev, addrp, size, flags, NULL, r); 207 + if (!IS_ENABLED(CONFIG_PCI)) 208 + return -ENOSYS; 209 + 210 + return __of_address_to_resource(dev, -1, bar, r); 252 211 } 253 212 EXPORT_SYMBOL_GPL(of_pci_address_to_resource); 254 213 ··· 228 279 res->flags = range->flags; 229 280 res->parent = res->child = res->sibling = NULL; 230 281 res->name = np->full_name; 282 + 283 + if (!IS_ENABLED(CONFIG_PCI)) 284 + return -ENOSYS; 231 285 232 286 if (res->flags & IORESOURCE_IO) { 233 287 unsigned long port; ··· 262 310 return err; 263 311 } 264 312 EXPORT_SYMBOL(of_pci_range_to_resource); 265 - #endif /* CONFIG_PCI */ 266 313 267 314 /* 268 315 * ISA bus specific translator ··· 295 344 s = of_read_number(range + na + pna, ns); 296 345 da = of_read_number(addr + 1, na - 1); 297 346 298 - pr_debug("ISA map, cp=%llx, s=%llx, da=%llx\n", 299 - (unsigned long long)cp, (unsigned long long)s, 300 - (unsigned long long)da); 347 + pr_debug("ISA map, cp=%llx, s=%llx, da=%llx\n", cp, s, da); 301 348 302 349 if (da < cp || da >= (cp + s)) 303 350 return OF_BAD_ADDR; ··· 450 501 451 502 finish: 452 503 of_dump_addr("parent translation for:", addr, pna); 453 - pr_debug("with offset: %llx\n", (unsigned long long)offset); 504 + pr_debug("with offset: %llx\n", offset); 454 505 455 506 /* Translate it into parent bus space */ 456 507 return pbus->translate(addr, offset, pna); ··· 624 675 } 625 676 EXPORT_SYMBOL(of_translate_dma_address); 626 677 627 - const __be32 *of_get_address(struct device_node *dev, int index, u64 *size, 628 - unsigned int *flags) 678 + const __be32 *__of_get_address(struct device_node *dev, int index, int bar_no, 679 + u64 *size, unsigned int *flags) 629 680 { 630 681 const __be32 *prop; 631 682 unsigned int psize; ··· 638 689 if (parent == NULL) 639 690 return NULL; 640 691 bus = of_match_bus(parent); 692 + if (strcmp(bus->name, "pci") && (bar_no >= 0)) { 693 + of_node_put(parent); 694 + return NULL; 695 + } 641 696 bus->count_cells(dev, &na, &ns); 642 697 of_node_put(parent); 643 698 if (!OF_CHECK_ADDR_COUNT(na)) ··· 654 701 psize /= 4; 655 702 656 703 onesize = na + ns; 657 - for (i = 0; psize >= onesize; psize -= onesize, prop += onesize, i++) 658 - if (i == index) { 704 + for (i = 0; psize >= onesize; psize -= onesize, prop += onesize, i++) { 705 + u32 val = be32_to_cpu(prop[0]); 706 + /* PCI bus matches on BAR number instead of index */ 707 + if (((bar_no >= 0) && ((val & 0xff) == ((bar_no * 4) + PCI_BASE_ADDRESS_0))) || 708 + ((index >= 0) && (i == index))) { 659 709 if (size) 660 710 *size = of_read_number(prop + na, ns); 661 711 if (flags) 662 712 *flags = bus->get_flags(prop); 663 713 return prop; 664 714 } 715 + } 665 716 return NULL; 666 717 } 667 - EXPORT_SYMBOL(of_get_address); 718 + EXPORT_SYMBOL(__of_get_address); 668 719 669 720 static int parser_init(struct of_pci_range_parser *parser, 670 721 struct device_node *node, const char *name) ··· 791 834 return port; 792 835 } 793 836 794 - static int __of_address_to_resource(struct device_node *dev, 795 - const __be32 *addrp, u64 size, unsigned int flags, 796 - const char *name, struct resource *r) 837 + static int __of_address_to_resource(struct device_node *dev, int index, int bar_no, 838 + struct resource *r) 797 839 { 798 840 u64 taddr; 841 + const __be32 *addrp; 842 + u64 size; 843 + unsigned int flags; 844 + const char *name = NULL; 845 + 846 + addrp = __of_get_address(dev, index, bar_no, &size, &flags); 847 + if (addrp == NULL) 848 + return -EINVAL; 849 + 850 + /* Get optional "reg-names" property to add a name to a resource */ 851 + if (index >= 0) 852 + of_property_read_string_index(dev, "reg-names", index, &name); 799 853 800 854 if (flags & IORESOURCE_MEM) 801 855 taddr = of_translate_address(dev, addrp); ··· 844 876 int of_address_to_resource(struct device_node *dev, int index, 845 877 struct resource *r) 846 878 { 847 - const __be32 *addrp; 848 - u64 size; 849 - unsigned int flags; 850 - const char *name = NULL; 851 - 852 - addrp = of_get_address(dev, index, &size, &flags); 853 - if (addrp == NULL) 854 - return -EINVAL; 855 - 856 - /* Get optional "reg-names" property to add a name to a resource */ 857 - of_property_read_string_index(dev, "reg-names", index, &name); 858 - 859 - return __of_address_to_resource(dev, addrp, size, flags, name, r); 879 + return __of_address_to_resource(dev, index, -1, r); 860 880 } 861 881 EXPORT_SYMBOL_GPL(of_address_to_resource); 862 882
+6 -8
drivers/of/fdt.c
··· 510 510 511 511 if (size && 512 512 early_init_dt_reserve_memory_arch(base, size, nomap) == 0) 513 - pr_debug("Reserved memory: reserved region for node '%s': base %pa, size %ld MiB\n", 514 - uname, &base, (unsigned long)size / SZ_1M); 513 + pr_debug("Reserved memory: reserved region for node '%s': base %pa, size %lu MiB\n", 514 + uname, &base, (unsigned long)(size / SZ_1M)); 515 515 else 516 - pr_info("Reserved memory: failed to reserve memory for node '%s': base %pa, size %ld MiB\n", 517 - uname, &base, (unsigned long)size / SZ_1M); 516 + pr_info("Reserved memory: failed to reserve memory for node '%s': base %pa, size %lu MiB\n", 517 + uname, &base, (unsigned long)(size / SZ_1M)); 518 518 519 519 len -= t_len; 520 520 if (first) { ··· 900 900 phys_initrd_start = start; 901 901 phys_initrd_size = end - start; 902 902 903 - pr_debug("initrd_start=0x%llx initrd_end=0x%llx\n", 904 - (unsigned long long)start, (unsigned long long)end); 903 + pr_debug("initrd_start=0x%llx initrd_end=0x%llx\n", start, end); 905 904 } 906 905 #else 907 906 static inline void early_init_dt_check_for_initrd(unsigned long node) ··· 1026 1027 1027 1028 if (size == 0) 1028 1029 continue; 1029 - pr_debug(" - %llx , %llx\n", (unsigned long long)base, 1030 - (unsigned long long)size); 1030 + pr_debug(" - %llx, %llx\n", base, size); 1031 1031 1032 1032 early_init_dt_add_memory_arch(base, size); 1033 1033
+4
drivers/of/of_private.h
··· 171 171 } 172 172 #endif 173 173 174 + void fdt_init_reserved_mem(void); 175 + void fdt_reserved_mem_save_node(unsigned long node, const char *uname, 176 + phys_addr_t base, phys_addr_t size); 177 + 174 178 #endif /* _LINUX_OF_PRIVATE_H */
+10 -7
drivers/of/of_reserved_mem.c
··· 22 22 #include <linux/slab.h> 23 23 #include <linux/memblock.h> 24 24 25 + #include "of_private.h" 26 + 25 27 #define MAX_RESERVED_REGIONS 64 26 28 static struct reserved_mem reserved_mem[MAX_RESERVED_REGIONS]; 27 29 static int reserved_mem_count; ··· 42 40 43 41 *res_base = base; 44 42 if (nomap) 45 - return memblock_remove(base, size); 43 + return memblock_mark_nomap(base, size); 46 44 47 45 return memblock_reserve(base, size); 48 46 } ··· 136 134 ret = early_init_dt_alloc_reserved_memory_arch(size, 137 135 align, start, end, nomap, &base); 138 136 if (ret == 0) { 139 - pr_debug("allocated memory for '%s' node: base %pa, size %ld MiB\n", 137 + pr_debug("allocated memory for '%s' node: base %pa, size %lu MiB\n", 140 138 uname, &base, 141 - (unsigned long)size / SZ_1M); 139 + (unsigned long)(size / SZ_1M)); 142 140 break; 143 141 } 144 142 len -= t_len; ··· 148 146 ret = early_init_dt_alloc_reserved_memory_arch(size, align, 149 147 0, 0, nomap, &base); 150 148 if (ret == 0) 151 - pr_debug("allocated memory for '%s' node: base %pa, size %ld MiB\n", 152 - uname, &base, (unsigned long)size / SZ_1M); 149 + pr_debug("allocated memory for '%s' node: base %pa, size %lu MiB\n", 150 + uname, &base, (unsigned long)(size / SZ_1M)); 153 151 } 154 152 155 153 if (base == 0) { ··· 275 273 if (err != 0 && err != -ENOENT) { 276 274 pr_info("node %s compatible matching fail\n", 277 275 rmem->name); 278 - memblock_free(rmem->base, rmem->size); 279 276 if (nomap) 280 - memblock_add(rmem->base, rmem->size); 277 + memblock_clear_nomap(rmem->base, rmem->size); 278 + else 279 + memblock_free(rmem->base, rmem->size); 281 280 } 282 281 } 283 282 }
+1 -5
drivers/of/unittest.c
··· 1209 1209 } 1210 1210 } 1211 1211 1212 - static struct resource test_bus_res = { 1213 - .start = 0xfffffff8, 1214 - .end = 0xfffffff9, 1215 - .flags = IORESOURCE_MEM, 1216 - }; 1212 + static struct resource test_bus_res = DEFINE_RES_MEM(0xfffffff8, 2); 1217 1213 static const struct platform_device_info test_bus_info = { 1218 1214 .name = "unittest-bus", 1219 1215 };
+7 -4
include/linux/of.h
··· 1329 1329 return num; 1330 1330 } 1331 1331 1332 + #define _OF_DECLARE_STUB(table, name, compat, fn, fn_type) \ 1333 + static const struct of_device_id __of_table_##name \ 1334 + __attribute__((unused)) \ 1335 + = { .compatible = compat, \ 1336 + .data = (fn == (fn_type)NULL) ? fn : fn } 1337 + 1332 1338 #if defined(CONFIG_OF) && !defined(MODULE) 1333 1339 #define _OF_DECLARE(table, name, compat, fn, fn_type) \ 1334 1340 static const struct of_device_id __of_table_##name \ ··· 1344 1338 .data = (fn == (fn_type)NULL) ? fn : fn } 1345 1339 #else 1346 1340 #define _OF_DECLARE(table, name, compat, fn, fn_type) \ 1347 - static const struct of_device_id __of_table_##name \ 1348 - __attribute__((unused)) \ 1349 - = { .compatible = compat, \ 1350 - .data = (fn == (fn_type)NULL) ? fn : fn } 1341 + _OF_DECLARE_STUB(table, name, compat, fn, fn_type) 1351 1342 #endif 1352 1343 1353 1344 typedef int (*of_init_fn_2)(struct device_node *, struct device_node *);
+28 -26
include/linux/of_address.h
··· 51 51 * the address space flags too. The PCI version uses a BAR number 52 52 * instead of an absolute index 53 53 */ 54 - extern const __be32 *of_get_address(struct device_node *dev, int index, 55 - u64 *size, unsigned int *flags); 54 + extern const __be32 *__of_get_address(struct device_node *dev, int index, int bar_no, 55 + u64 *size, unsigned int *flags); 56 56 57 57 extern int of_pci_range_parser_init(struct of_pci_range_parser *parser, 58 58 struct device_node *node); ··· 61 61 extern struct of_pci_range *of_pci_range_parser_one( 62 62 struct of_pci_range_parser *parser, 63 63 struct of_pci_range *range); 64 + extern int of_pci_address_to_resource(struct device_node *dev, int bar, 65 + struct resource *r); 66 + extern int of_pci_range_to_resource(struct of_pci_range *range, 67 + struct device_node *np, 68 + struct resource *res); 64 69 extern bool of_dma_is_coherent(struct device_node *np); 65 70 #else /* CONFIG_OF_ADDRESS */ 66 71 static inline void __iomem *of_io_request_and_map(struct device_node *device, ··· 80 75 return OF_BAD_ADDR; 81 76 } 82 77 83 - static inline const __be32 *of_get_address(struct device_node *dev, int index, 84 - u64 *size, unsigned int *flags) 78 + static inline const __be32 *__of_get_address(struct device_node *dev, int index, int bar_no, 79 + u64 *size, unsigned int *flags) 85 80 { 86 81 return NULL; 87 82 } ··· 103 98 struct of_pci_range *range) 104 99 { 105 100 return NULL; 101 + } 102 + 103 + static inline int of_pci_address_to_resource(struct device_node *dev, int bar, 104 + struct resource *r) 105 + { 106 + return -ENOSYS; 107 + } 108 + 109 + static inline int of_pci_range_to_resource(struct of_pci_range *range, 110 + struct device_node *np, 111 + struct resource *res) 112 + { 113 + return -ENOSYS; 106 114 } 107 115 108 116 static inline bool of_dma_is_coherent(struct device_node *np) ··· 142 124 #endif 143 125 #define of_range_parser_init of_pci_range_parser_init 144 126 145 - #if defined(CONFIG_OF_ADDRESS) && defined(CONFIG_PCI) 146 - extern const __be32 *of_get_pci_address(struct device_node *dev, int bar_no, 147 - u64 *size, unsigned int *flags); 148 - extern int of_pci_address_to_resource(struct device_node *dev, int bar, 149 - struct resource *r); 150 - extern int of_pci_range_to_resource(struct of_pci_range *range, 151 - struct device_node *np, 152 - struct resource *res); 153 - #else /* CONFIG_OF_ADDRESS && CONFIG_PCI */ 154 - static inline int of_pci_address_to_resource(struct device_node *dev, int bar, 155 - struct resource *r) 127 + static inline const __be32 *of_get_address(struct device_node *dev, int index, 128 + u64 *size, unsigned int *flags) 156 129 { 157 - return -ENOSYS; 130 + return __of_get_address(dev, index, -1, size, flags); 158 131 } 159 132 160 - static inline const __be32 *of_get_pci_address(struct device_node *dev, 161 - int bar_no, u64 *size, unsigned int *flags) 133 + static inline const __be32 *of_get_pci_address(struct device_node *dev, int bar_no, 134 + u64 *size, unsigned int *flags) 162 135 { 163 - return NULL; 136 + return __of_get_address(dev, -1, bar_no, size, flags); 164 137 } 165 - static inline int of_pci_range_to_resource(struct of_pci_range *range, 166 - struct device_node *np, 167 - struct resource *res) 168 - { 169 - return -ENOSYS; 170 - } 171 - #endif /* CONFIG_OF_ADDRESS && CONFIG_PCI */ 172 138 173 139 #endif /* __OF_ADDRESS_H */
+6 -8
include/linux/of_reserved_mem.h
··· 27 27 28 28 typedef int (*reservedmem_of_init_fn)(struct reserved_mem *rmem); 29 29 30 + #ifdef CONFIG_OF_RESERVED_MEM 31 + 30 32 #define RESERVEDMEM_OF_DECLARE(name, compat, init) \ 31 33 _OF_DECLARE(reservedmem, name, compat, init, reservedmem_of_init_fn) 32 - 33 - #ifdef CONFIG_OF_RESERVED_MEM 34 34 35 35 int of_reserved_mem_device_init_by_idx(struct device *dev, 36 36 struct device_node *np, int idx); ··· 39 39 const char *name); 40 40 void of_reserved_mem_device_release(struct device *dev); 41 41 42 - void fdt_init_reserved_mem(void); 43 - void fdt_reserved_mem_save_node(unsigned long node, const char *uname, 44 - phys_addr_t base, phys_addr_t size); 45 42 struct reserved_mem *of_reserved_mem_lookup(struct device_node *np); 46 43 #else 44 + 45 + #define RESERVEDMEM_OF_DECLARE(name, compat, init) \ 46 + _OF_DECLARE_STUB(reservedmem, name, compat, init, reservedmem_of_init_fn) 47 + 47 48 static inline int of_reserved_mem_device_init_by_idx(struct device *dev, 48 49 struct device_node *np, int idx) 49 50 { ··· 60 59 61 60 static inline void of_reserved_mem_device_release(struct device *pdev) { } 62 61 63 - static inline void fdt_init_reserved_mem(void) { } 64 - static inline void fdt_reserved_mem_save_node(unsigned long node, 65 - const char *uname, phys_addr_t base, phys_addr_t size) { } 66 62 static inline struct reserved_mem *of_reserved_mem_lookup(struct device_node *np) 67 63 { 68 64 return NULL;
+4
include/linux/pci.h
··· 1775 1775 { return -EIO; } 1776 1776 static inline void pci_release_regions(struct pci_dev *dev) { } 1777 1777 1778 + static inline int pci_register_io_range(struct fwnode_handle *fwnode, 1779 + phys_addr_t addr, resource_size_t size) 1780 + { return -EINVAL; } 1781 + 1778 1782 static inline unsigned long pci_address_to_pio(phys_addr_t addr) { return -1; } 1779 1783 1780 1784 static inline struct pci_bus *pci_find_next_bus(const struct pci_bus *from)