video: omap: add support for DM/DTS
authorDario Binacchi <dariobin@libero.it>
Sat, 22 Feb 2020 13:05:45 +0000 (14:05 +0100)
committerLokesh Vutla <lokeshvutla@ti.com>
Tue, 3 Mar 2020 07:38:14 +0000 (13:08 +0530)
commit96b109ba7487d4ec1dfb27782d7408d415fc161d
tree4b05ed9ed4d1673756bf17cbf436efc0a470c805
parenta9df3c50ed7d4535fbd33675ab943deaa0dfd9a8
video: omap: add support for DM/DTS

Update the driver to support the device tree and the driver model.
Timings and panel parameters are now loaded from the device tree.

The DM code replaces the am335x_lcdpanel structure with
tilcdc_panel_info taken from the linux kernel, as well the management
of additional parameters not covered in the legacy code. In addition,
the am335x_lcdpanel structure contains parameters and operations that
were probably a requirement of the board for which this driver was
developed and which, however, were not developed in the linux kernel.
All this led to rewrite th DM controller initialization code, except
for the pixel clock setting that is executed in a function created in a
previous patch with code taken from the legacy am335xfb_init.

The patch has been tested on a custom board with u-boot 2018.11-rc2 and
the following device-tree configuration:

panel {
compatible = "ti,tilcdc,panel";
pinctrl-names = "default";
pinctrl-0 = <&lcd_enable_pins>;
enable-gpios = <&gpio0 31 0>;
backlight = <&backlight>;
status = "okay";
u-boot,dm-pre-reloc;
panel-info {
ac-bias           = <255>;
ac-bias-intrpt    = <0>;
dma-burst-sz      = <16>;
bpp               = <16>;
fdd               = <0x80>;
sync-edge         = <0>;
sync-ctrl         = <1>;
raster-order      = <0>;
fifo-th           = <0>;
};
display-timings {
native-mode = <&timing0>;
timing0: 800x480 {
hactive         = <800>;
vactive         = <480>;
hback-porch     = <46>;
hfront-porch    = <210>;
hsync-len       = <20>;
vback-porch     = <23>;
vfront-porch    = <22>;
vsync-len       = <10>;
clock-frequency = <33000000>;
hsync-active    = <0>;
vsync-active    = <0>;
};
};
};

Signed-off-by: Dario Binacchi <dariobin@libero.it>
Tested-by: Dario Binacchi <dariobin@libero.it>
arch/arm/mach-omap2/am33xx/clock_am33xx.c
drivers/video/Kconfig
drivers/video/am335x-fb.c
drivers/video/am335x-fb.h