linux/drivers/pcmcia/pxa2xx_palmtx.c
<<
>>
Prefs
   1/*
   2 * linux/drivers/pcmcia/pxa2xx_palmtx.c
   3 *
   4 * Driver for Palm T|X PCMCIA
   5 *
   6 * Copyright (C) 2007-2011 Marek Vasut <marek.vasut@gmail.com>
   7 *
   8 * This program is free software; you can redistribute it and/or modify
   9 * it under the terms of the GNU General Public License version 2 as
  10 * published by the Free Software Foundation.
  11 *
  12 */
  13
  14#include <linux/module.h>
  15#include <linux/platform_device.h>
  16#include <linux/gpio.h>
  17
  18#include <asm/mach-types.h>
  19#include <mach/palmtx.h>
  20#include "soc_common.h"
  21
  22static struct gpio palmtx_pcmcia_gpios[] = {
  23        { GPIO_NR_PALMTX_PCMCIA_POWER1, GPIOF_INIT_LOW, "PCMCIA Power 1" },
  24        { GPIO_NR_PALMTX_PCMCIA_POWER2, GPIOF_INIT_LOW, "PCMCIA Power 2" },
  25        { GPIO_NR_PALMTX_PCMCIA_RESET,  GPIOF_INIT_HIGH,"PCMCIA Reset" },
  26};
  27
  28static int palmtx_pcmcia_hw_init(struct soc_pcmcia_socket *skt)
  29{
  30        int ret;
  31
  32        ret = gpio_request_array(palmtx_pcmcia_gpios,
  33                                ARRAY_SIZE(palmtx_pcmcia_gpios));
  34
  35        skt->stat[SOC_STAT_RDY].gpio = GPIO_NR_PALMTX_PCMCIA_READY;
  36        skt->stat[SOC_STAT_RDY].name = "PCMCIA Ready";
  37
  38        return ret;
  39}
  40
  41static void palmtx_pcmcia_hw_shutdown(struct soc_pcmcia_socket *skt)
  42{
  43        gpio_free_array(palmtx_pcmcia_gpios, ARRAY_SIZE(palmtx_pcmcia_gpios));
  44}
  45
  46static void palmtx_pcmcia_socket_state(struct soc_pcmcia_socket *skt,
  47                                        struct 
  v2.p 
  
02" name="L44">  44}
palmtx_riv,}
palmtx_riv,}="L1ecoc_pcmcia_socket"L1eco.  12 */
palmtx_riv,}
palmtx_riv,}=vs_3v,}
 */
palmtx_riv,}
palmtx_riv,}=vs_Xv,}
 */
  44}
  13
  13
  46stconfigurete(struct   46stconfigurete(class="sref">palmtx_pcmcia_socket_state(struct soc_pcmcia_socket *skt,
 consf">palmtx_pcmcia_soct_state" _(struct 
  v2.p 
  palmtf="+cs_stn" na>          23        { palmtx_pcmcia_gpios));
502" name="L44">  445
palmtf="+cs_stn" na>          23        { palmtx_pcmcia_gpios));
palmtf="+cs_stn" na>          23        { palmtx_pcmcia_gpios));
palmtx_riv,}=flagE(palmtSS { palmtx_pcmcia_gpios));
  13
 */
  44}
  45
(
  
  ));

  v2.p 
    45
602" name="L44">  446
palmtx_pcmcia_gpios));
palmtx_pcmcia_gpios));
  31
  28static int palmtx_pcmcia_gpios));
  28statc void palmtx_pcmcia_gpios));
  34
  28satic void palmtx_pcmcia_gpios));
  28sconfigurete(struct   46stconfigurete(clas=class="sref">palmtx_pcmcia_gpios));
  26};

  v2.p 
    45
702" name="L44">  447
  46st_devicstruct   46st_devicrn ret;
  40
  46stic int   42{
  30        int ret;
  34
  30      f="iia/_is  34ret;
  37
palmt46">  46st_devicstruct   46st_devicrn -6spalmtx_pcmcia_gpios));
802" name="L44">  448
  46st_devicstruct   46st_devicrn ret;
  31
  32        ARRAY_devicstruct   46st_devicrn <,=&ref="+code=gpio" class="sref"opE(palmtx_pcmcia_gpios));
         sizeofARRAY_SIZE" class="sref">ARRAYopE(palmtx_pcmcia_gpios));
  34
  32          32        ARRAY_devicstruct   46st_devicrn <" class="sref">palmtx_pcmcia_gpios));
  37
  32        ARRAY_devicstruct   46st_devicrn <" class="sref">palmtx_pcmcia_gpios));
  37
  38        return ret;
  44}
  13
  46stex int   46stex init" clashref="+code=pcmcia_sn1.16