/Linux-v5.4/include/linux/ |
D | fwnode.h | 43 struct fwnode_handle *fwnode; member 70 struct fwnode_handle *(*get)(struct fwnode_handle *fwnode); 71 void (*put)(struct fwnode_handle *fwnode); 72 bool (*device_is_available)(const struct fwnode_handle *fwnode); 73 const void *(*device_get_match_data)(const struct fwnode_handle *fwnode, 75 bool (*property_present)(const struct fwnode_handle *fwnode, 77 int (*property_read_int_array)(const struct fwnode_handle *fwnode, 85 struct fwnode_handle *(*get_parent)(const struct fwnode_handle *fwnode); 87 (*get_next_child_node)(const struct fwnode_handle *fwnode, 90 (*get_named_child_node)(const struct fwnode_handle *fwnode, [all …]
|
D | property.h | 52 bool fwnode_device_is_available(const struct fwnode_handle *fwnode); 53 bool fwnode_property_present(const struct fwnode_handle *fwnode, 55 int fwnode_property_read_u8_array(const struct fwnode_handle *fwnode, 58 int fwnode_property_read_u16_array(const struct fwnode_handle *fwnode, 61 int fwnode_property_read_u32_array(const struct fwnode_handle *fwnode, 64 int fwnode_property_read_u64_array(const struct fwnode_handle *fwnode, 67 int fwnode_property_read_string_array(const struct fwnode_handle *fwnode, 70 int fwnode_property_read_string(const struct fwnode_handle *fwnode, 72 int fwnode_property_match_string(const struct fwnode_handle *fwnode, 74 int fwnode_property_get_reference_args(const struct fwnode_handle *fwnode, [all …]
|
D | irqdomain.h | 64 struct fwnode_handle *fwnode; member 169 struct fwnode_handle *fwnode; member 218 return to_of_node(d->fwnode); in irq_domain_get_of_node() 249 void irq_domain_free_fwnode(struct fwnode_handle *fwnode); 250 struct irq_domain *__irq_domain_add(struct fwnode_handle *fwnode, int size, 276 return node ? &node->fwnode : NULL; in of_node_to_fwnode() 281 static inline bool is_fwnode_irqchip(struct fwnode_handle *fwnode) in is_fwnode_irqchip() argument 283 return fwnode && fwnode->ops == &irqchip_fwnode_ops; in is_fwnode_irqchip() 290 struct irq_domain *irq_find_matching_fwnode(struct fwnode_handle *fwnode, in irq_find_matching_fwnode() argument 294 .fwnode = fwnode, in irq_find_matching_fwnode() [all …]
|
D | acpi.h | 43 #define ACPI_COMPANION(dev) to_acpi_device_node((dev)->fwnode) 47 #define ACPI_HANDLE_FWNODE(fwnode) \ argument 48 acpi_device_handle(to_acpi_device_node(fwnode)) 52 struct fwnode_handle *fwnode; in acpi_alloc_fwnode_static() local 54 fwnode = kzalloc(sizeof(struct fwnode_handle), GFP_KERNEL); in acpi_alloc_fwnode_static() 55 if (!fwnode) in acpi_alloc_fwnode_static() 58 fwnode->ops = &acpi_static_fwnode_ops; in acpi_alloc_fwnode_static() 60 return fwnode; in acpi_alloc_fwnode_static() 63 static inline void acpi_free_fwnode_static(struct fwnode_handle *fwnode) in acpi_free_fwnode_static() argument 65 if (WARN_ON(!is_acpi_static_node(fwnode))) in acpi_free_fwnode_static() [all …]
|
/Linux-v5.4/drivers/base/ |
D | property.c | 24 &dev->of_node->fwnode : dev->fwnode; in dev_fwnode() 46 bool fwnode_property_present(const struct fwnode_handle *fwnode, in fwnode_property_present() argument 51 ret = fwnode_call_bool_op(fwnode, property_present, propname); in fwnode_property_present() 52 if (ret == false && !IS_ERR_OR_NULL(fwnode) && in fwnode_property_present() 53 !IS_ERR_OR_NULL(fwnode->secondary)) in fwnode_property_present() 54 ret = fwnode_call_bool_op(fwnode->secondary, property_present, in fwnode_property_present() 229 static int fwnode_property_read_int_array(const struct fwnode_handle *fwnode, in fwnode_property_read_int_array() argument 236 ret = fwnode_call_int_op(fwnode, property_read_int_array, propname, in fwnode_property_read_int_array() 238 if (ret == -EINVAL && !IS_ERR_OR_NULL(fwnode) && in fwnode_property_read_int_array() 239 !IS_ERR_OR_NULL(fwnode->secondary)) in fwnode_property_read_int_array() [all …]
|
D | devcon.c | 16 fwnode_graph_devcon_match(struct fwnode_handle *fwnode, const char *con_id, in fwnode_graph_devcon_match() argument 23 fwnode_graph_for_each_endpoint(fwnode, ep) { in fwnode_graph_devcon_match() 24 con.fwnode = fwnode_graph_get_remote_port_parent(ep); in fwnode_graph_devcon_match() 25 if (!fwnode_device_is_available(con.fwnode)) in fwnode_graph_devcon_match() 29 fwnode_handle_put(con.fwnode); in fwnode_graph_devcon_match() 39 fwnode_devcon_match(struct fwnode_handle *fwnode, const char *con_id, in fwnode_devcon_match() argument 47 con.fwnode = fwnode_find_reference(fwnode, con_id, i); in fwnode_devcon_match() 48 if (IS_ERR(con.fwnode)) in fwnode_devcon_match() 52 fwnode_handle_put(con.fwnode); in fwnode_devcon_match() 71 void *fwnode_connection_find_match(struct fwnode_handle *fwnode, in fwnode_connection_find_match() argument [all …]
|
D | swnode.c | 17 struct fwnode_handle fwnode; member 36 bool is_software_node(const struct fwnode_handle *fwnode) in is_software_node() argument 38 return !IS_ERR_OR_NULL(fwnode) && fwnode->ops == &software_node_ops; in is_software_node() 48 struct swnode, fwnode) : NULL; \ 74 const struct software_node *to_software_node(struct fwnode_handle *fwnode) in to_software_node() argument 76 struct swnode *swnode = to_swnode(fwnode); in to_software_node() 86 return swnode ? &swnode->fwnode : NULL; in software_node_fwnode() 473 static struct fwnode_handle *software_node_get(struct fwnode_handle *fwnode) in software_node_get() argument 475 struct swnode *swnode = to_swnode(fwnode); in software_node_get() 479 return &swnode->fwnode; in software_node_get() [all …]
|
/Linux-v5.4/drivers/media/v4l2-core/ |
D | v4l2-fwnode.c | 129 static int v4l2_fwnode_endpoint_parse_csi2_bus(struct fwnode_handle *fwnode, in v4l2_fwnode_endpoint_parse_csi2_bus() argument 166 rval = fwnode_property_count_u32(fwnode, "data-lanes"); in v4l2_fwnode_endpoint_parse_csi2_bus() 171 fwnode_property_read_u32_array(fwnode, "data-lanes", array, in v4l2_fwnode_endpoint_parse_csi2_bus() 194 rval = fwnode_property_count_u32(fwnode, "lane-polarities"); in v4l2_fwnode_endpoint_parse_csi2_bus() 205 if (!fwnode_property_read_u32(fwnode, "clock-lanes", &v)) { in v4l2_fwnode_endpoint_parse_csi2_bus() 218 if (fwnode_property_present(fwnode, "clock-noncontinuous")) { in v4l2_fwnode_endpoint_parse_csi2_bus() 248 fwnode_property_read_u32_array(fwnode, in v4l2_fwnode_endpoint_parse_csi2_bus() 273 v4l2_fwnode_endpoint_parse_parallel_bus(struct fwnode_handle *fwnode, in v4l2_fwnode_endpoint_parse_parallel_bus() argument 284 if (!fwnode_property_read_u32(fwnode, "hsync-active", &v)) { in v4l2_fwnode_endpoint_parse_parallel_bus() 292 if (!fwnode_property_read_u32(fwnode, "vsync-active", &v)) { in v4l2_fwnode_endpoint_parse_parallel_bus() [all …]
|
/Linux-v5.4/drivers/acpi/ |
D | property.c | 76 dn->fwnode.ops = &acpi_data_fwnode_ops; in acpi_nondev_subnode_extract() 96 &dn->fwnode)) in acpi_nondev_subnode_extract() 99 &dn->fwnode)) { in acpi_nondev_subnode_extract() 536 acpi_device_data_of_node(const struct fwnode_handle *fwnode) in acpi_device_data_of_node() argument 538 if (is_acpi_device_node(fwnode)) { in acpi_device_data_of_node() 539 const struct acpi_device *adev = to_acpi_device_node(fwnode); in acpi_device_data_of_node() 541 } else if (is_acpi_data_node(fwnode)) { in acpi_device_data_of_node() 542 const struct acpi_data_node *dn = to_acpi_data_node(fwnode); in acpi_device_data_of_node() 554 int acpi_node_prop_get(const struct fwnode_handle *fwnode, in acpi_node_prop_get() argument 557 return acpi_data_get_property(acpi_device_data_of_node(fwnode), in acpi_node_prop_get() [all …]
|
D | irq.c | 61 fwspec.fwnode = acpi_gsi_domain_id; in acpi_register_gsi() 114 result = &device->fwnode; in acpi_get_irq_source_fwhandle() 145 static inline void acpi_irq_parse_one_match(struct fwnode_handle *fwnode, in acpi_irq_parse_one_match() argument 150 if (!fwnode) in acpi_irq_parse_one_match() 154 ctx->fwspec->fwnode = fwnode; in acpi_irq_parse_one_match() 184 struct fwnode_handle *fwnode; in acpi_irq_parse_one_cb() local 193 fwnode = acpi_gsi_domain_id; in acpi_irq_parse_one_cb() 194 acpi_irq_parse_one_match(fwnode, irq->interrupts[ctx->index], in acpi_irq_parse_one_cb() 206 fwnode = acpi_get_irq_source_fwhandle(&eirq->resource_source); in acpi_irq_parse_one_cb() 207 acpi_irq_parse_one_match(fwnode, eirq->interrupts[ctx->index], in acpi_irq_parse_one_cb() [all …]
|
/Linux-v5.4/drivers/platform/x86/ |
D | intel_cht_int33fe.c | 146 struct fwnode_handle *fwnode; in cht_int33fe_setup_dp() local 149 fwnode = software_node_fwnode(&nodes[INT33FE_NODE_DISPLAYPORT]); in cht_int33fe_setup_dp() 150 if (!fwnode) in cht_int33fe_setup_dp() 166 fwnode->secondary = ERR_PTR(-ENODEV); in cht_int33fe_setup_dp() 167 data->dp->secondary = fwnode; in cht_int33fe_setup_dp() 231 struct fwnode_handle *fwnode; in cht_int33fe_register_max17047() local 234 fwnode = software_node_fwnode(&nodes[INT33FE_NODE_MAX17047]); in cht_int33fe_register_max17047() 235 if (!fwnode) in cht_int33fe_register_max17047() 241 fwnode->secondary = ERR_PTR(-ENODEV); in cht_int33fe_register_max17047() 242 max17047->dev.fwnode->secondary = fwnode; in cht_int33fe_register_max17047() [all …]
|
/Linux-v5.4/drivers/staging/media/imx/ |
D | imx-media-of.c | 159 struct fwnode_handle *fwnode, *csi_ep; in imx_media_create_csi_of_links() local 170 fwnode = fwnode_graph_get_remote_endpoint(csi_ep); in imx_media_create_csi_of_links() 171 if (!fwnode) in imx_media_create_csi_of_links() 174 fwnode = fwnode_get_parent(fwnode); in imx_media_create_csi_of_links() 175 fwnode_property_read_u32(fwnode, "reg", &link.remote_port); in imx_media_create_csi_of_links() 176 fwnode = fwnode_get_next_parent(fwnode); in imx_media_create_csi_of_links() 177 if (is_of_node(fwnode) && in imx_media_create_csi_of_links() 178 of_node_name_eq(to_of_node(fwnode), "ports")) in imx_media_create_csi_of_links() 179 fwnode = fwnode_get_next_parent(fwnode); in imx_media_create_csi_of_links() 180 link.remote_node = fwnode; in imx_media_create_csi_of_links()
|
/Linux-v5.4/drivers/leds/ |
D | leds-pwm.c | 69 struct led_pwm *led, struct fwnode_handle *fwnode) in led_pwm_add() argument 82 if (fwnode) in led_pwm_add() 83 led_data->pwm = devm_fwnode_pwm_get(dev, fwnode, NULL); in led_pwm_add() 122 struct fwnode_handle *fwnode; in led_pwm_create_fwnode() local 128 device_for_each_child_node(dev, fwnode) { in led_pwm_create_fwnode() 129 ret = fwnode_property_read_string(fwnode, "label", &led.name); in led_pwm_create_fwnode() 130 if (ret && is_of_node(fwnode)) in led_pwm_create_fwnode() 131 led.name = to_of_node(fwnode)->name; in led_pwm_create_fwnode() 134 fwnode_handle_put(fwnode); in led_pwm_create_fwnode() 138 fwnode_property_read_string(fwnode, "linux,default-trigger", in led_pwm_create_fwnode() [all …]
|
D | led-core.c | 327 struct fwnode_handle *fwnode = led_cdev->dev->fwnode; in led_get_default_pattern() local 331 count = fwnode_property_count_u32(fwnode, "led-pattern"); in led_get_default_pattern() 339 if (fwnode_property_read_u32_array(fwnode, "led-pattern", pattern, count)) { in led_get_default_pattern() 369 struct fwnode_handle *fwnode, in led_parse_fwnode_props() argument 374 if (!fwnode) in led_parse_fwnode_props() 377 if (fwnode_property_present(fwnode, "label")) { in led_parse_fwnode_props() 378 ret = fwnode_property_read_string(fwnode, "label", &props->label); in led_parse_fwnode_props() 384 if (fwnode_property_present(fwnode, "color")) { in led_parse_fwnode_props() 385 ret = fwnode_property_read_u32(fwnode, "color", &props->color); in led_parse_fwnode_props() 395 if (!fwnode_property_present(fwnode, "function")) in led_parse_fwnode_props() [all …]
|
/Linux-v5.4/drivers/of/ |
D | property.c | 817 static struct fwnode_handle *of_fwnode_get(struct fwnode_handle *fwnode) in of_fwnode_get() argument 819 return of_fwnode_handle(of_node_get(to_of_node(fwnode))); in of_fwnode_get() 822 static void of_fwnode_put(struct fwnode_handle *fwnode) in of_fwnode_put() argument 824 of_node_put(to_of_node(fwnode)); in of_fwnode_put() 827 static bool of_fwnode_device_is_available(const struct fwnode_handle *fwnode) in of_fwnode_device_is_available() argument 829 return of_device_is_available(to_of_node(fwnode)); in of_fwnode_device_is_available() 832 static bool of_fwnode_property_present(const struct fwnode_handle *fwnode, in of_fwnode_property_present() argument 835 return of_property_read_bool(to_of_node(fwnode), propname); in of_fwnode_property_present() 838 static int of_fwnode_property_read_int_array(const struct fwnode_handle *fwnode, in of_fwnode_property_read_int_array() argument 843 const struct device_node *node = to_of_node(fwnode); in of_fwnode_property_read_int_array() [all …]
|
/Linux-v5.4/drivers/usb/typec/ |
D | mux.c | 37 static int switch_fwnode_match(struct device *dev, const void *fwnode) in switch_fwnode_match() argument 39 return dev_fwnode(dev) == fwnode && dev_name_ends_with(dev, "-switch"); in switch_fwnode_match() 47 if (con->fwnode) { in typec_switch_match() 48 if (con->id && !fwnode_property_present(con->fwnode, con->id)) in typec_switch_match() 51 dev = class_find_device(&typec_mux_class, NULL, con->fwnode, in typec_switch_match() 136 sw->dev.fwnode = desc->fwnode; in typec_switch_register() 180 static int mux_fwnode_match(struct device *dev, const void *fwnode) in mux_fwnode_match() argument 182 return dev_fwnode(dev) == fwnode && dev_name_ends_with(dev, "-mux"); in mux_fwnode_match() 194 if (!con->fwnode) { in typec_mux_match() 211 match = fwnode_property_present(con->fwnode, "accessory"); in typec_mux_match() [all …]
|
/Linux-v5.4/drivers/irqchip/ |
D | irq-gic-v2m.c | 63 struct fwnode_handle *fwnode; member 142 if (is_of_node(domain->parent->fwnode)) { in gicv2m_irq_gic_domain_alloc() 143 fwspec.fwnode = domain->parent->fwnode; in gicv2m_irq_gic_domain_alloc() 148 } else if (is_fwnode_irqchip(domain->parent->fwnode)) { in gicv2m_irq_gic_domain_alloc() 149 fwspec.fwnode = domain->parent->fwnode; in gicv2m_irq_gic_domain_alloc() 273 of_node_put(to_of_node(v2m->fwnode)); in gicv2m_teardown() 274 if (is_fwnode_irqchip(v2m->fwnode)) in gicv2m_teardown() 275 irq_domain_free_fwnode(v2m->fwnode); in gicv2m_teardown() 289 inner_domain = irq_domain_create_tree(v2m->fwnode, in gicv2m_allocate_domains() 298 pci_domain = pci_msi_create_irq_domain(v2m->fwnode, in gicv2m_allocate_domains() [all …]
|
D | irq-ixp4xx.c | 135 if (is_of_node(fwspec->fwnode) && fwspec->param_count == 2) { in ixp4xx_irq_domain_translate() 141 if (is_fwnode_irqchip(fwspec->fwnode)) { in ixp4xx_irq_domain_translate() 257 struct fwnode_handle *fwnode, in ixp4xx_irq_setup() argument 288 ixi->domain = irq_domain_create_linear(fwnode, nr_irqs, in ixp4xx_irq_setup() 311 struct fwnode_handle *fwnode; in ixp4xx_irq_init() local 322 fwnode = irq_domain_alloc_fwnode(&irqbase); in ixp4xx_irq_init() 323 if (!fwnode) { in ixp4xx_irq_init() 327 ret = ixp4xx_irq_setup(ixi, base, fwnode, is_356); in ixp4xx_irq_init() 330 irq_domain_free_fwnode(fwnode); in ixp4xx_irq_init() 347 fwspec.fwnode = fwnode; in ixp4xx_irq_init() [all …]
|
D | irq-gic-v4.c | 93 vm->fwnode = irq_domain_alloc_named_id_fwnode("GICv4-vpe", in its_alloc_vcpu_irqs() 95 if (!vm->fwnode) in its_alloc_vcpu_irqs() 99 vm->fwnode, vpe_domain_ops, in its_alloc_vcpu_irqs() 123 if (vm->fwnode) in its_alloc_vcpu_irqs() 124 irq_domain_free_fwnode(vm->fwnode); in its_alloc_vcpu_irqs() 133 irq_domain_free_fwnode(vm->fwnode); in its_free_vcpu_irqs()
|
D | irq-gic-v3-mbi.c | 53 if (!is_of_node(domain->parent->fwnode)) in mbi_irq_gic_domain_alloc() 61 fwspec.fwnode = domain->parent->fwnode; in mbi_irq_gic_domain_alloc() 186 *pci_domain = pci_msi_create_irq_domain(nexus_domain->parent->fwnode, in mbi_allocate_pci_domain() 237 nexus_domain = irq_domain_create_tree(parent->fwnode, in mbi_allocate_domains() 247 plat_domain = platform_msi_create_irq_domain(parent->fwnode, in mbi_allocate_domains() 263 int __init mbi_init(struct fwnode_handle *fwnode, struct irq_domain *parent) in mbi_init() argument 269 np = to_of_node(fwnode); in mbi_init()
|
/Linux-v5.4/kernel/irq/ |
D | irqdomain.c | 31 struct fwnode_handle fwnode; member 94 fwid->fwnode.ops = &irqchip_fwnode_ops; in __irq_domain_alloc_fwnode() 95 return &fwid->fwnode; in __irq_domain_alloc_fwnode() 104 void irq_domain_free_fwnode(struct fwnode_handle *fwnode) in irq_domain_free_fwnode() argument 108 if (WARN_ON(!is_fwnode_irqchip(fwnode))) in irq_domain_free_fwnode() 111 fwid = container_of(fwnode, struct irqchip_fwid, fwnode); in irq_domain_free_fwnode() 130 struct irq_domain *__irq_domain_add(struct fwnode_handle *fwnode, int size, in __irq_domain_add() argument 135 struct device_node *of_node = to_of_node(fwnode); in __irq_domain_add() 146 if (fwnode && is_fwnode_irqchip(fwnode)) { in __irq_domain_add() 147 fwid = container_of(fwnode, struct irqchip_fwid, fwnode); in __irq_domain_add() [all …]
|
/Linux-v5.4/drivers/usb/roles/ |
D | class.c | 93 if (con->fwnode) { in usb_role_switch_match() 94 if (con->id && !fwnode_property_present(con->fwnode, con->id)) in usb_role_switch_match() 97 dev = class_find_device_by_fwnode(role_class, con->fwnode); in usb_role_switch_match() 106 usb_role_switch_is_parent(struct fwnode_handle *fwnode) in usb_role_switch_is_parent() argument 108 struct fwnode_handle *parent = fwnode_get_parent(fwnode); in usb_role_switch_is_parent() 148 struct usb_role_switch *fwnode_usb_role_switch_get(struct fwnode_handle *fwnode) in fwnode_usb_role_switch_get() argument 152 sw = usb_role_switch_is_parent(fwnode); in fwnode_usb_role_switch_get() 154 sw = fwnode_connection_find_match(fwnode, "usb-role-switch", in fwnode_usb_role_switch_get() 308 sw->dev.fwnode = desc->fwnode; in usb_role_switch_register()
|
/Linux-v5.4/include/acpi/ |
D | acpi_bus.h | 356 struct fwnode_handle fwnode; member 387 struct fwnode_handle fwnode; member 399 bool is_acpi_device_node(const struct fwnode_handle *fwnode); 400 bool is_acpi_data_node(const struct fwnode_handle *fwnode); 402 static inline bool is_acpi_node(const struct fwnode_handle *fwnode) in is_acpi_node() argument 404 return (is_acpi_device_node(fwnode) || is_acpi_data_node(fwnode)); in is_acpi_node() 413 struct acpi_device, fwnode) : \ 423 struct acpi_data_node, fwnode) : \ 427 static inline bool is_acpi_static_node(const struct fwnode_handle *fwnode) in is_acpi_static_node() argument 429 return !IS_ERR_OR_NULL(fwnode) && in is_acpi_static_node() [all …]
|
/Linux-v5.4/lib/ |
D | logic_pio.c | 42 if (!new_range || !new_range->fwnode || !new_range->size) in logic_pio_register_range() 50 if (range->fwnode == new_range->fwnode) { in logic_pio_register_range() 123 struct logic_pio_hwaddr *find_io_range_by_fwnode(struct fwnode_handle *fwnode) in find_io_range_by_fwnode() argument 129 if (range->fwnode == fwnode) { in find_io_range_by_fwnode() 187 unsigned long logic_pio_trans_hwaddr(struct fwnode_handle *fwnode, in logic_pio_trans_hwaddr() argument 192 range = find_io_range_by_fwnode(fwnode); in logic_pio_trans_hwaddr()
|
/Linux-v5.4/drivers/gpio/ |
D | gpiolib-devprop.c | 28 const struct fwnode_handle *fwnode) in devprop_gpiochip_set_names() argument 35 count = fwnode_property_read_string_array(fwnode, "gpio-line-names", in devprop_gpiochip_set_names() 47 ret = fwnode_property_read_string_array(fwnode, "gpio-line-names", in devprop_gpiochip_set_names()
|