From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753711AbdESJcS (ORCPT ); Fri, 19 May 2017 05:32:18 -0400 Received: from galahad.ideasonboard.com ([185.26.127.97]:60812 "EHLO galahad.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750761AbdESJcR (ORCPT ); Fri, 19 May 2017 05:32:17 -0400 From: Laurent Pinchart To: Archit Taneja Cc: Eric Anholt , Rob Herring , dri-devel , Thierry Reding , Mark Rutland , Andrzej Hajda , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH 2/4] dt-bindings: Document the Raspberry Pi Touchscreen nodes. Date: Fri, 19 May 2017 12:32:27 +0300 Message-ID: <21080088.MT6ayIGAs6@avalon> User-Agent: KMail/4.14.10 (Linux/4.9.16-gentoo; KDE/4.14.32; x86_64; ; ) In-Reply-To: References: <20170511235625.22427-1-eric@anholt.net> <3771766.1sVmoPRjsn@avalon> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Archit, On Friday 19 May 2017 14:24:36 Archit Taneja wrote: > On 05/18/2017 08:25 PM, Laurent Pinchart wrote: > > On Thursday 18 May 2017 13:56:19 Archit Taneja wrote: > >> On 05/17/2017 12:16 AM, Eric Anholt wrote: > > > > [snip] > > > >>> In terms of physical connections: > >>> [15-pin "DSI" connector on 2835] > >>> | I2C | DSI > >>> / \ SPI | > >>> [TS] [Atmel]------[TC358762] > >>> \ | > >>> \PWM | > >>> \ | DPI > >>> > >>> [some backlight]------[some unknown panel] > >>> > >>> The binding I'm trying to create is to expose what's necessary for a > >>> driver that talks I2C to the Atmel, which then controls the PWM and does > >>> the command sequence over SPI to the Toshiba that sets up its end of the > >>> DSI link. > >> > >> The bridge (Atmel + TC358762 combination) here looks like it's primarily > >> an i2c device (i.e, the control bus is i2c). Therefore, the drm-bridge > >> driver here should be an i2c driver instead of a mipi_dsi_driver. > > > > Glad to see we agree, that's what I've proposed in a separate answer :-) > > I'd go one step further though, there should be no DRM bridge, just a DRM > > panel. > > If the PCB containing the controller chips and the panel are part of a > single casing, and the set up won't work with another panel, then yeah, I > agree. If the bridge chips are on a separate adapter board, and there is a > possibility to connect other panels, then maybe a separate DRM bridge and a > DRM panel might be a safer bet. I thought it was a single black box, but upon closer inspection there's a separate PCB with the Microcontroller and TC358762. Eric, do you know if it's possible to exchange the panel for another one (and not just an model with identical features from another vendor, but another panel with a different mode for instance) without reprogramming the microcontroller, or is the bridge board tied to the panel model ? > >> We have the facility to create a mipi DSI device without the need to have > >> a corresponding node in DT. The ADV7533 and TC358767 drivers are examples > >> of that. > >> > >> The following is what the binding could look like, it's same as what Rob > >> also mentioned previously in the thread. > >> > >> Thanks, > >> Archit > >> > >> dsi1: dsi@7e700000 { > >> > >> #address-cells = <1>; > >> #size-cells = <0>; > >> <...> > >> > >> /* The SoC's DSI input/output port */ > >> ports { > >> #address-cells = <1>; > >> #size-cells = <0>; > >> > >> /* port@0 if needed */ > >> port@1 { > >> dsi_out_port: endpoint { > >> reg = <1>; > >> remote-endpoint = <&bridge_dsi_port>; > >> }; > >> }; > >> }; > >> }; > >> > >> i2c_dsi: i2c { > >> compatible = "i2c-gpio"; > >> #address-cells = <1>; > >> #size-cells = <0>; > >> gpios = <&gpio 28 0 > >> &gpio 29 0>; > >> > >> /* the Atmel + TC35872 bridge */ > >> pitouchscreen_bridge: bridge@45 { > > > > This should thus be lcd@45. > > > >> compatible = "raspberrypi,touchscreen-bridge"; > > > > And this raspberrypi,7inch-touchscreen-panel. Shame we haven't > > standardized > > the vendor name prefix to rpi :-/ > > > >> reg = <0x45>; > >> > >> ports { > >> #address-cells = <1>; > >> #size-cells = <0>; > >> port@0 { > >> reg = <0>; > >> bridge_dsi_port: endpoint { > > > > This should be named panel_dsi_port. > > > >> remote-endpoint = <&dsi_out_port>; > >> }; > >> }; > >> port@1 { > >> reg = <1>; > >> bridge_dpi_port: endpoint { > >> remote-endpoint = > > <&pitouchscreen_panel_port>; > >> }; > >> }; > > > > The second port is thus not needed. > > > >> }; > > > > So we can simplify this to > > > > port { > > panel_dsi_port: endpoint { > > remote-endpoint = <&dsi_out_port>; > > }; > > }; > > > > (no need for a ports node when there's a single port) > > > >> }; > >> }; > >> > >> lcd { > >> compatible = "raspberrypi,7inch-touchscreen-panel"; > >> ports { > >> #address-cells = <1>; > >> #size-cells = <0>; > >> port@0 { > >> reg = <0>; > >> pitouchscreen_panel_port: endpoint { > >> remote-endpoint = <&bridge_dpi_port>; > >> }; > >> }; > >> }; > >> }; > > > > And this node can go away. -- Regards, Laurent Pinchart From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH 2/4] dt-bindings: Document the Raspberry Pi Touchscreen nodes. Date: Fri, 19 May 2017 12:32:27 +0300 Message-ID: <21080088.MT6ayIGAs6@avalon> References: <20170511235625.22427-1-eric@anholt.net> <3771766.1sVmoPRjsn@avalon> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Archit Taneja Cc: Mark Rutland , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , dri-devel , Rob Herring List-Id: devicetree@vger.kernel.org SGkgQXJjaGl0LAoKT24gRnJpZGF5IDE5IE1heSAyMDE3IDE0OjI0OjM2IEFyY2hpdCBUYW5lamEg d3JvdGU6Cj4gT24gMDUvMTgvMjAxNyAwODoyNSBQTSwgTGF1cmVudCBQaW5jaGFydCB3cm90ZToK PiA+IE9uIFRodXJzZGF5IDE4IE1heSAyMDE3IDEzOjU2OjE5IEFyY2hpdCBUYW5lamEgd3JvdGU6 Cj4gPj4gT24gMDUvMTcvMjAxNyAxMjoxNiBBTSwgRXJpYyBBbmhvbHQgd3JvdGU6Cj4gPgo+ID4g W3NuaXBdCj4gPiAKPiA+Pj4gSW4gdGVybXMgb2YgcGh5c2ljYWwgY29ubmVjdGlvbnM6Cj4gPj4+ ICAgIFsxNS1waW4gIkRTSSIgY29ubmVjdG9yIG9uIDI4MzVdCj4gPj4+ICAgICB8IEkyQyAgICAg ICAgICAgICAgIHwgRFNJCj4gPj4+ICAgIC8gXCAgICAgICAgU1BJICAgICAgIHwKPiA+Pj4gW1RT XSAgW0F0bWVsXS0tLS0tLVtUQzM1ODc2Ml0KPiA+Pj4gICAgICAgIFwgICAgICAgICAgICAgICAg fAo+ID4+PiAgICAgICAgIFxQV00gICAgICAgICAgICB8Cj4gPj4+ICAgICAgICAgIFwgICAgICAg ICAgICAgIHwgRFBJCj4gPj4+IAo+ID4+PiBbc29tZSBiYWNrbGlnaHRdLS0tLS0tW3NvbWUgdW5r bm93biBwYW5lbF0KPiA+Pj4gCj4gPj4+IFRoZSBiaW5kaW5nIEknbSB0cnlpbmcgdG8gY3JlYXRl IGlzIHRvIGV4cG9zZSB3aGF0J3MgbmVjZXNzYXJ5IGZvciBhCj4gPj4+IGRyaXZlciB0aGF0IHRh bGtzIEkyQyB0byB0aGUgQXRtZWwsIHdoaWNoIHRoZW4gY29udHJvbHMgdGhlIFBXTSBhbmQgZG9l cwo+ID4+PiB0aGUgY29tbWFuZCBzZXF1ZW5jZSBvdmVyIFNQSSB0byB0aGUgVG9zaGliYSB0aGF0 IHNldHMgdXAgaXRzIGVuZCBvZiB0aGUKPiA+Pj4gRFNJIGxpbmsuCj4gPj4gCj4gPj4gVGhlIGJy aWRnZSAoQXRtZWwgKyBUQzM1ODc2MiBjb21iaW5hdGlvbikgaGVyZSBsb29rcyBsaWtlIGl0J3Mg cHJpbWFyaWx5Cj4gPj4gYW4gaTJjIGRldmljZSAoaS5lLCB0aGUgY29udHJvbCBidXMgaXMgaTJj KS4gVGhlcmVmb3JlLCB0aGUgZHJtLWJyaWRnZQo+ID4+IGRyaXZlciBoZXJlIHNob3VsZCBiZSBh biBpMmMgZHJpdmVyIGluc3RlYWQgb2YgYSBtaXBpX2RzaV9kcml2ZXIuCj4gPiAKPiA+IEdsYWQg dG8gc2VlIHdlIGFncmVlLCB0aGF0J3Mgd2hhdCBJJ3ZlIHByb3Bvc2VkIGluIGEgc2VwYXJhdGUg YW5zd2VyIDotKQo+ID4gSSdkIGdvIG9uZSBzdGVwIGZ1cnRoZXIgdGhvdWdoLCB0aGVyZSBzaG91 bGQgYmUgbm8gRFJNIGJyaWRnZSwganVzdCBhIERSTQo+ID4gcGFuZWwuCj4KPiBJZiB0aGUgUENC IGNvbnRhaW5pbmcgdGhlIGNvbnRyb2xsZXIgY2hpcHMgYW5kIHRoZSBwYW5lbCBhcmUgcGFydCBv ZiBhCj4gc2luZ2xlIGNhc2luZywgYW5kIHRoZSBzZXQgdXAgd29uJ3Qgd29yayB3aXRoIGFub3Ro ZXIgcGFuZWwsIHRoZW4geWVhaCwgSQo+IGFncmVlLiBJZiB0aGUgYnJpZGdlIGNoaXBzIGFyZSBv biBhIHNlcGFyYXRlIGFkYXB0ZXIgYm9hcmQsIGFuZCB0aGVyZSBpcyBhCj4gcG9zc2liaWxpdHkg dG8gY29ubmVjdCBvdGhlciBwYW5lbHMsIHRoZW4gbWF5YmUgYSBzZXBhcmF0ZSBEUk0gYnJpZGdl IGFuZCBhCj4gRFJNIHBhbmVsIG1pZ2h0IGJlIGEgc2FmZXIgYmV0LgoKSSB0aG91Z2h0IGl0IHdh cyBhIHNpbmdsZSBibGFjayBib3gsIGJ1dCB1cG9uIGNsb3NlciBpbnNwZWN0aW9uIHRoZXJlJ3Mg YSAKc2VwYXJhdGUgUENCIHdpdGggdGhlIE1pY3JvY29udHJvbGxlciBhbmQgVEMzNTg3NjIuCgpF cmljLCBkbyB5b3Uga25vdyBpZiBpdCdzIHBvc3NpYmxlIHRvIGV4Y2hhbmdlIHRoZSBwYW5lbCBm b3IgYW5vdGhlciBvbmUgKGFuZCAKbm90IGp1c3QgYW4gbW9kZWwgd2l0aCBpZGVudGljYWwgZmVh dHVyZXMgZnJvbSBhbm90aGVyIHZlbmRvciwgYnV0IGFub3RoZXIgCnBhbmVsIHdpdGggYSBkaWZm ZXJlbnQgbW9kZSBmb3IgaW5zdGFuY2UpIHdpdGhvdXQgcmVwcm9ncmFtbWluZyB0aGUgCm1pY3Jv Y29udHJvbGxlciwgb3IgaXMgdGhlIGJyaWRnZSBib2FyZCB0aWVkIHRvIHRoZSBwYW5lbCBtb2Rl bCA/Cgo+ID4+IFdlIGhhdmUgdGhlIGZhY2lsaXR5IHRvIGNyZWF0ZSBhIG1pcGkgRFNJIGRldmlj ZSB3aXRob3V0IHRoZSBuZWVkIHRvIGhhdmUKPiA+PiBhIGNvcnJlc3BvbmRpbmcgbm9kZSBpbiBE VC4gVGhlIEFEVjc1MzMgYW5kIFRDMzU4NzY3IGRyaXZlcnMgYXJlIGV4YW1wbGVzCj4gPj4gb2Yg dGhhdC4KPiA+PiAKPiA+PiBUaGUgZm9sbG93aW5nIGlzIHdoYXQgdGhlIGJpbmRpbmcgY291bGQg bG9vayBsaWtlLCBpdCdzIHNhbWUgYXMgd2hhdCBSb2IKPiA+PiBhbHNvIG1lbnRpb25lZCBwcmV2 aW91c2x5IGluIHRoZSB0aHJlYWQuCj4gPj4gCj4gPj4gVGhhbmtzLAo+ID4+IEFyY2hpdAo+ID4+ IAo+ID4+IGRzaTE6IGRzaUA3ZTcwMDAwMCB7Cj4gPj4gCj4gPj4gCSNhZGRyZXNzLWNlbGxzID0g PDE+Owo+ID4+IAkjc2l6ZS1jZWxscyA9IDwwPjsKPiA+PiAJPC4uLj4KPiA+PiAJCj4gPj4gCS8q IFRoZSBTb0MncyBEU0kgaW5wdXQvb3V0cHV0IHBvcnQgKi8KPiA+PiAJcG9ydHMgewo+ID4+IAkJ I2FkZHJlc3MtY2VsbHMgPSA8MT47Cj4gPj4gCQkjc2l6ZS1jZWxscyA9IDwwPjsKPiA+PiAJCQo+ ID4+IAkJLyogcG9ydEAwIGlmIG5lZWRlZCAqLwo+ID4+IAkJcG9ydEAxIHsKPiA+PiAJCQlkc2lf b3V0X3BvcnQ6IGVuZHBvaW50IHsKPiA+PiAJCQkJcmVnID0gPDE+Owo+ID4+IAkJCQlyZW1vdGUt ZW5kcG9pbnQgPSA8JmJyaWRnZV9kc2lfcG9ydD47Cj4gPj4gCQkJfTsKPiA+PiAJCX07Cj4gPj4g CX07Cj4gPj4gfTsKPiA+PiAKPiA+PiBpMmNfZHNpOiBpMmMgewo+ID4+IAljb21wYXRpYmxlID0g ImkyYy1ncGlvIjsKPiA+PiAJI2FkZHJlc3MtY2VsbHMgPSA8MT47Cj4gPj4gCSNzaXplLWNlbGxz ID0gPDA+Owo+ID4+IAlncGlvcyA9IDwmZ3BpbyAyOCAwCj4gPj4gCQkgJmdwaW8gMjkgMD47Cj4g Pj4gCQo+ID4+IAkvKiB0aGUgQXRtZWwgKyBUQzM1ODcyIGJyaWRnZSAqLwo+ID4+IAlwaXRvdWNo c2NyZWVuX2JyaWRnZTogYnJpZGdlQDQ1IHsKPiA+IAo+ID4gVGhpcyBzaG91bGQgdGh1cyBiZSBs Y2RANDUuCj4gPiAKPiA+PiAJCWNvbXBhdGlibGUgPSAicmFzcGJlcnJ5cGksdG91Y2hzY3JlZW4t YnJpZGdlIjsKPiA+IAo+ID4gQW5kIHRoaXMgcmFzcGJlcnJ5cGksN2luY2gtdG91Y2hzY3JlZW4t cGFuZWwuIFNoYW1lIHdlIGhhdmVuJ3QKPiA+IHN0YW5kYXJkaXplZAo+ID4gdGhlIHZlbmRvciBu YW1lIHByZWZpeCB0byBycGkgOi0vCj4gPiAKPiA+PiAJCXJlZyA9IDwweDQ1PjsKPiA+PiAJCQo+ ID4+IAkJcG9ydHMgewo+ID4+IAkJCSNhZGRyZXNzLWNlbGxzID0gPDE+Owo+ID4+IAkJCSNzaXpl LWNlbGxzID0gPDA+Owo+ID4+IAkJCXBvcnRAMCB7Cj4gPj4gCQkJCXJlZyA9IDwwPjsKPiA+PiAJ CQkJYnJpZGdlX2RzaV9wb3J0OiBlbmRwb2ludCB7Cj4gPiAKPiA+IFRoaXMgc2hvdWxkIGJlIG5h bWVkIHBhbmVsX2RzaV9wb3J0Lgo+ID4gCj4gPj4gCQkJCQlyZW1vdGUtZW5kcG9pbnQgPSA8JmRz aV9vdXRfcG9ydD47Cj4gPj4gCQkJCX07Cj4gPj4gCQkJfTsKPiA+PiAJCQlwb3J0QDEgewo+ID4+ IAkJCQlyZWcgPSA8MT47Cj4gPj4gCQkJCWJyaWRnZV9kcGlfcG9ydDogZW5kcG9pbnQgewo+ID4+ IAkJCQkJcmVtb3RlLWVuZHBvaW50ID0KPiA+IDwmcGl0b3VjaHNjcmVlbl9wYW5lbF9wb3J0PjsK PiA+PiAJCQkJfTsKPiA+PiAJCQl9Owo+ID4gCj4gPiBUaGUgc2Vjb25kIHBvcnQgaXMgdGh1cyBu b3QgbmVlZGVkLgo+ID4gCj4gPj4gCQl9Owo+ID4gCj4gPiBTbyB3ZSBjYW4gc2ltcGxpZnkgdGhp cyB0bwo+ID4gCj4gPiAJCXBvcnQgewo+ID4gCQkJcGFuZWxfZHNpX3BvcnQ6IGVuZHBvaW50IHsK PiA+IAkJCQlyZW1vdGUtZW5kcG9pbnQgPSA8JmRzaV9vdXRfcG9ydD47Cj4gPiAJCQl9Owo+ID4g CQl9Owo+ID4gCj4gPiAobm8gbmVlZCBmb3IgYSBwb3J0cyBub2RlIHdoZW4gdGhlcmUncyBhIHNp bmdsZSBwb3J0KQo+ID4gCj4gPj4gCX07Cj4gPj4gfTsKPiA+PiAKPiA+PiBsY2Qgewo+ID4+IAlj b21wYXRpYmxlID0gInJhc3BiZXJyeXBpLDdpbmNoLXRvdWNoc2NyZWVuLXBhbmVsIjsKPiA+PiAJ cG9ydHMgewo+ID4+IAkJI2FkZHJlc3MtY2VsbHMgPSA8MT47Cj4gPj4gCQkjc2l6ZS1jZWxscyA9 IDwwPjsKPiA+PiAJCXBvcnRAMCB7Cj4gPj4gCQkJcmVnID0gPDA+Owo+ID4+IAkJCXBpdG91Y2hz Y3JlZW5fcGFuZWxfcG9ydDogZW5kcG9pbnQgewo+ID4+IAkJCQlyZW1vdGUtZW5kcG9pbnQgPSA8 JmJyaWRnZV9kcGlfcG9ydD47Cj4gPj4gCQkJfTsKPiA+PiAJCX07Cj4gPj4gCX07Cj4gPj4gfTsK PiA+IAo+ID4gQW5kIHRoaXMgbm9kZSBjYW4gZ28gYXdheS4KCi0tIApSZWdhcmRzLAoKTGF1cmVu dCBQaW5jaGFydAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs Cg==