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

dt-bindings: gpio: tegra: Convert to json-schema

Convert the NVIDIA Tegra GPIO controller device tree bindings from
free-form text format to json-schema.

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>

authored by

Thierry Reding and committed by
Bartosz Golaszewski
40dc2270 34d9841b

+110 -40
-40
Documentation/devicetree/bindings/gpio/nvidia,tegra20-gpio.txt
··· 1 - NVIDIA Tegra GPIO controller 2 - 3 - Required properties: 4 - - compatible : "nvidia,tegra<chip>-gpio" 5 - - reg : Physical base address and length of the controller's registers. 6 - - interrupts : The interrupt outputs from the controller. For Tegra20, 7 - there should be 7 interrupts specified, and for Tegra30, there should 8 - be 8 interrupts specified. 9 - - #gpio-cells : Should be two. The first cell is the pin number and the 10 - second cell is used to specify optional parameters: 11 - - bit 0 specifies polarity (0 for normal, 1 for inverted) 12 - - gpio-controller : Marks the device node as a GPIO controller. 13 - - #interrupt-cells : Should be 2. 14 - The first cell is the GPIO number. 15 - The second cell is used to specify flags: 16 - bits[3:0] trigger type and level flags: 17 - 1 = low-to-high edge triggered. 18 - 2 = high-to-low edge triggered. 19 - 4 = active high level-sensitive. 20 - 8 = active low level-sensitive. 21 - Valid combinations are 1, 2, 3, 4, 8. 22 - - interrupt-controller : Marks the device node as an interrupt controller. 23 - 24 - Example: 25 - 26 - gpio: gpio@6000d000 { 27 - compatible = "nvidia,tegra20-gpio"; 28 - reg = < 0x6000d000 0x1000 >; 29 - interrupts = < 0 32 0x04 30 - 0 33 0x04 31 - 0 34 0x04 32 - 0 35 0x04 33 - 0 55 0x04 34 - 0 87 0x04 35 - 0 89 0x04 >; 36 - #gpio-cells = <2>; 37 - gpio-controller; 38 - #interrupt-cells = <2>; 39 - interrupt-controller; 40 - };
+110
Documentation/devicetree/bindings/gpio/nvidia,tegra20-gpio.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/gpio/nvidia,tegra20-gpio.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: NVIDIA Tegra GPIO Controller (Tegra20 - Tegra210) 8 + 9 + maintainers: 10 + - Thierry Reding <thierry.reding@gmail.com> 11 + - Jon Hunter <jonathanh@nvidia.com> 12 + 13 + properties: 14 + compatible: 15 + oneOf: 16 + - enum: 17 + - nvidia,tegra20-gpio 18 + - nvidia,tegra30-gpio 19 + 20 + - items: 21 + - enum: 22 + - nvidia,tegra114-gpio 23 + - nvidia,tegra124-gpio 24 + - nvidia,tegra210-gpio 25 + - const: nvidia,tegra30-gpio 26 + 27 + reg: 28 + maxItems: 1 29 + 30 + interrupts: 31 + description: The interrupt outputs from the controller. For Tegra20, 32 + there should be 7 interrupts specified, and for Tegra30, there should 33 + be 8 interrupts specified. 34 + 35 + "#gpio-cells": 36 + description: The first cell is the pin number and the second cell is used 37 + to specify the GPIO polarity (0 = active high, 1 = active low). 38 + const: 2 39 + 40 + gpio-controller: true 41 + 42 + gpio-ranges: 43 + maxItems: 1 44 + 45 + "#interrupt-cells": 46 + description: | 47 + Should be 2. The first cell is the GPIO number. The second cell is 48 + used to specify flags: 49 + 50 + bits[3:0] trigger type and level flags: 51 + 1 = low-to-high edge triggered. 52 + 2 = high-to-low edge triggered. 53 + 4 = active high level-sensitive. 54 + 8 = active low level-sensitive. 55 + 56 + Valid combinations are 1, 2, 3, 4, 8. 57 + const: 2 58 + 59 + interrupt-controller: true 60 + 61 + allOf: 62 + - if: 63 + properties: 64 + compatible: 65 + contains: 66 + const: nvidia,tegra30-gpio 67 + then: 68 + properties: 69 + interrupts: 70 + minItems: 8 71 + maxItems: 8 72 + else: 73 + properties: 74 + interrupts: 75 + minItems: 7 76 + maxItems: 7 77 + 78 + required: 79 + - compatible 80 + - reg 81 + - interrupts 82 + - "#gpio-cells" 83 + - gpio-controller 84 + - "#interrupt-cells" 85 + - interrupt-controller 86 + 87 + additionalProperties: 88 + type: object 89 + required: 90 + - gpio-hog 91 + 92 + examples: 93 + - | 94 + #include <dt-bindings/interrupt-controller/arm-gic.h> 95 + 96 + gpio: gpio@6000d000 { 97 + compatible = "nvidia,tegra20-gpio"; 98 + reg = <0x6000d000 0x1000>; 99 + interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>, 100 + <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>, 101 + <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>, 102 + <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>, 103 + <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, 104 + <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>, 105 + <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>; 106 + #gpio-cells = <2>; 107 + gpio-controller; 108 + #interrupt-cells = <2>; 109 + interrupt-controller; 110 + };