mirror of
https://github.com/adulau/aha.git
synced 2024-12-27 19:26:25 +00:00
[POWERPC] Add of_device_is_available function
IEEE 1275 defined a standard "status" property to indicate the operational status of a device. The property has four possible values: okay, disabled, fail, fail-xxx. The absence of this property means the operational status of the device is unknown or okay. This adds a function called of_device_is_available that checks the state of the status property of a device. If the property is absent or set to either "okay" or "ok", it returns 1. Otherwise it returns 0. Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
6ccf61f94f
commit
834d97d452
2 changed files with 27 additions and 0 deletions
|
@ -116,6 +116,32 @@ int of_device_is_compatible(const struct device_node *device,
|
|||
}
|
||||
EXPORT_SYMBOL(of_device_is_compatible);
|
||||
|
||||
/**
|
||||
* of_device_is_available - check if a device is available for use
|
||||
*
|
||||
* @device: Node to check for availability
|
||||
*
|
||||
* Returns 1 if the status property is absent or set to "okay" or "ok",
|
||||
* 0 otherwise
|
||||
*/
|
||||
int of_device_is_available(const struct device_node *device)
|
||||
{
|
||||
const char *status;
|
||||
int statlen;
|
||||
|
||||
status = of_get_property(device, "status", &statlen);
|
||||
if (status == NULL)
|
||||
return 1;
|
||||
|
||||
if (statlen > 0) {
|
||||
if (!strcmp(status, "okay") || !strcmp(status, "ok"))
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(of_device_is_available);
|
||||
|
||||
/**
|
||||
* of_get_parent - Get a node's parent if any
|
||||
* @node: Node to get parent
|
||||
|
|
|
@ -62,6 +62,7 @@ extern struct property *of_find_property(const struct device_node *np,
|
|||
int *lenp);
|
||||
extern int of_device_is_compatible(const struct device_node *device,
|
||||
const char *);
|
||||
extern int of_device_is_available(const struct device_node *device);
|
||||
extern const void *of_get_property(const struct device_node *node,
|
||||
const char *name,
|
||||
int *lenp);
|
||||
|
|
Loading…
Reference in a new issue