1*84943d6fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*84943d6fSEmmanuel Vadot%YAML 1.2 3*84943d6fSEmmanuel Vadot--- 4*84943d6fSEmmanuel Vadot$id: http://devicetree.org/schemas/gpio/intel,ixp4xx-gpio.yaml# 5*84943d6fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*84943d6fSEmmanuel Vadot 7*84943d6fSEmmanuel Vadottitle: Intel IXP4xx XScale Networking Processors GPIO Controller 8*84943d6fSEmmanuel Vadot 9*84943d6fSEmmanuel Vadotdescription: | 10*84943d6fSEmmanuel Vadot This GPIO controller is found in the Intel IXP4xx 11*84943d6fSEmmanuel Vadot processors. It supports 16 GPIO lines. 12*84943d6fSEmmanuel Vadot The interrupt portions of the GPIO controller is hierarchical. 13*84943d6fSEmmanuel Vadot The synchronous edge detector is part of the GPIO block, but the 14*84943d6fSEmmanuel Vadot actual enabling/disabling of the interrupt line is done in the 15*84943d6fSEmmanuel Vadot main IXP4xx interrupt controller which has a 1-to-1 mapping for 16*84943d6fSEmmanuel Vadot the first 12 GPIO lines to 12 system interrupts. 17*84943d6fSEmmanuel Vadot The remaining 4 GPIO lines can not be used for receiving 18*84943d6fSEmmanuel Vadot interrupts. 19*84943d6fSEmmanuel Vadot The interrupt parent of this GPIO controller must be the 20*84943d6fSEmmanuel Vadot IXP4xx interrupt controller. 21*84943d6fSEmmanuel Vadot GPIO 14 and 15 can be used as clock outputs rather than GPIO, 22*84943d6fSEmmanuel Vadot and this can be enabled by a special flag. 23*84943d6fSEmmanuel Vadot 24*84943d6fSEmmanuel Vadotmaintainers: 25*84943d6fSEmmanuel Vadot - Linus Walleij <linus.walleij@linaro.org> 26*84943d6fSEmmanuel Vadot 27*84943d6fSEmmanuel Vadotproperties: 28*84943d6fSEmmanuel Vadot compatible: 29*84943d6fSEmmanuel Vadot const: intel,ixp4xx-gpio 30*84943d6fSEmmanuel Vadot 31*84943d6fSEmmanuel Vadot reg: 32*84943d6fSEmmanuel Vadot maxItems: 1 33*84943d6fSEmmanuel Vadot 34*84943d6fSEmmanuel Vadot gpio-controller: true 35*84943d6fSEmmanuel Vadot 36*84943d6fSEmmanuel Vadot "#gpio-cells": 37*84943d6fSEmmanuel Vadot const: 2 38*84943d6fSEmmanuel Vadot 39*84943d6fSEmmanuel Vadot interrupt-controller: true 40*84943d6fSEmmanuel Vadot 41*84943d6fSEmmanuel Vadot "#interrupt-cells": 42*84943d6fSEmmanuel Vadot const: 2 43*84943d6fSEmmanuel Vadot 44*84943d6fSEmmanuel Vadot intel,ixp4xx-gpio14-clkout: 45*84943d6fSEmmanuel Vadot description: If defined, enables clock output on GPIO 14 46*84943d6fSEmmanuel Vadot instead of GPIO. 47*84943d6fSEmmanuel Vadot type: boolean 48*84943d6fSEmmanuel Vadot 49*84943d6fSEmmanuel Vadot intel,ixp4xx-gpio15-clkout: 50*84943d6fSEmmanuel Vadot description: If defined, enables clock output on GPIO 15 51*84943d6fSEmmanuel Vadot instead of GPIO. 52*84943d6fSEmmanuel Vadot type: boolean 53*84943d6fSEmmanuel Vadot 54*84943d6fSEmmanuel Vadotrequired: 55*84943d6fSEmmanuel Vadot - compatible 56*84943d6fSEmmanuel Vadot - reg 57*84943d6fSEmmanuel Vadot - "#gpio-cells" 58*84943d6fSEmmanuel Vadot - interrupt-controller 59*84943d6fSEmmanuel Vadot - "#interrupt-cells" 60*84943d6fSEmmanuel Vadot 61*84943d6fSEmmanuel VadotadditionalProperties: false 62*84943d6fSEmmanuel Vadot 63*84943d6fSEmmanuel Vadotexamples: 64*84943d6fSEmmanuel Vadot - | 65*84943d6fSEmmanuel Vadot #include <dt-bindings/interrupt-controller/irq.h> 66*84943d6fSEmmanuel Vadot gpio@c8004000 { 67*84943d6fSEmmanuel Vadot compatible = "intel,ixp4xx-gpio"; 68*84943d6fSEmmanuel Vadot reg = <0xc8004000 0x1000>; 69*84943d6fSEmmanuel Vadot gpio-controller; 70*84943d6fSEmmanuel Vadot #gpio-cells = <2>; 71*84943d6fSEmmanuel Vadot interrupt-controller; 72*84943d6fSEmmanuel Vadot #interrupt-cells = <2>; 73*84943d6fSEmmanuel Vadot }; 74