diff options
author | Simon Glass <sjg@chromium.org> | 2016-07-25 18:59:06 -0600 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2016-09-18 21:04:38 -0600 |
commit | c322a850affaf18f3833b3316292c91007c4b5d8 (patch) | |
tree | 385f5b6c8e0debface4164f23ca3c5e9210f7476 | |
parent | bc1dea3656e55d91f7a3c1339d53fc9def3bbf31 (diff) | |
download | u-boot-c322a850affaf18f3833b3316292c91007c4b5d8.tar.gz u-boot-c322a850affaf18f3833b3316292c91007c4b5d8.tar.bz2 u-boot-c322a850affaf18f3833b3316292c91007c4b5d8.zip |
dtoc: Move Widen() and GetPhandle() into the base class
These functions are identical in both subclasses. Move them into the base
class.
Note: In fact there is a bug in one version, which was fixed by this patch:
https://patchwork.ozlabs.org/patch/651697/
Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r-- | tools/dtoc/fdt.py | 41 | ||||
-rw-r--r-- | tools/dtoc/fdt_fallback.py | 41 | ||||
-rw-r--r-- | tools/dtoc/fdt_normal.py | 42 |
3 files changed, 41 insertions, 83 deletions
diff --git a/tools/dtoc/fdt.py b/tools/dtoc/fdt.py index 329d03cc6b..964ef7cbb4 100644 --- a/tools/dtoc/fdt.py +++ b/tools/dtoc/fdt.py @@ -40,6 +40,47 @@ class PropBase: self.name = name self.value = None + def GetPhandle(self): + """Get a (single) phandle value from a property + + Gets the phandle valuie from a property and returns it as an integer + """ + return fdt_util.fdt32_to_cpu(self.value[:4]) + + def Widen(self, newprop): + """Figure out which property type is more general + + Given a current property and a new property, this function returns the + one that is less specific as to type. The less specific property will + be ble to represent the data in the more specific property. This is + used for things like: + + node1 { + compatible = "fred"; + value = <1>; + }; + node1 { + compatible = "fred"; + value = <1 2>; + }; + + He we want to use an int array for 'value'. The first property + suggests that a single int is enough, but the second one shows that + it is not. Calling this function with these two propertes would + update the current property to be like the second, since it is less + specific. + """ + if newprop.type < self.type: + self.type = newprop.type + + if type(newprop.value) == list and type(self.value) != list: + self.value = [self.value] + + if type(self.value) == list and len(newprop.value) > len(self.value): + val = self.GetEmpty(self.type) + while len(self.value) < len(newprop.value): + self.value.append(val) + def BytesToValue(self, bytes): """Converts a string of bytes into a type and value diff --git a/tools/dtoc/fdt_fallback.py b/tools/dtoc/fdt_fallback.py index 798c51097e..84a3db1e78 100644 --- a/tools/dtoc/fdt_fallback.py +++ b/tools/dtoc/fdt_fallback.py @@ -37,47 +37,6 @@ class Prop(PropBase): for byte in byte_list_str.strip().split(' ')] self.type, self.value = self.BytesToValue(''.join(self.bytes)) - def GetPhandle(self): - """Get a (single) phandle value from a property - - Gets the phandle valuie from a property and returns it as an integer - """ - return fdt_util.fdt32_to_cpu(self.value[:4]) - - def Widen(self, newprop): - """Figure out which property type is more general - - Given a current property and a new property, this function returns the - one that is less specific as to type. The less specific property will - be ble to represent the data in the more specific property. This is - used for things like: - - node1 { - compatible = "fred"; - value = <1>; - }; - node1 { - compatible = "fred"; - value = <1 2>; - }; - - He we want to use an int array for 'value'. The first property - suggests that a single int is enough, but the second one shows that - it is not. Calling this function with these two propertes would - update the current property to be like the second, since it is less - specific. - """ - if newprop.type < self.type: - self.type = newprop.type - - if type(newprop.value) == list and type(self.value) != list: - self.value = newprop.value - - if type(self.value) == list and len(newprop.value) > len(self.value): - val = fdt_util.GetEmpty(self.type) - while len(self.value) < len(newprop.value): - self.value.append(val) - class Node(NodeBase): """A device tree node diff --git a/tools/dtoc/fdt_normal.py b/tools/dtoc/fdt_normal.py index c7c86b8a88..6f019c1f12 100644 --- a/tools/dtoc/fdt_normal.py +++ b/tools/dtoc/fdt_normal.py @@ -38,48 +38,6 @@ class Prop(PropBase): return self.type, self.value = self.BytesToValue(bytes) - def GetPhandle(self): - """Get a (single) phandle value from a property - - Gets the phandle valuie from a property and returns it as an integer - """ - return fdt_util.fdt32_to_cpu(self.value[:4]) - - def Widen(self, newprop): - """Figure out which property type is more general - - Given a current property and a new property, this function returns the - one that is less specific as to type. The less specific property will - be ble to represent the data in the more specific property. This is - used for things like: - - node1 { - compatible = "fred"; - value = <1>; - }; - node1 { - compatible = "fred"; - value = <1 2>; - }; - - He we want to use an int array for 'value'. The first property - suggests that a single int is enough, but the second one shows that - it is not. Calling this function with these two propertes would - update the current property to be like the second, since it is less - specific. - """ - if newprop.type < self.type: - self.type = newprop.type - - if type(newprop.value) == list and type(self.value) != list: - self.value = [self.value] - - if type(self.value) == list and len(newprop.value) > len(self.value): - val = self.GetEmpty(self.type) - while len(self.value) < len(newprop.value): - self.value.append(val) - - class Node(NodeBase): """A device tree node |