fwnode_prope...ad_u32_array(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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 pass NULL and it'll just tell you how many values there are. Sneaky but valid.
  • nval β€” the size of the val array. 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 call fwnode_property_count_u32 instead of calling this function with val equals NULL and nval equals 0. 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 val was NULL. 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