diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2015-10-30 11:58:28 +0100 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2015-10-31 22:12:32 +0100 |
commit | aacaffd1d9a6f8e2c7369d83c21d41c3b53e2edc (patch) | |
tree | 6850c2ee20252a3de77344903f5c5de58fb41afe /Documentation/devicetree/bindings/gpio/gpio.txt | |
parent | aad7a2119965a4a504ddf1d8374968135e9a8780 (diff) | |
download | linux-stable-aacaffd1d9a6f8e2c7369d83c21d41c3b53e2edc.tar.gz linux-stable-aacaffd1d9a6f8e2c7369d83c21d41c3b53e2edc.tar.bz2 linux-stable-aacaffd1d9a6f8e2c7369d83c21d41c3b53e2edc.zip |
gpio: dt-bindings: document the official use of "ngpios"
There are a bunch of drivers that utilize the "ngpios" DT property
without any vendor prefix. Try to start cleaning up the mess by
defining what we mean by this property.
Cc: devicetree@vger.kernel.org
Cc: Pramod Kumar <pramodku@broadcom.com>
Cc: Jonas Gorski <jogo@openwrt.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'Documentation/devicetree/bindings/gpio/gpio.txt')
-rw-r--r-- | Documentation/devicetree/bindings/gpio/gpio.txt | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/gpio/gpio.txt b/Documentation/devicetree/bindings/gpio/gpio.txt index 63b1b9039ce8..e9c49dc4e895 100644 --- a/Documentation/devicetree/bindings/gpio/gpio.txt +++ b/Documentation/devicetree/bindings/gpio/gpio.txt @@ -129,6 +129,30 @@ Every GPIO controller node must contain both an empty "gpio-controller" property, and a #gpio-cells integer property, which indicates the number of cells in a gpio-specifier. +Optionally, a GPIO controller may have a "ngpios" property. This property +indicates the number of in-use slots of available slots for GPIOs. The +typical example is something like this: the hardware register is 32 bits +wide, but only 18 of the bits have a physical counterpart. The driver is +generally written so that all 32 bits can be used, but the IP block is reused +in a lot of designs, some using all 32 bits, some using 18 and some using +12. In this case, setting "ngpios = <18>;" informs the driver that only the +first 18 GPIOs, at local offset 0 .. 17, are in use. + +If these GPIOs do not happen to be the first N GPIOs at offset 0...N-1, an +additional bitmask is needed to specify which GPIOs are actually in use, +and which are dummies. The bindings for this case has not yet been +specified, but should be specified if/when such hardware appears. + +Example: + +gpio-controller@00000000 { + compatible = "foo"; + reg = <0x00000000 0x1000>; + gpio-controller; + #gpio-cells = <2>; + ngpios = <18>; +} + The GPIO chip may contain GPIO hog definitions. GPIO hogging is a mechanism providing automatic GPIO request and configuration as part of the gpio-controller's driver probe function. |