bus.h 891 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #ifndef B43_BUS_H_
  2. #define B43_BUS_H_
  3. enum b43_bus_type {
  4. B43_BUS_SSB,
  5. };
  6. struct b43_bus_dev {
  7. enum b43_bus_type bus_type;
  8. union {
  9. struct ssb_device *sdev;
  10. };
  11. u16 (*read16)(struct b43_bus_dev *dev, u16 offset);
  12. u32 (*read32)(struct b43_bus_dev *dev, u16 offset);
  13. void (*write16)(struct b43_bus_dev *dev, u16 offset, u16 value);
  14. void (*write32)(struct b43_bus_dev *dev, u16 offset, u32 value);
  15. void (*block_read)(struct b43_bus_dev *dev, void *buffer,
  16. size_t count, u16 offset, u8 reg_width);
  17. void (*block_write)(struct b43_bus_dev *dev, const void *buffer,
  18. size_t count, u16 offset, u8 reg_width);
  19. struct device *dev;
  20. struct device *dma_dev;
  21. unsigned int irq;
  22. u16 chip_id;
  23. u8 chip_rev;
  24. u8 chip_pkg;
  25. struct ssb_sprom *bus_sprom;
  26. u16 core_id;
  27. u8 core_rev;
  28. };
  29. struct b43_bus_dev *b43_bus_dev_ssb_init(struct ssb_device *sdev);
  30. #endif /* B43_BUS_H_ */