summaryrefslogtreecommitdiff
path: root/drivers/video/mxsfb.c
AgeCommit message (Collapse)Author
2025-12-29video: mxsfb: fix pixel clock polaritySam Meredith
DISPLAY_FLAGS_PIXDATA_NEGEDGE means the controller drives the data on pixel clocks falling edge. That is DOTCLK_POL=0 (default) not 1. The mxsfb-drm driver in the Linux kernel has made the same change and it remains to this day: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v6.19-rc2&id=53990e416bb7adaa59d045f325a47f31a11b75ee I found this was required on an IMX8X SoM. Without the patch a splash screen displays with aliasing-like jagged edges. Signed-off-by: Sam Meredith <[email protected]> [fabio: Put more information into the commit log] Signed-off-by: Fabio Estevam <[email protected]>
2024-08-26video: mxs: Avoid setting global_data fb_baseSimon Glass
This is not used, so don't set it. Signed-off-by: Simon Glass <[email protected]>
2024-05-20Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet"Tom Rini
As part of bringing the master branch back in to next, we need to allow for all of these changes to exist here. Reported-by: Jonas Karlman <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-05-19Revert "Merge patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet""Tom Rini
When bringing in the series 'arm: dts: am62-beagleplay: Fix Beagleplay Ethernet"' I failed to notice that b4 noticed it was based on next and so took that as the base commit and merged that part of next to master. This reverts commit c8ffd1356d42223cbb8c86280a083cc3c93e6426, reversing changes made to 2ee6f3a5f7550de3599faef9704e166e5dcace35. Reported-by: Jonas Karlman <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-05-07video: Remove <common.h> and add needed includesTom Rini
Remove <common.h> from this driver directory and when needed add missing include files directly. Reviewed-by: Peter Robinson <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-03-04video: mxsfb: add back imx6ul/imx6ull supportSébastien Szymanski
Because of commit bf947d2a4b15 ("imx6ul: synchronise device tree with linux"), the compatible property of lcdif in imx6ul.dtsi went from compatible = "fsl,imx6ul-lcdif", "fsl,imx28-lcdif"; to compatible = "fsl,imx6ul-lcdif", "fsl,imx6sx-lcdif"; without updating the mxsfb driver to match that change. Add "fsl,imx6sx-lcdif" as a compatible id to fix that. Fixes: bf947d2a4b15 ("imx6ul: synchronise device tree with linux") Signed-off-by: Sébastien Szymanski <[email protected]>
2022-03-28video: mxs: Drop old video codeSimon Glass
This is no-longer used and is the last reference to video_hw_init(). Drop it. Signed-off-by: Simon Glass <[email protected]>
2022-03-28video: Drop video_fb headerSimon Glass
This is not used now. Drop it. Signed-off-by: Simon Glass <[email protected]>
2021-12-27video: mxsfb: fix clk_get_by_name() return value checkGiulio Benetti
If clk_get_by_name() returns 0 it means it executed successfully while now we consider it as an error. So let's check if return value is negative to be an error. Otherwise this prevents "axi" and "disp_axi" to be enabled. Signed-off-by: Giulio Benetti <[email protected]>
2021-09-30WS cleanup: remove SPACE(s) followed by TABWolfgang Denk
Signed-off-by: Wolfgang Denk <[email protected]>
2021-06-09video: mxsfb: add enabling of "disp_axi" clockGiulio Benetti
Some SoC needs "disp_axi" clock to be enabled, so let's try to retrieve it and enabling. If it fails it gives only a debug(), but this clock as well as "axi" clock is not mandatory. Signed-off-by: Giulio Benetti <[email protected]>
2021-06-09video: mxsfb: add enabling of "axi" clock other than "per" clockGiulio Benetti
On some SoC mxsfb needs more than one clock gate(actual "per" clock). So let's introduce "axi" clock that can be provided but it's not mandatory. This is inspired from linux mxsfb driver. Also let's rename "per" clock to "pix" clock for compatibility with already existing .dts lcdif nodes implementation. Signed-off-by: Giulio Benetti <[email protected]>
2021-02-02common: Drop asm/global_data.h from common headerSimon Glass
Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2020-12-13dm: treewide: Rename ..._platdata variables to just ..._platSimon Glass
Try to maintain some consistency between these variables by using _plat as a suffix for them. Signed-off-by: Simon Glass <[email protected]>
2020-12-13dm: treewide: Rename 'platdata' variables to just 'plat'Simon Glass
We use 'priv' for private data but often use 'platdata' for platform data. We can't really use 'pdata' since that is ambiguous (it could mean private or platform data). Rename some of the latter variables to end with 'plat' for consistency. Signed-off-by: Simon Glass <[email protected]>
2020-05-18common: Drop linux/delay.h from common headerSimon Glass
Move this uncommon header out of the common header. Signed-off-by: Simon Glass <[email protected]>
2020-05-18common: Drop log.h from common headerSimon Glass
Move this header out of the common header. Signed-off-by: Simon Glass <[email protected]>
2020-05-18common: Drop net.h from common headerSimon Glass
Move this header out of the common header. Network support is used in quite a few places but it still does not warrant blanket inclusion. Note that this net.h header itself has quite a lot in it. It could be split into the driver-mode support, functions, structures, checksumming, etc. Signed-off-by: Simon Glass <[email protected]>
2020-05-01video: mxsfb: add clk_enable()Giulio Benetti
BROM doesn't enable lcdif by default so add clk_enable() after clk_set_rate(). Signed-off-by: Giulio Benetti <[email protected]> Reviewed-by: Anatolij Gustschin <[email protected]> Reviewed-by: Fabio Estevam <[email protected]>
2020-04-18video: mxsfb: enable setting ENABLE negative polarityGiulio Benetti
ENABLE signal can now be flipped by writing its bitmask on vdctrl0 register. Signed-off-by: Giulio Benetti <[email protected]> Reviewed-by: Anatolij Gustschin <[email protected]>
2020-04-18video: mxsfb: enable setting PIXDATA on negative edgeGiulio Benetti
DOTCLK signal can now be flipped by writing its bitmask on vdctrl0 register. Signed-off-by: Giulio Benetti <[email protected]> Reviewed-by: Anatolij Gustschin <[email protected]>
2020-04-18video: mxsfb: enable setting VSYNC negative polarityGiulio Benetti
VSYNC signal can now be flipped by writing its bitmask on vdctrl0 register. Signed-off-by: Giulio Benetti <[email protected]> Reviewed-by: Anatolij Gustschin <[email protected]>
2020-04-18video: mxsfb: enable setting HSYNC negative polarityGiulio Benetti
HSYNC signal can now be flipped according to display_flags bitmaks by writing its bitmask on vdctrl0 register. Signed-off-by: Giulio Benetti <[email protected]> Reviewed-by: Anatolij Gustschin <[email protected]>
2020-04-18video: mxsfb: refactor for using display_timingsGiulio Benetti
struct display_timings provides more informations such clock and DE polarity, so let's refactor the code to use struct display_timings instead of struct ctfb_res_modes, so we'll become able to get clock and DE polarity settings and set register according to them in the next patch. Signed-off-by: Giulio Benetti <[email protected]> Reviewed-by: Anatolij Gustschin <[email protected]>
2020-04-18video: mxsfb: add support for i.MXRTGiulio Benetti
Add support for i.MXRT by adding CONFIG_IMXRT in register structure and adding .compatible = "fsl,imxrt-lcdif". Signed-off-by: Giulio Benetti <[email protected]> Reviewed-by: Anatolij Gustschin <[email protected]>
2020-04-18video: mxsfb: add support for DM CLKGiulio Benetti
Allow using DM CLK instead of mxs_set_lcdclk() so we can avoid to implement a special function to set lcd clock on i.MXRT. Signed-off-by: Giulio Benetti <[email protected]> Reviewed-by: Anatolij Gustschin <[email protected]>
2020-02-11Merge tag 'dm-pull-6feb20' of https://gitlab.denx.de/u-boot/custodians/u-boot-dmTom Rini
sandbox conversion to SDL2 TPM TEE driver Various minor sandbox video enhancements New driver model core utility functions
2020-02-05dm: core: Create a new header file for 'compat' featuresSimon Glass
At present dm/device.h includes the linux-compatible features. This requires including linux/compat.h which in turn includes a lot of headers. One of these is malloc.h which we thus end up including in every file in U-Boot. Apart from the inefficiency of this, it is problematic for sandbox which needs to use the system malloc() in some files. Move the compatibility features into a separate header file. Signed-off-by: Simon Glass <[email protected]>
2020-02-04video: mxsfb: call remove() when booting OSAnatolij Gustschin
Add DM_FLAG_OS_PREPARE flag to ensure that the driver's remove() callback is invoked before booting the kernel. This is required to stop the LCDIF controller. This was the behaviour with old driver without DM_VIDEO support. Without stopping the LCDIF we sometimes observe incorrect Linux logo position. Fixes: ae0760584b38 ("imx: mx6ul_14x14_evk: convert to DM_VIDEO") Signed-off-by: Anatolij Gustschin <[email protected]> Reported-by: Fabio Estevam <[email protected]> Reviewed-by: Fabio Estevam <[email protected]>
2019-11-24Revert "video: mxsfb: Configure the clock after eLCDIF reset"Fabio Estevam
Commit ec3dcea74470 ("video: mxsfb: Configure the clock after eLCDIF reset") causes boot regression on imx7d-pico/imx7d-sdb boards, so revert it until a better solution is prepared. This reverts commit ec3dcea7447031463643c33143b3a5f027f0b54d. Reported-by: Joris Offouga <[email protected]> Signed-off-by: Fabio Estevam <[email protected]>
2019-11-12video: mxsfb: Configure the clock after eLCDIF resetFabio Estevam
Running stress reboot test on a i.MX6ULL evk board with a custom LCD can lead to splash screen failure (black screen). After comparing the eLCDIF initialization with the Linux kernel driver, it was noticed that the eLCDIF reset is the first operation that needs to be done. So do like the eLCDIF Linux driver and move the eLCDIF clock frequency configuration after the eLCDIF reset and just prior to setting the RUN bit. With this change applied, no more black screen issues has been found during overnight reboot stress tests. Signed-off-by: Fabio Estevam <[email protected]>
2019-11-03video: mxsfb: set gd->fb_baseSébastien Szymanski
Set gd->fb_base so it can be shown with bdinfo command. Signed-off-by: Sébastien Szymanski <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2019-08-11env: Move env_get() to env.hSimon Glass
Move env_get() over to the new header file. Acked-by: Joe Hershberger <[email protected]> Signed-off-by: Simon Glass <[email protected]>
2019-07-29video: mxsfb: fix mxsfb fbdev binding issuesIgor Opaniuk
Add support for display and bits-per-pixel properties. Signed-off-by: Igor Opaniuk <[email protected]> Reviewed-by: Oleksandr Suvorov <[email protected]>
2019-06-04video: mxsfb: add DM_VIDEO supportIgor Opaniuk
Extend the driver to build with DM_VIDEO enabled. DTS files must additionally include 'u-boot,dm-pre-reloc' property in soc and child nodes to enable driver binding to mxsfb device. Signed-off-by: Igor Opaniuk <[email protected]>
2019-06-04video: mxsfb: refactor video_hw_init()Igor Opaniuk
Refactor video_hw_init() function, and introduce an independent function for the common procedure of initialization. Currently video_hw_init() is only in charge of parsing configuration from env("videomode") and filling struct GraphicPanel, and new mxs_probe_common() does hw specific initialization (invocation of mxs_lcd_init() etc.) Signed-off-by: Igor Opaniuk <[email protected]>
2019-06-04video: mxsfb: reorder includesIgor Opaniuk
Follow alphabetical order of includes, which simplifies detecting duplicate includes etc. Signed-off-by: Igor Opaniuk <[email protected]>
2019-06-04video: mxsfb: change mxs_lcd_init signatureIgor Opaniuk
Provide directly framebuffer address instead of pointer to GraphicDevice struct, which will let to re-use this function in DM_VIDEO configurations. Signed-off-by: Igor Opaniuk <[email protected]>
2018-05-07SPDX: Convert all of our single license tags to Linux Kernel styleTom Rini
When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <[email protected]>
2017-08-16env: Rename getenv/_f() to env_get()Simon Glass
We are now using an env_ prefix for environment functions. Rename these two functions for consistency. Also add function comments in common.h. Quite a few places use getenv() in a condition context, provoking a warning from checkpatch. These are fixed up in this patch also. Suggested-by: Wolfgang Denk <[email protected]> Signed-off-by: Simon Glass <[email protected]>
2017-07-12imx: reorganize IMX code as other SOCsStefano Babic
Change is consistent with other SOCs and it is in preparation for adding SOMs. SOC's related files are moved from cpu/ to mach-imx/<SOC>. This change is also coherent with the structure in kernel. Signed-off-by: Stefano Babic <[email protected]> CC: Fabio Estevam <[email protected]> CC: Akshay Bhat <[email protected]> CC: Ken Lin <[email protected]> CC: Marek Vasut <[email protected]> CC: Heiko Schocher <[email protected]> CC: "Sébastien Szymanski" <[email protected]> CC: Christian Gmeiner <[email protected]> CC: Stefan Roese <[email protected]> CC: Patrick Bruenn <[email protected]> CC: Troy Kisky <[email protected]> CC: Nikita Kiryanov <[email protected]> CC: Otavio Salvador <[email protected]> CC: "Eric Bénard" <[email protected]> CC: Jagan Teki <[email protected]> CC: Ye Li <[email protected]> CC: Peng Fan <[email protected]> CC: Adrian Alonso <[email protected]> CC: Alison Wang <[email protected]> CC: Tim Harvey <[email protected]> CC: Martin Donnelly <[email protected]> CC: Marcin Niestroj <[email protected]> CC: Lukasz Majewski <[email protected]> CC: Adam Ford <[email protected]> CC: "Albert ARIBAUD (3ADEV)" <[email protected]> CC: Boris Brezillon <[email protected]> CC: Soeren Moch <[email protected]> CC: Richard Hu <[email protected]> CC: Wig Cheng <[email protected]> CC: Vanessa Maegima <[email protected]> CC: Max Krummenacher <[email protected]> CC: Stefan Agner <[email protected]> CC: Markus Niebel <[email protected]> CC: Breno Lima <[email protected]> CC: Francesco Montefoschi <[email protected]> CC: Jaehoon Chung <[email protected]> CC: Scott Wood <[email protected]> CC: Joe Hershberger <[email protected]> CC: Anatolij Gustschin <[email protected]> CC: Simon Glass <[email protected]> CC: "Andrew F. Davis" <[email protected]> CC: "Łukasz Majewski" <[email protected]> CC: Patrice Chotard <[email protected]> CC: Nobuhiro Iwamatsu <[email protected]> CC: Hans de Goede <[email protected]> CC: Masahiro Yamada <[email protected]> CC: Stephen Warren <[email protected]> CC: Andre Przywara <[email protected]> CC: "Álvaro Fernández Rojas" <[email protected]> CC: York Sun <[email protected]> CC: Xiaoliang Yang <[email protected]> CC: Chen-Yu Tsai <[email protected]> CC: George McCollister <[email protected]> CC: Sven Ebenfeld <[email protected]> CC: Filip Brozovic <[email protected]> CC: Petr Kulhavy <[email protected]> CC: Eric Nelson <[email protected]> CC: Bai Ping <[email protected]> CC: Anson Huang <[email protected]> CC: Sanchayan Maity <[email protected]> CC: Lokesh Vutla <[email protected]> CC: Patrick Delaunay <[email protected]> CC: Gary Bisson <[email protected]> CC: Alexander Graf <[email protected]> CC: [email protected] Reviewed-by: Fabio Estevam <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]>
2017-04-05ARM: mxs: Rename M28EVKMarek Vasut
The board is now manufactured by Aries Embedded GmbH , rename it. Signed-off-by: Marek Vasut <[email protected]>
2017-02-22video: mxsfb: Fix reset hang when videomode variable is not presentFabio Estevam
Currently the system hangs when the 'videomode' variable is not present and a reset command is issued: => setenv videomode => saveenv => reset (Board hangs) lcdif_power_down() assumes that the LCDIF controller has been properly configured and enabled, which may not be true. To fix this issue check whether panel.frameAdrs has been initialized and in case it has not been initialized, do not continue with the LCDIF powerdown sequence. Tested on a imx7dsabresd board. Signed-off-by: Fabio Estevam <[email protected]> Acked-by: Anatolij Gustschin <[email protected]>
2016-09-23treewide: replace #include <asm/errno.h> with <linux/errno.h>Masahiro Yamada
Now, arch/${ARCH}/include/asm/errno.h and include/linux/errno.h have the same content. (both just wrap <asm-generic/errno.h>) Replace all include directives for <asm/errno.h> with <linux/errno.h>. Signed-off-by: Masahiro Yamada <[email protected]> [trini: Fixup include/clk.] Signed-off-by: Tom Rini <[email protected]>
2015-11-12video: mxsfb: introduce lcdif_power_downPeng Fan
Introudce a new function lcdif_power_down. 1. Waits for a VSYNC interrupt to guarantee the reset is done at the VSYNC edge, which somehow makes the LCDIF consume the display FIFO(?) and helps the LCDIF work normally at the kernel stage. 2. Add power down function to stop lcdif. The reason to introduce lcdif_power_down is that we want lcdif to be in initial state when doing uboot reset or before kernel boot to make system stable, otherwise system may hang. Signed-off-by: Peng Fan <[email protected]> Cc: Stefano Babic <[email protected]> Cc: Anatolij Gustschin <[email protected]> Acked-by: Anatolij Gustschin <[email protected]>
2015-11-12mxs: add parameter base_addr for mxs_set_lcdclkPeng Fan
Change mxs_set_lcdclk prototype to add a new parameter base_addr. There are two LCD interfaces for i.MX6SX, we may support LCDIF1 or LCDIF2. Signed-off-by: Peng Fan <[email protected]> Cc: Stefano Babic <[email protected]> Cc: Anatolij Gustschin <[email protected]> Acked-by: Anatolij Gustschin <[email protected]>
2013-08-09video: Implement continuous screen refresh for SmartLCD into mxsfbMarek Vasut
The LCDIF interface doesn't give us any means to do continuous refresh when driving a SmartLCD. To work this around, we produce a special circular DMA descriptor, which only writes the HW_LCDIF_CTRL0 register and sets the RUN bit. Signed-off-by: Marek Vasut <[email protected]> Cc: Anatolij Gustschin <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Otavio Salvador <[email protected]> Cc: Stefano Babic <[email protected]>
2013-08-09video: Add System-Mode configuration hook into mxsfbMarek Vasut
Add hook that allow configuring SmartLCD attached the MXS LCDIF controller operating in System-Mode. This hook can be overriden by a platform-specific SmartLCD programming routine, which writes the SmartLCD specific values into it's registers. Also, this patch makes sure the SYNC signals are off for the SmartLCD case. Signed-off-by: Marek Vasut <[email protected]> Cc: Anatolij Gustschin <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Otavio Salvador <[email protected]> Cc: Stefano Babic <[email protected]>
2013-08-09video: Allocate the MXSFB framebuffer alignedMarek Vasut
Allocate the framebuffer aligned so it can be flushed and the flush_dcache_range() function won't complain. Signed-off-by: Marek Vasut <[email protected]> Cc: Anatolij Gustschin <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Otavio Salvador <[email protected]> Cc: Stefano Babic <[email protected]> Acked-by: Stefano Babic <[email protected]>
2013-07-24Add GPL-2.0+ SPDX-License-Identifier to source filesWolfgang Denk
Signed-off-by: Wolfgang Denk <[email protected]> [trini: Fixup common/cmd_io.c] Signed-off-by: Tom Rini <[email protected]>