mcp.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:1k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.  *  linux/drivers/misc/mcp.h
  3.  *
  4.  *  Copyright (C) 2001 Russell King, 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 as published by
  8.  * the Free Software Foundation; either version 2 of the License.
  9.  */
  10. #ifndef MCP_H
  11. #define MCP_H
  12. #ifdef CONFIG_ARCH_SA1100
  13. #include <asm/dma.h>
  14. #endif
  15. struct mcp {
  16. struct module *owner;
  17. spinlock_t lock;
  18. int use_count;
  19. unsigned int sclk_rate;
  20. unsigned int rw_timeout;
  21. #ifdef CONFIG_ARCH_SA1100
  22. dma_device_t dma_audio_rd;
  23. dma_device_t dma_audio_wr;
  24. dma_device_t dma_telco_rd;
  25. dma_device_t dma_telco_wr;
  26. #endif
  27. void (*set_telecom_divisor)(struct mcp *, unsigned int);
  28. void (*set_audio_divisor)(struct mcp *, unsigned int);
  29. void (*reg_write)(struct mcp *, unsigned int, unsigned int);
  30. unsigned int (*reg_read)(struct mcp *, unsigned int);
  31. void (*enable)(struct mcp *);
  32. void (*disable)(struct mcp *);
  33. };
  34. void mcp_set_telecom_divisor(struct mcp *, unsigned int);
  35. void mcp_set_audio_divisor(struct mcp *, unsigned int);
  36. void mcp_reg_write(struct mcp *, unsigned int, unsigned int);
  37. unsigned int mcp_reg_read(struct mcp *, unsigned int);
  38. void mcp_enable(struct mcp *);
  39. void mcp_disable(struct mcp *);
  40. /* noddy implementation alert! */
  41. struct mcp *mcp_get(void);
  42. int mcp_register(struct mcp *);
  43. #define mcp_get_sclk_rate(mcp) ((mcp)->sclk_rate)
  44. #endif