lkml.org 
[lkml]   [2009]   [Jun]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 10/13] generic GPIO support for the Freescale Coldfire 5307.
    Date
    Add support for the 5307.

    Signed-off-by: Steven King <sfking@fdwdc.com>
    ---
    arch/m68k/include/asm/m5307sim.h | 11 ++++++-
    arch/m68knommu/platform/5307/Makefile | 2 +-
    arch/m68knommu/platform/5307/gpio.c | 49 +++++++++++++++++++++++++++++++++
    3 files changed, 59 insertions(+), 3 deletions(-)
    create mode 100644 arch/m68knommu/platform/5307/gpio.c

    diff --git a/arch/m68k/include/asm/m5307sim.h b/arch/m68k/include/asm/m5307sim.h
    index 5886728..6a1870c 100644
    --- a/arch/m68k/include/asm/m5307sim.h
    +++ b/arch/m68k/include/asm/m5307sim.h
    @@ -90,8 +90,15 @@
    #define MCFSIM_DACR1 0x110 /* DRAM 1 Addr and Ctrl (r/w) */
    #define MCFSIM_DMR1 0x114 /* DRAM 1 Mask reg (r/w) */

    -#define MCFSIM_PADDR 0x244 /* Parallel Direction (r/w) */
    -#define MCFSIM_PADAT 0x248 /* Parallel Data (r/w) */
    +#define MCFSIM_PADDR (MCF_MBAR + 0x244)
    +#define MCFSIM_PADAT (MCF_MBAR + 0x248)
    +
    +/*
    + * Generic GPIO support
    + */
    +#define MCFGPIO_PIN_MAX 16
    +#define MCFGPIO_IRQ_MAX -1
    +#define MCFGPIO_IRQ_VECBASE -1


    /* Definition offset address for CS2-7 -- old mask 5307 */
    diff --git a/arch/m68knommu/platform/5307/Makefile b/arch/m68knommu/platform/5307/Makefile
    index cfd5868..667db65 100644
    --- a/arch/m68knommu/platform/5307/Makefile
    +++ b/arch/m68knommu/platform/5307/Makefile
    @@ -14,5 +14,5 @@

    asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1

    -obj-y += config.o
    +obj-y += config.o gpio.o

    diff --git a/arch/m68knommu/platform/5307/gpio.c b/arch/m68knommu/platform/5307/gpio.c
    new file mode 100644
    index 0000000..7511068
    --- /dev/null
    +++ b/arch/m68knommu/platform/5307/gpio.c
    @@ -0,0 +1,49 @@
    +/*
    + * Coldfire generic GPIO support
    + *
    + * (C) Copyright 2009, Steven King <sfking@fdwdc.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; version 2 of the License.
    + *
    + * 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.
    +*/
    +
    +#include <linux/kernel.h>
    +#include <linux/init.h>
    +
    +#include <asm/coldfire.h>
    +#include <asm/mcfsim.h>
    +#include <asm/mcfgpio.h>
    +
    +static struct mcf_gpio_chip mcf_gpio_chips[] = {
    + {
    + .gpio_chip = {
    + .label = "PP",
    + .request = mcf_gpio_request,
    + .free = mcf_gpio_free,
    + .direction_input = mcf_gpio_direction_input,
    + .direction_output = mcf_gpio_direction_output,
    + .get = mcf_gpio_get_value,
    + .set = mcf_gpio_set_value,
    + .ngpio = 16,
    + },
    + .pddr = MCFSIM_PADDR,
    + .podr = MCFSIM_PADAT,
    + .ppdr = MCFSIM_PADAT,
    + },
    +};
    +
    +static int __init mcf_gpio_init(void)
    +{
    + unsigned i = 0;
    + while (i < ARRAY_SIZE(mcf_gpio_chips))
    + (void)gpiochip_add((struct gpio_chip *)&mcf_gpio_chips[i++]);
    + return 0;
    +}
    +
    +core_initcall(mcf_gpio_init);
    --
    1.5.6.5


    \
     
     \ /
      Last update: 2009-06-20 03:23    [W:0.024 / U:0.088 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site