Lines Matching refs:fwnode
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()
300 if (!fwnode_property_read_u32(fwnode, "field-even-active", &v)) { in v4l2_fwnode_endpoint_parse_parallel_bus()
308 if (!fwnode_property_read_u32(fwnode, "pclk-sample", &v)) { in v4l2_fwnode_endpoint_parse_parallel_bus()
316 if (!fwnode_property_read_u32(fwnode, "data-active", &v)) { in v4l2_fwnode_endpoint_parse_parallel_bus()
324 if (fwnode_property_present(fwnode, "slave-mode")) { in v4l2_fwnode_endpoint_parse_parallel_bus()
333 if (!fwnode_property_read_u32(fwnode, "bus-width", &v)) { in v4l2_fwnode_endpoint_parse_parallel_bus()
338 if (!fwnode_property_read_u32(fwnode, "data-shift", &v)) { in v4l2_fwnode_endpoint_parse_parallel_bus()
343 if (!fwnode_property_read_u32(fwnode, "sync-on-green-active", &v)) { in v4l2_fwnode_endpoint_parse_parallel_bus()
351 if (!fwnode_property_read_u32(fwnode, "data-enable-active", &v)) { in v4l2_fwnode_endpoint_parse_parallel_bus()
379 v4l2_fwnode_endpoint_parse_csi1_bus(struct fwnode_handle *fwnode, in v4l2_fwnode_endpoint_parse_csi1_bus() argument
386 if (!fwnode_property_read_u32(fwnode, "clock-inv", &v)) { in v4l2_fwnode_endpoint_parse_csi1_bus()
391 if (!fwnode_property_read_u32(fwnode, "strobe", &v)) { in v4l2_fwnode_endpoint_parse_csi1_bus()
396 if (!fwnode_property_read_u32(fwnode, "data-lanes", &v)) { in v4l2_fwnode_endpoint_parse_csi1_bus()
401 if (!fwnode_property_read_u32(fwnode, "clock-lanes", &v)) { in v4l2_fwnode_endpoint_parse_csi1_bus()
412 static int __v4l2_fwnode_endpoint_parse(struct fwnode_handle *fwnode, in __v4l2_fwnode_endpoint_parse() argument
425 pr_debug("===== begin parsing endpoint %pfw\n", fwnode); in __v4l2_fwnode_endpoint_parse()
433 fwnode_property_read_u32(fwnode, "bus-type", &bus_type); in __v4l2_fwnode_endpoint_parse()
453 rval = v4l2_fwnode_endpoint_parse_csi2_bus(fwnode, vep, in __v4l2_fwnode_endpoint_parse()
459 v4l2_fwnode_endpoint_parse_parallel_bus(fwnode, vep, in __v4l2_fwnode_endpoint_parse()
469 v4l2_fwnode_endpoint_parse_csi1_bus(fwnode, vep, vep->bus_type); in __v4l2_fwnode_endpoint_parse()
474 rval = v4l2_fwnode_endpoint_parse_csi2_bus(fwnode, vep, in __v4l2_fwnode_endpoint_parse()
482 v4l2_fwnode_endpoint_parse_parallel_bus(fwnode, vep, in __v4l2_fwnode_endpoint_parse()
491 fwnode_graph_parse_endpoint(fwnode, &vep->base); in __v4l2_fwnode_endpoint_parse()
496 int v4l2_fwnode_endpoint_parse(struct fwnode_handle *fwnode, in v4l2_fwnode_endpoint_parse() argument
501 ret = __v4l2_fwnode_endpoint_parse(fwnode, vep); in v4l2_fwnode_endpoint_parse()
503 pr_debug("===== end parsing endpoint %pfw\n", fwnode); in v4l2_fwnode_endpoint_parse()
519 int v4l2_fwnode_endpoint_alloc_parse(struct fwnode_handle *fwnode, in v4l2_fwnode_endpoint_alloc_parse() argument
524 rval = __v4l2_fwnode_endpoint_parse(fwnode, vep); in v4l2_fwnode_endpoint_alloc_parse()
528 rval = fwnode_property_count_u64(fwnode, "link-frequencies"); in v4l2_fwnode_endpoint_alloc_parse()
540 rval = fwnode_property_read_u64_array(fwnode, in v4l2_fwnode_endpoint_alloc_parse()
554 pr_debug("===== end parsing endpoint %pfw\n", fwnode); in v4l2_fwnode_endpoint_alloc_parse()
560 int v4l2_fwnode_parse_link(struct fwnode_handle *fwnode, in v4l2_fwnode_parse_link() argument
567 fwnode_graph_parse_endpoint(fwnode, &fwep); in v4l2_fwnode_parse_link()
570 link->local_node = fwnode_graph_get_port_parent(fwnode); in v4l2_fwnode_parse_link()
572 fwnode = fwnode_graph_get_remote_endpoint(fwnode); in v4l2_fwnode_parse_link()
573 if (!fwnode) { in v4l2_fwnode_parse_link()
574 fwnode_handle_put(fwnode); in v4l2_fwnode_parse_link()
578 fwnode_graph_parse_endpoint(fwnode, &fwep); in v4l2_fwnode_parse_link()
581 link->remote_node = fwnode_graph_get_port_parent(fwnode); in v4l2_fwnode_parse_link()
620 v4l2_fwnode_connector_parse_analog(struct fwnode_handle *fwnode, in v4l2_fwnode_connector_parse_analog() argument
626 ret = fwnode_property_read_u32(fwnode, "sdtv-standards", &stds); in v4l2_fwnode_connector_parse_analog()
652 v4l2_fwnode_get_connector_type(struct fwnode_handle *fwnode) in v4l2_fwnode_get_connector_type() argument
657 if (!fwnode) in v4l2_fwnode_get_connector_type()
661 err = fwnode_property_read_string(fwnode, "compatible", &type_name); in v4l2_fwnode_get_connector_type()
668 int v4l2_fwnode_connector_parse(struct fwnode_handle *fwnode, in v4l2_fwnode_connector_parse() argument
676 if (!fwnode) in v4l2_fwnode_connector_parse()
683 connector_node = fwnode_graph_get_port_parent(fwnode); in v4l2_fwnode_connector_parse()
687 connector_node = fwnode_graph_get_remote_port_parent(fwnode); in v4l2_fwnode_connector_parse()
720 int v4l2_fwnode_connector_add_link(struct fwnode_handle *fwnode, in v4l2_fwnode_connector_add_link() argument
727 if (!fwnode || !connector || connector->type == V4L2_CONN_UNKNOWN) in v4l2_fwnode_connector_add_link()
730 connector_ep = fwnode_graph_get_remote_endpoint(fwnode); in v4l2_fwnode_connector_add_link()
762 struct fwnode_handle *fwnode = dev_fwnode(dev); in v4l2_fwnode_device_parse() local
769 ret = fwnode_property_read_u32(fwnode, "orientation", &val); in v4l2_fwnode_device_parse()
786 ret = fwnode_property_read_u32(fwnode, "rotation", &val); in v4l2_fwnode_device_parse()
817 asd->match.fwnode = in v4l2_async_notifier_fwnode_parse_endpoint()
819 if (!asd->match.fwnode) { in v4l2_async_notifier_fwnode_parse_endpoint()
855 fwnode_handle_put(asd->match.fwnode); in v4l2_async_notifier_fwnode_parse_endpoint()
869 struct fwnode_handle *fwnode; in __v4l2_async_notifier_parse_fwnode_ep() local
875 fwnode_graph_for_each_endpoint(dev_fwnode(dev), fwnode) { in __v4l2_async_notifier_parse_fwnode_ep()
879 dev_fwnode = fwnode_graph_get_port_parent(fwnode); in __v4l2_async_notifier_parse_fwnode_ep()
888 ret = fwnode_graph_parse_endpoint(fwnode, &ep); in __v4l2_async_notifier_parse_fwnode_ep()
898 fwnode, in __v4l2_async_notifier_parse_fwnode_ep()
905 fwnode_handle_put(fwnode); in __v4l2_async_notifier_parse_fwnode_ep()
960 fwnode_handle_put(args.fwnode); in v4l2_fwnode_reference_parse()
979 args.fwnode, in v4l2_fwnode_reference_parse()
981 fwnode_handle_put(args.fwnode); in v4l2_fwnode_reference_parse()
1154 v4l2_fwnode_reference_get_int_prop(struct fwnode_handle *fwnode, in v4l2_fwnode_reference_get_int_prop() argument
1171 ret = fwnode_property_get_reference_args(fwnode, prop, NULL, nprops, in v4l2_fwnode_reference_get_int_prop()
1180 fwnode = fwnode_args.fwnode; in v4l2_fwnode_reference_get_int_prop()
1185 fwnode_for_each_child_node(fwnode, child) { in v4l2_fwnode_reference_get_int_prop()
1194 fwnode_handle_put(fwnode); in v4l2_fwnode_reference_get_int_prop()
1198 fwnode = ERR_PTR(-ENOENT); in v4l2_fwnode_reference_get_int_prop()
1204 fwnode = child; in v4l2_fwnode_reference_get_int_prop()
1207 return fwnode; in v4l2_fwnode_reference_get_int_prop()
1244 struct fwnode_handle *fwnode; in v4l2_fwnode_reference_parse_int_props() local
1253 fwnode = v4l2_fwnode_reference_get_int_prop(dev_fwnode(dev), in v4l2_fwnode_reference_parse_int_props()
1256 if (IS_ERR(fwnode)) { in v4l2_fwnode_reference_parse_int_props()
1262 if (PTR_ERR(fwnode) != -ENOENT && in v4l2_fwnode_reference_parse_int_props()
1263 PTR_ERR(fwnode) != -ENODATA) in v4l2_fwnode_reference_parse_int_props()
1264 return PTR_ERR(fwnode); in v4l2_fwnode_reference_parse_int_props()
1267 fwnode_handle_put(fwnode); in v4l2_fwnode_reference_parse_int_props()
1272 !IS_ERR((fwnode = v4l2_fwnode_reference_get_int_prop(dev_fwnode(dev), in v4l2_fwnode_reference_parse_int_props()
1279 asd = v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, in v4l2_fwnode_reference_parse_int_props()
1281 fwnode_handle_put(fwnode); in v4l2_fwnode_reference_parse_int_props()
1292 return !fwnode || PTR_ERR(fwnode) == -ENOENT ? 0 : PTR_ERR(fwnode); in v4l2_fwnode_reference_parse_int_props()