| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
- %YAML 1.2
- ---
- $id: http://devicetree.org/schemas/gpio/gpio-mmio.yaml#
- $schema: http://devicetree.org/meta-schemas/core.yaml#
- title: Generic MMIO GPIO
- maintainers:
- - Linus Walleij <linus.walleij@linaro.org>
- - Bartosz Golaszewski <brgl@bgdev.pl>
- description:
- Some simple GPIO controllers may consist of a single data register or a pair
- of set/clear-bit registers. Such controllers are common for glue logic in
- FPGAs or ASICs. Commonly, these controllers are accessed over memory-mapped
- NAND-style parallel busses.
- properties:
- compatible:
- enum:
- - brcm,bcm6345-gpio
- - ni,169445-nand-gpio
- - wd,mbl-gpio # Western Digital MyBook Live memory-mapped GPIO controller
- big-endian: true
- '#gpio-cells':
- const: 2
- gpio-controller: true
- little-endian: true
- reg:
- minItems: 1
- description:
- A list of registers in the controller. The width of each register is
- determined by its size. All registers must have the same width. The number
- of GPIOs is set by the width, with bit 0 corresponding to GPIO 0.
- items:
- - description:
- Register to READ the value of the GPIO lines. If GPIO line is high,
- the bit will be set. If the GPIO line is low, the bit will be cleared.
- This register may also be used to drive GPIOs if the SET register is
- omitted.
- - description:
- Register to SET the value of the GPIO lines. Setting a bit in this
- register will drive the GPIO line high.
- - description:
- Register to CLEAR the value of the GPIO lines. Setting a bit in this
- register will drive the GPIO line low. If this register is omitted,
- the SET register will be used to clear the GPIO lines as well, by
- actively writing the line with 0.
- - description:
- Register to set the line as OUTPUT. Setting a bit in this register
- will turn that line into an output line. Conversely, clearing a bit
- will turn that line into an input.
- - description:
- Register to set this line as INPUT. Setting a bit in this register
- will turn that line into an input line. Conversely, clearing a bit
- will turn that line into an output.
- reg-names:
- minItems: 1
- maxItems: 5
- items:
- enum:
- - dat
- - set
- - clr
- - dirout
- - dirin
- native-endian: true
- no-output:
- $ref: /schemas/types.yaml#/definitions/flag
- description:
- If this property is present, the controller cannot drive the GPIO lines.
- required:
- - compatible
- - reg
- - reg-names
- - '#gpio-cells'
- - gpio-controller
- additionalProperties: false
- examples:
- - |
- gpio@1f300010 {
- compatible = "ni,169445-nand-gpio";
- reg = <0x1f300010 0x4>;
- reg-names = "dat";
- gpio-controller;
- #gpio-cells = <2>;
- };
- gpio@e0100000 {
- compatible = "wd,mbl-gpio";
- reg-names = "dat";
- reg = <0xe0100000 0x1>;
- #gpio-cells = <2>;
- gpio-controller;
- no-output;
- };
- gpio@fffe0406 {
- compatible = "brcm,bcm6345-gpio";
- reg-names = "dirout", "dat";
- reg = <0xfffe0406 2>, <0xfffe040a 2>;
- native-endian;
- gpio-controller;
- #gpio-cells = <2>;
- };
|