@ -20,6 +20,11 @@ import libfdt
# This implementation uses a libfdt Python library to access the device tree,
# so it is fairly efficient.
def CheckErr ( errnum , msg ) :
if errnum :
raise ValueError ( ' Error %d : %s : %s ' %
( errnum , libfdt . fdt_strerror ( errnum ) , msg ) )
class Prop ( PropBase ) :
""" A device tree property
@ -95,6 +100,21 @@ class Node(NodeBase):
subnode . Refresh ( offset )
offset = libfdt . fdt_next_subnode ( self . _fdt . GetFdt ( ) , offset )
def DeleteProp ( self , prop_name ) :
""" Delete a property of a node
The property is deleted and the offset cache is invalidated .
Args :
prop_name : Name of the property to delete
Raises :
ValueError if the property does not exist
"""
CheckErr ( libfdt . fdt_delprop ( self . _fdt . GetFdt ( ) , self . Offset ( ) , prop_name ) ,
" Node ' %s ' : delete property: ' %s ' " % ( self . path , prop_name ) )
del self . props [ prop_name ]
self . _fdt . Invalidate ( )
class FdtNormal ( Fdt ) :
""" Provides simple access to a flat device tree blob using libfdt.