root/arch/m68k/include/asm/amigayle.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /*
   2 ** asm-m68k/amigayle.h -- This header defines the registers of the gayle chip
   3 **                        found on the Amiga 1200
   4 **                        This information was found by disassembling card.resource,
   5 **                        so the definitions may not be 100% correct
   6 **                        anyone has an official doc ?
   7 **
   8 ** Copyright 1997 by Alain Malek
   9 **
  10 ** This file is subject to the terms and conditions of the GNU General Public
  11 ** License.  See the file COPYING in the main directory of this archive
  12 ** for more details.
  13 **
  14 ** Created: 11/28/97 by Alain Malek
  15 */
  16 
  17 #ifndef _M68K_AMIGAYLE_H_
  18 #define _M68K_AMIGAYLE_H_
  19 
  20 #include <linux/types.h>
  21 #include <asm/amigahw.h>
  22 
  23 /* memory layout */
  24 
  25 #define GAYLE_RAM               (0x600000+zTwoBase)
  26 #define GAYLE_RAMSIZE           (0x400000)
  27 #define GAYLE_ATTRIBUTE         (0xa00000+zTwoBase)
  28 #define GAYLE_ATTRIBUTESIZE     (0x020000)
  29 #define GAYLE_IO                (0xa20000+zTwoBase)     /* 16bit and even 8bit registers */
  30 #define GAYLE_IOSIZE            (0x010000)
  31 #define GAYLE_IO_8BITODD        (0xa30000+zTwoBase)     /* odd 8bit registers */
  32 
  33 /* offset for accessing odd IO registers */
  34 #define GAYLE_ODD               (GAYLE_IO_8BITODD-GAYLE_IO-1)
  35 
  36 /* GAYLE registers */
  37 
  38 struct GAYLE {
  39         u_char cardstatus;
  40         u_char pad0[0x1000-1];
  41 
  42         u_char intreq;
  43         u_char pad1[0x1000-1];
  44 
  45         u_char inten;
  46         u_char pad2[0x1000-1];
  47 
  48         u_char config;
  49         u_char pad3[0x1000-1];
  50 };
  51 
  52 #define GAYLE_ADDRESS   (0xda8000)      /* gayle main registers base address */
  53 
  54 #define GAYLE_RESET     (0xa40000)      /* write 0x00 to start reset,
  55                                            read 1 byte to stop reset */
  56 
  57 #define gayle (*(volatile struct GAYLE *)(zTwoBase+GAYLE_ADDRESS))
  58 #define gayle_reset (*(volatile u_char *)(zTwoBase+GAYLE_RESET))
  59 
  60 #define gayle_attribute ((volatile u_char *)(GAYLE_ATTRIBUTE))
  61 
  62 #if 0
  63 #define gayle_inb(a) readb( GAYLE_IO+(a)+(((a)&1)*GAYLE_ODD) )
  64 #define gayle_outb(v,a) writeb( v, GAYLE_IO+(a)+(((a)&1)*GAYLE_ODD) )
  65 
  66 #define gayle_inw(a) readw( GAYLE_IO+(a) )
  67 #define gayle_outw(v,a) writew( v, GAYLE_IO+(a) )
  68 #endif
  69 
  70 /* GAYLE_CARDSTATUS bit def */
  71 
  72 #define GAYLE_CS_CCDET          0x40    /* credit card detect */
  73 #define GAYLE_CS_BVD1           0x20    /* battery voltage detect 1 */
  74 #define GAYLE_CS_SC             0x20    /* credit card status change */
  75 #define GAYLE_CS_BVD2           0x10    /* battery voltage detect 2 */
  76 #define GAYLE_CS_DA             0x10    /* digital audio */
  77 #define GAYLE_CS_WR             0x08    /* write enable (1 == enabled) */
  78 #define GAYLE_CS_BSY            0x04    /* credit card busy */
  79 #define GAYLE_CS_IRQ            0x04    /* interrupt request */
  80 
  81 /* GAYLE_IRQ bit def */
  82 
  83 #define GAYLE_IRQ_IDE           0x80
  84 #define GAYLE_IRQ_CCDET         0x40
  85 #define GAYLE_IRQ_BVD1          0x20
  86 #define GAYLE_IRQ_SC            0x20
  87 #define GAYLE_IRQ_BVD2          0x10
  88 #define GAYLE_IRQ_DA            0x10
  89 #define GAYLE_IRQ_WR            0x08
  90 #define GAYLE_IRQ_BSY           0x04
  91 #define GAYLE_IRQ_IRQ           0x04
  92 #define GAYLE_IRQ_IDEACK1       0x02
  93 #define GAYLE_IRQ_IDEACK0       0x01
  94 
  95 /* GAYLE_CONFIG bit def
  96    (bit 0-1 for program voltage, bit 2-3 for access speed */
  97 
  98 #define GAYLE_CFG_0V            0x00
  99 #define GAYLE_CFG_5V            0x01
 100 #define GAYLE_CFG_12V           0x02
 101 
 102 #define GAYLE_CFG_100NS         0x08
 103 #define GAYLE_CFG_150NS         0x04
 104 #define GAYLE_CFG_250NS         0x00
 105 #define GAYLE_CFG_720NS         0x0c
 106 
 107 struct gayle_ide_platform_data {
 108         unsigned long base;
 109         unsigned long irqport;
 110         int explicit_ack;       /* A1200 IDE needs explicit ack */
 111 };
 112 
 113 #endif /* asm-m68k/amigayle.h */

/* [<][>][^][v][top][bottom][index][help] */