w83977af.h 858 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #ifndef W83977AF_H
  2. #define W83977AF_H
  3. #define W977_EFIO_BASE 0x370
  4. #define W977_EFIO2_BASE 0x3f0
  5. #define W977_DEVICE_IR 0x06
  6. /*
  7. * Enter extended function mode
  8. */
  9. static inline void w977_efm_enter(unsigned int efio)
  10. {
  11. outb(0x87, efio);
  12. outb(0x87, efio);
  13. }
  14. /*
  15. * Select a device to configure
  16. */
  17. static inline void w977_select_device(__u8 devnum, unsigned int efio)
  18. {
  19. outb(0x07, efio);
  20. outb(devnum, efio+1);
  21. }
  22. /*
  23. * Write a byte to a register
  24. */
  25. static inline void w977_write_reg(__u8 reg, __u8 value, unsigned int efio)
  26. {
  27. outb(reg, efio);
  28. outb(value, efio+1);
  29. }
  30. /*
  31. * read a byte from a register
  32. */
  33. static inline __u8 w977_read_reg(__u8 reg, unsigned int efio)
  34. {
  35. outb(reg, efio);
  36. return inb(efio+1);
  37. }
  38. /*
  39. * Exit extended function mode
  40. */
  41. static inline void w977_efm_exit(unsigned int efio)
  42. {
  43. outb(0xAA, efio);
  44. }
  45. #endif