GPIO via CREG (control registers) driver 31 9 7 5 0 < bit number | | | | | [ not used | gpio-1 | gpio-0 | <-shift-> ] < 32 bit register ^ ^ | | write 0x2 == set output to "1" (activate) write 0x3 == set output to "0" (deactivate) Required properties: - compatible : "snps,creg-gpio" - reg : Exactly one register range with length 0x4. - #gpio-cells : Should be one - the pin number. - gpio-controller : Marks the device node as a GPIO controller. - gpio-count: Number of GPIO pins. - gpio-bit-per-line: Number of bits per gpio line (see picture). - gpio-first-shift: Shift (in bits) of the first GPIO field in register (see picture). - gpio-activate-val: Value should be set in corresponding field to set output to "1" (see picture). Applied to all GPIO ports. - gpio-deactivate-val: Value should be set in corresponding field to set output to "0" (see picture). Applied to all GPIO ports. Optional properties: - gpio-bank-name: name of bank (as default driver name is used is used) - gpio-default-val: array of default output values (must me 0 or 1) Example (see picture): gpio: gpio@f00014b0 { compatible = "snps,creg-gpio"; reg = <0xf00014b0 0x4>; gpio-controller; #gpio-cells = <1>; gpio-bank-name = "hsdk-spi-cs"; gpio-count = <2>; gpio-first-shift = <5>; gpio-bit-per-line = <2>; gpio-activate-val = <2>; gpio-deactivate-val = <3>; gpio-default-val = <1 1>; };