summaryrefslogtreecommitdiff
path: root/drivers/video/fbdev/amba-clcd-nomadik.c
AgeCommit message (Collapse)Author
2016-08-30video: ARM CLCD: export symbols for driver moduleArnd Bergmann
The amba-clcd-versatile.c code is always built-in and has to be done that way because it gets called by platform code that is also built-in. However, it now also gets called from the core CLCD driver through the .init_panel callback function, which leads to a build error when the framebuffer is configured as a loadable module: ERROR: "versatile_clcd_init_panel" [drivers/video/fbdev/amba-clcd-mod.ko] undefined! The same thing happens for the nomadik driver, although that could be linked into the core module if we want to: ERROR: "nomadik_clcd_init_panel" [drivers/video/fbdev/amba-clcd.ko] undefined! ERROR: "nomadik_clcd_init_board" [drivers/video/fbdev/amba-clcd.ko] undefined! For consistency, I'm taking the same approach in both cases here and just export the functions to make them usable by the driver. Alternatively, we could split out the CONFIG_OF-code from amba-clcd-versatile.c into a new file and link those two together with the core driver as one module. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Fixes: 1d3f0cbe0d3a ("video: ARM CLCD: add special board and panel hooks for Nomadik") Fixes: 25348160e9a4 ("video: ARM CLCD: add special panel hook for Versatiles") Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2016-08-11video: ARM CLCD: add special board and panel hooks for NomadikLinus Walleij
In the .board_init() callback will set up a mux register in the Nomadik system controller. It so happens that the platform has two display output engines, and we have to poke a bit in a special register to make sure the right engine is muxed in as they are mutually exclusive. The Nomadik CLCD variant is instantiated on a platform where it is combined with a 800x480 TPO WVGA display. In the .panel_init() hook we will detect this display from the compatible string and set it up. We also add .enable() and .disable() callbacks for it as the sleep state is software controlled. The display is connected with a special 3-wire serial bus (this is sadly neither I2C or SPI) using three GPIO lines that we bitbang to detect the display and enable/disable sleep state. Cc: Pawel Moll <pawel.moll@arm.com> Cc: Rob Herring <robh@kernel.org> Cc: Russell King <linux@arm.linux.org.uk> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>