[RESEND: PATCH 1/2] mfd: tc3589x: Add device tree bindings
Lee Jones
lee.jones at linaro.org
Tue Jun 17 13:23:41 PDT 2014
On Wed, 09 Apr 2014, Linus Walleij wrote:
> This defines the device tree bindings for the Toshiba TC3589x
> series of multi-purpose expanders. Only the stuff I can test
> is defined: GPIO and keypad. Others may implement more
> subdevices further down the road.
>
> This is to complement
> commit a435ae1d51e2f18414f2a87219fdbe068231e692
> "mfd: Enable the tc3589x for Device Tree" which left off
> the definition of the device tree bindings.
>
> Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
> ---
> ChangeLog v2->v3:
> - Fix the keys/rows bindings to be u32 rather than
> /bits/ 8, inconsistency noted by Mark Rutland.
> ChangeLog v1->v2:
> - Include a verbose example in the DT bindings.
> - Explain why this is a stand-alone bindings patch.
> ---
> Documentation/devicetree/bindings/mfd/tc3589x.txt | 107 ++++++++++++++++++++++
> 1 file changed, 107 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/mfd/tc3589x.txt
Looks about right, been on the list for ages and doesn't add any new
properties. Applied, thanks.
> diff --git a/Documentation/devicetree/bindings/mfd/tc3589x.txt b/Documentation/devicetree/bindings/mfd/tc3589x.txt
> new file mode 100644
> index 000000000000..c6ac5bd2ce51
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/tc3589x.txt
> @@ -0,0 +1,107 @@
> +* Toshiba TC3589x multi-purpose expander
> +
> +The Toshiba TC3589x series are I2C-based MFD devices which may expose the
> +following built-in devices: gpio, keypad, rotator (vibrator), PWM (for
> +e.g. LEDs or vibrators) The included models are:
> +
> +- TC35890
> +- TC35892
> +- TC35893
> +- TC35894
> +- TC35895
> +- TC35896
> +
> +Required properties:
> + - compatible : must be "toshiba,tc35890", "toshiba,tc35892", "toshiba,tc35893",
> + "toshiba,tc35894", "toshiba,tc35895" or "toshiba,tc35896"
> + - reg : I2C address of the device
> + - interrupt-parent : specifies which IRQ controller we're connected to
> + - interrupts : the interrupt on the parent the controller is connected to
> + - interrupt-controller : marks the device node as an interrupt controller
> + - #interrupt-cells : should be <1>, the first cell is the IRQ offset on this
> + TC3589x interrupt controller.
> +
> +Optional nodes:
> +
> +- GPIO
> + This GPIO module inside the TC3589x has 24 (TC35890, TC35892) or 20
> + (other models) GPIO lines.
> + - compatible : must be "toshiba,tc3589x-gpio"
> + - interrupts : interrupt on the parent, which must be the tc3589x MFD device
> + - interrupt-controller : marks the device node as an interrupt controller
> + - #interrupt-cells : should be <2>, the first cell is the IRQ offset on this
> + TC3589x GPIO interrupt controller, the second cell is the interrupt flags
> + in accordance with <dt-bindings/interrupt-controller/irq.h>. The following
> + flags are valid:
> + - IRQ_TYPE_LEVEL_LOW
> + - IRQ_TYPE_LEVEL_HIGH
> + - IRQ_TYPE_EDGE_RISING
> + - IRQ_TYPE_EDGE_FALLING
> + - IRQ_TYPE_EDGE_BOTH
> + - gpio-controller : marks the device node as a GPIO controller
> + - #gpio-cells : should be <2>, the first cell is the GPIO offset on this
> + GPIO controller, the second cell is the flags.
> +
> +- Keypad
> + This keypad is the same on all variants, supporting up to 96 different
> + keys. The linux-specific properties are modeled on those already existing
> + in other input drivers.
> + - compatible : must be "toshiba,tc3589x-keypad"
> + - debounce-delay-ms : debounce interval in milliseconds
> + - keypad,num-rows : number of rows in the matrix, see
> + bindings/input/matrix-keymap.txt
> + - keypad,num-columns : number of columns in the matrix, see
> + bindings/input/matrix-keymap.txt
> + - linux,keymap: the definition can be found in
> + bindings/input/matrix-keymap.txt
> + - linux,no-autorepeat: do no enable autorepeat feature.
> + - linux,wakeup: use any event on keypad as wakeup event.
> +
> +Example:
> +
> +tc35893 at 44 {
> + compatible = "toshiba,tc35893";
> + reg = <0x44>;
> + interrupt-parent = <&gpio6>;
> + interrupts = <26 IRQ_TYPE_EDGE_RISING>;
> +
> + interrupt-controller;
> + #interrupt-cells = <1>;
> +
> + tc3589x_gpio {
> + compatible = "toshiba,tc3589x-gpio";
> + interrupts = <0>;
> +
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + gpio-controller;
> + #gpio-cells = <2>;
> + };
> + tc3589x_keypad {
> + compatible = "toshiba,tc3589x-keypad";
> + interrupts = <6>;
> + debounce-delay-ms = <4>;
> + keypad,num-columns = <8>;
> + keypad,num-rows = <8>;
> + linux,no-autorepeat;
> + linux,wakeup;
> + linux,keymap = <0x0301006b
> + 0x04010066
> + 0x06040072
> + 0x040200d7
> + 0x0303006a
> + 0x0205000e
> + 0x0607008b
> + 0x0500001c
> + 0x0403000b
> + 0x03040034
> + 0x05020067
> + 0x0305006c
> + 0x040500e7
> + 0x0005009e
> + 0x06020073
> + 0x01030039
> + 0x07060069
> + 0x050500d9>;
> + };
> +};
--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
More information about the linux-arm-kernel
mailing list