Home
last modified time | relevance | path

Searched refs:fwnode (Results 1 – 25 of 265) sorted by relevance

1234567891011

/Linux-v5.4/include/linux/
Dfwnode.h43 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 …]
Dproperty.h52 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 …]
Dirqdomain.h64 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 …]
Dacpi.h43 #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/
Dproperty.c24 &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 …]
Ddevcon.c16 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 …]
Dswnode.c17 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/
Dv4l2-fwnode.c129 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/
Dproperty.c76 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 …]
Dirq.c61 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/
Dintel_cht_int33fe.c146 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/
Dimx-media-of.c159 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/
Dleds-pwm.c69 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 …]
Dled-core.c327 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/
Dproperty.c817 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/
Dmux.c37 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/
Dirq-gic-v2m.c63 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 …]
Dirq-ixp4xx.c135 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 …]
Dirq-gic-v4.c93 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()
Dirq-gic-v3-mbi.c53 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/
Dirqdomain.c31 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/
Dclass.c93 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/
Dacpi_bus.h356 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/
Dlogic_pio.c42 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/
Dgpiolib-devprop.c28 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()

1234567891011