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()
457 rval = v4l2_fwnode_endpoint_parse_csi2_bus(fwnode, vep, in __v4l2_fwnode_endpoint_parse()
463 v4l2_fwnode_endpoint_parse_parallel_bus(fwnode, vep, in __v4l2_fwnode_endpoint_parse()
473 v4l2_fwnode_endpoint_parse_csi1_bus(fwnode, vep, vep->bus_type); in __v4l2_fwnode_endpoint_parse()
478 rval = v4l2_fwnode_endpoint_parse_csi2_bus(fwnode, vep, in __v4l2_fwnode_endpoint_parse()
486 v4l2_fwnode_endpoint_parse_parallel_bus(fwnode, vep, in __v4l2_fwnode_endpoint_parse()
495 fwnode_graph_parse_endpoint(fwnode, &vep->base); in __v4l2_fwnode_endpoint_parse()
500 int v4l2_fwnode_endpoint_parse(struct fwnode_handle *fwnode, in v4l2_fwnode_endpoint_parse() argument
505 ret = __v4l2_fwnode_endpoint_parse(fwnode, vep); in v4l2_fwnode_endpoint_parse()
507 pr_debug("===== end parsing endpoint %pfw\n", fwnode); in v4l2_fwnode_endpoint_parse()
523 int v4l2_fwnode_endpoint_alloc_parse(struct fwnode_handle *fwnode, in v4l2_fwnode_endpoint_alloc_parse() argument
528 rval = __v4l2_fwnode_endpoint_parse(fwnode, vep); in v4l2_fwnode_endpoint_alloc_parse()
532 rval = fwnode_property_count_u64(fwnode, "link-frequencies"); in v4l2_fwnode_endpoint_alloc_parse()
544 rval = fwnode_property_read_u64_array(fwnode, in v4l2_fwnode_endpoint_alloc_parse()
558 pr_debug("===== end parsing endpoint %pfw\n", fwnode); in v4l2_fwnode_endpoint_alloc_parse()
564 int v4l2_fwnode_parse_link(struct fwnode_handle *fwnode, in v4l2_fwnode_parse_link() argument
571 fwnode_graph_parse_endpoint(fwnode, &fwep); in v4l2_fwnode_parse_link()
574 link->local_node = fwnode_graph_get_port_parent(fwnode); in v4l2_fwnode_parse_link()
578 fwnode = fwnode_graph_get_remote_endpoint(fwnode); in v4l2_fwnode_parse_link()
579 if (!fwnode) in v4l2_fwnode_parse_link()
582 fwnode_graph_parse_endpoint(fwnode, &fwep); in v4l2_fwnode_parse_link()
585 link->remote_node = fwnode_graph_get_port_parent(fwnode); in v4l2_fwnode_parse_link()
592 fwnode_handle_put(fwnode); in v4l2_fwnode_parse_link()
634 v4l2_fwnode_connector_parse_analog(struct fwnode_handle *fwnode, in v4l2_fwnode_connector_parse_analog() argument
640 ret = fwnode_property_read_u32(fwnode, "sdtv-standards", &stds); in v4l2_fwnode_connector_parse_analog()
666 v4l2_fwnode_get_connector_type(struct fwnode_handle *fwnode) in v4l2_fwnode_get_connector_type() argument
671 if (!fwnode) in v4l2_fwnode_get_connector_type()
675 err = fwnode_property_read_string(fwnode, "compatible", &type_name); in v4l2_fwnode_get_connector_type()
682 int v4l2_fwnode_connector_parse(struct fwnode_handle *fwnode, in v4l2_fwnode_connector_parse() argument
690 if (!fwnode) in v4l2_fwnode_connector_parse()
697 connector_node = fwnode_graph_get_port_parent(fwnode); in v4l2_fwnode_connector_parse()
701 connector_node = fwnode_graph_get_remote_port_parent(fwnode); in v4l2_fwnode_connector_parse()
734 int v4l2_fwnode_connector_add_link(struct fwnode_handle *fwnode, in v4l2_fwnode_connector_add_link() argument
741 if (!fwnode || !connector || connector->type == V4L2_CONN_UNKNOWN) in v4l2_fwnode_connector_add_link()
744 connector_ep = fwnode_graph_get_remote_endpoint(fwnode); in v4l2_fwnode_connector_add_link()
776 struct fwnode_handle *fwnode = dev_fwnode(dev); in v4l2_fwnode_device_parse() local
783 ret = fwnode_property_read_u32(fwnode, "orientation", &val); in v4l2_fwnode_device_parse()
800 ret = fwnode_property_read_u32(fwnode, "rotation", &val); in v4l2_fwnode_device_parse()
831 asd->match.fwnode = in v4l2_async_notifier_fwnode_parse_endpoint()
833 if (!asd->match.fwnode) { in v4l2_async_notifier_fwnode_parse_endpoint()
869 fwnode_handle_put(asd->match.fwnode); in v4l2_async_notifier_fwnode_parse_endpoint()
883 struct fwnode_handle *fwnode; in __v4l2_async_notifier_parse_fwnode_ep() local
889 fwnode_graph_for_each_endpoint(dev_fwnode(dev), fwnode) { in __v4l2_async_notifier_parse_fwnode_ep()
893 dev_fwnode = fwnode_graph_get_port_parent(fwnode); in __v4l2_async_notifier_parse_fwnode_ep()
902 ret = fwnode_graph_parse_endpoint(fwnode, &ep); in __v4l2_async_notifier_parse_fwnode_ep()
912 fwnode, in __v4l2_async_notifier_parse_fwnode_ep()
919 fwnode_handle_put(fwnode); in __v4l2_async_notifier_parse_fwnode_ep()
974 fwnode_handle_put(args.fwnode); in v4l2_fwnode_reference_parse()
993 args.fwnode, in v4l2_fwnode_reference_parse()
995 fwnode_handle_put(args.fwnode); in v4l2_fwnode_reference_parse()
1168 v4l2_fwnode_reference_get_int_prop(struct fwnode_handle *fwnode, in v4l2_fwnode_reference_get_int_prop() argument
1185 ret = fwnode_property_get_reference_args(fwnode, prop, NULL, nprops, in v4l2_fwnode_reference_get_int_prop()
1194 fwnode = fwnode_args.fwnode; in v4l2_fwnode_reference_get_int_prop()
1199 fwnode_for_each_child_node(fwnode, child) { in v4l2_fwnode_reference_get_int_prop()
1208 fwnode_handle_put(fwnode); in v4l2_fwnode_reference_get_int_prop()
1212 fwnode = ERR_PTR(-ENOENT); in v4l2_fwnode_reference_get_int_prop()
1218 fwnode = child; in v4l2_fwnode_reference_get_int_prop()
1221 return fwnode; in v4l2_fwnode_reference_get_int_prop()
1258 struct fwnode_handle *fwnode; in v4l2_fwnode_reference_parse_int_props() local
1267 fwnode = v4l2_fwnode_reference_get_int_prop(dev_fwnode(dev), in v4l2_fwnode_reference_parse_int_props()
1270 if (IS_ERR(fwnode)) { in v4l2_fwnode_reference_parse_int_props()
1276 if (PTR_ERR(fwnode) != -ENOENT && in v4l2_fwnode_reference_parse_int_props()
1277 PTR_ERR(fwnode) != -ENODATA) in v4l2_fwnode_reference_parse_int_props()
1278 return PTR_ERR(fwnode); in v4l2_fwnode_reference_parse_int_props()
1281 fwnode_handle_put(fwnode); in v4l2_fwnode_reference_parse_int_props()
1286 !IS_ERR((fwnode = v4l2_fwnode_reference_get_int_prop(dev_fwnode(dev), in v4l2_fwnode_reference_parse_int_props()
1293 asd = v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, in v4l2_fwnode_reference_parse_int_props()
1295 fwnode_handle_put(fwnode); in v4l2_fwnode_reference_parse_int_props()
1306 return !fwnode || PTR_ERR(fwnode) == -ENOENT ? 0 : PTR_ERR(fwnode); in v4l2_fwnode_reference_parse_int_props()