home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / powerpc / include / asm / dcr.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  2.7 KB  |  79 lines

  1. /*
  2.  * (c) Copyright 2006 Benjamin Herrenschmidt, IBM Corp.
  3.  *                    <benh@kernel.crashing.org>
  4.  *
  5.  *   This program is free software;  you can redistribute it and/or modify
  6.  *   it under the terms of the GNU General Public License as published by
  7.  *   the Free Software Foundation; either version 2 of the License, or
  8.  *   (at your option) any later version.
  9.  *
  10.  *   This program is distributed in the hope that it will be useful,
  11.  *   but WITHOUT ANY WARRANTY;  without even the implied warranty of
  12.  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
  13.  *   the GNU General Public License for more details.
  14.  *
  15.  *   You should have received a copy of the GNU General Public License
  16.  *   along with this program;  if not, write to the Free Software
  17.  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  18.  */
  19.  
  20. #ifndef _ASM_POWERPC_DCR_H
  21. #define _ASM_POWERPC_DCR_H
  22. #ifdef __KERNEL__
  23. #ifndef __ASSEMBLY__
  24. #ifdef CONFIG_PPC_DCR
  25.  
  26. #ifdef CONFIG_PPC_DCR_NATIVE
  27. #include <asm/dcr-native.h>
  28. #endif
  29.  
  30. #ifdef CONFIG_PPC_DCR_MMIO
  31. #include <asm/dcr-mmio.h>
  32. #endif
  33.  
  34.  
  35. /* Indirection layer for providing both NATIVE and MMIO support. */
  36.  
  37. #if defined(CONFIG_PPC_DCR_NATIVE) && defined(CONFIG_PPC_DCR_MMIO)
  38.  
  39. #include <asm/dcr-generic.h>
  40.  
  41. #define DCR_MAP_OK(host)    dcr_map_ok_generic(host)
  42. #define dcr_map(dev, dcr_n, dcr_c) dcr_map_generic(dev, dcr_n, dcr_c)
  43. #define dcr_unmap(host, dcr_c) dcr_unmap_generic(host, dcr_c)
  44. #define dcr_read(host, dcr_n) dcr_read_generic(host, dcr_n)
  45. #define dcr_write(host, dcr_n, value) dcr_write_generic(host, dcr_n, value)
  46.  
  47. #else
  48.  
  49. #ifdef CONFIG_PPC_DCR_NATIVE
  50. typedef dcr_host_native_t dcr_host_t;
  51. #define DCR_MAP_OK(host)    dcr_map_ok_native(host)
  52. #define dcr_map(dev, dcr_n, dcr_c) dcr_map_native(dev, dcr_n, dcr_c)
  53. #define dcr_unmap(host, dcr_c) dcr_unmap_native(host, dcr_c)
  54. #define dcr_read(host, dcr_n) dcr_read_native(host, dcr_n)
  55. #define dcr_write(host, dcr_n, value) dcr_write_native(host, dcr_n, value)
  56. #else
  57. typedef dcr_host_mmio_t dcr_host_t;
  58. #define DCR_MAP_OK(host)    dcr_map_ok_mmio(host)
  59. #define dcr_map(dev, dcr_n, dcr_c) dcr_map_mmio(dev, dcr_n, dcr_c)
  60. #define dcr_unmap(host, dcr_c) dcr_unmap_mmio(host, dcr_c)
  61. #define dcr_read(host, dcr_n) dcr_read_mmio(host, dcr_n)
  62. #define dcr_write(host, dcr_n, value) dcr_write_mmio(host, dcr_n, value)
  63. #endif
  64.  
  65. #endif /* defined(CONFIG_PPC_DCR_NATIVE) && defined(CONFIG_PPC_DCR_MMIO) */
  66.  
  67. /*
  68.  * additional helpers to read the DCR * base from the device-tree
  69.  */
  70. struct device_node;
  71. extern unsigned int dcr_resource_start(struct device_node *np,
  72.                        unsigned int index);
  73. extern unsigned int dcr_resource_len(struct device_node *np,
  74.                      unsigned int index);
  75. #endif /* CONFIG_PPC_DCR */
  76. #endif /* __ASSEMBLY__ */
  77. #endif /* __KERNEL__ */
  78. #endif /* _ASM_POWERPC_DCR_H */
  79.