| /linux/drivers/base/ |
| H A D | property.c | 24 of_fwnode_handle(dev->of_node) : dev->fwnode; in __dev_fwnode() 31 of_fwnode_handle(dev->of_node) : dev->fwnode; in __dev_fwnode_const() 63 bool fwnode_property_present(const struct fwnode_handle *fwnode, in fwnode_property_present() argument 68 if (IS_ERR_OR_NULL(fwnode)) in fwnode_property_present() 71 ret = fwnode_call_bool_op(fwnode, property_present, propname); in fwnode_property_present() 75 return fwnode_call_bool_op(fwnode->secondary, property_present, propname); in fwnode_property_present() 103 bool fwnode_property_read_bool(const struct fwnode_handle *fwnode, in fwnode_property_read_bool() argument 108 if (IS_ERR_OR_NULL(fwnode)) in fwnode_property_read_bool() 111 ret = fwnode_call_bool_op(fwnode, property_read_bool, propname); in fwnode_property_read_bool() 115 return fwnode_call_bool_op(fwnode->secondary, property_read_bool, propname); in fwnode_property_read_bool() [all …]
|
| /linux/drivers/acpi/ |
| H A D | property.c | 97 fwnode_init(&dn->fwnode, &acpi_data_fwnode_ops); in acpi_nondev_subnode_extract() 123 if (acpi_enumerate_nondev_subnodes(scope, desc, &dn->data, &dn->fwnode)) in acpi_nondev_subnode_extract() 756 acpi_device_data_of_node(const struct fwnode_handle *fwnode) in acpi_device_data_of_node() argument 758 if (is_acpi_device_node(fwnode)) { in acpi_device_data_of_node() 759 const struct acpi_device *adev = to_acpi_device_node(fwnode); in acpi_device_data_of_node() 762 if (is_acpi_data_node(fwnode)) { in acpi_device_data_of_node() 763 const struct acpi_data_node *dn = to_acpi_data_node(fwnode); in acpi_device_data_of_node() 775 int acpi_node_prop_get(const struct fwnode_handle *fwnode, in acpi_node_prop_get() argument 778 return acpi_data_get_property(acpi_device_data_of_node(fwnode), in acpi_node_prop_get() 827 acpi_fwnode_get_named_child_node(const struct fwnode_handle *fwnode, in acpi_fwnode_get_named_child_node() argument [all …]
|
| H A D | irq.c | 63 fwspec.fwnode = acpi_get_gsi_domain_id(gsi); in acpi_register_gsi() 64 if (WARN_ON(!fwspec.fwnode)) { in acpi_register_gsi() 132 result = &device->fwnode; in acpi_get_irq_source_fwhandle() 164 static inline void acpi_irq_parse_one_match(struct fwnode_handle *fwnode, in acpi_irq_parse_one_match() argument 170 if (!fwnode) in acpi_irq_parse_one_match() 174 ctx->fwspec->fwnode = fwnode; in acpi_irq_parse_one_match() 204 struct fwnode_handle *fwnode; in acpi_irq_parse_one_cb() local 213 fwnode = acpi_get_gsi_domain_id(irq->interrupts[ctx->index]); in acpi_irq_parse_one_cb() 214 acpi_irq_parse_one_match(fwnode, irq->interrupts[ctx->index], in acpi_irq_parse_one_cb() 226 fwnode = acpi_get_irq_source_fwhandle(&eirq->resource_source, in acpi_irq_parse_one_cb() [all …]
|
| H A D | viot.c | 31 struct fwnode_handle *fwnode; member 81 struct fwnode_handle *fwnode; in viot_get_pci_iommu_fwnode() local 90 fwnode = dev_fwnode(&pdev->dev); in viot_get_pci_iommu_fwnode() 91 if (!fwnode) { in viot_get_pci_iommu_fwnode() 96 fwnode = acpi_alloc_fwnode_static(); in viot_get_pci_iommu_fwnode() 97 if (!fwnode) { in viot_get_pci_iommu_fwnode() 101 set_primary_fwnode(&pdev->dev, fwnode); in viot_get_pci_iommu_fwnode() 103 viommu->fwnode = dev_fwnode(&pdev->dev); in viot_get_pci_iommu_fwnode() 123 viommu->fwnode = &adev->fwnode; in viot_get_mmio_iommu_fwnode() 314 if (device_match_fwnode(dev, viommu->fwnode)) in viot_dev_iommu_init() [all …]
|
| /linux/drivers/platform/x86/intel/ |
| H A D | chtwc_int33fe.c | 163 struct fwnode_handle *fwnode; in cht_int33fe_setup_dp() local 166 fwnode = software_node_fwnode(&displayport_node); in cht_int33fe_setup_dp() 167 if (!fwnode) in cht_int33fe_setup_dp() 183 fwnode->secondary = ERR_PTR(-ENODEV); in cht_int33fe_setup_dp() 184 data->dp->secondary = fwnode; in cht_int33fe_setup_dp() 202 struct fwnode_handle *fwnode = data; in cht_int33fe_put_swnode() local 204 fwnode_handle_put(fwnode); in cht_int33fe_put_swnode() 265 struct fwnode_handle *fwnode; in cht_int33fe_register_max17047() local 268 fwnode = software_node_fwnode(&max17047_node); in cht_int33fe_register_max17047() 269 if (!fwnode) in cht_int33fe_register_max17047() [all …]
|
| /linux/drivers/gpio/ |
| H A D | gpiolib-shared.c | 34 struct fwnode_handle *fwnode; member 51 struct fwnode_handle *fwnode; member 74 if (entry->fwnode == controller_node && entry->offset == offset) in gpio_shared_find_entry() 81 static struct gpio_shared_ref *gpio_shared_make_ref(struct fwnode_handle *fwnode, in gpio_shared_make_ref() argument 103 ref->fwnode = fwnode; in gpio_shared_make_ref() 130 entry->offset, fwnode_get_name(entry->fwnode)); in gpio_shared_setup_reset_proxy() 163 struct fwnode_handle *fwnode; in gpio_shared_of_traverse() local 225 fwnode = of_fwnode_handle(args.np); in gpio_shared_of_traverse() 228 entry = gpio_shared_find_entry(fwnode, offset); in gpio_shared_of_traverse() 234 entry->fwnode = fwnode_handle_get(fwnode); in gpio_shared_of_traverse() [all …]
|
| H A D | gpiolib.c | 63 struct fwnode_handle *fwnode = dev_fwnode(dev); in gpio_bus_match() local 69 if (fwnode && fwnode->dev != dev) in gpio_bus_match() 932 struct fwnode_handle *fwnode = dev_fwnode(&gdev->dev); in gpiochip_setup_dev() local 939 if (fwnode && !fwnode->dev) in gpiochip_setup_dev() 940 fwnode_dev_initialized(fwnode, false); in gpiochip_setup_dev() 960 int gpiochip_add_hog(struct gpio_chip *gc, struct fwnode_handle *fwnode) in gpiochip_add_hog() argument 982 argc = fwnode_property_count_u32(fwnode, "gpios"); in gpiochip_add_hog() 987 if (ret && is_of_node(fwnode)) in gpiochip_add_hog() 998 ret = fwnode_property_read_u32_array(fwnode, "gpios", gpios, argc); in gpiochip_add_hog() 1002 if (fwnode_property_present(fwnode, "input")) { in gpiochip_add_hog() [all …]
|
| /linux/samples/rust/ |
| H A D | rust_driver_platform.rs | 118 if dev.fwnode().is_some_and(|node| node.is_of_node()) { in probe() 128 let fwnode = dev.fwnode().ok_or(ENOENT)?; in properties_parse() 130 if let Ok(idx) = fwnode.property_match_string(c"compatible", c"test,rust-device") { in properties_parse() 135 let prop = fwnode.property_read::<CString>(name).required_by(dev)?; in properties_parse() 139 let prop = fwnode.property_read_bool(c"test,bool-prop"); in properties_parse() 142 if fwnode.property_present(c"test,u32-prop") { in properties_parse() 147 let prop = fwnode.property_read::<u32>(name).or(0x12); in properties_parse() 153 let _ = fwnode.property_read::<u32>(name).required_by(dev); in properties_parse() 156 let prop: u32 = fwnode in properties_parse() 125 let fwnode = dev.fwnode().ok_or(ENOENT)?; properties_parse() localVariable [all...] |
| /linux/drivers/irqchip/ |
| H A D | irq-sifive-plic.c | 71 struct fwnode_handle *fwnode; member 398 handler->priv->fwnode, hwirq); in plic_handle_irq() 490 handler->priv->fwnode, hwirq); in plic_handle_irq_cp100() 520 handler->priv->fwnode, cpu); in plic_starting_cpu() 547 static int plic_parse_nr_irqs_and_contexts(struct fwnode_handle *fwnode, in plic_parse_nr_irqs_and_contexts() argument 553 if (!is_of_node(fwnode)) { in plic_parse_nr_irqs_and_contexts() 554 rc = riscv_acpi_get_gsi_info(fwnode, gsi_base, id, nr_irqs, NULL); in plic_parse_nr_irqs_and_contexts() 556 pr_err("%pfwP: failed to find GSI mapping\n", fwnode); in plic_parse_nr_irqs_and_contexts() 562 pr_err("%pfwP: no PLIC context available\n", fwnode); in plic_parse_nr_irqs_and_contexts() 569 rc = of_property_read_u32(to_of_node(fwnode), "riscv,ndev", nr_irqs); in plic_parse_nr_irqs_and_contexts() [all …]
|
| H A D | irq-riscv-imsic-platform.c | 316 if (!imsic || !imsic->fwnode) { in imsic_irqdomain_init() 322 pr_err("%pfwP: irq domain already created\n", imsic->fwnode); in imsic_irqdomain_init() 327 info.fwnode = imsic->fwnode, in imsic_irqdomain_init() 330 pr_err("%pfwP: failed to create IMSIC base domain\n", imsic->fwnode); in imsic_irqdomain_init() 336 imsic->fwnode, global->hart_index_bits, global->guest_index_bits); in imsic_irqdomain_init() 338 imsic->fwnode, global->group_index_bits, global->group_index_shift); in imsic_irqdomain_init() 340 imsic->fwnode, global->nr_ids, &global->base_addr); in imsic_irqdomain_init() 342 imsic->fwnode, num_possible_cpus() * (global->nr_ids - 1)); in imsic_irqdomain_init() 347 static int imsic_platform_probe_common(struct fwnode_handle *fwnode) in imsic_platform_probe_common() argument 349 if (imsic && imsic->fwnode != fwnode) { in imsic_platform_probe_common() [all …]
|
| H A D | irq-gic-v2m.c | 67 struct fwnode_handle *fwnode; member 117 if (is_of_node(domain->parent->fwnode)) { in gicv2m_irq_gic_domain_alloc() 118 fwspec.fwnode = domain->parent->fwnode; in gicv2m_irq_gic_domain_alloc() 123 } else if (is_fwnode_irqchip(domain->parent->fwnode)) { in gicv2m_irq_gic_domain_alloc() 124 fwspec.fwnode = domain->parent->fwnode; in gicv2m_irq_gic_domain_alloc() 241 of_node_put(to_of_node(v2m->fwnode)); in gicv2m_teardown() 242 if (is_fwnode_irqchip(v2m->fwnode)) in gicv2m_teardown() 243 irq_domain_free_fwnode(v2m->fwnode); in gicv2m_teardown() 280 info.fwnode = v2m->fwnode; in gicv2m_allocate_domains() 289 static int __init gicv2m_init_one(struct fwnode_handle *fwnode, in gicv2m_init_one() argument [all …]
|
| H A D | irq-riscv-imsic-early.c | 78 pr_info("%pfwP: providing IPIs using interrupt %d\n", imsic->fwnode, IMSIC_IPI_ID); in imsic_ipi_domain_init() 185 static int __init imsic_early_probe(struct fwnode_handle *fwnode) in imsic_early_probe() argument 193 pr_err("%pfwP: Failed to find INTC domain\n", fwnode); in imsic_early_probe() 198 pr_err("%pfwP: Failed to create INTC mapping\n", fwnode); in imsic_early_probe() 205 pr_err("%pfwP: Failed to initialize IPI domain\n", fwnode); in imsic_early_probe() 227 struct fwnode_handle *fwnode = &node->fwnode; in imsic_early_dt_init() local 231 rc = imsic_setup_state(fwnode, NULL); in imsic_early_dt_init() 233 pr_err("%pfwP: failed to setup state (error %d)\n", fwnode, rc); in imsic_early_dt_init() 238 rc = imsic_early_probe(fwnode); in imsic_early_dt_init()
|
| H A D | irq-gic-v4.c | 131 vpe->fwnode = irq_domain_alloc_named_id_fwnode(name, idx); in its_alloc_vcpu_sgis() 132 if (!vpe->fwnode) in its_alloc_vcpu_sgis() 138 vpe->sgi_domain = irq_domain_create_linear(vpe->fwnode, 16, in its_alloc_vcpu_sgis() 152 if (vpe->fwnode) in its_alloc_vcpu_sgis() 153 irq_domain_free_fwnode(vpe->fwnode); in its_alloc_vcpu_sgis() 162 vm->fwnode = irq_domain_alloc_named_id_fwnode("GICv4-vpe", in its_alloc_vcpu_irqs() 164 if (!vm->fwnode) in its_alloc_vcpu_irqs() 168 vm->fwnode, vpe_domain_ops, in its_alloc_vcpu_irqs() 196 if (vm->fwnode) in its_alloc_vcpu_irqs() 197 irq_domain_free_fwnode(vm->fwnode); in its_alloc_vcpu_irqs() [all …]
|
| /linux/include/linux/ |
| H A D | irqdomain.h | 42 struct fwnode_handle *fwnode; member 179 struct fwnode_handle *fwnode; member 249 return to_of_node(d->fwnode); in irq_domain_get_of_node() 306 void irq_domain_free_fwnode(struct fwnode_handle *fwnode); 337 struct fwnode_handle *fwnode; member 364 struct irq_domain *irq_domain_create_simple(struct fwnode_handle *fwnode, unsigned int size, 367 struct irq_domain *irq_domain_create_legacy(struct fwnode_handle *fwnode, unsigned int size, 379 static inline bool is_fwnode_irqchip(const struct fwnode_handle *fwnode) in is_fwnode_irqchip() argument 381 return fwnode && fwnode->ops == &irqchip_fwnode_ops; in is_fwnode_irqchip() 386 static inline struct irq_domain *irq_find_matching_fwnode(struct fwnode_handle *fwnode, in irq_find_matching_fwnode() argument [all …]
|
| /linux/drivers/of/ |
| H A D | property.c | 1045 static struct fwnode_handle *of_fwnode_get(struct fwnode_handle *fwnode) in of_fwnode_get() argument 1047 return of_fwnode_handle(of_node_get(to_of_node(fwnode))); in of_fwnode_get() 1050 static void of_fwnode_put(struct fwnode_handle *fwnode) in of_fwnode_put() argument 1052 of_node_put(to_of_node(fwnode)); in of_fwnode_put() 1055 static bool of_fwnode_device_is_available(const struct fwnode_handle *fwnode) in of_fwnode_device_is_available() argument 1057 return of_device_is_available(to_of_node(fwnode)); in of_fwnode_device_is_available() 1060 static bool of_fwnode_device_dma_supported(const struct fwnode_handle *fwnode) in of_fwnode_device_dma_supported() argument 1066 of_fwnode_device_get_dma_attr(const struct fwnode_handle *fwnode) in of_fwnode_device_get_dma_attr() argument 1068 if (of_dma_is_coherent(to_of_node(fwnode))) in of_fwnode_device_get_dma_attr() 1074 static bool of_fwnode_property_present(const struct fwnode_handle *fwnode, in of_fwnode_property_present() argument [all …]
|
| /linux/drivers/reset/ |
| H A D | core.c | 101 if (rcdev->fwnode) in rcdev_name() 102 return fwnode_get_name(rcdev->fwnode); in rcdev_name() 132 if ((rcdev->of_node && rcdev->fwnode) || (rcdev->of_xlate && rcdev->fwnode_xlate)) in reset_controller_register() 135 if (rcdev->of_node && !rcdev->fwnode) in reset_controller_register() 136 rcdev->fwnode = of_fwnode_handle(rcdev->of_node); in reset_controller_register() 138 if (!rcdev->fwnode) { in reset_controller_register() 139 rcdev->fwnode = dev_fwnode(rcdev->dev); in reset_controller_register() 140 if (!rcdev->fwnode) in reset_controller_register() 969 static void reset_gpio_add_devlink(struct fwnode_handle *fwnode, in reset_gpio_add_devlink() argument 980 consumer = get_dev_from_fwnode(fwnode); in reset_gpio_add_devlink() [all …]
|
| /linux/drivers/usb/typec/ |
| H A D | mux.c | 27 static int switch_fwnode_match(struct device *dev, const void *fwnode) in switch_fwnode_match() argument 32 return device_match_fwnode(dev, fwnode); in switch_fwnode_match() 35 static void *typec_switch_match(const struct fwnode_handle *fwnode, in typec_switch_match() argument 50 if (id && !fwnode_property_present(fwnode, id)) in typec_switch_match() 58 dev = class_find_device(&typec_mux_class, NULL, fwnode, in typec_switch_match() 82 struct typec_switch *fwnode_typec_switch_get(struct fwnode_handle *fwnode) in fwnode_typec_switch_get() argument 94 count = fwnode_connection_find_matches(fwnode, "orientation-switch", in fwnode_typec_switch_get() 194 sw_dev->dev.fwnode = desc->fwnode; in typec_switch_register() 269 static int mux_fwnode_match(struct device *dev, const void *fwnode) in mux_fwnode_match() argument 274 return device_match_fwnode(dev, fwnode); in mux_fwnode_match() [all …]
|
| H A D | retimer.c | 20 static int retimer_fwnode_match(struct device *dev, const void *fwnode) in retimer_fwnode_match() argument 22 return is_typec_retimer(dev) && device_match_fwnode(dev, fwnode); in retimer_fwnode_match() 25 static void *typec_retimer_match(const struct fwnode_handle *fwnode, const char *id, void *data) in typec_retimer_match() argument 29 if (id && !fwnode_property_present(fwnode, id)) in typec_retimer_match() 32 dev = class_find_device(&retimer_class, NULL, fwnode, in typec_retimer_match() 47 struct typec_retimer *fwnode_typec_retimer_get(struct fwnode_handle *fwnode) in fwnode_typec_retimer_get() argument 51 retimer = fwnode_connection_find_match(fwnode, "retimer-switch", NULL, typec_retimer_match); in fwnode_typec_retimer_get() 121 retimer->dev.fwnode = desc->fwnode; in typec_retimer_register()
|
| /linux/drivers/usb/roles/ |
| H A D | class.c | 126 static void *usb_role_switch_match(const struct fwnode_handle *fwnode, const char *id, in usb_role_switch_match() argument 131 if (id && !fwnode_property_present(fwnode, id)) in usb_role_switch_match() 134 dev = class_find_device_by_fwnode(&role_class, fwnode); in usb_role_switch_match() 140 usb_role_switch_is_parent(struct fwnode_handle *fwnode) in usb_role_switch_is_parent() argument 145 if (!fwnode_device_is_compatible(fwnode, "usb-b-connector")) in usb_role_switch_is_parent() 148 parent = fwnode_get_parent(fwnode); in usb_role_switch_is_parent() 190 struct usb_role_switch *fwnode_usb_role_switch_get(struct fwnode_handle *fwnode) in fwnode_usb_role_switch_get() argument 194 sw = usb_role_switch_is_parent(fwnode); in fwnode_usb_role_switch_get() 196 sw = fwnode_connection_find_match(fwnode, "usb-role-switch", in fwnode_usb_role_switch_get() 228 usb_role_switch_find_by_fwnode(const struct fwnode_handle *fwnode) in usb_role_switch_find_by_fwnode() argument [all …]
|
| /linux/drivers/i2c/busses/ |
| H A D | i2c-gpio.c | 394 struct fwnode_handle *fwnode = dev_fwnode(dev); in i2c_gpio_create_scl() local 405 if (fwnode) { in i2c_gpio_create_scl() 406 ret = fwnode_property_get_reference_args(fwnode, "scl-gpios", in i2c_gpio_create_scl() 410 ret = fwnode_property_get_reference_args(fwnode, "gpios", in i2c_gpio_create_scl() 417 fwnode_handle_put(args.fwnode); in i2c_gpio_create_scl() 424 fwnode_handle_put(args.fwnode); in i2c_gpio_create_scl() 429 scl->args.fwnode = args.fwnode; in i2c_gpio_create_scl() 443 if (scl->args.fwnode) in i2c_gpio_free_scl() 444 fwnode_handle_put(scl->args.fwnode); in i2c_gpio_free_scl() 450 if (!a->args.fwnode || !b->args.fwnode || in i2c_gpio_scl_matches() [all …]
|
| /linux/drivers/leds/rgb/ |
| H A D | leds-pwm-multicolor.c | 74 struct fwnode_handle *fwnode; in iterate_subleds() local 80 fwnode_for_each_child_node(mcnode, fwnode) { in iterate_subleds() 82 pwmled->pwm = devm_fwnode_pwm_get(dev, fwnode, NULL); in iterate_subleds() 88 pwmled->active_low = fwnode_property_read_bool(fwnode, "active-low"); in iterate_subleds() 90 ret = fwnode_property_read_u32(fwnode, "color", &color); in iterate_subleds() 97 fwnode_property_read_u32(fwnode, "default-intensity", in iterate_subleds() 105 fwnode_handle_put(fwnode); in iterate_subleds() 156 init_data.fwnode = mcnode; in led_pwm_mc_probe()
|
| /linux/drivers/net/pcs/ |
| H A D | pcs-mtk-lynxi.c | 86 struct fwnode_handle *fwnode; member 130 struct fwnode_handle *fwnode = mpcs->fwnode, *pcs_fwnode; in mtk_pcs_config_polarity() local 135 if (!fwnode) in mtk_pcs_config_polarity() 138 if (fwnode_property_read_bool(fwnode, "mediatek,pnswap")) in mtk_pcs_config_polarity() 141 pcs_fwnode = fwnode_get_named_child_node(fwnode, "pcs"); in mtk_pcs_config_polarity() 314 struct fwnode_handle *fwnode, in mtk_pcs_lynxi_create() argument 352 mpcs->fwnode = fwnode_handle_get(fwnode); in mtk_pcs_lynxi_create() 370 fwnode_handle_put(mpcs->fwnode); in mtk_pcs_lynxi_destroy()
|
| /linux/drivers/power/supply/ |
| H A D | power_supply_core.c | 202 np = fwnode_find_reference(psy->dev.fwnode, "power-supplies", i++); in __power_supply_populate_supplied_from() 206 if (np == epsy->dev.fwnode) { in __power_supply_populate_supplied_from() 234 struct fwnode_handle *fwnode = data; in __power_supply_find_supply_from_node() local 237 if (epsy->dev.fwnode == fwnode) in __power_supply_find_supply_from_node() 272 if (!psy->dev.fwnode) in power_supply_check_supplies() 278 np = fwnode_find_reference(psy->dev.fwnode, "power-supplies", cnt++); in power_supply_check_supplies() 664 struct power_supply *power_supply_get_by_reference(struct fwnode_handle *fwnode, in power_supply_get_by_reference() argument 671 power_supply_fwnode = fwnode_find_reference(fwnode, property, 0); in power_supply_get_by_reference() 733 struct fwnode_handle *srcnode, *fwnode; in power_supply_get_battery_info() local 743 fwnode = fwnode_find_reference(srcnode, "monitored-battery", 0); in power_supply_get_battery_info() [all …]
|
| /linux/drivers/dpll/zl3073x/ |
| H A D | prop.c | 163 props->fwnode = pin_node; in zl3073x_prop_pin_fwnode_get() 239 fwnode_property_read_string(props->fwnode, "label", in zl3073x_pin_props_get() 245 if (!fwnode_property_read_string(props->fwnode, "connection-type", in zl3073x_pin_props_get() 264 props->esync_control = fwnode_property_read_bool(props->fwnode, in zl3073x_pin_props_get() 268 num_freqs = fwnode_property_count_u64(props->fwnode, in zl3073x_pin_props_get() 286 fwnode_property_read_u64_array(props->fwnode, in zl3073x_pin_props_get() 327 fwnode_handle_put(props->fwnode); in zl3073x_pin_props_get() 345 if (props->fwnode) in zl3073x_pin_props_put() 346 fwnode_handle_put(props->fwnode); in zl3073x_pin_props_put()
|
| /linux/drivers/leds/ |
| H A D | leds-tps6105x.c | 15 struct fwnode_handle *fwnode; member 22 fwnode_handle_put(priv->fwnode); in tps6105x_handle_put() 55 priv->fwnode = device_get_next_child_node(pdev->dev.parent, NULL); in tps6105x_led_probe() 64 init_data.fwnode = priv->fwnode; in tps6105x_led_probe()
|