fwnode_prope...ad_u32_array(9)
π NAME π
fwnode_property_read_u32_array β okay so this one grabs a u32 array property off a firmware node and hands it to you. That's the whole vibe. β¨
So glad you're here bestie, this is the Kernel API Manual page and it's lowkey iconic.
β¨ SYNOPSIS β¨
int fwnode_property_read_u32_array (const struct fwnode_handle *fwnode ,
const char *propname , u32 *val , size_t nval );
π ARGUMENTS π
fwnodeβ the firmware node you're snooping on. The property lives here, bestie. π¦propnameβ the name of the property. Like, the name-name. What you're looking for.valβ the values get stored here π«Ά β¦ or you can passNULLand it'll just tell you how many values there are. Sneaky but valid.nvalβ the size of thevalarray. Respect the capacity, periodt.
πΈ DESCRIPTION πΈ
So what it does: it reads an array of u32 properties named propname from fwnode, and stores them into val if found. That's it. Slay. π
β οΈ Real talk though β it's recommended to callfwnode_property_count_u32instead of calling this function withvalequalsNULLandnvalequals0. Like, yeah you can do the other thing, but the count function is literally right there. It's giving "just use the right tool." π
π₯ RETURN π₯
Here's the vibe check on what comes back at ya:
- number of values β if
valwasNULL. Just the count, no data, no drama. β¨ 0β the property was found (success!). We love a win. π-EINVALβ the arguments you gave are not valid. Check yourself before you wreck yourself. π-ENODATAβ the property exists but has no value. Empty. Void. Nothing. π-EPROTOβ the property is not an array of numbers. Wrong shape entirely, not the moment.-EOVERFLOWβ the size of the property is not as expected. Too much going on, honestly.-ENXIOβ no suitable firmware interface is present. Nobody home. π
π§ SEE ALSO π§
Kernel file ./drivers/base/property.c
device_property_present(9), fwnode_property_present(9), device_property_read_bool(9), fwnode_property_read_bool(9), device_property_read_u8_array(9), device_property_read_u16_array(9), device_property_read_u32_array(9), device_property_read_u64_array(9), device_property_read_string_array(9), device_property_read_string(9), device_property_match_string(9), fwnode_property_read_u8_array(9), fwnode_property_read_u16_array(9), fwnode_property_read_u64_array(9), fwnode_property_read_string_array(9), fwnode_property_read_string(9), fwnode_property_match_string(9), fwnode_property_match_property_string(9), fwnode_property_get_reference_args(9), fwnode_find_reference(9), fwnode_get_name(9), fwnode_get_name_prefix(9), fwnode_name_eq(9), fwnode_get_parent(9), fwnode_get_next_parent(9), fwnode_count_parents(9), fwnode_get_nth_parent(9), fwnode_get_next_child_node(9), fwnode_get_next_available_child_node(9), device_get_next_child_node(9), fwnode_get_named_child_node(9), device_get_named_child_node(9), fwnode_handle_get(9), fwnode_device_is_available(9), fwnode_get_child_node_count(9), fwnode_get_named_child_node_count(9), fwnode_get_phy_mode(9), device_get_phy_mode(9), fwnode_iomap(9), fwnode_irq_get(9), fwnode_irq_get_byname(9), fwnode_graph_get_next_endpoint(9), fwnode_graph_get_port_parent(9), fwnode_graph_get_remote_port_parent(9), fwnode_graph_get_remote_port(9), fwnode_graph_get_remote_endpoint(9), fwnode_graph_get_endpoint_by_id(9), fwnode_graph_get_endpoint_count(9), fwnode_graph_parse_endpoint(9), fwnode_connection_find_match(9), fwnode_connection_find_matches(9)
okay that's the whole page bestie, go read some properties π
This one came out of ./drivers/base, dated October 2026, and it's the fwnode_prope...ad_u32_array(9) page from the Kernel API Manual β mwah, love that for us. π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms