linux/arch/m68knommu/platform/5407/gpio.c
<<
>>
Prefs
   1/*
   2 * Coldfire generic GPIO support
   3 *
   4 * (C) Copyright 2009, Steven King <sfking@fdwdc.com>
   5 *
   6 * This program is free software; you can redistribute it and/or modify
   7 * it under the terms of the GNU General Public License as published by
   8 * the Free Software Foundation; version 2 of the License.
   9 *
  10 * This program is distributed in the hope that it will be useful,
  11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13 * GNU General Public License for more details.
  14*/
  15
  16#include <linux/kernel.h>
  17#include <linux/init.h>
  18
  19#include <asm/coldfire.h>
  20#include <asm/mcfsim.h>
  21#include <asm/mcfgpio.h>
  22
  23static struct mcf_gpio_chip mcf_gpio_chips[] = {
  24        {
  25                .gpio_chip                      = {
  26                        .label                  = "PP",
  27                        .request                = mcf_gpio_request,
  28                        .free                   = mcf_gpio_free,
  29                        .direction_input        = mcf_gpio_direction_input,
  30                        .direction_output       = mcf_gpio_direction_output,
  31                        .get                    = mcf_gpio_get_value,
  32                        .set                    = mcf_gpio_set_value,
  33                        .ngpio                  = 16,
  34                },
  35                .pddr                           = MCFSIM_PADDR,
  36                .podr                           = MCFSIM_PADAT,
  37                .ppdr                           = MCFSIM_PADAT,
  38        },
  39};
  40
  41static int __init mcf_gpio_init(void)
  42{
  43        unsigned i = 0;
  44        while (i < ARRAY_SIZE(mcf_gpio_chips))
  45                (void)gpiochip_add((struct gpio_chip *)&mcf_gpio_chips[i++]);
  46        return 0;
  47}
  48
  49core_initcall(mcf_gpio_init);
  50