fwnode_prope...ad_u64_array(9)
π fwnode_property_read_u64_array β from the Kernel API Manual, section 9
Okay bestie, gather round, because this one is a little API with big main-character energy. It's a kernel function, it lives in section 9 of the manual, and yes, the whole vibe is "get me an array of u64s out of a firmware node, thanks."
β¨ NAME β¨
fwnode_property_read_u64_array β grab a u64 array property off a firmware node. That's it, that's the whole job. π
πΈ SYNOPSIS πΈ
int fwnode_property_read_u64_array (const struct fwnode_handle *fwnode ,
const char *propname , u64 *val , size_t nval );
Look at that signature. Four params, returns an int, extremely demure, very mindful. π
π¦ ARGUMENTS π¦
fwnodeβ the firmware node you're pulling the property from. Like, the source of truth, the origin story, the node in question.propnameβ the name of the property. The actual string you're asking for. iykyk.valβ the values land in here. OR you can passNULLand get back the number of values instead. Sneaky little dual-purpose pointer, we love a versatile icon.nvalβ the size of thevalarray. Know your capacity, bestie.
π DESCRIPTION π
So here's the tea: this reads an array of u64 properties with propname from fwnode, and stores them into val if they're found. Simple. Clean. Slays. β¨
β οΈ Real talk though β it's recommended to callfwnode_property_count_u64instead of calling this function withvalequal toNULLandnvalequal to0. Like, you can do the other thing, but the docs are gently begging you to use the dedicated counter. Respect the recommendation, no cap.
π₯ RETURN π₯
The return value is giving "I contain multitudes," so let's break it all the way down:
- The number of values, if
valwasNULLβ so you can ask "how many?" without a real array. 0if the property was found (success!) π-EINVALif the given arguments are not valid β like, invalid arguments, bestie, do better.-ENODATAif the property does not have a value.-EPROTOif the property is not an array of numbers.-EOVERFLOWif the size of the property is not as expected.-ENXIOif no suitable firmware interface is present.
Every one of those is a different flavour of "nope," and now you know exactly which nope you got. π΅οΈββοΈ
π SEE ALSO π
Kernel file: ./drivers/base/property.c
Okay this list is long long, but we do not skip. Not one. Here's the whole friend group:
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_u32_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)
Like I said. The whole group chat. π«Ά
π§ Sign-off π§
This little masterpiece comes to you from ./drivers/base, dated October 2026, and it's fwnode_prope...ad_u64_array(9) in case you need to cite your sources. Go read your u64 arrays responsibly, bestie. ππβ
π¦ 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