Commit edc6d56c authored by Sakari Ailus's avatar Sakari Ailus Committed by Mauro Carvalho Chehab

media: v4l: fwnode: Support parsing of CSI-2 C-PHY endpoints

The V4L2 fwnode framework only parsed CSI-2 D-PHY endpoints while C-PHY
support wasn't there. Also parse endpoints for media bus type
V4L2_MBUS_CSI2_CPHY.
Signed-off-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Tested-by: default avatarSteve Longerbeam <steve_longerbeam@mentor.com>
Tested-by: default avatarJacopo Mondi <jacopo+renesas@jmondi.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent e7b2f518
...@@ -145,7 +145,8 @@ static int v4l2_fwnode_endpoint_parse_csi2_bus(struct fwnode_handle *fwnode, ...@@ -145,7 +145,8 @@ static int v4l2_fwnode_endpoint_parse_csi2_bus(struct fwnode_handle *fwnode,
u32 v; u32 v;
int rval; int rval;
if (bus_type == V4L2_MBUS_CSI2_DPHY) { if (bus_type == V4L2_MBUS_CSI2_DPHY ||
bus_type == V4L2_MBUS_CSI2_CPHY) {
use_default_lane_mapping = true; use_default_lane_mapping = true;
num_data_lanes = min_t(u32, bus->num_data_lanes, num_data_lanes = min_t(u32, bus->num_data_lanes,
...@@ -221,10 +222,12 @@ static int v4l2_fwnode_endpoint_parse_csi2_bus(struct fwnode_handle *fwnode, ...@@ -221,10 +222,12 @@ static int v4l2_fwnode_endpoint_parse_csi2_bus(struct fwnode_handle *fwnode,
flags |= V4L2_MBUS_CSI2_CONTINUOUS_CLOCK; flags |= V4L2_MBUS_CSI2_CONTINUOUS_CLOCK;
} }
if (bus_type == V4L2_MBUS_CSI2_DPHY || lanes_used || if (bus_type == V4L2_MBUS_CSI2_DPHY ||
bus_type == V4L2_MBUS_CSI2_CPHY || lanes_used ||
have_clk_lane || (flags & ~V4L2_MBUS_CSI2_CONTINUOUS_CLOCK)) { have_clk_lane || (flags & ~V4L2_MBUS_CSI2_CONTINUOUS_CLOCK)) {
bus->flags = flags; bus->flags = flags;
vep->bus_type = V4L2_MBUS_CSI2_DPHY; if (bus_type == V4L2_MBUS_UNKNOWN)
vep->bus_type = V4L2_MBUS_CSI2_DPHY;
bus->num_data_lanes = num_data_lanes; bus->num_data_lanes = num_data_lanes;
if (use_default_lane_mapping) { if (use_default_lane_mapping) {
...@@ -463,6 +466,7 @@ static int __v4l2_fwnode_endpoint_parse(struct fwnode_handle *fwnode, ...@@ -463,6 +466,7 @@ static int __v4l2_fwnode_endpoint_parse(struct fwnode_handle *fwnode,
break; break;
case V4L2_MBUS_CSI2_DPHY: case V4L2_MBUS_CSI2_DPHY:
case V4L2_MBUS_CSI2_CPHY:
rval = v4l2_fwnode_endpoint_parse_csi2_bus(fwnode, vep, rval = v4l2_fwnode_endpoint_parse_csi2_bus(fwnode, vep,
vep->bus_type); vep->bus_type);
if (rval) if (rval)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment