From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sam Ravnborg Subject: Re: [PATCH v1 2/7] dt-binding: add bindings for Atmel LCDC mfd Date: Fri, 24 Aug 2018 17:58:24 +0200 Message-ID: <20180824155824.GC26678@ravnborg.org> References: <20180812184152.GA22343@ravnborg.org> <20180812184629.3808-2-sam@ravnborg.org> <20180824104517.29f24f44@bbrezillon> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180824104517.29f24f44@bbrezillon> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Boris Brezillon Cc: Mark Rutland , devicetree@vger.kernel.org, Alexandre Belloni , Boris Brezillon , Nicolas Ferre , linux-pwm@vger.kernel.org, Rob Herring , dri-devel@lists.freedesktop.org, Lee Jones , linux-arm-kernel@lists.infradead.org List-Id: linux-pwm@vger.kernel.org SGkgQm9yaXMuCgo+ID4gK1RoZSBMQ0RDIElQIGV4cG9zZXMgdHdvIHN1YmRldmljZXM6Cj4gPiAr IC0gYSBQV00gY2hpcDogc2VlIC4uL3B3bS9hdG1lbC1sY2RjLXB3bS50eHQKPiA+ICsgLSBhIERp c3BsYXkgQ29udHJvbGxlcjogc2VlIC4uL2Rpc3BsYXkvYXRtZWwvbGNkYy1kaXNwbGF5LWNvbnRy b2xsZXIudHh0Cj4gPiArCj4gPiArRXhhbXBsZToKPiA+ICsJbGNkYzA6IGxjZGNANzAwMDAwIHsK PiA+ICsJCWNvbXBhdGlibGUgPSAiYXRtZWwsYXQ5MXNhbTkyNjMtbGNkYy1tZmQiOwo+ID4gKwkJ cmVnID0gPDB4NzAwMDAwIDB4MTAwMD47Cj4gPiArCQlpbnRlcnJ1cHRzID0gPDI2IElSUV9UWVBF X0xFVkVMX0hJR0ggMz47Cj4gPiArCQljbG9ja3MgPSA8JmxjZF9jbGs+LCA8JmxjZF9jbGs+Owo+ ID4gKwkJY2xvY2stbmFtZXMgPSAibGNkY19jbGsiLCAiaGNsayI7Cj4gPiArCj4gPiArCQlsY2Rj LWRpc3BsYXktY29udHJvbGxlciB7Cj4gPiArCQkJY29tcGF0aWJsZSA9ICJhdG1lbCxsY2RjLWRp c3BsYXktY29udHJvbGxlciI7Cj4gPiArCQkJbGNkLXN1cHBseSA9IDwmbGNkY19yZWc+Owo+ID4g KwkJCSNhZGRyZXNzLWNlbGxzID0gPDE+Owo+ID4gKwkJCSNzaXplLWNlbGxzID0gPDA+Owo+ID4g Kwo+ID4gKwkJCXBvcnRAMCB7Cj4gPiArCQkJCXJlZyA9IDwwPjsKPiA+ICsJCQkJI2FkZHJlc3Mt Y2VsbHMgPSA8MT47Cj4gPiArCQkJCSNzaXplLWNlbGxzID0gPDA+Owo+ID4gKwkJCQlsY2RjX3Bh bmVsX291dHB1dDogZW5kcG9pbnRAMCB7Cj4gPiArCQkJCQlyZWcgPSA8MD47Cj4gPiArCQkJCQly ZW1vdGUtZW5kcG9pbnQgPSA8JnBhbmVsX2lucHV0PjsKPiA+ICsJCQkJfTsKPiA+ICsJCQl9Owo+ ID4gKwkJfTsKPiA+ICsKPiA+ICsJCWxjZGNfcHdtOiBsY2RjLXB3bSB7Cj4gPiArCQkJY29tcGF0 aWJsZSA9ICJhdG1lbCxsY2RjLXB3bSI7Cj4gPiArCQkJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0 IjsKPiA+ICsJCQlwaW5jdHJsLTAgPSA8JnBpbmN0cmxfbGNkY19wd20+Owo+ID4gKwkJCSNwd20t Y2VsbHMgPSA8Mz47Cj4gPiArCQl9Owo+ID4gKwo+ID4gKwl9Owo+IAo+IEFsc28sIEkgZG9uJ3Qg cmVtZW1iZXIgd2h5IEkgZGVjaWRlZCB0byBkZWNsYXJlIGRpc3RpbmN0IG5vZGVzIGZvciB0aGUK PiBQV00gYW5kIGRpc3BsYXkgY29udHJvbGxlciwgYnV0IHlvdSBzaG91bGQgcHJvYmFibHkgdHJ5 IHRvIG9ubHkgZGVjbGFyZQo+IHRoZSBsY2RjIG5vZGUuIFNvbWV0aGluZyBsaWtlIHRoYXQ6Cj4g Cj4gCWxjZGMwOiBsY2RjQDcwMDAwMCB7Cj4gCQljb21wYXRpYmxlID0gImF0bWVsLGF0OTFzYW05 MjYzLWxjZGMiOwo+IAkJcmVnID0gPDB4NzAwMDAwIDB4MTAwMD47Cj4gCQlpbnRlcnJ1cHRzID0g PDI2IElSUV9UWVBFX0xFVkVMX0hJR0ggMz47Cj4gCQljbG9ja3MgPSA8JmxjZF9jbGs+LCA8Jmxj ZF9jbGs+Owo+IAkJY2xvY2stbmFtZXMgPSAibGNkY19jbGsiLCAiaGNsayI7Cj4gCQlwaW5jdHJs LW5hbWVzID0gImRlZmF1bHQiOwo+IAkJcGluY3RybC0wID0gPCZwaW5jdHJsX2xjZGNfcHdtIC4u Lj47Cj4gCQkjcHdtLWNlbGxzID0gPDM+Owo+IAkJI2FkZHJlc3MtY2VsbHMgPSA8MT47Cj4gCQkj c2l6ZS1jZWxscyA9IDwwPjsKPiAKPiAJCXBvcnRAMCB7Cj4gCQkJcmVnID0gPDA+Owo+IAkJCSNh ZGRyZXNzLWNlbGxzID0gPDE+Owo+IAkJCSNzaXplLWNlbGxzID0gPDA+Owo+IAkJCWxjZGNfcGFu ZWxfb3V0cHV0OiBlbmRwb2ludEAwIHsKPiAJCQkJcmVnID0gPDA+Owo+IAkJCQlyZW1vdGUtZW5k cG9pbnQgPSA8JnBhbmVsX2lucHV0PjsKPiAJCQl9Owo+IAkJfTsKPiAJfTsKPiAKPiBOb3RlIHRo YXQgdGhpcyByZXByZXNlbnRhdGlvbiBkb2VzIG5vdCBwcmV2ZW50IHVzIGZyb20gaGF2aW5nIGFu IE1GRAo+IHdoaWNoIGRlY2xhcmVzIHRoZSBQV00gYW5kIERpc3BsYXkgRW5naW5lLCBpdCdzIGp1 c3QgdGhhdCBhbGwgZGV2cyB3aWxsCj4gcG9pbnQgdG8gdGhlIHNhbWUgb2Zfbm9kZS4KCkkgaGF2 ZSBzb21ldGhpbmcgc2ltaWxhciBpbiBteSB0cmVlIG5vdywganVzdCBuZWVkIHRvIGZpZ3VyZSBv dXQgdGhlIG1mZCBwYXJ0cy4KCj4gCj4gPiArCj4gPiArCQlsY2RjLWRpc3BsYXktY29udHJvbGxl ciB7Cj4gPiArCQkJY29tcGF0aWJsZSA9ICJhdG1lbCxsY2RjLWRpc3BsYXktY29udHJvbGxlciI7 Cj4gPiArCQkJbGNkLXN1cHBseSA9IDwmbGNkY19yZWc+Owo+IAo+IEhtLCBpcyB0aGlzIGEgcmVn dWxhdG9yIGZvciB0aGUgTENEIGNvbnRyb2xsZXIgb3IgdGhlIExDRD8gSWYgaXQncyBmb3IKPiB0 aGUgTENEIGl0IHNob3VsZCBiZSBwbGFjZWQgdW5kZXIgdGhlIHBhbmVsIG5vZGUuCkl0IHdhcyBh ZGRlZCBvbmx5IGJlY2F1c2UgSSBjb3VsZCBkbyBpdCBhbmQgSSB3YXMgKGFuZCBjb250aW51ZSB0 byBiZSkgYQpEVCBuZXdiaWUuICBXaWxsIGRyb3AgaXQgaW4gdjIgYXMgdGhpcyBpcyBqdXN0IGFu IGV4YW1wbGUgd2hpY2ggdGhpcyBwYXJ0IGRvCm5vdCBhZGQgYW55IHZhbHVlIHRvLgoKPiA+ICsJ cGFuZWw6IHBhbmVsIHsKPiA+ICsJCWNvbXBhdGlibGUgPSAibG9naWN0ZWNobm9sb2dpZXMsbHR0 ZDgwMDQ4MDA3MC1sMnJ0IiwgInNpbXBsZS1wYW5lbCI7ClJlbWluZHMgbWUgdGhhdCBJIG5lZWQg dG8gZGlnIG91dCBhIHBhbmVsLXNpbXBsZSBwYXRjaCBmb3IgYSBmZXcKZGlzcGxheXMgSSB1c2Ug KGxvZ2ljICsgc2Vpa28pLgpCdXQgdGhleSBhcmUgb3RoZXJ3aXNlIG5vdCByZWxhdGVkIHRvIHRo aXMgd29yay4KCglTYW0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: sam@ravnborg.org (Sam Ravnborg) Date: Fri, 24 Aug 2018 17:58:24 +0200 Subject: [PATCH v1 2/7] dt-binding: add bindings for Atmel LCDC mfd In-Reply-To: <20180824104517.29f24f44@bbrezillon> References: <20180812184152.GA22343@ravnborg.org> <20180812184629.3808-2-sam@ravnborg.org> <20180824104517.29f24f44@bbrezillon> Message-ID: <20180824155824.GC26678@ravnborg.org> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi Boris. > > +The LCDC IP exposes two subdevices: > > + - a PWM chip: see ../pwm/atmel-lcdc-pwm.txt > > + - a Display Controller: see ../display/atmel/lcdc-display-controller.txt > > + > > +Example: > > + lcdc0: lcdc at 700000 { > > + compatible = "atmel,at91sam9263-lcdc-mfd"; > > + reg = <0x700000 0x1000>; > > + interrupts = <26 IRQ_TYPE_LEVEL_HIGH 3>; > > + clocks = <&lcd_clk>, <&lcd_clk>; > > + clock-names = "lcdc_clk", "hclk"; > > + > > + lcdc-display-controller { > > + compatible = "atmel,lcdc-display-controller"; > > + lcd-supply = <&lcdc_reg>; > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + port at 0 { > > + reg = <0>; > > + #address-cells = <1>; > > + #size-cells = <0>; > > + lcdc_panel_output: endpoint at 0 { > > + reg = <0>; > > + remote-endpoint = <&panel_input>; > > + }; > > + }; > > + }; > > + > > + lcdc_pwm: lcdc-pwm { > > + compatible = "atmel,lcdc-pwm"; > > + pinctrl-names = "default"; > > + pinctrl-0 = <&pinctrl_lcdc_pwm>; > > + #pwm-cells = <3>; > > + }; > > + > > + }; > > Also, I don't remember why I decided to declare distinct nodes for the > PWM and display controller, but you should probably try to only declare > the lcdc node. Something like that: > > lcdc0: lcdc at 700000 { > compatible = "atmel,at91sam9263-lcdc"; > reg = <0x700000 0x1000>; > interrupts = <26 IRQ_TYPE_LEVEL_HIGH 3>; > clocks = <&lcd_clk>, <&lcd_clk>; > clock-names = "lcdc_clk", "hclk"; > pinctrl-names = "default"; > pinctrl-0 = <&pinctrl_lcdc_pwm ...>; > #pwm-cells = <3>; > #address-cells = <1>; > #size-cells = <0>; > > port at 0 { > reg = <0>; > #address-cells = <1>; > #size-cells = <0>; > lcdc_panel_output: endpoint at 0 { > reg = <0>; > remote-endpoint = <&panel_input>; > }; > }; > }; > > Note that this representation does not prevent us from having an MFD > which declares the PWM and Display Engine, it's just that all devs will > point to the same of_node. I have something similar in my tree now, just need to figure out the mfd parts. > > > + > > + lcdc-display-controller { > > + compatible = "atmel,lcdc-display-controller"; > > + lcd-supply = <&lcdc_reg>; > > Hm, is this a regulator for the LCD controller or the LCD? If it's for > the LCD it should be placed under the panel node. It was added only because I could do it and I was (and continue to be) a DT newbie. Will drop it in v2 as this is just an example which this part do not add any value to. > > + panel: panel { > > + compatible = "logictechnologies,lttd800480070-l2rt", "simple-panel"; Reminds me that I need to dig out a panel-simple patch for a few displays I use (logic + seiko). But they are otherwise not related to this work. Sam