max2870.c 669 B

12345678910111213141516171819202122232425262728293031
  1. #include "max2870.h"
  2. const uint32_t max2870_regs[] ={
  3. 0x80280000,
  4. 0x800303E9,
  5. 0x94005E42,
  6. 0x00000133,
  7. 0x638E80FC,
  8. 0x01400005
  9. };
  10. void max2870_init(void *bar1) {
  11. // Set the command to enter the 32-bit mode
  12. uint32_t *ptr = bar1 + RST_ADDR;
  13. *ptr = CURR_WIDTH_32_BIT;
  14. //Init Header
  15. uint32_t *ptr = bar1 + MAX2870_BASE_ADDR;
  16. *ptr = InitMAX2870Header;
  17. //Init Data
  18. for (int k = 0; k < sizeof(max2870_regs)/4; k++) {
  19. uint32_t *ptr = bar1 + MAX2870_BASE_ADDR;
  20. *ptr = max2870_regs[k];
  21. }
  22. usleep(1);
  23. // Return to 24-bit mode
  24. uint32_t *ptr = bar1 + RST_ADDR;
  25. *ptr = CURR_WIDTH_24_BIT;
  26. }