Skip to content

Commit da15115

Browse files
committed
description
1 parent 827f02c commit da15115

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

svdtools/patch.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -517,9 +517,11 @@ def derive_peripheral(self, pname, pmod):
517517
if isinstance(pmod, str):
518518
pderive = pmod
519519
base_address = None
520+
description = None
520521
elif isinstance(pmod, dict):
521522
pderive = pmod["_from"]
522523
base_address = pmod.get("baseAddress", None)
524+
description = pmod.get("description", None)
523525
else:
524526
raise SvdPatchError("derive: incorrect syntax for {}".format(pname))
525527
ptag = parent.find("./peripheral[name='{}']".format(pname))
@@ -532,11 +534,13 @@ def derive_peripheral(self, pname, pmod):
532534
ET.SubElement(ptag, "addressOffset").text = base_address
533535
else:
534536
for value in list(ptag):
535-
if value.tag in ("name", "baseAddress", "interrupt"):
537+
if value.tag in ("name", "baseAddress", "interrupt", "description"):
536538
continue
537539
ptag.remove(value)
538540
if base_address:
539541
ptag.find("baseAddress").text = base_address
542+
if description:
543+
ptag.find("description").text = description
540544
for value in ptag:
541545
last = value
542546
last.tail = "\n "
@@ -845,9 +849,11 @@ def derive_register(self, rname, rmod):
845849
if isinstance(rmod, str):
846850
rderive = rmod
847851
address_offset = None
852+
description = None
848853
elif isinstance(rmod, dict):
849854
rderive = rmod["_from"]
850855
address_offset = rmod.get("addressOffset", None)
856+
description = rmod.get(description, None)
851857
else:
852858
raise SvdPatchError("derive: incorrect syntax for {}".format(rname))
853859
rtag = parent.find("./register[name='{}']".format(rname))
@@ -860,11 +866,13 @@ def derive_register(self, rname, rmod):
860866
ET.SubElement(rtag, "addressOffset").text = address_offset
861867
else:
862868
for value in list(rtag):
863-
if value.tag in ("name", "addressOffset"):
869+
if value.tag in ("name", "addressOffset", "description"):
864870
continue
865871
rtag.remove(value)
866872
if address_offset:
867873
rtag.find("addressOffset").text = address_offset
874+
if description:
875+
rtag.find("description").text = description
868876
for value in rtag:
869877
last = value
870878
last.tail = "\n "
@@ -1105,10 +1113,10 @@ def process_register(self, rspec, register, update_fields=True):
11051113
pname = self.ptag.find("name").text
11061114
rcount = 0
11071115
for rtag in self.iter_registers(rspec):
1116+
rcount += 1
11081117
if "derivedFrom" in rtag.attrib:
11091118
continue
11101119
r = Register(rtag)
1111-
rcount += 1
11121120
# Handle deletions
11131121
for fspec in register.get("_delete", []):
11141122
r.delete_field(fspec)

0 commit comments

Comments
 (0)