fwnode_prop...string_array(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ fwnode_property_read_string_array ✨

okay bestie so this is a page from the Kernel API Manual (yes, that manual, the big one) and honestly? it's giving "one function that does exactly what it says" and i respect it so much. it's fwnode_property_read_string_array(9) and it's the girl who walks into the firmware node party and just... reads the string array. πŸŽ€


🌸 NAME 🌸

fwnode_property_read_string_array β€” return string array property of a node

like. literally that. it returns the string array property of a node. no notes, she ate. πŸ’…


✨ SYNOPSIS ✨

int fwnode_property_read_string_array (const struct fwnode_handle
*fwnode , const char *propname , const char **val , size_t nval );

that's the whole deal, bestie β€” one call, four things you hand her, and she comes back with an int that tells you how it went. πŸ¦‹


🫢 ARGUMENTS 🫢

here's what you're feeding her, one by one:

  • fwnode β€” the firmware node you're grabbing the property of. like, which node are we interrogating today? that one. πŸ‘‘
  • propname β€” the name of the property. what are you looking for? say it with your chest.
  • val β€” the values get stored here. or, plot twist, pass NULL and instead you get back the number of values. main character energy honestly. 😭
  • nval β€” the size of the val array. how much room you're giving her.

πŸ’– DESCRIPTION πŸ’–

so the vibe is: read a string list property propname from the given firmware node, and store them to val if found. simple, iconic, no cap. 🧚

πŸ’€ lowkey important: it's recommended to call fwnode_property_string_array_count instead of calling this function with val equals NULL and nval equals 0. like, there's a designated girl for that job, just let her do it. use the right function fr fr.

🌈 RETURN 🌈

what she gives you back β€” and bestie, she has range:

  • number of values read on success, if val is non-NULL πŸ“–
  • number of values available on success, if val is NULL πŸ”’
  • -EINVAL β€” if given arguments are not valid πŸ™ˆ
  • -ENODATA β€” if the property does not have a value πŸ«₯
  • -EPROTO or -EILSEQ β€” if the property is not an array of strings 😀
  • -EOVERFLOW β€” if the size of the property is not as expected πŸ’€
  • -ENXIO β€” if no suitable firmware interface is present 🌫️

πŸ”₯ SEE ALSO πŸ”₯

so. many. siblings. the whole family tree coming to the function, honestly β€” and every single one of them is here:

Kernel file ./drivers/base/property.c plus: 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_u64_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 family. 🫢✨


okay that's the page, bestie!! this lil drop came out of ./drivers/base in October 2026 β€” that's the source and the date, and yes i'm telling you because it's in the fine print at the bottom and we don't skip the fine print in this house πŸ’œπŸŽ€ slay, bye! 🌸

πŸ“¦ where this page comes from