maestro.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /*
  2. * Registers for the ESS PCI cards
  3. */
  4. /*
  5. * Memory access
  6. */
  7. #define ESS_MEM_DATA 0x00
  8. #define ESS_MEM_INDEX 0x02
  9. /*
  10. * AC-97 Codec port. Delay 1uS after each write. This is used to
  11. * talk AC-97 (see intel.com). Write data then register.
  12. */
  13. #define ESS_AC97_INDEX 0x30 /* byte wide */
  14. #define ESS_AC97_DATA 0x32
  15. /*
  16. * Reading is a bit different. You write register|0x80 to ubdex
  17. * delay 1uS poll the low bit of index, when it clears read the
  18. * data value.
  19. */
  20. /*
  21. * Control port. Not yet fully understood
  22. * The value 0xC090 gets loaded to it then 0x0000 and 0x2800
  23. * to the data port. Then after 4uS the value 0x300 is written
  24. */
  25. #define RING_BUS_CTRL_L 0x34
  26. #define RING_BUS_CTRL_H 0x36
  27. /*
  28. * This is also used during setup. The value 0x17 is written to it
  29. */
  30. #define ESS_SETUP_18 0x18
  31. /*
  32. * And this one gets 0x000b
  33. */
  34. #define ESS_SETUP_A2 0xA2
  35. /*
  36. * And this 0x0000
  37. */
  38. #define ESS_SETUP_A4 0xA4
  39. #define ESS_SETUP_A6 0xA6
  40. /*
  41. * Stuff to do with Harpo - the wave stuff
  42. */
  43. #define ESS_WAVETABLE_SIZE 0x14
  44. #define ESS_WAVETABLE_2M 0xA180