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

Merge tag 'tegra-for-6.16-dt-bindings' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt

Device tree bindings updates for v6.16-rc1

Convert the legacy interrupt controller (LIC) and APBDMA controller
device tree bindings from freeform text to dt-schema.

Document the ASUS Transformer Pad TF300TL compatible string and add
missing compatible strings for newer generations of the Tegra CEC.

* tag 'tegra-for-6.16-dt-bindings' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
media: dt-bindings: Document Tegra186 and Tegra194 cec
dt-bindings: arm: tegra: Add Asus Transformer Pad TF300TL
dt-bindings: arm: tegra: Group Tegra30 based ASUS Transformers
dt-bindings: interrupt-controller: Convert nvidia,tegra20-ictlr to DT schema
dt-bindings: dma: nvidia,tegra20-apbdma: convert text based binding to json schema

Link: https://lore.kernel.org/r/20250509212604.2849901-1-treding@nvidia.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

+190 -100
+8 -11
Documentation/devicetree/bindings/arm/tegra.yaml
··· 52 52 - nvidia,cardhu-a04 53 53 - const: nvidia,cardhu 54 54 - const: nvidia,tegra30 55 - - items: 56 - - const: asus,tf201 57 - - const: nvidia,tegra30 58 - - items: 59 - - const: asus,tf300t 60 - - const: nvidia,tegra30 61 - - items: 62 - - const: asus,tf300tg 63 - - const: nvidia,tegra30 64 - - items: 65 - - const: asus,tf700t 55 + - description: ASUS Transformers Device family 56 + items: 57 + - enum: 58 + - asus,tf201 59 + - asus,tf300t 60 + - asus,tf300tg 61 + - asus,tf300tl 62 + - asus,tf700t 66 63 - const: nvidia,tegra30 67 64 - description: LG Optimus 4X P880 68 65 items:
-44
Documentation/devicetree/bindings/dma/nvidia,tegra20-apbdma.txt
··· 1 - * NVIDIA Tegra APB DMA controller 2 - 3 - Required properties: 4 - - compatible: Should be "nvidia,<chip>-apbdma" 5 - - reg: Should contain DMA registers location and length. This should include 6 - all of the per-channel registers. 7 - - interrupts: Should contain all of the per-channel DMA interrupts. 8 - - clocks: Must contain one entry, for the module clock. 9 - See ../clocks/clock-bindings.txt for details. 10 - - resets : Must contain an entry for each entry in reset-names. 11 - See ../reset/reset.txt for details. 12 - - reset-names : Must include the following entries: 13 - - dma 14 - - #dma-cells : Must be <1>. This dictates the length of DMA specifiers in 15 - client nodes' dmas properties. The specifier represents the DMA request 16 - select value for the peripheral. For more details, consult the Tegra TRM's 17 - documentation of the APB DMA channel control register REQ_SEL field. 18 - 19 - Examples: 20 - 21 - apbdma: dma@6000a000 { 22 - compatible = "nvidia,tegra20-apbdma"; 23 - reg = <0x6000a000 0x1200>; 24 - interrupts = < 0 136 0x04 25 - 0 137 0x04 26 - 0 138 0x04 27 - 0 139 0x04 28 - 0 140 0x04 29 - 0 141 0x04 30 - 0 142 0x04 31 - 0 143 0x04 32 - 0 144 0x04 33 - 0 145 0x04 34 - 0 146 0x04 35 - 0 147 0x04 36 - 0 148 0x04 37 - 0 149 0x04 38 - 0 150 0x04 39 - 0 151 0x04 >; 40 - clocks = <&tegra_car 34>; 41 - resets = <&tegra_car 34>; 42 - reset-names = "dma"; 43 - #dma-cells = <1>; 44 - };
+90
Documentation/devicetree/bindings/dma/nvidia,tegra20-apbdma.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/dma/nvidia,tegra20-apbdma.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: NVIDIA Tegra APB DMA Controller 8 + 9 + description: 10 + The NVIDIA Tegra APB DMA controller is a hardware component that 11 + enables direct memory access (DMA) on Tegra systems. It facilitates 12 + data transfer between I/O devices and main memory without constant 13 + CPU intervention. 14 + 15 + maintainers: 16 + - Jonathan Hunter <jonathanh@nvidia.com> 17 + 18 + properties: 19 + compatible: 20 + oneOf: 21 + - const: nvidia,tegra20-apbdma 22 + - items: 23 + - const: nvidia,tegra30-apbdma 24 + - const: nvidia,tegra20-apbdma 25 + 26 + reg: 27 + maxItems: 1 28 + 29 + "#dma-cells": 30 + const: 1 31 + 32 + clocks: 33 + maxItems: 1 34 + 35 + interrupts: 36 + description: 37 + Should contain all of the per-channel DMA interrupts in 38 + ascending order with respect to the DMA channel index. 39 + minItems: 1 40 + maxItems: 32 41 + 42 + resets: 43 + maxItems: 1 44 + 45 + reset-names: 46 + const: dma 47 + 48 + required: 49 + - compatible 50 + - reg 51 + - "#dma-cells" 52 + - clocks 53 + - interrupts 54 + - resets 55 + - reset-names 56 + 57 + allOf: 58 + - $ref: dma-controller.yaml# 59 + 60 + unevaluatedProperties: false 61 + 62 + examples: 63 + - | 64 + #include <dt-bindings/interrupt-controller/arm-gic.h> 65 + #include <dt-bindings/reset/tegra186-reset.h> 66 + dma-controller@6000a000 { 67 + compatible = "nvidia,tegra30-apbdma", "nvidia,tegra20-apbdma"; 68 + reg = <0x6000a000 0x1200>; 69 + interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>, 70 + <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>, 71 + <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>, 72 + <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>, 73 + <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>, 74 + <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>, 75 + <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>, 76 + <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>, 77 + <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>, 78 + <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>, 79 + <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>, 80 + <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>, 81 + <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>, 82 + <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>, 83 + <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>, 84 + <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>; 85 + clocks = <&tegra_car 34>; 86 + resets = <&tegra_car 34>; 87 + reset-names = "dma"; 88 + #dma-cells = <1>; 89 + }; 90 + ...
-41
Documentation/devicetree/bindings/interrupt-controller/nvidia,tegra20-ictlr.txt
··· 1 - NVIDIA Legacy Interrupt Controller 2 - 3 - All Tegra SoCs contain a legacy interrupt controller that routes 4 - interrupts to the GIC, and also serves as a wakeup source. It is also 5 - referred to as "ictlr", hence the name of the binding. 6 - 7 - The HW block exposes a number of interrupt controllers, each 8 - implementing a set of 32 interrupts. 9 - 10 - Required properties: 11 - 12 - - compatible : should be: "nvidia,tegra<chip>-ictlr". The LIC on 13 - subsequent SoCs remained backwards-compatible with Tegra30, so on 14 - Tegra generations later than Tegra30 the compatible value should 15 - include "nvidia,tegra30-ictlr". 16 - - reg : Specifies base physical address and size of the registers. 17 - Each controller must be described separately (Tegra20 has 4 of them, 18 - whereas Tegra30 and later have 5). 19 - - interrupt-controller : Identifies the node as an interrupt controller. 20 - - #interrupt-cells : Specifies the number of cells needed to encode an 21 - interrupt source. The value must be 3. 22 - 23 - Notes: 24 - 25 - - Because this HW ultimately routes interrupts to the GIC, the 26 - interrupt specifier must be that of the GIC. 27 - - Only SPIs can use the ictlr as an interrupt parent. SGIs and PPIs 28 - are explicitly forbidden. 29 - 30 - Example: 31 - 32 - ictlr: interrupt-controller@60004000 { 33 - compatible = "nvidia,tegra20-ictlr", "nvidia,tegra-ictlr"; 34 - reg = <0x60004000 64>, 35 - <0x60004100 64>, 36 - <0x60004200 64>, 37 - <0x60004300 64>; 38 - interrupt-controller; 39 - #interrupt-cells = <3>; 40 - interrupt-parent = <&intc>; 41 - };
+82
Documentation/devicetree/bindings/interrupt-controller/nvidia,tegra20-ictlr.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/nvidia,tegra20-ictlr.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: NVIDIA Tegra20 Legacy Interrupt Controller 8 + 9 + maintainers: 10 + - Thierry Reding <treding@nvidia.com> 11 + - Jonathan Hunter <jonathanh@nvidia.com> 12 + 13 + description: > 14 + All Tegra SoCs contain a legacy interrupt controller that routes interrupts to 15 + the GIC, and also serves as a wakeup source. It is also referred to as 16 + "ictlr", hence the name of the binding. 17 + 18 + The HW block exposes a number of interrupt controllers, each implementing a 19 + set of 32 interrupts. 20 + 21 + Notes: 22 + - Because this HW ultimately routes interrupts to the GIC, the 23 + interrupt specifier must be that of the GIC. 24 + - Only SPIs can use the ictlr as an interrupt parent. SGIs and PPIs 25 + are explicitly forbidden. 26 + 27 + properties: 28 + compatible: 29 + oneOf: 30 + - items: 31 + - enum: 32 + - nvidia,tegra114-ictlr 33 + - nvidia,tegra124-ictlr 34 + - const: nvidia,tegra30-ictlr 35 + - enum: 36 + - nvidia,tegra20-ictlr 37 + - nvidia,tegra30-ictlr 38 + 39 + reg: 40 + description: Each entry is a block of 32 interrupts 41 + minItems: 4 42 + maxItems: 5 43 + 44 + interrupt-controller: true 45 + 46 + '#interrupt-cells': 47 + const: 3 48 + 49 + required: 50 + - compatible 51 + - reg 52 + - interrupt-controller 53 + - '#interrupt-cells' 54 + 55 + additionalProperties: false 56 + 57 + allOf: 58 + - if: 59 + properties: 60 + compatible: 61 + contains: 62 + const: nvidia,tegra20-ictlr 63 + then: 64 + properties: 65 + reg: 66 + maxItems: 4 67 + else: 68 + properties: 69 + reg: 70 + minItems: 5 71 + 72 + examples: 73 + - | 74 + interrupt-controller@60004000 { 75 + compatible = "nvidia,tegra20-ictlr"; 76 + reg = <0x60004000 64>, 77 + <0x60004100 64>, 78 + <0x60004200 64>, 79 + <0x60004300 64>; 80 + interrupt-controller; 81 + #interrupt-cells = <3>; 82 + };
+10 -4
Documentation/devicetree/bindings/media/cec/nvidia,tegra114-cec.yaml
··· 14 14 15 15 properties: 16 16 compatible: 17 - enum: 18 - - nvidia,tegra114-cec 19 - - nvidia,tegra124-cec 20 - - nvidia,tegra210-cec 17 + oneOf: 18 + - enum: 19 + - nvidia,tegra114-cec 20 + - nvidia,tegra124-cec 21 + - nvidia,tegra210-cec 22 + - items: 23 + - enum: 24 + - nvidia,tegra186-cec 25 + - nvidia,tegra194-cec 26 + - const: nvidia,tegra210-cec 21 27 22 28 clocks: 23 29 maxItems: 1