Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3ae9a348 authored by David S. Miller's avatar David S. Miller Committed by David S. Miller
Browse files

[SPARC]: Add of_n_{addr,size}_cells().

parent 286bbe87
Loading
Loading
Loading
Loading
+30 −0
Original line number Original line Diff line number Diff line
@@ -190,6 +190,36 @@ int of_getintprop_default(struct device_node *np, const char *name, int def)
}
}
EXPORT_SYMBOL(of_getintprop_default);
EXPORT_SYMBOL(of_getintprop_default);


int of_n_addr_cells(struct device_node *np)
{
	int* ip;
	do {
		if (np->parent)
			np = np->parent;
		ip = of_get_property(np, "#address-cells", NULL);
		if (ip != NULL)
			return *ip;
	} while (np->parent);
	/* No #address-cells property for the root node, default to 2 */
	return 2;
}
EXPORT_SYMBOL(of_n_addr_cells);

int of_n_size_cells(struct device_node *np)
{
	int* ip;
	do {
		if (np->parent)
			np = np->parent;
		ip = of_get_property(np, "#size-cells", NULL);
		if (ip != NULL)
			return *ip;
	} while (np->parent);
	/* No #size-cells property for the root node, default to 1 */
	return 1;
}
EXPORT_SYMBOL(of_n_size_cells);

int of_set_property(struct device_node *dp, const char *name, void *val, int len)
int of_set_property(struct device_node *dp, const char *name, void *val, int len)
{
{
	struct property **prevp;
	struct property **prevp;
+30 −0
Original line number Original line Diff line number Diff line
@@ -190,6 +190,36 @@ int of_getintprop_default(struct device_node *np, const char *name, int def)
}
}
EXPORT_SYMBOL(of_getintprop_default);
EXPORT_SYMBOL(of_getintprop_default);


int of_n_addr_cells(struct device_node *np)
{
	int* ip;
	do {
		if (np->parent)
			np = np->parent;
		ip = of_get_property(np, "#address-cells", NULL);
		if (ip != NULL)
			return *ip;
	} while (np->parent);
	/* No #address-cells property for the root node, default to 2 */
	return 2;
}
EXPORT_SYMBOL(of_n_addr_cells);

int of_n_size_cells(struct device_node *np)
{
	int* ip;
	do {
		if (np->parent)
			np = np->parent;
		ip = of_get_property(np, "#size-cells", NULL);
		if (ip != NULL)
			return *ip;
	} while (np->parent);
	/* No #size-cells property for the root node, default to 1 */
	return 1;
}
EXPORT_SYMBOL(of_n_size_cells);

int of_set_property(struct device_node *dp, const char *name, void *val, int len)
int of_set_property(struct device_node *dp, const char *name, void *val, int len)
{
{
	struct property **prevp;
	struct property **prevp;
+2 −0
Original line number Original line Diff line number Diff line
@@ -101,6 +101,8 @@ extern int of_set_property(struct device_node *node, const char *name, void *val
extern int of_getintprop_default(struct device_node *np,
extern int of_getintprop_default(struct device_node *np,
				 const char *name,
				 const char *name,
				 int def);
				 int def);
extern int of_n_addr_cells(struct device_node *np);
extern int of_n_size_cells(struct device_node *np);


extern void prom_build_devicetree(void);
extern void prom_build_devicetree(void);


+2 −0
Original line number Original line Diff line number Diff line
@@ -101,6 +101,8 @@ extern int of_set_property(struct device_node *node, const char *name, void *val
extern int of_getintprop_default(struct device_node *np,
extern int of_getintprop_default(struct device_node *np,
				 const char *name,
				 const char *name,
				 int def);
				 int def);
extern int of_n_addr_cells(struct device_node *np);
extern int of_n_size_cells(struct device_node *np);


extern void prom_build_devicetree(void);
extern void prom_build_devicetree(void);