118 lines
3.3 KiB
YAML
118 lines
3.3 KiB
YAML
# 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>;
|
|
};
|