max2870.c 1008 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(void *bar1) {
  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. uint32_t *ptr_cmd = bar1 + CFG_REG_ADDR;
  16. *ptr_cmd = cfg_reg;
  17. //Init Header
  18. uint32_t *ptr = bar1 + MAX2870_BASE_ADDR;
  19. *ptr = InitMAX2870Header;
  20. //Init Data
  21. for (int k = 0; k < sizeof(max2870_regs)/4; k++) {
  22. uint32_t *ptr = bar1 + MAX2870_BASE_ADDR;
  23. *ptr = max2870_regs[k];
  24. }
  25. usleep(1);
  26. // Return to 24-bit mode
  27. SET_REGISTER_PARAM(cfg_reg, CFG_REG_WIDTH_SPI_TMSG_BITM, CFG_REG_WIDTH_SPI_TMSG_BITP, CFG_REG_WIDTH_SPI_TMSG_24_BIT);
  28. uint32_t *ptr_cmd_2 = bar1 + CFG_REG_ADDR;
  29. *ptr_cmd_2 = cfg_reg;
  30. set_cfg_reg(cfg_reg);
  31. }