#include "registers.h"
#include <string.h>

cc2500_reg registers[] = {
  {0x00,"IOCFG2"},
  {0x01,"IOCFG1"},
  {0x02,"IOCFG0"},
  {0x03,"FIFOTHR"},
  {0x04,"SYNC1"},
  {0x05,"SYNC0"},
  {0x06,"PKTLEN"},
  {0x07,"PKTCTRL1"},
  {0x08,"PKTCTRL0"},
  {0x09,"ADDR"},
  {0x0A,"CHANNR"},
  {0x0B,"FSCTRL1"},
  {0x0C,"FSCTRL0"},
  {0x0D,"FREQ2"},
  {0x0E,"FREQ1"},
  {0x0F,"FREQ0"},
  {0x10,"MDMCFG4"},
  {0x11,"MDMCFG3"},
  {0x12,"MDMCFG2"},
  {0x13,"MDMCFG1"},
  {0x14,"MDMCFG0"},
  {0x15,"DEVIATN"},
  {0x16,"MCSM2"},
  {0x17,"MCSM1"},
  {0x18,"MCSM0"},
  {0x19,"FOCCFG"},
  {0x1A,"BSCFG"},
  {0x1B,"AGCCTRL2"},
  {0x1C,"AGCCTRL1"},
  {0x1D,"AGCCTRL0"},
  {0x1E,"WOREVT1"},
  {0x1F,"WOREVT0"},
  {0x20,"WORCTRL"},
  {0x21,"FREND1"},
  {0x22,"FREND0"},
  {0x23,"FSCAL3"},
  {0x24,"FSCAL2"},
  {0x25,"FSCAL1"},
  {0x26,"FSCAL0"},
  {0x27,"RCCTRL1"},
  {0x28,"RCCTRL0"},
  {0x29,"FSTEST"},
  {0x2A,"PTEST"},
  {0x2B,"AGCTEST"},
  {0x2C,"TEST2"},
  {0x2D,"TEST1"},
  {0x2E,"TEST0"}
};



char* registers_get_name(int addr) {
  int reg_size = sizeof(cc2500_reg);
  int i;
  
  for(i = 0; i < sizeof(registers)/reg_size; i++) {
    if(registers[i].address == addr) {
      return registers[i].name;
    }
  }
  return (char*)0x0;
}

int registers_get_address(char* name) {
  int reg_size = sizeof(cc2500_reg);
  int i;
  
  for(i = 0; i < sizeof(registers)/reg_size; i++) {
    if(strcmp(registers[i].name, name) == 0) {
      return registers[i].address;
    }
  }
  return 0xFF;
}