diff options
Diffstat (limited to 'arch/sparc')
-rw-r--r-- | arch/sparc/kernel/prom.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/arch/sparc/kernel/prom.c b/arch/sparc/kernel/prom.c index 946ce6d15819..4b06dcb00ebd 100644 --- a/arch/sparc/kernel/prom.c +++ b/arch/sparc/kernel/prom.c | |||
@@ -190,6 +190,36 @@ int of_getintprop_default(struct device_node *np, const char *name, int def) | |||
190 | } | 190 | } |
191 | EXPORT_SYMBOL(of_getintprop_default); | 191 | EXPORT_SYMBOL(of_getintprop_default); |
192 | 192 | ||
193 | int of_n_addr_cells(struct device_node *np) | ||
194 | { | ||
195 | int* ip; | ||
196 | do { | ||
197 | if (np->parent) | ||
198 | np = np->parent; | ||
199 | ip = of_get_property(np, "#address-cells", NULL); | ||
200 | if (ip != NULL) | ||
201 | return *ip; | ||
202 | } while (np->parent); | ||
203 | /* No #address-cells property for the root node, default to 2 */ | ||
204 | return 2; | ||
205 | } | ||
206 | EXPORT_SYMBOL(of_n_addr_cells); | ||
207 | |||
208 | int of_n_size_cells(struct device_node *np) | ||
209 | { | ||
210 | int* ip; | ||
211 | do { | ||
212 | if (np->parent) | ||
213 | np = np->parent; | ||
214 | ip = of_get_property(np, "#size-cells", NULL); | ||
215 | if (ip != NULL) | ||
216 | return *ip; | ||
217 | } while (np->parent); | ||
218 | /* No #size-cells property for the root node, default to 1 */ | ||
219 | return 1; | ||
220 | } | ||
221 | EXPORT_SYMBOL(of_n_size_cells); | ||
222 | |||
193 | int of_set_property(struct device_node *dp, const char *name, void *val, int len) | 223 | int of_set_property(struct device_node *dp, const char *name, void *val, int len) |
194 | { | 224 | { |
195 | struct property **prevp; | 225 | struct property **prevp; |