dm: core: Support writing a boolean

Add functions to write a boolean property. This involves deleting it if
the value is false.

Add a new ofnode_has_property() as well. Add a comment about the behaviour
of of_read_property() when the property value is empty.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass
2023-09-26 08:14:44 -06:00
committed by Tom Rini
parent 62b1db3377
commit d9216c8683
3 changed files with 90 additions and 3 deletions

View File

@@ -1037,10 +1037,19 @@ int ofnode_decode_panel_timing(ofnode node,
* @node: node to read
* @propname: property to read
* @lenp: place to put length on success
* Return: pointer to property, or NULL if not found
* Return: pointer to property value, or NULL if not found or empty
*/
const void *ofnode_get_property(ofnode node, const char *propname, int *lenp);
/**
* ofnode_has_property() - check if a node has a named property
*
* @node: node to read
* @propname: property to read
* Return: true if the property exists in the node, false if not
*/
bool ofnode_has_property(ofnode node, const char *propname);
/**
* ofnode_first_property()- get the reference of the first property
*
@@ -1452,6 +1461,27 @@ int ofnode_write_string(ofnode node, const char *propname, const char *value);
*/
int ofnode_write_u32(ofnode node, const char *propname, u32 value);
/**
* ofnode_write_bool() - Set a boolean property of an ofnode
*
* This either adds or deleted a property with a zero-length value
*
* @node: The node for whose string property should be set
* @propname: The name of the string property to set
* @value: The new value of the boolean property
* Return: 0 if successful, -ve on error
*/
int ofnode_write_bool(ofnode node, const char *propname, bool value);
/**
* ofnode_delete_prop() - Delete a property
*
* @node: Node containing the property to delete
* @propname: Name of property to delete
* Return: 0 if successful, -ve on error
*/
int ofnode_delete_prop(ofnode node, const char *propname);
/**
* ofnode_set_enabled() - Enable or disable a device tree node given by its
* ofnode