The Maxim MAX25014 is an automotive grade backlight driver IC. Its datasheet can be found at [1].
With its integrated boost controller, it can power 4 channels (led strings) and has a number of different modes using pwm and or i2c. Currently implemented is only i2c control. link: https://www.analog.com/media/en/technical-documentation/data-sheets/MAX25014.pdf [1] Signed-off-by: Maud Spierings <[email protected]> --- Changes in v6: - fixup changes in v4 where default brightness handling was changed but not noted - remove leftover comment about initializing brightness - use BIT definitions for fields in the DIAG register - apply reverse christmas tree initialization of local variables - remove !=0 from checks, just check if (ret) - remove > 0 from checks, just check if (val) - use dev_err_probe() more - set enable gpio high in the get() instead of seperately calling set() - change usleep_range() to fsleep() - remove null checks when setting gpio value - get regular regulator, not optional to avoid further NULL checks in case none is provided - introduce max25014_initial_power_state() to check if the bootloader has already initialized the backlight and to correctly set props.power - squash max25014_register_control() into max25014_update_status() - in max25014_configure() perform extra checking on the DISABLE register now that the state from the bootloader is taken into account - Link to v5: https://lore.kernel.org/r/[email protected] Changes in v5: - moved comment about current functions of the driver to the actual comment section of the commit - fixed the led@0 property, regex patternProperty is not needed as of now - added extra clarification about the ISET field/register - moved #address-cells and #size-cells to the correct location - remove leftover default-brightness in backlight nodes - Link to v4: https://lore.kernel.org/r/[email protected] Changes in v4: - remove setting default brightness, let backlight core take care of it - use a led node to describe the backlight - use led-sources to enable specific channels - also wait 2ms when there is a supply but no enable - change dev_warn() to dev_err() in error path in max25014_check_errors() - set backlight_properties.scale to BACKLIGHT_SCALE_LINEAR - rebase latest next - add address-cells and size-cells to i2c4 in av101hdt-a10.dtso - Link to v3: https://lore.kernel.org/r/[email protected] Changes in v3: - fixed commit message type intgrated -> integrated - added maximum and description to maxim,iset-property - dropped unused labels and pinctrl in bindings example - put the compatible first in the bindings example and dts - removed brackets around defines - removed the leftover pdata struct field - removed the initial_brightness struct field - Link to v2: https://lore.kernel.org/r/[email protected] Changes in v2: - Remove leftover unused property from the bindings example - Complete the bindings example with all properties - Remove some double info from the maxim,iset property - Remove platform_data header, fold its data into the max25014 struct - Don't force defines to be unsigned - Remove stray struct max25014 declaration - Remove chipname and device from the max25014 struct - Inline the max25014_backlight_register() and strings_mask() functions - Remove CONFIG_OF ifdef - Link to v1: https://lore.kernel.org/r/[email protected] --- Maud Spierings (4): dt-bindings: backlight: Add max25014 support backlight: add max25014atg backlight arm64: dts: freescale: moduline-display-av101hdt-a10: add backlight arm64: dts: freescale: moduline-display-av123z7m-n17: add backlight .../bindings/leds/backlight/maxim,max25014.yaml | 107 ++++++ MAINTAINERS | 6 + ...x8p-ml81-moduline-display-106-av101hdt-a10.dtso | 30 ++ ...x8p-ml81-moduline-display-106-av123z7m-n17.dtso | 25 +- drivers/video/backlight/Kconfig | 7 + drivers/video/backlight/Makefile | 1 + drivers/video/backlight/max25014.c | 419 +++++++++++++++++++++ 7 files changed, 594 insertions(+), 1 deletion(-) --- base-commit: 9c0826a5d9aa4d52206dd89976858457a2a8a7ed change-id: 20250626-max25014-4207591e1af5 Best regards, -- Maud Spierings <[email protected]>
