Hi Kevin, On Wed, Nov 30, 2016 at 03:48:51PM -0800, Kevin Hilman wrote: > Sakari Ailus <sakari.ailus@xxxxxx> writes: > > > Hi Rob and Kevin, > > > > On Tue, Nov 29, 2016 at 08:41:44AM -0600, Rob Herring wrote: > >> On Mon, Nov 28, 2016 at 4:30 PM, Kevin Hilman <khilman@xxxxxxxxxxxx> wrote: > >> > Hi Rob, > >> > > >> > Rob Herring <robh@xxxxxxxxxx> writes: > >> > > >> >> On Tue, Nov 22, 2016 at 07:52:44AM -0800, Kevin Hilman wrote: > >> >>> Signed-off-by: Kevin Hilman <khilman@xxxxxxxxxxxx> > >> >>> --- > >> >>> .../bindings/media/ti,da850-vpif-capture.txt | 65 ++++++++++++++++++++++ > >> >>> .../devicetree/bindings/media/ti,da850-vpif.txt | 8 +++ > >> >>> 2 files changed, 73 insertions(+) > >> >>> create mode 100644 Documentation/devicetree/bindings/media/ti,da850-vpif-capture.txt > >> >>> create mode 100644 Documentation/devicetree/bindings/media/ti,da850-vpif.txt > >> >>> > >> >>> diff --git a/Documentation/devicetree/bindings/media/ti,da850-vpif-capture.txt b/Documentation/devicetree/bindings/media/ti,da850-vpif-capture.txt > >> >>> new file mode 100644 > >> >>> index 000000000000..c447ac482c1d > >> >>> --- /dev/null > >> >>> +++ b/Documentation/devicetree/bindings/media/ti,da850-vpif-capture.txt > >> >>> @@ -0,0 +1,65 @@ > >> >>> +Texas Instruments VPIF Capture > >> >>> +------------------------------ > >> >>> + > >> >>> +The TI Video Port InterFace (VPIF) capture component is the primary > >> >>> +component for video capture on the DA850 family of TI DaVinci SoCs. > >> >>> + > >> >>> +TI Document number reference: SPRUH82C > >> >>> + > >> >>> +Required properties: > >> >>> +- compatible: must be "ti,da850-vpif-capture" > >> >>> +- reg: physical base address and length of the registers set for the device; > >> >>> +- interrupts: should contain IRQ line for the VPIF > >> >>> + > >> >>> +VPIF capture has a 16-bit parallel bus input, supporting 2 8-bit > >> >>> +channels or a single 16-bit channel. It should contain at least one > >> >>> +port child node with child 'endpoint' node. Please refer to the > >> >>> +bindings defined in > >> >>> +Documentation/devicetree/bindings/media/video-interfaces.txt. > >> >>> + > >> >>> +Example using 2 8-bit input channels, one of which is connected to an > >> >>> +I2C-connected TVP5147 decoder: > >> >>> + > >> >>> + vpif_capture: video-capture@0x00217000 { > >> >>> + reg = <0x00217000 0x1000>; > >> >>> + interrupts = <92>; > >> >>> + > >> >>> + port { > >> >>> + vpif_ch0: endpoint@0 { > >> >>> + reg = <0>; > >> >>> + bus-width = <8>; > >> >>> + remote-endpoint = <&composite>; > >> >>> + }; > >> >>> + > >> >>> + vpif_ch1: endpoint@1 { > >> >> > >> >> I think probably channels here should be ports rather than endpoints. > >> >> AIUI, having multiple endpoints is for cases like a mux or 1 to many > >> >> connections. There's only one data flow, but multiple sources or sinks. > >> > > >> > Looking at this closer... , I used an endpoint because it's bascially a > >> > 16-bit parallel bus, that can be configured as (up to) 2 8-bit > >> > "channels. So, based on the video-interfaces.txt doc, I configured this > >> > as a single port, with (up to) 2 endpoints. That also allows me to > >> > connect output of the decoder directly, using the remote-endpoint > >> > property. > >> > > >> > So I guess I'm not fully understanding your suggestion. > >> > >> NM, looks like video-interfaces.txt actually spells out this case and > >> defines doing it as you did. > > > > It's actually the first time I read that portion (at least so that I could > > remember) of video-interfaces.txt. I'm not sure if anyone has implemented > > that previously, nor how we ended up with the text. The list archive could > > probably tell. Cc Guennadi who wrote it. :-) I couldn't immediately find DT > > source with this arrangement. > > > > In case of splitting the port into two parallel interfaces, how do you > > determine which wires belong to which endpoint? I guess they'd be particular > > sets of wires but as there's just a single port it isn't defined by the > > port. > > Isn't that the point of data-shift? Right. > > e.g. it's a single 16-bit parallel bus, where the lower 8 bits are for > channel 0 and the upper 8 bits are for channel 1. Alternately, the port > can also be configured as a single 16-bit channel (e.g. for raw > capture.) > > If you want more details on this hardware, it's pretty well described in > Chapter 35 of http://www.ti.com/lit/ug/spruh82c/spruh82c.pdf. > > FWIW, I'm not really picky about how to do this. I'm trying to learn > "the right way" and am happy to do that, but the feedback so far has > been confusing (at least for someone relatively new to the DT side of > the media framework.) I have to admit I'm more familiar with cameras and serial busses than TV tuners and parallel busses. Yeah, the data-shift is there for that purpose. I think you should document which properties are expected to be found in the port / endpoint nodes, the video-interfaces.txt has very many of them and I don't think many of those are even relevant in this case. -- Kind regards, Sakari Ailus e-mail: sakari.ailus@xxxxxx XMPP: sailus@xxxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html