linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Marco Felsch <m.felsch@pengutronix.de>
To: mchehab@kernel.org, sakari.ailus@linux.intel.com,
	hans.verkuil@cisco.com, jacopo+renesas@jmondi.org,
	robh+dt@kernel.org, laurent.pinchart@ideasonboard.com
Cc: devicetree@vger.kernel.org, kernel@pengutronix.de,
	linux-media@vger.kernel.org
Subject: [PATCH v12 05/19] media: v4l2-fwnode: add v4l2_fwnode_connector
Date: Mon,  9 Mar 2020 11:14:14 +0100	[thread overview]
Message-ID: <20200309101428.15267-6-m.felsch@pengutronix.de> (raw)
In-Reply-To: <20200309101428.15267-1-m.felsch@pengutronix.de>

Currently every driver needs to parse the connector endpoints by it self.
This is the initial work to make this generic. A generic connector has
common members and connector specific members. The common members are:
  - type
  - label (optional)
  - links
  - nr_of_links

The specific members are stored within a union, since only one of them
can be available at the time. Since this is the initial support the
patch adds only the analog-connector specific ones.

Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
---
[1] https://patchwork.kernel.org/cover/10794703/

v12:
- convert links to a list
- adapt docs
- add connector name porperty

v10:
- drop unused V4L2_CONN_HDMI support

v8:
- rename CON -> CONN
- supported_tvnorms_stds -> sdtv_stds and adapt description

v7:
- fix spelling issues
- constify label
- support variable label size
- replace single remote_port/id members by links member of variable
  size
- squash v4l2-connector into v4l2-fwnode

@Jacopo: I dropped your r b tag because I changed the port/id logic.

v6:
- fix some spelling and style issues
- rm unnecessary comments
- drop vga and dvi connector
- fix misspelt connector

v2-v4:
- nothing since the patch was squashed from series [1] into this
  series.

 include/media/v4l2-fwnode.h | 57 +++++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)

diff --git a/include/media/v4l2-fwnode.h b/include/media/v4l2-fwnode.h
index 7bba6dfa3fd6..6cf39d447b10 100644
--- a/include/media/v4l2-fwnode.h
+++ b/include/media/v4l2-fwnode.h
@@ -127,6 +127,63 @@ struct v4l2_fwnode_link {
 	unsigned int remote_id;
 };
 
