diff options
author | Kevin Cernekee <cernekee@gmail.com> | 2015-04-09 16:05:15 -0400 |
---|---|---|
committer | Rob Herring <robh@kernel.org> | 2015-04-14 20:35:44 -0400 |
commit | cc7837867a559feba70fdf68eb53c24a84e3712f (patch) | |
tree | 109ba477dbe16219c56245b46e0908d78aa4a583 /drivers/of | |
parent | 37786c7fee40771d13901de129af7e084ed48b55 (diff) |
of/fdt: Add endianness helper function for early init code
Provide a libfdt-based equivalent for of_device_is_big_endian(), suitable
for use in the early_init_* functions.
Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Reviewed-by: Peter Hurley <peter@hurleysoftware.com>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Rob Herring <robh@kernel.org>
Diffstat (limited to 'drivers/of')
-rw-r--r-- | drivers/of/fdt.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c index 34bdc4de83d0..4b15aa163b6e 100644 --- a/drivers/of/fdt.c +++ b/drivers/of/fdt.c | |||
@@ -109,6 +109,25 @@ int of_fdt_is_compatible(const void *blob, | |||
109 | } | 109 | } |
110 | 110 | ||
111 | /** | 111 | /** |
112 | * of_fdt_is_big_endian - Return true if given node needs BE MMIO accesses | ||
113 | * @blob: A device tree blob | ||
114 | * @node: node to test | ||
115 | * | ||
116 | * Returns true if the node has a "big-endian" property, or if the kernel | ||
117 | * was compiled for BE *and* the node has a "native-endian" property. | ||
118 | * Returns false otherwise. | ||
119 | */ | ||
120 | bool of_fdt_is_big_endian(const void *blob, unsigned long node) | ||
121 | { | ||
122 | if (fdt_getprop(blob, node, "big-endian", NULL)) | ||
123 | return true; | ||
124 | if (IS_ENABLED(CONFIG_CPU_BIG_ENDIAN) && | ||
125 | fdt_getprop(blob, node, "native-endian", NULL)) | ||
126 | return true; | ||
127 | return false; | ||
128 | } | ||
129 | |||
130 | /** | ||
112 | * of_fdt_match - Return true if node matches a list of compatible values | 131 | * of_fdt_match - Return true if node matches a list of compatible values |
113 | */ | 132 | */ |
114 | int of_fdt_match(const void *blob, unsigned long node, | 133 | int of_fdt_match(const void *blob, unsigned long node, |