From: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
To: Marco Felsch <m.felsch@pengutronix.de>
Cc: Rob Herring <robh@kernel.org>,
mchehab@kernel.org, mark.rutland@arm.com, p.zabel@pengutronix.de,
afshin.nasser@gmail.com, javierm@redhat.com,
sakari.ailus@linux.intel.com, laurent.pinchart@ideasonboard.com,
linux-media@vger.kernel.org, devicetree@vger.kernel.org,
kernel@pengutronix.de
Subject: Re: [PATCH 20/22] [media] tvp5150: Add input port connectors DT bindings
Date: Fri, 3 Aug 2018 14:30:30 -0300 [thread overview]
Message-ID: <20180803143030.3cd43921@coco.lan> (raw)
In-Reply-To: <20180803072953.gwla7i6pcw2s3zo7@pengutronix.de>
Em Fri, 3 Aug 2018 09:29:53 +0200
Marco Felsch <m.felsch@pengutronix.de> escreveu:
> Hi Rob,
>
> first of all, thanks for the review. After some discussion with the
> media guys I have a question about the dt-bindings.
>
> On 18-07-03 17:23, Rob Herring wrote:
> > On Thu, Jun 28, 2018 at 06:20:52PM +0200, Marco Felsch wrote:
> > > The TVP5150/1 decoders support different video input sources to their
> > > AIP1A/B pins.
> > >
> > > Possible configurations are as follows:
> > > - Analog Composite signal connected to AIP1A.
> > > - Analog Composite signal connected to AIP1B.
> > > - Analog S-Video Y (luminance) and C (chrominance)
> > > signals connected to AIP1A and AIP1B respectively.
> > >
> > > This patch extends the device tree bindings documentation to describe
> > > how the input connectors for these devices should be defined in a DT.
> > >
> > > Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
> > > ---
> > > .../devicetree/bindings/media/i2c/tvp5150.txt | 118 +++++++++++++++++-
> > > 1 file changed, 113 insertions(+), 5 deletions(-)
> > >
> > > diff --git a/Documentation/devicetree/bindings/media/i2c/tvp5150.txt b/Documentation/devicetree/bindings/media/i2c/tvp5150.txt
> > > index 8c0fc1a26bf0..feed8c911c5e 100644
> > > --- a/Documentation/devicetree/bindings/media/i2c/tvp5150.txt
> > > +++ b/Documentation/devicetree/bindings/media/i2c/tvp5150.txt
> > > @@ -12,11 +12,23 @@ Optional Properties:
> > > - pdn-gpios: phandle for the GPIO connected to the PDN pin, if any.
> > > - reset-gpios: phandle for the GPIO connected to the RESETB pin, if any.
> > >
> > > -The device node must contain one 'port' child node for its digital output
> > > -video port, in accordance with the video interface bindings defined in
> > > -Documentation/devicetree/bindings/media/video-interfaces.txt.
> > > +The device node must contain one 'port' child node per device input and output
> > > +port, in accordance with the video interface bindings defined in
> > > +Documentation/devicetree/bindings/media/video-interfaces.txt. The port nodes
> > > +are numbered as follows
> > >
> > > -Required Endpoint Properties for parallel synchronization:
> > > + Name Type Port
> > > + --------------------------------------
> > > + AIP1A sink 0
> > > + AIP1B sink 1
> > > + S-VIDEO sink 2
> > > + Y-OUT src 3
>
> Do you think it's correct to have a seperate port for each binding?
> Since the S-Video port is a combination of AIP1A and AIP1B. After a
> discussion with Mauro [1] the TVP5150 should have only 3 pads. Since the
> pads are directly mappped to the dt-ports this will correspond to three
> ports (2 in, 1 out). Now the svideo connector will be mapped to a second
> endpoint in each port:
>
> port@0
> endpoint@0 -----------> Comp0-Con
> endpoint@1 -----+-----> Svideo-Con
> port@1 |
> endpoint@0 -----|-----> Comp1-Con
> endpoint@1 -----+
> port@2
> endpoint
For tvp5150, the model is like the above, so just one port at the
S-video connector.
Yet, for more complex devices that would allow switching the
endpoints at the Svideo connector, the model would be:
port@0
endpoint@0 (AIP1A) -----------> Comp0-Con
endpoint@1 (AIP1B) -----------> Svideo-Con port@0 (luminance)
port@1
endpoint@0 (AIP1A) -----------> Comp1-Con
endpoint@1 (AIP1B) -----------> Svideo-Con port@1 (chrominance)
port@2
endpoint (video bitstream output)
E. g. the S-Video connector will also have two ports, one for the
chrominance signal and another one for the luminance one.
> I don't like that solution that much, since the mapping is now signal
> based. We also don't map each line of a parallel port.
>
> A quick grep shows that currently each device using a svideo connector
> seperates them in a own port as I did.
No. I've no idea about how you did the grep, but this is not how other
drivers handle it currently.
Right now, on all hardware where connectors are mapped, there is just one
input port and multiple connectors linked to it. You can see some examples
here:
https://www.infradead.org/~mchehab/mc-next-gen/au0828_hvr950q.png
https://www.infradead.org/~mchehab/mc-next-gen/cx231xx_hvr930c_hd.png
https://www.infradead.org/~mchehab/mc-next-gen/em28xx_hvr950.png
https://www.infradead.org/~mchehab/mc-next-gen/playtv_usb.png
https://www.infradead.org/~mchehab/mc-next-gen/saa7134-asus-p7131-dual.png
https://www.infradead.org/~mchehab/mc-next-gen/wintv_usb2.png
The problem with this approach is that it doesn't reflect how the
hardware is actually wired. On some hardware similar to tvp5150,
it may be possible, for example, to wire the S-Video both ways,
e. g., something equivalent to (using tvp5150 terminology):
Luminance -> AIP1A
Chrominance -> AIP1B
or
Luminance -> AIP1B
Chrominance -> AIP1A
So, just one pad wouldn't allow this kind of config.
Having three pads is equally wrong, as there's no S-Video port on
tvp5150. All it has physically are two inputs: AIP1A and AIP1B.
If you want to see the discussions we had, they are at:
https://linuxtv.org/irc/irclogger_log/media-maint?date=2018-08-02,Thu
I'm preparing right now a summary of them. will copy you once I
finish it.
> IMHO this is a uncomplicate
> solution, but don't abstract the HW correctly. What is your opinion
> about that? Is it correct to have seperate (virtual) port or should I
> map the svideo connector as shown above?
>
> [1] https://www.spinics.net/lists/devicetree/msg242825.html
Anyway, I'm writing a summary of our discussions
Thanks,
Mauro
next prev parent reply other threads:[~2018-08-03 17:30 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-28 16:20 [PATCH 00/21] TVP5150 fixes and new features Marco Felsch
2018-06-28 16:20 ` [PATCH 01/22] [media] tvp5150: fix width alignment during set_selection() Marco Felsch
2018-06-28 16:20 ` [PATCH 02/22] [media] tvp5150: fix switch exit in set control handler Marco Felsch
2018-06-28 16:20 ` [PATCH 03/22] [media] tvp5150: convert register access to regmap Marco Felsch
2018-06-28 16:20 ` [PATCH 04/22] [media] tvp5150: make use of regmap_update_bits Marco Felsch
2018-06-28 16:20 ` [PATCH 05/22] [media] v4l2-rect.h: add position and equal helpers Marco Felsch
2018-06-29 14:12 ` Sakari Ailus
2018-06-28 16:20 ` [PATCH 06/22] [media] tvp5150: add FORMAT_TRY support for get/set selection handlers Marco Felsch
2018-07-31 0:01 ` Mauro Carvalho Chehab
2018-06-28 16:20 ` [PATCH 07/22] [media] tvp5150: add default format helper Marco Felsch
2018-06-28 16:20 ` [PATCH 08/22] [media] tvp5150: trigger autodetection on subdev open to reset cropping Marco Felsch
2018-06-28 16:20 ` [PATCH 09/22] [media] tvp5150: fix standard autodetection Marco Felsch
2018-06-28 16:20 ` [PATCH 10/22] [media] tvp5150: split reset/enable routine Marco Felsch
2018-06-28 16:20 ` [PATCH 11/22] [media] tvp5150: remove pin configuration from initialization tables Marco Felsch
2018-06-28 16:20 ` [PATCH 12/22] [media] tvp5150: Add sync lock interrupt handling Marco Felsch
2018-06-28 16:20 ` [PATCH 13/22] [media] tvp5150: disable output while signal not locked Marco Felsch
2018-07-30 18:00 ` Mauro Carvalho Chehab
2018-07-30 18:06 ` Mauro Carvalho Chehab
2018-07-31 6:02 ` Marco Felsch
2018-06-28 16:20 ` [PATCH 14/22] [media] tvp5150: issue source change events Marco Felsch
2018-06-28 16:20 ` [PATCH 15/22] [media] tvp5150: add sync lock/loss signal debug messages Marco Felsch
2018-06-28 16:20 ` [PATCH 16/22] [media] tvp5150: add querystd Marco Felsch
2018-07-30 18:09 ` Mauro Carvalho Chehab
2018-08-01 13:21 ` Marco Felsch
2018-08-01 14:22 ` Mauro Carvalho Chehab
2018-08-01 14:49 ` Marco Felsch
2018-08-01 15:50 ` Mauro Carvalho Chehab
2018-08-02 8:01 ` Marco Felsch
2018-08-02 9:49 ` Mauro Carvalho Chehab
2018-08-02 10:16 ` Marco Felsch
2018-08-02 14:38 ` Mauro Carvalho Chehab
2018-08-02 10:54 ` Ian Arkver
2018-08-02 11:58 ` Marco Felsch
2018-06-28 16:20 ` [PATCH 17/22] [media] tvp5150: add g_std callback Marco Felsch
2018-06-28 16:20 ` [PATCH 18/22] partial revert of "[media] tvp5150: add HW input connectors support" Marco Felsch
2018-07-03 23:19 ` Rob Herring
2018-07-30 18:18 ` Mauro Carvalho Chehab
2018-07-31 7:01 ` Marco Felsch
2018-07-31 8:52 ` Javier Martinez Canillas
2018-07-31 10:06 ` Mauro Carvalho Chehab
2018-07-31 11:26 ` Javier Martinez Canillas
2018-07-31 12:36 ` Marco Felsch
2018-07-31 12:52 ` Javier Martinez Canillas
2018-07-31 13:30 ` Marco Felsch
2018-07-31 19:56 ` Mauro Carvalho Chehab
2018-08-01 12:10 ` Marco Felsch
2018-08-01 13:32 ` Mauro Carvalho Chehab
2018-08-01 15:49 ` Marco Felsch
2018-08-01 16:23 ` Javier Martinez Canillas
2018-07-31 13:01 ` Mauro Carvalho Chehab
2018-07-31 13:22 ` Mauro Carvalho Chehab
2018-06-28 16:20 ` [PATCH 19/22] [media] tvp5150: add input source selection of_graph support Marco Felsch
2018-07-30 18:29 ` Mauro Carvalho Chehab
2018-08-08 15:29 ` Marco Felsch
2018-08-08 18:52 ` Mauro Carvalho Chehab
2018-08-09 12:55 ` Marco Felsch
2018-08-09 13:36 ` Mauro Carvalho Chehab
2018-08-09 14:35 ` Marco Felsch
2018-08-09 16:04 ` Mauro Carvalho Chehab
2018-08-09 16:34 ` Marco Felsch
2018-06-28 16:20 ` [PATCH 20/22] [media] tvp5150: Add input port connectors DT bindings Marco Felsch
2018-07-03 23:23 ` Rob Herring
2018-07-11 8:50 ` Marco Felsch
2018-08-03 7:29 ` Marco Felsch
2018-08-03 17:30 ` Mauro Carvalho Chehab [this message]
2018-08-04 9:04 ` Marco Felsch
2018-06-28 16:20 ` [PATCH 21/22] [media] tvp5150: initialize subdev before parsing device tree Marco Felsch
2018-06-28 16:20 ` [PATCH 22/22] [media] tvp5150: Change default input source selection behaviour Marco Felsch
2018-06-28 20:57 ` [PATCH 00/21] TVP5150 fixes and new features Javier Martinez Canillas
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=20180803143030.3cd43921@coco.lan \
--to=mchehab+samsung@kernel.org \
--cc=afshin.nasser@gmail.com \
--cc=devicetree@vger.kernel.org \
--cc=javierm@redhat.com \
--cc=kernel@pengutronix.de \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=m.felsch@pengutronix.de \
--cc=mark.rutland@arm.com \
--cc=mchehab@kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=robh@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).