From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jean-Christophe PLAGNIOL-VILLARD Subject: Re: [PATCH 4/8] video: atmel_lcdfb: add device tree suport Date: Tue, 16 Apr 2013 15:44:04 +0200 Message-ID: <20130416134404.GA4998@game.jcrosoft.org> References: <20130411145741.GB25242@game.jcrosoft.org> <1365692422-9565-1-git-send-email-plagnioj@jcrosoft.com> <1365692422-9565-4-git-send-email-plagnioj@jcrosoft.com> <516D554C.1090909@atmel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <516D554C.1090909@atmel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Nicolas Ferre Cc: Andrew Morton , devicetree-discuss@lists.ozlabs.org, linux-fbdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org List-Id: devicetree@vger.kernel.org On 15:42 Tue 16 Apr , Nicolas Ferre wrote: > On 04/11/2013 05:00 PM, Jean-Christophe PLAGNIOL-VILLARD : > > get display timings from device tree > > Use videomode helpers to get display timings and configurations from > > device tree > > 2 sentences? Simply elaborate the 2nd one and it will be good. > > > Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD > > Cc: linux-fbdev@vger.kernel.org > > Cc: Nicolas Ferre > > Cc: Andrew Morton > > --- > > .../devicetree/bindings/video/atmel,lcdc.txt | 75 ++++++ > > drivers/video/Kconfig | 2 + > > drivers/video/atmel_lcdfb.c | 244 +++++++++++++++++--- > > 3 files changed, 289 insertions(+), 32 deletions(-) > > create mode 100644 Documentation/devicetree/bindings/video/atmel,lcdc.txt > > > > diff --git a/Documentation/devicetree/bindings/video/atmel,lcdc.txt b/Documentation/devicetree/bindings/video/atmel,lcdc.txt > > new file mode 100644 > > index 0000000..1ec175e > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/video/atmel,lcdc.txt > > Why lcdc? I would have preferred atmel,lcdfb, like the driver's name: it > is even more self-explanatory... we do not describe drivers but IP > > > @@ -0,0 +1,75 @@ > > +Atmel LCDC Framebuffer > > +----------------------------------------------------- > > + > > +Required properties: > > +- compatible : > > + "atmel,at91sam9261-lcdc" , > > + "atmel,at91sam9263-lcdc" , > > + "atmel,at91sam9g10-lcdc" , > > + "atmel,at91sam9g45-lcdc" , > > + "atmel,at91sam9g45es-lcdc" , > > + "atmel,at91sam9rl-lcdc" , > > + "atmel,at32ap-lcdc" > > +- reg : Should contain 1 register ranges(address and length) > > +- interrupts : framebuffer controller interrupt > > +- display: a phandle pointing to the display node > > + > > +Required nodes: > > +- display: a display node is required to initialize the lcd panel > > + This should be in the board dts. > > +- default-mode: a videomode within the display with timing parameters > > + as specified below. > > + > > +Example: > > + > > + fb0: fb@0x00500000 { > > + compatible = "atmel,at91sam9g45-lcdc"; > > + reg = <0x00500000 0x1000>; > > + interrupts = <23 3 0>; > > + pinctrl-names = "default"; > > + pinctrl-0 = <&pinctrl_fb>; > > + display = <&display0>; > > + status = "okay"; > > + #address-cells = <1>; > > + #size-cells = <1>; > > + > > + }; > > + > > +Atmel LCDC Display > > +----------------------------------------------------- > > +Required properties (as per of_videomode_helper): > > Can you please point somewhere to the documentation: > Documentation/devicetree/bindings/video/display-timing.txt > > > + - atmel,dmacon: dma controler configuration > > Typo: controller. > > > + - atmel,lcdcon2: lcd controler configuration > > Ditto > > > + - atmel,guard-time: lcd guard time (Delay in frame periods) > > periods -> period, no? no it's periods even in the datasheet > > > + - bits-per-pixel: lcd panel bit-depth. > > + > > +Optional properties (as per of_videomode_helper): > > + - atmel,lcdcon-backlight: enable backlight > > + - atmel,lcd-wiring-mode: lcd wiring mode "RGB" or "BRG" > > Is it a sting, or a number (as seen below)? If it is a number, please > tell how to choose the index. String > > > > + - atmel,power-control-gpio: gpio to power on or off the LCD (as many as needed) > > + > > +Example: > > + display0: display { > > + bits-per-pixel = <32>; > > + atmel,lcdcon-backlight; > > + atmel,dmacon = <0x1>; > > + atmel,lcdcon2 = <0x80008002>; > > + atmel,guard-time = <9>; > > + atmel,lcd-wiring-mode = <1>; > > + > > + display-timings { > > + native-mode = <&timing0>; > > + timing0: timing0 { > > + clock-frequency = <9000000>; > > + hactive = <480>; > > + vactive = <272>; > > + hback-porch = <1>; > > + hfront-porch = <1>; > > + vback-porch = <40>; > > + vfront-porch = <1>; > > + hsync-len = <45>; > > + vsync-len = <1>; > > + }; > > + }; > > + }; > > diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig > > index 4c1546f..0687482 100644 > > --- a/drivers/video/Kconfig > > +++ b/drivers/video/Kconfig > > @@ -1018,6 +1018,8 @@ config FB_ATMEL > > select FB_CFB_FILLRECT > > select FB_CFB_COPYAREA > > select FB_CFB_IMAGEBLIT > > + select FB_MODE_HELPERS > > + select OF_VIDEOMODE > > help > > This enables support for the AT91/AT32 LCD Controller. > > > > diff --git a/drivers/video/atmel_lcdfb.c b/drivers/video/atmel_lcdfb.c > > index f67e226..4a31570 100644 > > --- a/drivers/video/atmel_lcdfb.c > > +++ b/drivers/video/atmel_lcdfb.c > > @@ -20,7 +20,11 @@ > > #include > > #include > > #include > > +#include > > +#include > > +#include > > #include