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

Commit 97e873e5 authored by Stephen Rothwell's avatar Stephen Rothwell
Browse files

Start split out of common open firmware code



This creates drivers/of/base.c (depending on CONFIG_OF) and puts
the first trivially common bits from the prom.c files into it.

Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
Acked-by: default avatarPaul Mackerras <paulus@samba.org>
Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 76c1ce78
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -92,6 +92,9 @@ config ARCH_MAY_HAVE_PC_FDC
config PPC_OF
	def_bool y

config OF
	def_bool y

config PPC_UDBG_16550
	bool
	default n
+0 −41
Original line number Diff line number Diff line
@@ -1056,35 +1056,6 @@ void __init early_init_devtree(void *params)
	DBG(" <- early_init_devtree()\n");
}

int of_n_addr_cells(struct device_node* np)
{
	const 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 1 */
	return 1;
}
EXPORT_SYMBOL(of_n_addr_cells);

int of_n_size_cells(struct device_node* np)
{
	const 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);

/** Checks if the given "compat" string matches one of the strings in
 * the device's "compatible" property
@@ -1562,18 +1533,6 @@ struct property *of_find_property(const struct device_node *np,
}
EXPORT_SYMBOL(of_find_property);

/*
 * Find a property with a given name for a given node
 * and return the value.
 */
const void *of_get_property(const struct device_node *np, const char *name,
			 int *lenp)
{
	struct property *pp = of_find_property(np,name,lenp);
	return pp ? pp->value : NULL;
}
EXPORT_SYMBOL(of_get_property);

/*
 * Add a property to a node
 */
+3 −0
Original line number Diff line number Diff line
@@ -24,6 +24,9 @@ config GENERIC_ISA_DMA
config ARCH_NO_VIRT_TO_BUS
	def_bool y

config OF
	def_bool y

source "init/Kconfig"

menu "General machine setup"
+0 −42
Original line number Diff line number Diff line
@@ -168,18 +168,6 @@ struct property *of_find_property(const struct device_node *np,
}
EXPORT_SYMBOL(of_find_property);

/*
 * Find a property with a given name for a given node
 * and return the value.
 */
const void *of_get_property(const struct device_node *np, const char *name,
			    int *lenp)
{
	struct property *pp = of_find_property(np,name,lenp);
	return pp ? pp->value : NULL;
}
EXPORT_SYMBOL(of_get_property);

int of_getintprop_default(struct device_node *np, const char *name, int def)
{
	struct property *prop;
@@ -193,36 +181,6 @@ int of_getintprop_default(struct device_node *np, const char *name, int def)
}
EXPORT_SYMBOL(of_getintprop_default);

int of_n_addr_cells(struct device_node *np)
{
	const 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)
{
	const 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)
{
	struct property **prevp;
+3 −0
Original line number Diff line number Diff line
@@ -65,6 +65,9 @@ config AUDIT_ARCH
config ARCH_NO_VIRT_TO_BUS
	def_bool y

config OF
	def_bool y

choice
	prompt "Kernel page size"
	default SPARC64_PAGE_SIZE_8KB
Loading