+/**
+ * enum v4l2_connector_type - connector type
+ * @V4L2_CONN_UNKNOWN:   unknown connector type, no V4L2 connector configuration
+ * @V4L2_CONN_COMPOSITE: analog composite connector
+ * @V4L2_CONN_SVIDEO:    analog svideo connector
+ */
+enum v4l2_connector_type {
+	V4L2_CONN_UNKNOWN,
+	V4L2_CONN_COMPOSITE,
+	V4L2_CONN_SVIDEO,
+};
+
+/**
+ * struct v4l2_connector_link - connector link data structure
+ * @head: structure to be used to add the link to the
+ *        &struct v4l2_fwnode_connector
+ * @fwnode_link: &struct v4l2_fwnode_link link between the connector and the
+ *               device the connector belongs to.
+ */
+struct v4l2_connector_link {
+	struct list_head head;
+	struct v4l2_fwnode_link fwnode_link;
+};
+
+/**
+ * struct v4l2_fwnode_connector_analog - analog connector data structure
+ * @sdtv_stds: sdtv standards this connector supports, set to V4L2_STD_ALL
+ *             if no restrictions are specified.
+ */
+struct v4l2_fwnode_connector_analog {
+	v4l2_std_id sdtv_stds;
+};
+
+/**
+ * struct v4l2_fwnode_connector - the connector data structure
+ * @name: the connector device name
+ * @label: optional connector label
+ * @type: connector type
+ * @links: list of all connector &struct v4l2_connector_link links
+ * @nr_of_links: total number of links
+ * @connector: connector configuration
+ * @connector.analog: analog connector configuration
+ *                    &struct v4l2_fwnode_connector_analog
+ */
+struct v4l2_fwnode_connector {
+	const char *name;
+	const char *label;
+	enum v4l2_connector_type type;
+	struct list_head links;
+	unsigned int nr_of_links;
+
+	union {
+		struct v4l2_fwnode_connector_analog analog;
+		/* future connectors */
+	} connector;
+};
+
 /**
  * v4l2_fwnode_endpoint_parse() - parse all fwnode node properties
  * @fwnode: pointer to the endpoint's fwnode handle
-- 
2.20.1


  parent reply	other threads:[~2020-03-09 10:14 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-09 10:14 [PATCH v12 00/19] TVP5150 Features and Fixes Marco Felsch
2020-03-09 10:14 ` [PATCH v12 01/19] dt-bindings: connector: analog: add sdtv standards property Marco Felsch
2020-03-09 10:14 ` [PATCH v12 02/19] dt-bindings: display: add sdtv-standards defines Marco Felsch
2020-03-09 10:14 ` [PATCH v12 03/19] media: v4l: link dt-bindings and uapi Marco Felsch
2020-03-09 10:14 ` [PATCH v12 04/19] media: v4l2-fwnode: add endpoint id field to v4l2_fwnode_link Marco Felsch
2020-03-11  8:15   ` Sakari Ailus
2020-03-11  8:39     ` Marco Felsch
2020-03-09 10:14 ` Marco Felsch [this message]
2020-03-09 10:14 ` [PATCH v12 06/19] media: v4l2-fwnode: add initial connector parsing support Marco Felsch
2020-03-11  8:17   ` Sakari Ailus
2020-03-11  8:43     ` Marco Felsch
2020-03-11  9:03       ` Sakari Ailus
2020-03-11  9:12         ` Marco Felsch
2020-03-09 10:14 ` [PATCH v12 07/19] partial revert of "[media] tvp5150: add HW input connectors support" Marco Felsch
2020-03-09 10:14 ` [PATCH v12 08/19] media: tvp5150: add input source selection of_graph support Marco Felsch
2020-03-09 10:14 ` [PATCH v12 09/19] media: dt-bindings: tvp5150: Add input port connectors DT bindings Marco Felsch
2020-03-09 10:14 ` [PATCH v12 10/19] media: tvp5150: fix set_selection rectangle handling Marco Felsch
2020-03-09 10:14 ` [PATCH v12 11/19] media: tvp5150: add FORMAT_TRY support for get/set selection handlers Marco Felsch
2020-03-09 10:14 ` [PATCH v12 12/19] media: tvp5150: initialize subdev before parsing device tree Marco Felsch
2020-03-09 10:14 ` [PATCH v12 13/19] media: tvp5150: move irq en-/disable into runtime-pm ops Marco Felsch
2020-03-09 10:14 ` [PATCH v12 14/19] media: tvp5150: add v4l2-event support Marco Felsch
2020-03-09 10:14 ` [PATCH v12 15/19] media: tvp5150: add subdev open/close callbacks Marco Felsch
2020-03-09 10:14 ` [PATCH v12 16/19] media: dt-bindings: tvp5150: cleanup bindings stlye Marco Felsch
2020-03-09 10:14 ` [PATCH v12 17/19] media: dt-bindings: tvp5150: add optional sdtv standards documentation Marco Felsch
2020-03-09 10:14 ` [PATCH v12 18/19] media: tvp5150: add support to limit sdtv standards Marco Felsch
2020-03-09 10:14 ` [PATCH v12 19/19] media: tvp5150: make debug output more readable Marco Felsch
2020-03-11  8:33 ` [PATCH v12 00/19] TVP5150 Features and Fixes Sakari Ailus
2020-03-11  9:08 ` Hans Verkuil

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200309101428.15267-6-m.felsch@pengutronix.de \
    --to=m.felsch@pengutronix.de \
    --cc=devicetree@vger.kernel.org \
    --cc=hans.verkuil@cisco.com \
    --cc=jacopo+renesas@jmondi.org \
    --cc=kernel@pengutronix.de \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=sakari.ailus@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).