linux/arch/arm/mach-rpc/ecard.h
<<
>>
Prefs
   1/*
   2 *  ecard.h
   3 *
   4 *  Copyright 2007 Russell King
   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 version 2 as
   8 * published by the Free Software Foundation.
   9 */
  10
  11/* Definitions internal to ecard.c - for it's use only!!
  12 *
  13 * External expansion card header as read from the card
  14 */
  15struct ex_ecid {
  16        unsigned char   r_irq:1;
  17        unsigned char   r_zero:1;
  18        unsigned char   r_fiq:1;
  19        unsigned char   r_id:4;
  20        unsigned char   r_a:1;
  21
  22        unsigned char   r_cd:1;
  23        unsigned char   r_is:1;
  24        unsigned char   r_w:2;
  25        unsigned char   r_r1:4;
  26
  27        unsigned char   r_r2:8;
  28
  29        unsigned char   r_prod[2];
  30
  31        unsigned char   r_manu[2];
  32
  33        unsigned char   r_country;
  34
  35        unsigned char   r_fiqmask;
  36        unsigned char   r_fiqoff[3];
  37
  38        unsigned char   r_irqmask;
  39        unsigned char   r_irqoff[3];
  40};
  41
  42/*
  43 * Chunk directory entry as read from the card
  44 */
  45struct ex_chunk_dir {
  46        unsigned char r_id;
  47        unsigned char r_len[3];
  48        unsigned long r_start;
  49        union {
  50                char string[256];
  51                char data[1];
  52        } d;
  53#define c_id(x)         ((x)->r_id)
  54#define c_len(x)        ((x)->r_len[0]|((x)->r_len[1]<<8)|((x)->r_len[2]<<16))
  55#define c_start(x)      ((x)->r_start)
  56};
  57
  58typedef enum ecard_type {               /* Cards address space          */
  59        ECARD_IOC,
  60        ECARD_MEMC,
  61        ECARD_EASI
  62} card_type_t;
  63
  64typedef enum {                          /* Speed for ECARD_IOC space    */
  65        ECARD_SLOW       = 0,
  66        ECARD_MEDIUM     = 1,
  67        ECARD_FAST       = 2,
  68        ECARD_SYNC       = 3
  69} card_speed_t;
  70