wl1271_io.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /*
  2. * This file is part of wl1271
  3. *
  4. * Copyright (C) 1998-2009 Texas Instruments. All rights reserved.
  5. * Copyright (C) 2008-2010 Nokia Corporation
  6. *
  7. * Contact: Luciano Coelho <luciano.coelho@nokia.com>
  8. *
  9. * This program is free software; you can redistribute it and/or
  10. * modify it under the terms of the GNU General Public License
  11. * version 2 as published by the Free Software Foundation.
  12. *
  13. * This program is distributed in the hope that it will be useful, but
  14. * WITHOUT ANY WARRANTY; without even the implied warranty of
  15. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  16. * General Public License for more details.
  17. *
  18. * You should have received a copy of the GNU General Public License
  19. * along with this program; if not, write to the Free Software
  20. * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  21. * 02110-1301 USA
  22. *
  23. */
  24. #ifndef __WL1271_IO_H__
  25. #define __WL1271_IO_H__
  26. struct wl1271;
  27. void wl1271_io_reset(struct wl1271 *wl);
  28. void wl1271_io_init(struct wl1271 *wl);
  29. /* Raw target IO, address is not translated */
  30. void wl1271_raw_write(struct wl1271 *wl, int addr, void *buf,
  31. size_t len, bool fixed);
  32. void wl1271_raw_read(struct wl1271 *wl, int addr, void *buf,
  33. size_t len, bool fixed);
  34. /* Translated target IO */
  35. void wl1271_read(struct wl1271 *wl, int addr, void *buf, size_t len,
  36. bool fixed);
  37. void wl1271_write(struct wl1271 *wl, int addr, void *buf, size_t len,
  38. bool fixed);
  39. u32 wl1271_read32(struct wl1271 *wl, int addr);
  40. void wl1271_write32(struct wl1271 *wl, int addr, u32 val);
  41. /* Top Register IO */
  42. void wl1271_top_reg_write(struct wl1271 *wl, int addr, u16 val);
  43. u16 wl1271_top_reg_read(struct wl1271 *wl, int addr);
  44. int wl1271_set_partition(struct wl1271 *wl,
  45. struct wl1271_partition_set *p);
  46. static inline u32 wl1271_raw_read32(struct wl1271 *wl, int addr)
  47. {
  48. wl1271_raw_read(wl, addr, &wl->buffer_32,
  49. sizeof(wl->buffer_32), false);
  50. return wl->buffer_32;
  51. }
  52. static inline void wl1271_raw_write32(struct wl1271 *wl, int addr, u32 val)
  53. {
  54. wl->buffer_32 = val;
  55. wl1271_raw_write(wl, addr, &wl->buffer_32,
  56. sizeof(wl->buffer_32), false);
  57. }
  58. #endif