* [PATCH 0/4] add gpio primcell pl061 support @ 2012-10-05 11:04 Jean-Christophe PLAGNIOL-VILLARD 2012-10-05 11:18 ` [PATCH 1/4] gpiolib: select GENERIC_GPIO Jean-Christophe PLAGNIOL-VILLARD 0 siblings, 1 reply; 8+ messages in thread From: Jean-Christophe PLAGNIOL-VILLARD @ 2012-10-05 11:04 UTC (permalink / raw) To: barebox Hi, The following changes since commit 6bb06524d665b4fbcefddb6b914273466fe801dd: ARM pbl: actually create cached mappings in the decompressor (2012-10-04 18:30:58 +0200) are available in the git repository at: git://git.jcrosoft.org/barebox.git tags/gpio_arm for you to fetch changes up to 953ebaa113eda17d737d62673d53f593b4b076f3: versatilepb: add gpio support (2012-10-05 12:56:34 +0800) ---------------------------------------------------------------- add gpio primcell pl061 support update gpiolib to select GENERIC_GPIO and provice a generic header use is on versatilepb Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> ---------------------------------------------------------------- Jean-Christophe PLAGNIOL-VILLARD (4): gpiolib: select GENERIC_GPIO gpio: provide generic gpio header gpio: add ARM Primcell pl061 support versatilepb: add gpio support arch/arm/Kconfig | 1 + arch/arm/configs/versatilepb_defconfig | 2 + arch/arm/mach-versatile/core.c | 10 +++++ arch/arm/mach-versatile/include/mach/gpio.h | 1 + drivers/gpio/Kconfig | 7 ++++ drivers/gpio/Makefile | 2 + drivers/gpio/gpio-pl061.c | 168 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ include/asm-generic/gpio.h | 10 +++++ include/linux/amba/pl061.h | 16 ++++++++ 9 files changed, 217 insertions(+) create mode 100644 arch/arm/mach-versatile/include/mach/gpio.h create mode 100644 drivers/gpio/gpio-pl061.c create mode 100644 include/asm-generic/gpio.h create mode 100644 include/linux/amba/pl061.h Best Regards, J. _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/4] gpiolib: select GENERIC_GPIO 2012-10-05 11:04 [PATCH 0/4] add gpio primcell pl061 support Jean-Christophe PLAGNIOL-VILLARD @ 2012-10-05 11:18 ` Jean-Christophe PLAGNIOL-VILLARD 2012-10-05 11:18 ` [PATCH 2/4] gpio: provide generic gpio header Jean-Christophe PLAGNIOL-VILLARD ` (2 more replies) 0 siblings, 3 replies; 8+ messages in thread From: Jean-Christophe PLAGNIOL-VILLARD @ 2012-10-05 11:18 UTC (permalink / raw) To: barebox Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> --- drivers/gpio/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig index 022a309..f03fbf6 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -1,5 +1,6 @@ config GPIOLIB bool + select GENERIC_GPIO if GPIOLIB -- 1.7.10.4 _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 2/4] gpio: provide generic gpio header 2012-10-05 11:18 ` [PATCH 1/4] gpiolib: select GENERIC_GPIO Jean-Christophe PLAGNIOL-VILLARD @ 2012-10-05 11:18 ` Jean-Christophe PLAGNIOL-VILLARD 2012-10-05 12:21 ` Sascha Hauer 2012-10-05 11:18 ` [PATCH 3/4] gpio: add ARM Primcell pl061 support Jean-Christophe PLAGNIOL-VILLARD 2012-10-05 11:18 ` [PATCH 4/4] versatilepb: add gpio support Jean-Christophe PLAGNIOL-VILLARD 2 siblings, 1 reply; 8+ messages in thread From: Jean-Christophe PLAGNIOL-VILLARD @ 2012-10-05 11:18 UTC (permalink / raw) To: barebox Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> --- include/asm-generic/gpio.h | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 include/asm-generic/gpio.h diff --git a/include/asm-generic/gpio.h b/include/asm-generic/gpio.h new file mode 100644 index 0000000..1997888 --- /dev/null +++ b/include/asm-generic/gpio.h @@ -0,0 +1,10 @@ +#ifndef __ASM_GENERIC_GPIO_H +#define __ASM_GENERIC_GPIO_H + +void gpio_set_value(unsigned gpio, int value); +int gpio_get_value(unsigned gpio); +int gpio_direction_output(unsigned gpio, int value); +int gpio_direction_input(unsigned gpio); + +#endif /* __ASM_GENERIC_GPIO_H */ + -- 1.7.10.4 _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/4] gpio: provide generic gpio header 2012-10-05 11:18 ` [PATCH 2/4] gpio: provide generic gpio header Jean-Christophe PLAGNIOL-VILLARD @ 2012-10-05 12:21 ` Sascha Hauer 0 siblings, 0 replies; 8+ messages in thread From: Sascha Hauer @ 2012-10-05 12:21 UTC (permalink / raw) To: Jean-Christophe PLAGNIOL-VILLARD; +Cc: barebox On Fri, Oct 05, 2012 at 01:18:41PM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote: > Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> > --- > include/asm-generic/gpio.h | 10 ++++++++++ > 1 file changed, 10 insertions(+) > create mode 100644 include/asm-generic/gpio.h > > diff --git a/include/asm-generic/gpio.h b/include/asm-generic/gpio.h > new file mode 100644 > index 0000000..1997888 > --- /dev/null > +++ b/include/asm-generic/gpio.h > @@ -0,0 +1,10 @@ > +#ifndef __ASM_GENERIC_GPIO_H > +#define __ASM_GENERIC_GPIO_H > + > +void gpio_set_value(unsigned gpio, int value); > +int gpio_get_value(unsigned gpio); > +int gpio_direction_output(unsigned gpio, int value); > +int gpio_direction_input(unsigned gpio); > + > +#endif /* __ASM_GENERIC_GPIO_H */ > + No newline at end of file please. Since you are adding a generic file, which is good, could you also cleanup the potential users? ./arch/arm/mach-at91/include/mach/gpio.h ./arch/arm/mach-mxs/include/mach/gpio.h ./arch/arm/mach-imx/include/mach/gpio.h ./arch/arm/mach-pxa/include/plat/gpio.h ./arch/arm/mach-pxa/include/mach/gpio.h ./arch/arm/mach-samsung/include/mach/gpio.h ./arch/arm/mach-ep93xx/include/mach/gpio.h ./arch/arm/mach-omap/include/mach/gpio.h Sascha -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 3/4] gpio: add ARM Primcell pl061 support 2012-10-05 11:18 ` [PATCH 1/4] gpiolib: select GENERIC_GPIO Jean-Christophe PLAGNIOL-VILLARD 2012-10-05 11:18 ` [PATCH 2/4] gpio: provide generic gpio header Jean-Christophe PLAGNIOL-VILLARD @ 2012-10-05 11:18 ` Jean-Christophe PLAGNIOL-VILLARD 2012-10-05 12:29 ` Sascha Hauer 2012-10-05 11:18 ` [PATCH 4/4] versatilepb: add gpio support Jean-Christophe PLAGNIOL-VILLARD 2 siblings, 1 reply; 8+ messages in thread From: Jean-Christophe PLAGNIOL-VILLARD @ 2012-10-05 11:18 UTC (permalink / raw) To: barebox Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> --- arch/arm/Kconfig | 1 + drivers/gpio/Kconfig | 6 ++ drivers/gpio/Makefile | 2 + drivers/gpio/gpio-pl061.c | 168 ++++++++++++++++++++++++++++++++++++++++++++ include/linux/amba/pl061.h | 16 +++++ 5 files changed, 193 insertions(+) create mode 100644 drivers/gpio/gpio-pl061.c create mode 100644 include/linux/amba/pl061.h diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 8278c82..f599d5b 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -10,6 +10,7 @@ config ARM config ARM_AMBA bool + select GPIOLIB config ARM_LINUX bool diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig index f03fbf6..a0e9b58 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -6,6 +6,12 @@ if GPIOLIB menu "GPIO " +config GPIO_PL061 + bool "PrimeCell PL061 GPIO support" + depends on ARM_AMBA + help + Say yes here to support the PrimeCell PL061 GPIO device + config GPIO_STMPE depends on I2C_STMPE bool "STMPE GPIO Expander" diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile index 945122b..e2e97d3 100644 --- a/drivers/gpio/Makefile +++ b/drivers/gpio/Makefile @@ -1,2 +1,4 @@ obj-$(CONFIG_GPIOLIB) += gpio.o + +obj-$(CONFIG_GPIO_PL061) += gpio-pl061.o obj-$(CONFIG_GPIO_STMPE) += gpio-stmpe.o diff --git a/drivers/gpio/gpio-pl061.c b/drivers/gpio/gpio-pl061.c new file mode 100644 index 0000000..ff4c883 --- /dev/null +++ b/drivers/gpio/gpio-pl061.c @@ -0,0 +1,168 @@ +/* + * Copyright (C) 2008, 2009 Provigent Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * Driver for the ARM PrimeCell(tm) General Purpose Input/Output (PL061) + * + * Data sheet: ARM DDI 0190B, September 2000 + */ +#include <common.h> +#include <malloc.h> +#include <errno.h> +#include <io.h> +#include <gpio.h> +#include <init.h> + +#include <linux/amba/bus.h> +#include <linux/amba/pl061.h> + +#define GPIODIR 0x400 +#define GPIOIS 0x404 +#define GPIOIBE 0x408 +#define GPIOIEV 0x40C +#define GPIOIE 0x410 +#define GPIORIS 0x414 +#define GPIOMIS 0x418 +#define GPIOIC 0x41C + +#define PL061_GPIO_NR 8 + +struct pl061_gpio { + void __iomem *base; + struct gpio_chip gc; +}; + +static int pl061_direction_input(struct gpio_chip *gc, unsigned offset) +{ + struct pl061_gpio *chip = container_of(gc, struct pl061_gpio, gc); + unsigned char gpiodir; + + if (offset >= gc->ngpio) + return -EINVAL; + + gpiodir = readb(chip->base + GPIODIR); + gpiodir &= ~(1 << offset); + writeb(gpiodir, chip->base + GPIODIR); + + return 0; +} + +static int pl061_direction_output(struct gpio_chip *gc, unsigned offset, + int value) +{ + struct pl061_gpio *chip = container_of(gc, struct pl061_gpio, gc); + unsigned char gpiodir; + + if (offset >= gc->ngpio) + return -EINVAL; + + writeb(!!value << offset, chip->base + (1 << (offset + 2))); + gpiodir = readb(chip->base + GPIODIR); + gpiodir |= 1 << offset; + writeb(gpiodir, chip->base + GPIODIR); + + /* + * gpio value is set again, because pl061 doesn't allow to set value of + * a gpio pin before configuring it in OUT mode. + */ + writeb(!!value << offset, chip->base + (1 << (offset + 2))); + + return 0; +} + +static int pl061_get_value(struct gpio_chip *gc, unsigned offset) +{ + struct pl061_gpio *chip = container_of(gc, struct pl061_gpio, gc); + + return !!readb(chip->base + (1 << (offset + 2))); +} + +static void pl061_set_value(struct gpio_chip *gc, unsigned offset, int value) +{ + struct pl061_gpio *chip = container_of(gc, struct pl061_gpio, gc); + + writeb(!!value << offset, chip->base + (1 << (offset + 2))); +} + +static struct gpio_ops pl061_gpio_ops = { + .direction_input = pl061_direction_input, + .direction_output = pl061_direction_output, + .get = pl061_get_value, + .set = pl061_set_value, +}; + +static int pl061_probe(struct amba_device *dev, const struct amba_id *id) +{ + struct pl061_platform_data *pdata; + struct pl061_gpio *chip; + int ret, i; + + chip = xzalloc(sizeof(*chip)); + + pdata = dev->dev.platform_data; + if (pdata) { + chip->gc.base = pdata->gpio_base; + } else { + chip->gc.base = -1; + } + + chip->base = amba_get_mem_region(dev); + + chip->gc.ops = &pl061_gpio_ops; + chip->gc.ngpio = PL061_GPIO_NR; + chip->gc.dev = &dev->dev; + + ret = gpiochip_add(&chip->gc); + if (ret) { + dev_err(&dev->dev, "couldn't add gpiochip\n"); + goto free_mem; + } + + writeb(0, chip->base + GPIOIE); /* disable irqs */ + + for (i = 0; i < PL061_GPIO_NR; i++) { + if (pdata) { + if (pdata->directions & (1 << i)) + pl061_direction_output(&chip->gc, i, + pdata->values & (1 << i)); + else + pl061_direction_input(&chip->gc, i); + } + } + + return 0; + +free_mem: + kfree(chip); + + return ret; +} + +static struct amba_id pl061_ids[] = { + { + .id = 0x00041061, + .mask = 0x000fffff, + }, + { 0, 0 }, +}; + +static struct amba_driver pl061_gpio_driver = { + .drv = { + .name = "pl061_gpio", + }, + .id_table = pl061_ids, + .probe = pl061_probe, +}; + +static int __init pl061_gpio_init(void) +{ + return amba_driver_register(&pl061_gpio_driver); +} +coredevice_initcall(pl061_gpio_init); + +MODULE_AUTHOR("Baruch Siach <baruch@tkos.co.il>"); +MODULE_DESCRIPTION("PL061 GPIO driver"); +MODULE_LICENSE("GPL"); diff --git a/include/linux/amba/pl061.h b/include/linux/amba/pl061.h new file mode 100644 index 0000000..fb83c04 --- /dev/null +++ b/include/linux/amba/pl061.h @@ -0,0 +1,16 @@ +#include <linux/types.h> + +/* platform data for the PL061 GPIO driver */ + +struct pl061_platform_data { + /* number of the first GPIO */ + unsigned gpio_base; + + /* number of the first IRQ. + * If the IRQ functionality in not desired this must be set to 0. + */ + unsigned irq_base; + + u8 directions; /* startup directions, 1: out, 0: in */ + u8 values; /* startup values */ +}; -- 1.7.10.4 _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 3/4] gpio: add ARM Primcell pl061 support 2012-10-05 11:18 ` [PATCH 3/4] gpio: add ARM Primcell pl061 support Jean-Christophe PLAGNIOL-VILLARD @ 2012-10-05 12:29 ` Sascha Hauer 0 siblings, 0 replies; 8+ messages in thread From: Sascha Hauer @ 2012-10-05 12:29 UTC (permalink / raw) To: Jean-Christophe PLAGNIOL-VILLARD; +Cc: barebox On Fri, Oct 05, 2012 at 01:18:42PM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote: > + > + ret = gpiochip_add(&chip->gc); > + if (ret) { > + dev_err(&dev->dev, "couldn't add gpiochip\n"); Print error value? > + goto free_mem; > + } > + > + writeb(0, chip->base + GPIOIE); /* disable irqs */ > + > + for (i = 0; i < PL061_GPIO_NR; i++) { > + if (pdata) { > + if (pdata->directions & (1 << i)) > + pl061_direction_output(&chip->gc, i, > + pdata->values & (1 << i)); > + else > + pl061_direction_input(&chip->gc, i); I don't think a gpio driver should alter the directions without being asked. Just leave the directions untouched without platform_data. > + > +MODULE_AUTHOR("Baruch Siach <baruch@tkos.co.il>"); > +MODULE_DESCRIPTION("PL061 GPIO driver"); > +MODULE_LICENSE("GPL"); > diff --git a/include/linux/amba/pl061.h b/include/linux/amba/pl061.h > new file mode 100644 > index 0000000..fb83c04 > --- /dev/null > +++ b/include/linux/amba/pl061.h > @@ -0,0 +1,16 @@ > +#include <linux/types.h> > + > +/* platform data for the PL061 GPIO driver */ > + > +struct pl061_platform_data { > + /* number of the first GPIO */ > + unsigned gpio_base; > + > + /* number of the first IRQ. > + * If the IRQ functionality in not desired this must be set to 0. > + */ > + unsigned irq_base; > + > + u8 directions; /* startup directions, 1: out, 0: in */ > + u8 values; /* startup values */ > +}; include file protection? Sascha -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 4/4] versatilepb: add gpio support 2012-10-05 11:18 ` [PATCH 1/4] gpiolib: select GENERIC_GPIO Jean-Christophe PLAGNIOL-VILLARD 2012-10-05 11:18 ` [PATCH 2/4] gpio: provide generic gpio header Jean-Christophe PLAGNIOL-VILLARD 2012-10-05 11:18 ` [PATCH 3/4] gpio: add ARM Primcell pl061 support Jean-Christophe PLAGNIOL-VILLARD @ 2012-10-05 11:18 ` Jean-Christophe PLAGNIOL-VILLARD 2 siblings, 0 replies; 8+ messages in thread From: Jean-Christophe PLAGNIOL-VILLARD @ 2012-10-05 11:18 UTC (permalink / raw) To: barebox Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> --- arch/arm/configs/versatilepb_defconfig | 2 ++ arch/arm/mach-versatile/core.c | 10 ++++++++++ arch/arm/mach-versatile/include/mach/gpio.h | 1 + 3 files changed, 13 insertions(+) create mode 100644 arch/arm/mach-versatile/include/mach/gpio.h diff --git a/arch/arm/configs/versatilepb_defconfig b/arch/arm/configs/versatilepb_defconfig index 87aec4d..4c71c3c 100644 --- a/arch/arm/configs/versatilepb_defconfig +++ b/arch/arm/configs/versatilepb_defconfig @@ -32,6 +32,7 @@ CONFIG_CMD_RESET=y CONFIG_CMD_GO=y CONFIG_CMD_TIMEOUT=y CONFIG_CMD_PARTITION=y +CONFIG_CMD_GPIO=y CONFIG_CMD_UNCOMPRESS=y CONFIG_NET=y CONFIG_NET_DHCP=y @@ -43,6 +44,7 @@ CONFIG_NET_NETCONSOLE=y CONFIG_NET_RESOLV=y CONFIG_SERIAL_AMBA_PL011=y CONFIG_DRIVER_NET_SMC91111=y +CONFIG_GPIO_PL061=y CONFIG_FS_CRAMFS=y CONFIG_SHA1=y CONFIG_SHA256=y diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c index 5c75e11..6e913df 100644 --- a/arch/arm/mach-versatile/core.c +++ b/arch/arm/mach-versatile/core.c @@ -196,3 +196,13 @@ void __noreturn reset_cpu (unsigned long ignored) while(1); } EXPORT_SYMBOL(reset_cpu); + +static int versatile_init(void) +{ + amba_apb_device_add(NULL, "pl061_gpio", 0, 0x101e4000, 4096, NULL, 0); + amba_apb_device_add(NULL, "pl061_gpio", 1, 0x101e5000, 4096, NULL, 0); + amba_apb_device_add(NULL, "pl061_gpio", 2, 0x101e6000, 4096, NULL, 0); + amba_apb_device_add(NULL, "pl061_gpio", 3, 0x101e7000, 4096, NULL, 0); + return 0; +} +coredevice_initcall(versatile_init); diff --git a/arch/arm/mach-versatile/include/mach/gpio.h b/arch/arm/mach-versatile/include/mach/gpio.h new file mode 100644 index 0000000..306ab4c --- /dev/null +++ b/arch/arm/mach-versatile/include/mach/gpio.h @@ -0,0 +1 @@ +#include <asm-generic/gpio.h> -- 1.7.10.4 _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 0/4 v2] add gpio primcell pl061 support @ 2012-10-05 13:20 Jean-Christophe PLAGNIOL-VILLARD 2012-10-05 13:25 ` [PATCH 1/4] gpiolib: select GENERIC_GPIO Jean-Christophe PLAGNIOL-VILLARD 0 siblings, 1 reply; 8+ messages in thread From: Jean-Christophe PLAGNIOL-VILLARD @ 2012-10-05 13:20 UTC (permalink / raw) To: barebox Hi, The following changes since commit 6bb06524d665b4fbcefddb6b914273466fe801dd: ARM pbl: actually create cached mappings in the decompressor (2012-10-04 18:30:58 +0200) are available in the git repository at: git://git.jcrosoft.org/barebox.git tags/gpio_arm for you to fetch changes up to 74968e99803d7d974c7423052e40443848e8be99: versatilepb: add gpio support (2012-10-05 15:08:05 +0800) ---------------------------------------------------------------- add gpio primcell pl061 support update gpiolib to select GENERIC_GPIO and provice a generic header use is on versatilepb Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> ---------------------------------------------------------------- Jean-Christophe PLAGNIOL-VILLARD (4): gpiolib: select GENERIC_GPIO gpio: provide generic gpio header gpio: add ARM Primcell pl061 support versatilepb: add gpio support arch/arm/Kconfig | 1 + arch/arm/configs/versatilepb_defconfig | 2 + arch/arm/mach-ep93xx/include/mach/gpio.h | 27 +------------- arch/arm/mach-imx/include/mach/gpio.h | 7 +--- arch/arm/mach-mxs/include/mach/gpio.h | 6 +-- arch/arm/mach-omap/include/mach/gpio.h | 43 +--------------------- arch/arm/mach-samsung/include/mach/gpio.h | 6 +-- arch/arm/mach-versatile/core.c | 10 +++++ arch/arm/mach-versatile/include/mach/gpio.h | 1 + drivers/gpio/Kconfig | 7 ++++ drivers/gpio/Makefile | 2 + drivers/gpio/gpio-pl061.c | 158 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ include/asm-generic/gpio.h | 10 +++++ include/linux/amba/pl061.h | 12 ++++++ 14 files changed, 211 insertions(+), 81 deletions(-) create mode 100644 arch/arm/mach-versatile/include/mach/gpio.h create mode 100644 drivers/gpio/gpio-pl061.c create mode 100644 include/asm-generic/gpio.h create mode 100644 include/linux/amba/pl061.h Best Regards, J. _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/4] gpiolib: select GENERIC_GPIO 2012-10-05 13:20 [PATCH 0/4 v2] add gpio primcell pl061 support Jean-Christophe PLAGNIOL-VILLARD @ 2012-10-05 13:25 ` Jean-Christophe PLAGNIOL-VILLARD 2012-10-05 13:25 ` [PATCH 4/4] versatilepb: add gpio support Jean-Christophe PLAGNIOL-VILLARD 0 siblings, 1 reply; 8+ messages in thread From: Jean-Christophe PLAGNIOL-VILLARD @ 2012-10-05 13:25 UTC (permalink / raw) To: barebox Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> --- drivers/gpio/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig index 022a309..f03fbf6 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -1,5 +1,6 @@ config GPIOLIB bool + select GENERIC_GPIO if GPIOLIB -- 1.7.10.4 _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 4/4] versatilepb: add gpio support 2012-10-05 13:25 ` [PATCH 1/4] gpiolib: select GENERIC_GPIO Jean-Christophe PLAGNIOL-VILLARD @ 2012-10-05 13:25 ` Jean-Christophe PLAGNIOL-VILLARD 0 siblings, 0 replies; 8+ messages in thread From: Jean-Christophe PLAGNIOL-VILLARD @ 2012-10-05 13:25 UTC (permalink / raw) To: barebox Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> --- arch/arm/Kconfig | 1 + arch/arm/configs/versatilepb_defconfig | 2 ++ arch/arm/mach-versatile/core.c | 10 ++++++++++ arch/arm/mach-versatile/include/mach/gpio.h | 1 + 4 files changed, 14 insertions(+) create mode 100644 arch/arm/mach-versatile/include/mach/gpio.h diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 8278c82..a771274 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -89,6 +89,7 @@ config ARCH_S3C64xx config ARCH_VERSATILE bool "ARM Versatile boards (ARM926EJ-S)" select CPU_ARM926T + select GPIOLIB config ARCH_TEGRA bool "Nvidia Tegra-based boards" diff --git a/arch/arm/configs/versatilepb_defconfig b/arch/arm/configs/versatilepb_defconfig index 87aec4d..4c71c3c 100644 --- a/arch/arm/configs/versatilepb_defconfig +++ b/arch/arm/configs/versatilepb_defconfig @@ -32,6 +32,7 @@ CONFIG_CMD_RESET=y CONFIG_CMD_GO=y CONFIG_CMD_TIMEOUT=y CONFIG_CMD_PARTITION=y +CONFIG_CMD_GPIO=y CONFIG_CMD_UNCOMPRESS=y CONFIG_NET=y CONFIG_NET_DHCP=y @@ -43,6 +44,7 @@ CONFIG_NET_NETCONSOLE=y CONFIG_NET_RESOLV=y CONFIG_SERIAL_AMBA_PL011=y CONFIG_DRIVER_NET_SMC91111=y +CONFIG_GPIO_PL061=y CONFIG_FS_CRAMFS=y CONFIG_SHA1=y CONFIG_SHA256=y diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c index 5c75e11..6e913df 100644 --- a/arch/arm/mach-versatile/core.c +++ b/arch/arm/mach-versatile/core.c @@ -196,3 +196,13 @@ void __noreturn reset_cpu (unsigned long ignored) while(1); } EXPORT_SYMBOL(reset_cpu); + +static int versatile_init(void) +{ + amba_apb_device_add(NULL, "pl061_gpio", 0, 0x101e4000, 4096, NULL, 0); + amba_apb_device_add(NULL, "pl061_gpio", 1, 0x101e5000, 4096, NULL, 0); + amba_apb_device_add(NULL, "pl061_gpio", 2, 0x101e6000, 4096, NULL, 0); + amba_apb_device_add(NULL, "pl061_gpio", 3, 0x101e7000, 4096, NULL, 0); + return 0; +} +coredevice_initcall(versatile_init); diff --git a/arch/arm/mach-versatile/include/mach/gpio.h b/arch/arm/mach-versatile/include/mach/gpio.h new file mode 100644 index 0000000..306ab4c --- /dev/null +++ b/arch/arm/mach-versatile/include/mach/gpio.h @@ -0,0 +1 @@ +#include <asm-generic/gpio.h> -- 1.7.10.4 _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2012-10-05 13:28 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2012-10-05 11:04 [PATCH 0/4] add gpio primcell pl061 support Jean-Christophe PLAGNIOL-VILLARD 2012-10-05 11:18 ` [PATCH 1/4] gpiolib: select GENERIC_GPIO Jean-Christophe PLAGNIOL-VILLARD 2012-10-05 11:18 ` [PATCH 2/4] gpio: provide generic gpio header Jean-Christophe PLAGNIOL-VILLARD 2012-10-05 12:21 ` Sascha Hauer 2012-10-05 11:18 ` [PATCH 3/4] gpio: add ARM Primcell pl061 support Jean-Christophe PLAGNIOL-VILLARD 2012-10-05 12:29 ` Sascha Hauer 2012-10-05 11:18 ` [PATCH 4/4] versatilepb: add gpio support Jean-Christophe PLAGNIOL-VILLARD 2012-10-05 13:20 [PATCH 0/4 v2] add gpio primcell pl061 support Jean-Christophe PLAGNIOL-VILLARD 2012-10-05 13:25 ` [PATCH 1/4] gpiolib: select GENERIC_GPIO Jean-Christophe PLAGNIOL-VILLARD 2012-10-05 13:25 ` [PATCH 4/4] versatilepb: add gpio support Jean-Christophe PLAGNIOL-VILLARD
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox