From patchwork Sat Feb 2 12:10:01 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marco Felsch X-Patchwork-Id: 10794713 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5D6011390 for ; Sun, 3 Feb 2019 15:23:46 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4D67E2B77E for ; Sun, 3 Feb 2019 15:23:46 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 41EB62B784; Sun, 3 Feb 2019 15:23:46 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id DBA7B2B77E for ; Sun, 3 Feb 2019 15:23:45 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 5D5CE6E420; Sun, 3 Feb 2019 15:23:18 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by gabe.freedesktop.org (Postfix) with ESMTPS id 39AD26E081 for ; Sat, 2 Feb 2019 12:10:23 +0000 (UTC) Received: from dude02.hi.pengutronix.de ([2001:67c:670:100:1d::28] helo=dude02.lab.pengutronix.de) by metis.ext.pengutronix.de with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1gpu7i-0008DC-5X; Sat, 02 Feb 2019 13:10:14 +0100 Received: from mfe by dude02.lab.pengutronix.de with local (Exim 4.89) (envelope-from ) id 1gpu7e-0002Oq-4Z; Sat, 02 Feb 2019 13:10:10 +0100 From: Marco Felsch To: robh+dt@kernel.org, mchehab@kernel.org, hans.verkuil@cisco.com, sakari.ailus@linux.intel.com Subject: [PATCH 2/5] media: v4l2-fwnode: add v4l2_fwnode_connector Date: Sat, 2 Feb 2019 13:10:01 +0100 Message-Id: <20190202121004.9014-3-m.felsch@pengutronix.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190202121004.9014-1-m.felsch@pengutronix.de> References: <20190202121004.9014-1-m.felsch@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2001:67c:670:100:1d::28 X-SA-Exim-Mail-From: mfe@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: dri-devel@lists.freedesktop.org X-Mailman-Approved-At: Sun, 03 Feb 2019 15:23:06 +0000 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, airlied@linux.ie, dri-devel@lists.freedesktop.org, kernel@pengutronix.de, linux-media@vger.kernel.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP Currently every driver needs to parse the connector endpoints by it self. This is the initial work to make this generic. The generic connector has some common fields and some connector specific parts. The generic one includes: - type - label - remote_port (the port where the connector is connected to) - remote_id (the endpoint where the connector is connected to) The specific fields are 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 --- include/media/v4l2-connector.h | 34 ++++++++++++++++++++++++++++++++++ include/media/v4l2-fwnode.h | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 include/media/v4l2-connector.h diff --git a/include/media/v4l2-connector.h b/include/media/v4l2-connector.h new file mode 100644 index 000000000000..967336e38215 --- /dev/null +++ b/include/media/v4l2-connector.h @@ -0,0 +1,34 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * v4l2-connector.h + * + * V4L2 connector types. + * + * Copyright 2019 Pengutronix, Marco Felsch + */ + +#ifndef V4L2_CONNECTOR_H +#define V4L2_CONNECTOR_H + +#define V4L2_CONNECTOR_MAX_LABEL 41 + +/** + * enum v4l2_connector_type - connector type + * @V4L2_CON_UNKNOWN: unknown connector type, no V4L2 connetor configuration + * @V4L2_CON_COMPOSITE: analog composite connector + * @V4L2_CON_SVIDEO: analog svideo connector + * @V4L2_CON_VGA: analog vga connector + * @V4L2_CON_DVI: analog or digital dvi connector + * @V4L2_CON_HDMI: digital hdmi connetor + */ +enum v4l2_connector_type { + V4L2_CON_UNKNOWN, + V4L2_CON_COMPOSITE, + V4L2_CON_SVIDEO, + V4L2_CON_VGA, + V4L2_CON_DVI, + V4L2_CON_HDMI, +}; + +#endif /* V4L2_CONNECTOR_H */ + diff --git a/include/media/v4l2-fwnode.h b/include/media/v4l2-fwnode.h index 6d9d9f1839ac..cf87e819800f 100644 --- a/include/media/v4l2-fwnode.h +++ b/include/media/v4l2-fwnode.h @@ -22,6 +22,7 @@ #include #include +#include #include #include @@ -126,6 +127,38 @@ struct v4l2_fwnode_link { unsigned int remote_port; }; +/** + * struct v4l2_fwnode_connector_analog - analog connector data structure + * @supported_tvnorms: tv norms this connector supports, set to V4L2_STD_ALL + * if no restrictions are specified. + */ +struct v4l2_fwnode_connector_analog { + v4l2_std_id supported_tvnorms; +}; + +/** struct v4l2_fwnode_connector - the connector data structure + * @remote_port: identifier of the port the remote endpoint belongs to + * @remote_id: identifier of the id the remote endpoint belongs to + * @label: connetor label + * @type: connector type + * @connector: union with connector configuration data struct + * @connector.analog: embedded &struct v4l2_fwnode_connector_analog. + * Used if connector is of type analog. + */ +struct v4l2_fwnode_connector { + /* common fields for all v4l2_fwnode_connectors */ + unsigned int remote_port; + unsigned int remote_id; + char label[V4L2_CONNECTOR_MAX_LABEL]; + enum v4l2_connector_type type; + + /* connector specific fields */ + 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