Hi,
On Wed, Jul 7, 2021 at 4:55 PM Linus Walleij linus.walleij@linaro.org wrote:
This adds a driver for panels based on the WideChips WS2401 display controller. This display controller is used in the Samsung LMS380KF01 display found in the Samsung GT-I8160 (Codina) mobile phone and possibly others.
As is common with Samsung displays manufacturer commands are necessary to configure the display to a working state.
The display optionally supports internal backlight control, but can also use an external backlight.
This driver re-uses the DBI infrastructure to communicate with the display.
Cc: phone-devel@vger.kernel.org Cc: Douglas Anderson dianders@chromium.org Cc: Noralf Trønnes noralf@tronnes.org Signed-off-by: Linus Walleij linus.walleij@linaro.org
ChangeLog v2->v3:
- Drop the ws2401_command() macro - we enhanced the mipi_dbi_command() to print errors for everyone instead.
- Read out MTP properly (used wrong variables)
- Register internal backlight if and only if the panel->backlight field is NULL after trying to look up external backlight.
ChangeLog v1->v2:
- Disable the backlight in ->unprepare() before entering sleep mode.
- If we are not using internal backlight, close the L2 access after initializing.
- Depromote some talkative dev_info()s to dev_dbg().
- Power up and read the MTP values before we register the display. This works fine and is probably how MTP is supposed to work.
- Fix the set-up of gamma values, this was found in the GT-I8160 HD kernel tree.
- Bail out properly if drm_panel_of_backlight() returns -EDEFER_PROBE.
- Drop OF from dependencies since drm_panel_of_backlight() has static inline stubs in the header file.
- Sort MAINTAINERS properly.
- Alphabetize includes
- Use format specifier %#02x so we get 0x... output in debug
- Drop unnecessary braces around if () in debug macro
- Drop unused <of.h> include.
MAINTAINERS | 7 + drivers/gpu/drm/panel/Kconfig | 9 + drivers/gpu/drm/panel/Makefile | 1 + .../gpu/drm/panel/panel-widechips-ws2401.c | 436 ++++++++++++++++++ 4 files changed, 453 insertions(+)
Looks nice to me now.
Reviewed-by: Douglas Anderson dianders@chromium.org