ssp.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /*
  2. * ssp.h
  3. *
  4. * Copyright (C) 2003 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 version 2 as
  8. * published by the Free Software Foundation.
  9. *
  10. * This driver supports the following PXA CPU/SSP ports:-
  11. *
  12. * PXA250 SSP
  13. * PXA255 SSP, NSSP
  14. * PXA26x SSP, NSSP, ASSP
  15. * PXA27x SSP1, SSP2, SSP3
  16. */
  17. #ifndef SSP_H
  18. #define SSP_H
  19. /*
  20. * SSP initialisation flags
  21. */
  22. #define SSP_NO_IRQ 0x1 /* don't register an irq handler in SSP driver */
  23. struct ssp_state {
  24. u32 cr0;
  25. u32 cr1;
  26. u32 to;
  27. u32 psp;
  28. };
  29. struct ssp_dev {
  30. u32 port;
  31. u32 mode;
  32. u32 flags;
  33. u32 psp_flags;
  34. u32 speed;
  35. int irq;
  36. };
  37. int ssp_write_word(struct ssp_dev *dev, u32 data);
  38. int ssp_read_word(struct ssp_dev *dev, u32 *data);
  39. int ssp_flush(struct ssp_dev *dev);
  40. void ssp_enable(struct ssp_dev *dev);
  41. void ssp_disable(struct ssp_dev *dev);
  42. void ssp_save_state(struct ssp_dev *dev, struct ssp_state *ssp);
  43. void ssp_restore_state(struct ssp_dev *dev, struct ssp_state *ssp);
  44. int ssp_init(struct ssp_dev *dev, u32 port, u32 init_flags);
  45. int ssp_config(struct ssp_dev *dev, u32 mode, u32 flags, u32 psp_flags, u32 speed);
  46. void ssp_exit(struct ssp_dev *dev);
  47. #endif