public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
  • * [U-Boot] [PATCH v2 1/2] arm nomadik: add gpio support
           [not found] <0e975ff141a9923b58859fad00cf3df664f2fe04.1248427487.git.rubini@unipv.it>
           [not found] ` <0b10781c46b757737db8ff5e49c2b8b745c9f269.1248427487.git.rubini@unipv.it>
    @ 2009-07-28  9:41 ` Jean-Christophe PLAGNIOL-VILLARD
      2009-07-28 10:37 ` Heiko Schocher
      2 siblings, 0 replies; 11+ messages in thread
    From: Jean-Christophe PLAGNIOL-VILLARD @ 2009-07-28  9:41 UTC (permalink / raw)
      To: u-boot
    
    On 11:27 Fri 24 Jul     , Alessandro Rubini wrote:
    > From: Alessandro Rubini <rubini@unipv.it>
    > 
    > 
    > Signed-off-by: Alessandro Rubini <rubini@unipv.it>
    > Acked-by: Andrea Gallo <andrea.gallo@stericsson.com>
    > ---
    >  cpu/arm926ejs/nomadik/Makefile      |    2 +-
    >  cpu/arm926ejs/nomadik/gpio.c        |   99 +++++++++++++++++++++++++++++++++++
    >  include/asm-arm/arch-nomadik/gpio.h |   42 +++++++++++++++
    >  3 files changed, 142 insertions(+), 1 deletions(-)
    >  create mode 100644 cpu/arm926ejs/nomadik/gpio.c
    >  create mode 100644 include/asm-arm/arch-nomadik/gpio.h
    Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
    
    Best Regards,
    J.
    
    ^ permalink raw reply	[flat|nested] 11+ messages in thread
  • * [U-Boot] [PATCH v2 1/2] arm nomadik: add gpio support
           [not found] <0e975ff141a9923b58859fad00cf3df664f2fe04.1248427487.git.rubini@unipv.it>
           [not found] ` <0b10781c46b757737db8ff5e49c2b8b745c9f269.1248427487.git.rubini@unipv.it>
      2009-07-28  9:41 ` [U-Boot] [PATCH v2 1/2] arm nomadik: add gpio support Jean-Christophe PLAGNIOL-VILLARD
    @ 2009-07-28 10:37 ` Heiko Schocher
      2 siblings, 0 replies; 11+ messages in thread
    From: Heiko Schocher @ 2009-07-28 10:37 UTC (permalink / raw)
      To: u-boot
    
    Hello Alessandro,
    
    Alessandro Rubini wrote:
    > From: Alessandro Rubini <rubini@unipv.it>
    > 
    > 
    > Signed-off-by: Alessandro Rubini <rubini@unipv.it>
    > Acked-by: Andrea Gallo <andrea.gallo@stericsson.com>
    > ---
    >  cpu/arm926ejs/nomadik/Makefile      |    2 +-
    >  cpu/arm926ejs/nomadik/gpio.c        |   99 +++++++++++++++++++++++++++++++++++
    >  include/asm-arm/arch-nomadik/gpio.h |   42 +++++++++++++++
    >  3 files changed, 142 insertions(+), 1 deletions(-)
    >  create mode 100644 cpu/arm926ejs/nomadik/gpio.c
    >  create mode 100644 include/asm-arm/arch-nomadik/gpio.h
    
    applied to u-boot-i2c.git, thanks!
    
    bye
    Heiko
    -- 
    DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
    HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
    
    ^ permalink raw reply	[flat|nested] 11+ messages in thread
  • * [U-Boot] [PATCH v2 1/2] arm nomadik: add gpio support
    @ 2009-07-24  9:27 Alessandro Rubini
           [not found] ` <0e975ff141a9923b58859fad00cf3df664f2fe04.1248427487.git.rubini @unipv.it>
      0 siblings, 1 reply; 11+ messages in thread
    From: Alessandro Rubini @ 2009-07-24  9:27 UTC (permalink / raw)
      To: u-boot
    
    From: Alessandro Rubini <rubini@unipv.it>
    
    
    Signed-off-by: Alessandro Rubini <rubini@unipv.it>
    Acked-by: Andrea Gallo <andrea.gallo@stericsson.com>
    ---
     cpu/arm926ejs/nomadik/Makefile      |    2 +-
     cpu/arm926ejs/nomadik/gpio.c        |   99 +++++++++++++++++++++++++++++++++++
     include/asm-arm/arch-nomadik/gpio.h |   42 +++++++++++++++
     3 files changed, 142 insertions(+), 1 deletions(-)
     create mode 100644 cpu/arm926ejs/nomadik/gpio.c
     create mode 100644 include/asm-arm/arch-nomadik/gpio.h
    
    diff --git a/cpu/arm926ejs/nomadik/Makefile b/cpu/arm926ejs/nomadik/Makefile
    index e3bd2ee..0fc9f2a 100644
    --- a/cpu/arm926ejs/nomadik/Makefile
    +++ b/cpu/arm926ejs/nomadik/Makefile
    @@ -25,7 +25,7 @@ include $(TOPDIR)/config.mk
     
     LIB	= $(obj)lib$(SOC).a
     
    -COBJS	= timer.o
    +COBJS	= timer.o gpio.o
     SOBJS	= reset.o
     
     SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
    diff --git a/cpu/arm926ejs/nomadik/gpio.c b/cpu/arm926ejs/nomadik/gpio.c
    new file mode 100644
    index 0000000..62a375b
    --- /dev/null
    +++ b/cpu/arm926ejs/nomadik/gpio.c
    @@ -0,0 +1,99 @@
    +/*
    + * (C) Copyright 2009 Alessandro Rubini
    + *
    + * See file CREDITS for list of people who contributed to this
    + * project.
    + *
    + * 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.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program; if not, write to the Free Software
    + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
    + * MA 02111-1307 USA
    + */
    +
    +#include <common.h>
    +#include <asm/io.h>
    +#include <asm/arch/gpio.h>
    +
    +static unsigned long gpio_base[4] = {
    +	NOMADIK_GPIO0_BASE,
    +	NOMADIK_GPIO1_BASE,
    +	NOMADIK_GPIO2_BASE,
    +	NOMADIK_GPIO3_BASE
    +};
    +
    +enum gpio_registers {
    +	GPIO_DAT =	0x00,		/* data register */
    +	GPIO_DATS =	0x04,		/* data set */
    +	GPIO_DATC =	0x08,		/* data clear */
    +	GPIO_PDIS =	0x0c,		/* pull disable */
    +	GPIO_DIR =	0x10,		/* direction */
    +	GPIO_DIRS =	0x14,		/* direction set */
    +	GPIO_DIRC =	0x18,		/* direction clear */
    +	GPIO_AFSLA =	0x20,		/* alternate function select A */
    +	GPIO_AFSLB =	0x24,		/* alternate function select B */
    +};
    +
    +static inline unsigned long gpio_to_base(int gpio)
    +{
    +	return gpio_base[gpio / 32];
    +}
    +
    +static inline u32 gpio_to_bit(int gpio)
    +{
    +	return 1 << (gpio & 0x1f);
    +}
    +
    +void nmk_gpio_af(int gpio, int alternate_function)
    +{
    +	unsigned long base = gpio_to_base(gpio);
    +	u32 bit = gpio_to_bit(gpio);
    +	u32 afunc, bfunc;
    +
    +	/* alternate function is 0..3, with one bit per register */
    +	afunc = readl(base + GPIO_AFSLA) & ~bit;
    +	bfunc = readl(base + GPIO_AFSLB) & ~bit;
    +	if (alternate_function & 1) afunc |= bit;
    +	if (alternate_function & 2) bfunc |= bit;
    +	writel(afunc, base + GPIO_AFSLA);
    +	writel(bfunc, base + GPIO_AFSLB);
    +}
    +
    +void nmk_gpio_dir(int gpio, int dir)
    +{
    +	unsigned long base = gpio_to_base(gpio);
    +	u32 bit = gpio_to_bit(gpio);
    +
    +	if (dir)
    +		writel(bit, base + GPIO_DIRS);
    +	else
    +		writel(bit, base + GPIO_DIRC);
    +}
    +
    +void nmk_gpio_set(int gpio, int val)
    +{
    +	unsigned long base = gpio_to_base(gpio);
    +	u32 bit = gpio_to_bit(gpio);
    +
    +	if (val)
    +		writel(bit, base + GPIO_DATS);
    +	else
    +		writel(bit, base + GPIO_DATC);
    +}
    +
    +int nmk_gpio_get(int gpio)
    +{
    +	unsigned long base = gpio_to_base(gpio);
    +	u32 bit = gpio_to_bit(gpio);
    +
    +	return readl(base + GPIO_DAT) & bit;
    +}
    diff --git a/include/asm-arm/arch-nomadik/gpio.h b/include/asm-arm/arch-nomadik/gpio.h
    new file mode 100644
    index 0000000..1d3c9ce
    --- /dev/null
    +++ b/include/asm-arm/arch-nomadik/gpio.h
    @@ -0,0 +1,42 @@
    +/*
    + * (C) Copyright 2009 Alessandro Rubini
    + *
    + * See file CREDITS for list of people who contributed to this
    + * project.
    + *
    + * 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.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program; if not, write to the Free Software
    + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
    + * MA 02111-1307 USA
    + */
    +#ifndef __NMK_GPIO_H__
    +#define __NMK_GPIO_H__
    +
    +/*
    + * These functions are called from the soft-i2c driver, but
    + * are also used by board files to set output bits.
    + */
    +
    +enum nmk_af { /* alternate function settings */
    +	GPIO_GPIO = 0,
    +	GPIO_ALT_A,
    +	GPIO_ALT_B,
    +	GPIO_ALT_C
    +};
    +
    +extern void nmk_gpio_af(int gpio, int alternate_function);
    +extern void nmk_gpio_dir(int gpio, int dir);
    +extern void nmk_gpio_set(int gpio, int val);
    +extern int nmk_gpio_get(int gpio);
    +
    +#endif /* __NMK_GPIO_H__ */
    -- 
    1.6.0.2
    
    ^ permalink raw reply related	[flat|nested] 11+ messages in thread

    end of thread, other threads:[~2009-07-28 10:37 UTC | newest]
    
    Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
    -- links below jump to the message on this page --
         [not found] <0e975ff141a9923b58859fad00cf3df664f2fe04.1248427487.git.rubini@unipv.it>
         [not found] ` <0b10781c46b757737db8ff5e49c2b8b745c9f269.1248427487.git.rubini@unipv.it>
    2009-07-27  9:45   ` [U-Boot] [PATCH v2 2/2] arm nomadik: add i2c Heiko Schocher
    2009-07-27 20:04   ` Jean-Christophe PLAGNIOL-VILLARD
    2009-07-27 20:22     ` Wolfgang Denk
    2009-07-28  7:51     ` Heiko Schocher
    2009-07-28  9:24       ` Jean-Christophe PLAGNIOL-VILLARD
    2009-07-28  9:41       ` Jean-Christophe PLAGNIOL-VILLARD
    2009-07-28 10:26         ` Heiko Schocher
    2009-07-28 10:37   ` Heiko Schocher
    2009-07-28  9:41 ` [U-Boot] [PATCH v2 1/2] arm nomadik: add gpio support Jean-Christophe PLAGNIOL-VILLARD
    2009-07-28 10:37 ` Heiko Schocher
    2009-07-24  9:27 Alessandro Rubini
         [not found] ` <0e975ff141a9923b58859fad00cf3df664f2fe04.1248427487.git.rubini @unipv.it>
    2009-07-24  9:27   ` [U-Boot] [PATCH v2 2/2] arm nomadik: add i2c Alessandro Rubini
    

    This is a public inbox, see mirroring instructions
    for how to clone and mirror all data and code used for this inbox