home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / linux / amba / bus.h next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  1.6 KB  |  56 lines

  1. /*
  2.  *  linux/include/asm-arm/hardware/amba.h
  3.  *
  4.  *  Copyright (C) 2003 Deep Blue Solutions Ltd, All Rights Reserved.
  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. #ifndef ASMARM_AMBA_H
  11. #define ASMARM_AMBA_H
  12.  
  13. #define AMBA_NR_IRQS    2
  14.  
  15. struct amba_device {
  16.     struct device        dev;
  17.     struct resource        res;
  18.     u64            dma_mask;
  19.     unsigned int        periphid;
  20.     unsigned int        irq[AMBA_NR_IRQS];
  21. };
  22.  
  23. struct amba_id {
  24.     unsigned int        id;
  25.     unsigned int        mask;
  26.     void            *data;
  27. };
  28.  
  29. struct amba_driver {
  30.     struct device_driver    drv;
  31.     int            (*probe)(struct amba_device *, void *);
  32.     int            (*remove)(struct amba_device *);
  33.     void            (*shutdown)(struct amba_device *);
  34.     int            (*suspend)(struct amba_device *, pm_message_t);
  35.     int            (*resume)(struct amba_device *);
  36.     struct amba_id        *id_table;
  37. };
  38.  
  39. #define amba_get_drvdata(d)    dev_get_drvdata(&d->dev)
  40. #define amba_set_drvdata(d,p)    dev_set_drvdata(&d->dev, p)
  41.  
  42. int amba_driver_register(struct amba_driver *);
  43. void amba_driver_unregister(struct amba_driver *);
  44. int amba_device_register(struct amba_device *, struct resource *);
  45. void amba_device_unregister(struct amba_device *);
  46. struct amba_device *amba_find_device(const char *, struct device *, unsigned int, unsigned int);
  47. int amba_request_regions(struct amba_device *, const char *);
  48. void amba_release_regions(struct amba_device *);
  49.  
  50. #define amba_config(d)    (((d)->periphid >> 24) & 0xff)
  51. #define amba_rev(d)    (((d)->periphid >> 20) & 0x0f)
  52. #define amba_manf(d)    (((d)->periphid >> 12) & 0xff)
  53. #define amba_part(d)    ((d)->periphid & 0xfff)
  54.  
  55. #endif
  56.