Lines Matching refs:fwnode

91 	fwnode_init(&dn->fwnode, &acpi_data_fwnode_ops);
111 &dn->fwnode))
114 &dn->fwnode)) {
711 acpi_device_data_of_node(const struct fwnode_handle *fwnode)
713 if (is_acpi_device_node(fwnode)) {
714 const struct acpi_device *adev = to_acpi_device_node(fwnode);
717 if (is_acpi_data_node(fwnode)) {
718 const struct acpi_data_node *dn = to_acpi_data_node(fwnode);
726 * @fwnode: Firmware node to get the property from.
730 int acpi_node_prop_get(const struct fwnode_handle *fwnode,
733 return acpi_data_get_property(acpi_device_data_of_node(fwnode),
782 acpi_fwnode_get_named_child_node(const struct fwnode_handle *fwnode,
787 fwnode_for_each_child_node(fwnode, child) {
831 args->fwnode = ref_fwnode;
842 static struct fwnode_handle *acpi_parse_string_ref(const struct fwnode_handle *fwnode,
850 if (is_acpi_device_node(fwnode)) {
851 scope = to_acpi_device_node(fwnode)->handle;
852 } else if (is_acpi_data_node(fwnode)) {
853 scope = to_acpi_data_node(fwnode)->handle;
855 pr_debug("Bad node type for node %pfw\n", fwnode);
877 return &dn->fwnode;
882 * @fwnode: Firmware node to get the property from
916 int __acpi_node_get_property_reference(const struct fwnode_handle *fwnode,
927 data = acpi_device_data_of_node(fwnode);
948 args->fwnode = acpi_fwnode_handle(device);
956 ref_fwnode = acpi_parse_string_ref(fwnode, obj->string.pointer);
960 args->fwnode = ref_fwnode;
1006 ref_fwnode = acpi_parse_string_ref(fwnode,
1223 * @fwnode: Firmware node to get the property from.
1233 static int acpi_node_prop_read(const struct fwnode_handle *fwnode,
1237 return acpi_data_prop_read(acpi_device_data_of_node(fwnode),
1258 * acpi_get_next_subnode - Return the next child node handle for a fwnode
1259 * @fwnode: Firmware node to find the next child node for.
1262 struct fwnode_handle *acpi_get_next_subnode(const struct fwnode_handle *fwnode,
1265 struct acpi_device *adev = to_acpi_device_node(fwnode);
1278 const struct acpi_data_node *data = to_acpi_data_node(fwnode);
1288 * of the common fwnode shared by device_nodes and data_nodes.
1290 adev = to_acpi_device_node(fwnode);
1311 return &dn->fwnode;
1317 * acpi_node_get_parent - Return parent fwnode of this fwnode
1318 * @fwnode: Firmware node whose parent to get
1324 acpi_node_get_parent(const struct fwnode_handle *fwnode)
1326 if (is_acpi_data_node(fwnode)) {
1328 return to_acpi_data_node(fwnode)->parent;
1330 if (is_acpi_device_node(fwnode)) {
1333 parent = acpi_dev_parent(to_acpi_device_node(fwnode));
1345 static bool is_acpi_graph_node(struct fwnode_handle *fwnode,
1351 if (!len || !is_acpi_data_node(fwnode))
1354 name = to_acpi_data_node(fwnode)->name;
1356 return (fwnode_property_present(fwnode, "reg") &&
1358 fwnode_property_present(fwnode, str);
1363 * @fwnode: Pointer to the parent firmware node
1366 * Looks up next endpoint ACPI firmware node below a given @fwnode. Returns
1371 const struct fwnode_handle *fwnode, struct fwnode_handle *prev)
1378 port = fwnode_get_next_child_node(fwnode, port);
1398 port = fwnode_get_next_child_node(fwnode, port);
1420 * @fwnode: device fwnode
1428 const struct fwnode_handle *fwnode, const char *prop_name,
1433 fwnode_for_each_child_node(fwnode, child) {
1456 struct fwnode_handle *fwnode;
1468 if (!is_acpi_device_node(args.fwnode))
1469 return args.nargs ? NULL : args.fwnode;
1478 fwnode = args.fwnode;
1482 fwnode = acpi_graph_get_child_prop_value(fwnode, "port", port_nr);
1484 return acpi_graph_get_child_prop_value(fwnode, "endpoint", endpoint_nr);
1487 static bool acpi_fwnode_device_is_available(const struct fwnode_handle *fwnode)
1489 if (!is_acpi_device_node(fwnode))
1492 return acpi_device_is_present(to_acpi_device_node(fwnode));
1496 acpi_fwnode_device_get_match_data(const struct fwnode_handle *fwnode,
1502 static bool acpi_fwnode_device_dma_supported(const struct fwnode_handle *fwnode)
1504 return acpi_dma_supported(to_acpi_device_node(fwnode));
1508 acpi_fwnode_device_get_dma_attr(const struct fwnode_handle *fwnode)
1510 return acpi_get_dma_attr(to_acpi_device_node(fwnode));
1513 static bool acpi_fwnode_property_present(const struct fwnode_handle *fwnode,
1516 return !acpi_node_prop_get(fwnode, propname, NULL);
1520 acpi_fwnode_property_read_int_array(const struct fwnode_handle *fwnode,
1544 return acpi_node_prop_read(fwnode, propname, type, val, nval);
1548 acpi_fwnode_property_read_string_array(const struct fwnode_handle *fwnode,
1552 return acpi_node_prop_read(fwnode, propname, DEV_PROP_STRING,
1557 acpi_fwnode_get_reference_args(const struct fwnode_handle *fwnode,
1562 return __acpi_node_get_property_reference(fwnode, prop, index,
1566 static const char *acpi_fwnode_get_name(const struct fwnode_handle *fwnode)
1572 parent = fwnode_get_parent(fwnode);
1578 if (is_acpi_data_node(fwnode)) {
1579 const struct acpi_data_node *dn = to_acpi_data_node(fwnode);
1584 adev = to_acpi_device_node(fwnode);
1592 acpi_fwnode_get_name_prefix(const struct fwnode_handle *fwnode)
1597 parent = fwnode_get_parent(fwnode);
1613 acpi_fwnode_get_parent(struct fwnode_handle *fwnode)
1615 return acpi_node_get_parent(fwnode);
1618 static int acpi_fwnode_graph_parse_endpoint(const struct fwnode_handle *fwnode,
1621 struct fwnode_handle *port_fwnode = fwnode_get_parent(fwnode);
1623 endpoint->local_fwnode = fwnode;
1627 if (fwnode_property_read_u32(fwnode, "reg", &endpoint->id))
1628 fwnode_property_read_u32(fwnode, "endpoint", &endpoint->id);
1633 static int acpi_fwnode_irq_get(const struct fwnode_handle *fwnode,
1639 ret = acpi_irq_get(ACPI_HANDLE_FWNODE(fwnode), index, &res);
1678 bool is_acpi_device_node(const struct fwnode_handle *fwnode)
1680 return !IS_ERR_OR_NULL(fwnode) &&
1681 fwnode->ops == &acpi_device_fwnode_ops;
1685 bool is_acpi_data_node(const struct fwnode_handle *fwnode)
1687 return !IS_ERR_OR_NULL(fwnode) && fwnode->ops == &acpi_data_fwnode_ops;