linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: "Grant Likely" <grant.likely@secretlab.ca>
To: "Anton Vorontsov" <avorontsov@ru.mvista.com>
Cc: linuxppc-dev@ozlabs.org, Paul Mackerras <paulus@samba.org>,
	David Miller <davem@davemloft.net>
Subject: Re: [PATCH 2/2] [POWERPC] Implement support for the GPIO LIB API
Date: Fri, 11 Apr 2008 08:16:02 -0600	[thread overview]
Message-ID: <fa686aa40804110716g5e8918br5c7ecd729f40f9ea@mail.gmail.com> (raw)
In-Reply-To: <20080411130636.GA12655@polina.dev.rtsoft.ru>

On Fri, Apr 11, 2008 at 7:06 AM, Anton Vorontsov
<avorontsov@ru.mvista.com> wrote:
> This patch implements support for the GPIO LIB API. Two calls
>  unimplemented though: irq_to_gpio and gpio_to_irq.
>
>  Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>

I like it

Acked-by: Grant Likely <grant.likely@secretlab.ca>

>  ---
>   Documentation/powerpc/booting-without-of.txt |   52 ++++++++++++++++++++++++
>   arch/powerpc/Kconfig                         |    5 ++
>   include/asm-powerpc/gpio.h                   |   56 ++++++++++++++++++++++++++
>   3 files changed, 113 insertions(+), 0 deletions(-)
>   create mode 100644 include/asm-powerpc/gpio.h
>
>  diff --git a/Documentation/powerpc/booting-without-of.txt b/Documentation/powerpc/booting-without-of.txt
>  index b506245..e9e0c2f 100644
>  --- a/Documentation/powerpc/booting-without-of.txt
>  +++ b/Documentation/powerpc/booting-without-of.txt
>  @@ -66,6 +66,10 @@ Table of Contents
>      3) OpenPIC Interrupt Controllers
>      4) ISA Interrupt Controllers
>
>  +  VIII - Specifying GPIO information for devices
>  +    1) gpios property
>  +    2) gpio-controller nodes
>  +
>    Appendix A - Sample SOC node for MPC8540
>
>
>  @@ -2925,6 +2929,54 @@ encodings listed below:
>         2 =  high to low edge sensitive type enabled
>         3 =  low to high edge sensitive type enabled
>
>  +VIII - Specifying GPIO information for devices
>  +==============================================
>  +
>  +1) gpios property
>  +-----------------
>  +
>  +Nodes that makes use of GPIOs should define them using `gpios' property,
>  +format of which is: <&gpio-controller1-phandle gpio1-specifier
>  +                    &gpio-controller2-phandle gpio2-specifier
>  +                    0 /* holes are permitted, means no GPIO 3 */
>  +                    &gpio-controller4-phandle gpio4-specifier
>  +                    ...>;
>  +
>  +Note that gpio-specifier length is controller dependent.
>  +
>  +gpio-specifier may encode: bank, pin position inside the bank,
>  +whether pin is open-drain and whether pin is logically inverted.
>  +
>  +Example of the node using GPIOs:
>  +
>  +       node {
>  +               gpios = <&qe_pio_e 18 0>;
>  +       };
>  +
>  +In this example gpio-specifier is "18 0" and encodes GPIO pin number,
>  +and empty GPIO flags as accepted by the "qe_pio_e" gpio-controller.
>  +
>  +2) gpio-controller nodes
>  +------------------------
>  +
>  +Every GPIO controller node must have #gpio-cells property defined,
>  +this information will be used to translate gpio-specifiers.
>  +
>  +Example of two SOC GPIO banks defined as gpio-controller nodes:
>  +
>  +       qe_pio_a: gpio-controller@1400 {
>  +               #gpio-cells = <2>;
>  +               compatible = "fsl,qe-pario-bank-a", "fsl,qe-pario-bank";
>  +               reg = <0x1400 0x18>;
>  +               gpio-controller;
>  +       };
>  +
>  +       qe_pio_e: gpio-controller@1460 {
>  +               #gpio-cells = <2>;
>  +               compatible = "fsl,qe-pario-bank-e", "fsl,qe-pario-bank";
>  +               reg = <0x1460 0x18>;
>  +               gpio-controller;
>  +       };
>
>   Appendix A - Sample SOC node for MPC8540
>   ========================================
>  diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
>  index 0b27cbd..f328509 100644
>  --- a/arch/powerpc/Kconfig
>  +++ b/arch/powerpc/Kconfig
>  @@ -81,6 +81,11 @@ config GENERIC_FIND_NEXT_BIT
>         bool
>         default y
>
>  +config GENERIC_GPIO
>  +       bool
>  +       help
>  +         Generic GPIO API support
>  +
>   config ARCH_NO_VIRT_TO_BUS
>         def_bool PPC64
>
>  diff --git a/include/asm-powerpc/gpio.h b/include/asm-powerpc/gpio.h
>  new file mode 100644
>  index 0000000..77ad3a8
>  --- /dev/null
>  +++ b/include/asm-powerpc/gpio.h
>  @@ -0,0 +1,56 @@
>  +/*
>  + * Generic GPIO API implementation for PowerPC.
>  + *
>  + * Copyright (c) 2007-2008  MontaVista Software, Inc.
>  + *
>  + * Author: Anton Vorontsov <avorontsov@ru.mvista.com>
>  + *
>  + * This program is free software; you can redistribute it and/or modify
>  + * it under the terms of the GNU General Public License as published by
>  + * the Free Software Foundation; either version 2 of the License, or
>  + * (at your option) any later version.
>  + */
>  +
>  +#ifndef __ASM_POWERPC_GPIO_H
>  +#define __ASM_POWERPC_GPIO_H
>  +
>  +#include <linux/errno.h>
>  +#include <asm-generic/gpio.h>
>  +
>  +#ifdef CONFIG_HAVE_GPIO_LIB
>  +
>  +/*
>  + * We don't (yet) implement inlined/rapid versions for on-chip gpios.
>  + * Just call gpiolib.
>  + */
>  +static inline int gpio_get_value(unsigned int gpio)
>  +{
>  +       return __gpio_get_value(gpio);
>  +}
>  +
>  +static inline void gpio_set_value(unsigned int gpio, int value)
>  +{
>  +       __gpio_set_value(gpio, value);
>  +}
>  +
>  +static inline int gpio_cansleep(unsigned int gpio)
>  +{
>  +       return __gpio_cansleep(gpio);
>  +}
>  +
>  +/*
>  + * Not implemented, yet.
>  + */
>  +static inline int gpio_to_irq(unsigned int gpio)
>  +{
>  +       return -ENOSYS;
>  +}
>  +
>  +static inline int irq_to_gpio(unsigned int irq)
>  +{
>  +       return -EINVAL;
>  +}
>  +
>  +#endif /* CONFIG_HAVE_GPIO_LIB */
>  +
>  +#endif /* __ASM_POWERPC_GPIO_H */
>  --
>  1.5.4.5
>  _______________________________________________
>  Linuxppc-dev mailing list
>  Linuxppc-dev@ozlabs.org
>  https://ozlabs.org/mailman/listinfo/linuxppc-dev
>



-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.

  reply	other threads:[~2008-04-11 14:16 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-11 13:05 [PATCH 0/2] Notorious OF GPIO API support Anton Vorontsov
2008-04-11 13:06 ` [PATCH 2/2] [POWERPC] Implement support for the GPIO LIB API Anton Vorontsov
2008-04-11 14:16   ` Grant Likely [this message]
2008-04-11 13:06 ` [PATCH 1/2] OF helpers for the GPIO API Anton Vorontsov
2008-04-11 14:28   ` Grant Likely

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=fa686aa40804110716g5e8918br5c7ecd729f40f9ea@mail.gmail.com \
    --to=grant.likely@secretlab.ca \
    --cc=avorontsov@ru.mvista.com \
    --cc=davem@davemloft.net \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=paulus@samba.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).