Re: [PATCH 0/2] Add QCOM PMIC PWM driver

From: Bjorn Andersson
Date: Wed Apr 28 2021 - 16:07:45 EST


On Wed 28 Apr 13:49 CDT 2021, Subbaraman Narayanamurthy wrote:

> >> Add PWM driver to support PWM modules inside QCOM PMIC chips which are accessed
> >> through SPMI bus. Normally, there would be multiple PWM modules with adjacent
> >> address spaces present in one PMIC chip, and each PWM module has 0x100 size of
> >> address space. With this driver, a pwm_chip with multiple pwm_device individuals
> >> is created, and each pwm_device individual is corresponding to one PWM module.
> >>
>
> > Exposing this as individual pwm_chips will prevent us from enabling the
> > LED related use cases (patterns and multicolor) that most versions of
> > the hardware support.
>
> > I proposed [1] a while ago and think this is a better approach. I'll
> > take some time to respin this and send out the next version.
>
> > [1] https://lore.kernel.org/linux-arm-msm/20201021201224.3430546-1-bjorn.andersson@xxxxxxxxxx/
>
> Hi Bjorn,
> Yes, we came across this patch series but this driver (leds-qcom-lpg) is a
> combo one which provides support only for RGB LEDs (or TRI_LED module) along
> with PWM/LPG channels allocated for it. Say, if we've additional PWM channels
> on the same PMIC (that provides user-interface support) or another PMIC
> (non user-interface) that has multiple PWM channels that are not used for LED
> notifications, it would be good to have a separate PWM driver to support such
> channels IMHO. There are couple of use cases we've come across recently.
>
> 1. Using a PWM channel for controlling external LCD backlight controller
> 2. Using a PWM channel for controlling a haptics actuator
>

The LPG driver, as it's currently written, support using each channel as
a LED, part of a multicolor LED or as a pwm_chip. It's been tested on
pm8916 (which doesn't have triled or the lut), pm*8994, pmi8996 and
pm8150* in various combinations.

In particular the PWM-only modes that you describe here is how the
driver has been used on db410c, for driving the "backlight GPIO" in the
low-speed connector.

Regards,
Bjorn