max2870.c 851 B

12345678910111213141516171819202122232425262728293031323334
  1. #include "max2870.h"
  2. #include "tmsgheaders.h"
  3. const uint32_t max2870_regs[] ={
  4. 0x80280000,
  5. 0x800303E9,
  6. 0x94005E42,
  7. 0x00000133,
  8. 0x638E80FC,
  9. 0x01400005
  10. };
  11. void max2870_init(reg_addr_pci* pci_bar_1) {
  12. uint32_t cfg_reg = get_cfg_reg();
  13. // Set the command to enter the 32-bit mode
  14. SET_REGISTER_PARAM(cfg_reg, CFG_REG_WIDTH_SPI_TMSG_BITM, CFG_REG_WIDTH_SPI_TMSG_BITP, CFG_REG_WIDTH_SPI_TMSG_32_BIT);
  15. pci_bar_1->cfg_reg_addr = cfg_reg;
  16. //Init Header
  17. pci_bar_1->sbtmsg_addr = INIT_MAX2870_HEADER;
  18. //Init Data
  19. for (int k = 0; k < sizeof(max2870_regs) / 4; k++) {
  20. pci_bar_1->sbtmsg_addr = max2870_regs[k];
  21. }
  22. usleep(1);
  23. // Return to 24-bit mode
  24. SET_REGISTER_PARAM(cfg_reg, CFG_REG_WIDTH_SPI_TMSG_BITM, CFG_REG_WIDTH_SPI_TMSG_BITP, CFG_REG_WIDTH_SPI_TMSG_24_BIT);
  25. pci_bar_1->cfg_reg_addr = cfg_reg;
  26. usleep(1);
  27. set_cfg_reg(cfg_reg);
  28. }