root/arch/mips/include/asm/mach-jazz/floppy.h

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

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. fd_inb
  2. fd_outb
  3. fd_enable_dma
  4. fd_disable_dma
  5. fd_request_dma
  6. fd_free_dma
  7. fd_clear_dma_ff
  8. fd_set_dma_mode
  9. fd_set_dma_addr
  10. fd_set_dma_count
  11. fd_get_dma_residue
  12. fd_enable_irq
  13. fd_disable_irq
  14. fd_request_irq
  15. fd_free_irq
  16. fd_getfdaddr1
  17. fd_dma_mem_alloc
  18. fd_dma_mem_free
  19. fd_drive_type

   1 /*
   2  * This file is subject to the terms and conditions of the GNU General Public
   3  * License.  See the file "COPYING" in the main directory of this archive
   4  * for more details.
   5  *
   6  * Copyright (C) 1998, 2003 by Ralf Baechle
   7  */
   8 #ifndef __ASM_MACH_JAZZ_FLOPPY_H
   9 #define __ASM_MACH_JAZZ_FLOPPY_H
  10 
  11 #include <linux/delay.h>
  12 #include <linux/linkage.h>
  13 #include <linux/types.h>
  14 #include <linux/mm.h>
  15 #include <asm/addrspace.h>
  16 #include <asm/jazz.h>
  17 #include <asm/jazzdma.h>
  18 #include <asm/pgtable.h>
  19 
  20 static inline unsigned char fd_inb(unsigned int port)
  21 {
  22         unsigned char c;
  23 
  24         c = *(volatile unsigned char *) port;
  25         udelay(1);
  26 
  27         return c;
  28 }
  29 
  30 static inline void fd_outb(unsigned char value, unsigned int port)
  31 {
  32         *(volatile unsigned char *) port = value;
  33 }
  34 
  35 /*
  36  * How to access the floppy DMA functions.
  37  */
  38 static inline void fd_enable_dma(void)
  39 {
  40         vdma_enable(JAZZ_FLOPPY_DMA);
  41 }
  42 
  43 static inline void fd_disable_dma(void)
  44 {
  45         vdma_disable(JAZZ_FLOPPY_DMA);
  46 }
  47 
  48 static inline int fd_request_dma(void)
  49 {
  50         return 0;
  51 }
  52 
  53 static inline void fd_free_dma(void)
  54 {
  55 }
  56 
  57 static inline void fd_clear_dma_ff(void)
  58 {
  59 }
  60 
  61 static inline void fd_set_dma_mode(char mode)
  62 {
  63         vdma_set_mode(JAZZ_FLOPPY_DMA, mode);
  64 }
  65 
  66 static inline void fd_set_dma_addr(char *a)
  67 {
  68         vdma_set_addr(JAZZ_FLOPPY_DMA, vdma_phys2log(CPHYSADDR((unsigned long)a)));
  69 }
  70 
  71 static inline void fd_set_dma_count(unsigned int count)
  72 {
  73         vdma_set_count(JAZZ_FLOPPY_DMA, count);
  74 }
  75 
  76 static inline int fd_get_dma_residue(void)
  77 {
  78         return vdma_get_residue(JAZZ_FLOPPY_DMA);
  79 }
  80 
  81 static inline void fd_enable_irq(void)
  82 {
  83 }
  84 
  85 static inline void fd_disable_irq(void)
  86 {
  87 }
  88 
  89 static inline int fd_request_irq(void)
  90 {
  91         return request_irq(FLOPPY_IRQ, floppy_interrupt,
  92                            0, "floppy", NULL);
  93 }
  94 
  95 static inline void fd_free_irq(void)
  96 {
  97         free_irq(FLOPPY_IRQ, NULL);
  98 }
  99 
 100 static inline unsigned long fd_getfdaddr1(void)
 101 {
 102         return JAZZ_FDC_BASE;
 103 }
 104 
 105 static inline unsigned long fd_dma_mem_alloc(unsigned long size)
 106 {
 107         unsigned long mem;
 108 
 109         mem = __get_dma_pages(GFP_KERNEL, get_order(size));
 110         if(!mem)
 111                 return 0;
 112         vdma_alloc(CPHYSADDR(mem), size);       /* XXX error checking */
 113 
 114         return mem;
 115 }
 116 
 117 static inline void fd_dma_mem_free(unsigned long addr, unsigned long size)
 118 {
 119         vdma_free(vdma_phys2log(CPHYSADDR(addr)));
 120         free_pages(addr, get_order(size));
 121 }
 122 
 123 static inline unsigned long fd_drive_type(unsigned long n)
 124 {
 125         /* XXX This is wrong for machines with ED 2.88mb disk drives like the
 126            Olivetti M700.  Anyway, we should suck this from the ARC
 127            firmware.  */
 128         if (n == 0)
 129                 return 4;       /* 3,5", 1.44mb */
 130 
 131         return 0;
 132 }
 133 
 134 #endif /* __ASM_MACH_JAZZ_FLOPPY_H */

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