xref: /openbmc/u-boot/doc/device-tree-bindings/gpio/snps,creg-gpio.txt (revision 61523dde17d1539b8ea361e25909acfdfc465155)
1*7620ec4dSEugeniy PaltsevGPIO via CREG (control registers) driver
2*7620ec4dSEugeniy Paltsev
3*7620ec4dSEugeniy Paltsev31                 9        7        5           0   < bit number
4*7620ec4dSEugeniy Paltsev|                  |        |        |           |
5*7620ec4dSEugeniy Paltsev[     not used     | gpio-1 | gpio-0 | <-shift-> ]   < 32 bit register
6*7620ec4dSEugeniy Paltsev                       ^        ^
7*7620ec4dSEugeniy Paltsev                       |        |
8*7620ec4dSEugeniy Paltsev                write 0x2 == set output to "1" (activate)
9*7620ec4dSEugeniy Paltsev                write 0x3 == set output to "0" (deactivate)
10*7620ec4dSEugeniy Paltsev
11*7620ec4dSEugeniy PaltsevRequired properties:
12*7620ec4dSEugeniy Paltsev- compatible : "snps,creg-gpio"
13*7620ec4dSEugeniy Paltsev- reg : Exactly one register range with length 0x4.
14*7620ec4dSEugeniy Paltsev- #gpio-cells : Should be one - the pin number.
15*7620ec4dSEugeniy Paltsev- gpio-controller : Marks the device node as a GPIO controller.
16*7620ec4dSEugeniy Paltsev- gpio-count: Number of GPIO pins.
17*7620ec4dSEugeniy Paltsev- gpio-bit-per-line: Number of bits per gpio line (see picture).
18*7620ec4dSEugeniy Paltsev- gpio-first-shift: Shift (in bits) of the first GPIO field in register
19*7620ec4dSEugeniy Paltsev  (see picture).
20*7620ec4dSEugeniy Paltsev- gpio-activate-val: Value should be set in corresponding field to set
21*7620ec4dSEugeniy Paltsev  output to "1" (see picture). Applied to all GPIO ports.
22*7620ec4dSEugeniy Paltsev- gpio-deactivate-val: Value should be set in corresponding field to set
23*7620ec4dSEugeniy Paltsev  output to "0" (see picture). Applied to all GPIO ports.
24*7620ec4dSEugeniy Paltsev
25*7620ec4dSEugeniy PaltsevOptional properties:
26*7620ec4dSEugeniy Paltsev- gpio-bank-name: name of bank (as default driver name is used is used)
27*7620ec4dSEugeniy Paltsev- gpio-default-val: array of default output values (must me 0 or 1)
28*7620ec4dSEugeniy Paltsev
29*7620ec4dSEugeniy PaltsevExample (see picture):
30*7620ec4dSEugeniy Paltsev
31*7620ec4dSEugeniy Paltsevgpio: gpio@f00014b0 {
32*7620ec4dSEugeniy Paltsev	compatible = "snps,creg-gpio";
33*7620ec4dSEugeniy Paltsev	reg = <0xf00014b0 0x4>;
34*7620ec4dSEugeniy Paltsev	gpio-controller;
35*7620ec4dSEugeniy Paltsev	#gpio-cells = <1>;
36*7620ec4dSEugeniy Paltsev	gpio-bank-name = "hsdk-spi-cs";
37*7620ec4dSEugeniy Paltsev	gpio-count = <2>;
38*7620ec4dSEugeniy Paltsev	gpio-first-shift = <5>;
39*7620ec4dSEugeniy Paltsev	gpio-bit-per-line = <2>;
40*7620ec4dSEugeniy Paltsev	gpio-activate-val = <2>;
41*7620ec4dSEugeniy Paltsev	gpio-deactivate-val = <3>;
42*7620ec4dSEugeniy Paltsev	gpio-default-val = <1 1>;
43*7620ec4dSEugeniy Paltsev};
44