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

Configure Feed

Select the types of activity you want to include in your feed.

dt-bindings: interrupt-controller: Convert img,pdc-intc to DT schema

Convert the ImgTec Powerdown Controller (PDC) interrupt controller
binding to schema format. It's a straight-forward conversion of the
typical interrupt controller.

Link: https://lore.kernel.org/r/20250505144703.1289335-1-robh@kernel.org
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>

+79 -105
-105
Documentation/devicetree/bindings/interrupt-controller/img,pdc-intc.txt
··· 1 - * ImgTec Powerdown Controller (PDC) Interrupt Controller Binding 2 - 3 - This binding specifies what properties must be available in the device tree 4 - representation of a PDC IRQ controller. This has a number of input interrupt 5 - lines which can wake the system, and are passed on through output interrupt 6 - lines. 7 - 8 - Required properties: 9 - 10 - - compatible: Specifies the compatibility list for the interrupt controller. 11 - The type shall be <string> and the value shall include "img,pdc-intc". 12 - 13 - - reg: Specifies the base PDC physical address(s) and size(s) of the 14 - addressable register space. The type shall be <prop-encoded-array>. 15 - 16 - - interrupt-controller: The presence of this property identifies the node 17 - as an interrupt controller. No property value shall be defined. 18 - 19 - - #interrupt-cells: Specifies the number of cells needed to encode an 20 - interrupt source. The type shall be a <u32> and the value shall be 2. 21 - 22 - - num-perips: Number of waking peripherals. 23 - 24 - - num-syswakes: Number of SysWake inputs. 25 - 26 - - interrupts: List of interrupt specifiers. The first specifier shall be the 27 - shared SysWake interrupt, and remaining specifies shall be PDC peripheral 28 - interrupts in order. 29 - 30 - * Interrupt Specifier Definition 31 - 32 - Interrupt specifiers consists of 2 cells encoded as follows: 33 - 34 - - <1st-cell>: The interrupt-number that identifies the interrupt source. 35 - 0-7: Peripheral interrupts 36 - 8-15: SysWake interrupts 37 - 38 - - <2nd-cell>: The level-sense information, encoded using the Linux interrupt 39 - flags as follows (only 4 valid for peripheral interrupts): 40 - 0 = none (decided by software) 41 - 1 = low-to-high edge triggered 42 - 2 = high-to-low edge triggered 43 - 3 = both edge triggered 44 - 4 = active-high level-sensitive (required for perip irqs) 45 - 8 = active-low level-sensitive 46 - 47 - * Examples 48 - 49 - Example 1: 50 - 51 - /* 52 - * TZ1090 PDC block 53 - */ 54 - pdc: pdc@02006000 { 55 - // This is an interrupt controller node. 56 - interrupt-controller; 57 - 58 - // Three cells to encode interrupt sources. 59 - #interrupt-cells = <2>; 60 - 61 - // Offset address of 0x02006000 and size of 0x1000. 62 - reg = <0x02006000 0x1000>; 63 - 64 - // Compatible with Meta hardware trigger block. 65 - compatible = "img,pdc-intc"; 66 - 67 - // Three peripherals are connected. 68 - num-perips = <3>; 69 - 70 - // Four SysWakes are connected. 71 - num-syswakes = <4>; 72 - 73 - interrupts = <18 4 /* level */>, /* Syswakes */ 74 - <30 4 /* level */>, /* Peripheral 0 (RTC) */ 75 - <29 4 /* level */>, /* Peripheral 1 (IR) */ 76 - <31 4 /* level */>; /* Peripheral 2 (WDT) */ 77 - }; 78 - 79 - Example 2: 80 - 81 - /* 82 - * An SoC peripheral that is wired through the PDC. 83 - */ 84 - rtc0 { 85 - // The interrupt controller that this device is wired to. 86 - interrupt-parent = <&pdc>; 87 - 88 - // Interrupt source Peripheral 0 89 - interrupts = <0 /* Peripheral 0 (RTC) */ 90 - 4> /* IRQ_TYPE_LEVEL_HIGH */ 91 - }; 92 - 93 - Example 3: 94 - 95 - /* 96 - * An interrupt generating device that is wired to a SysWake pin. 97 - */ 98 - touchscreen0 { 99 - // The interrupt controller that this device is wired to. 100 - interrupt-parent = <&pdc>; 101 - 102 - // Interrupt source SysWake 0 that is active-low level-sensitive 103 - interrupts = <8 /* SysWake0 */ 104 - 8 /* IRQ_TYPE_LEVEL_LOW */>; 105 - };
+79
Documentation/devicetree/bindings/interrupt-controller/img,pdc-intc.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/interrupt-controller/img,pdc-intc.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: ImgTec Powerdown Controller (PDC) Interrupt Controller 8 + 9 + maintainers: 10 + - James Hogan <jhogan@kernel.org> 11 + 12 + description: 13 + ImgTec Powerdown Controller (PDC) Interrupt Controller has a number of input 14 + interrupt lines which can wake the system, and are passed on through output 15 + interrupt lines. 16 + 17 + properties: 18 + compatible: 19 + const: img,pdc-intc 20 + 21 + reg: 22 + maxItems: 1 23 + 24 + interrupt-controller: true 25 + 26 + '#interrupt-cells': 27 + description: > 28 + <1st-cell>: The interrupt-number that identifies the interrupt source. 29 + 0-7: Peripheral interrupts 30 + 8-15: SysWake interrupts 31 + 32 + <2nd-cell>: The level-sense information, encoded using the Linux interrupt 33 + flags as follows (only 4 valid for peripheral interrupts): 34 + 0 = none (decided by software) 35 + 1 = low-to-high edge triggered 36 + 2 = high-to-low edge triggered 37 + 3 = both edge triggered 38 + 4 = active-high level-sensitive (required for perip irqs) 39 + 8 = active-low level-sensitive 40 + const: 2 41 + 42 + num-perips: 43 + description: Number of waking peripherals 44 + $ref: /schemas/types.yaml#/definitions/uint32 45 + maximum: 8 46 + 47 + num-syswakes: 48 + description: Number of SysWake inputs 49 + $ref: /schemas/types.yaml#/definitions/uint32 50 + maximum: 8 51 + 52 + interrupts: 53 + description: 54 + First entry is syswake IRQ. Subsequent entries are 1 per peripheral. 55 + minItems: 2 56 + maxItems: 9 57 + 58 + required: 59 + - compatible 60 + - reg 61 + - interrupt-controller 62 + - '#interrupt-cells' 63 + - num-perips 64 + - num-syswakes 65 + - interrupts 66 + 67 + additionalProperties: false 68 + 69 + examples: 70 + - | 71 + interrupt-controller@2006000 { 72 + compatible = "img,pdc-intc"; 73 + reg = <0x02006000 0x1000>; 74 + interrupts = <18 4>, <30 4>, <29 4>, <31 4>; 75 + interrupt-controller; 76 + #interrupt-cells = <2>; 77 + num-perips = <3>; 78 + num-syswakes = <4>; 79 + };