diff options
author | Josh Blum <josh@joshknows.com> | 2010-04-29 16:08:10 -0700 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2010-04-29 16:08:10 -0700 |
commit | 15b0f5feef3e30f762ded1d27235bd167e3e5c28 (patch) | |
tree | a988d4098f38609f9eb4f50d89a26faa20381993 /host/lib/ic_reg_maps/common.py | |
parent | 04dae4bf6b11b5aad383f95be6a77863a7c2f6ec (diff) | |
download | uhd-15b0f5feef3e30f762ded1d27235bd167e3e5c28.tar.gz uhd-15b0f5feef3e30f762ded1d27235bd167e3e5c28.tar.bz2 uhd-15b0f5feef3e30f762ded1d27235bd167e3e5c28.zip |
added reg map for ad9862
Diffstat (limited to 'host/lib/ic_reg_maps/common.py')
-rw-r--r-- | host/lib/ic_reg_maps/common.py | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/host/lib/ic_reg_maps/common.py b/host/lib/ic_reg_maps/common.py index d05470706..b33961b03 100644 --- a/host/lib/ic_reg_maps/common.py +++ b/host/lib/ic_reg_maps/common.py @@ -22,17 +22,24 @@ from Cheetah.Template import Template def parse_tmpl(_tmpl_text, **kwargs): return str(Template(_tmpl_text, kwargs)) +def to_num(arg): return eval(arg) + class reg: def __init__(self, reg_des): + try: self.parse(reg_des) + except Exception, e: + raise Exception, 'Error parsing register description: "%s"\nWhat: %s'%(reg_des, e) + + def parse(self, reg_des): x = re.match('^(\w*)\s*(\w*)\[(.*)\]\s*(\w*)\s*(.*)$', reg_des) name, addr, bit_range, default, enums = x.groups() #store variables self._name = name - self._addr = int(addr, 16) + self._addr = to_num(addr) if ':' in bit_range: self._addr_spec = sorted(map(int, bit_range.split(':'))) else: self._addr_spec = int(bit_range), int(bit_range) - self._default = int(default, 16) + self._default = to_num(default) #extract enum self._enums = list() @@ -41,7 +48,7 @@ class reg: for enum_str in map(str.strip, enums.split(',')): if '=' in enum_str: enum_name, enum_val = enum_str.split('=') - enum_val = int(enum_val) + enum_val = to_num(enum_val) else: enum_name = enum_str self._enums.append((enum_name, enum_val)) enum_val += 1 |