RE: DRM Driver implementation question

From: Gareth Williams
Date: Wed Sep 18 2019 - 10:34:10 EST


Hi Laurent,

On Wed, Sep 18, 2019 at 04:04:34PM +0000, Laurent Pinchart wrote:
>
> Hi Gareth,
>
> Sorry for the delayed response, I was travelling for the Linux
> Plumbers Conference followed by a code camp.
>
> On Tue, Sep 17, 2019 at 03:27:34PM +0000, Gareth Williams wrote:
> > Hi Yoshihiro,
> >
> > This looks like an elegant solution that I can implement.
> > Many thanks for pointing me in a good direction.
> >
> > > From: Yoshihiro Shimoda, Sent: Tuesday, September 17, 2019 05:39
> > > PM
> > >
> > > Hi Gareth,
> > >
> > > > From: Gareth Williams, Sent: Monday, September 16, 2019 10:56 PM
> > > >
> > > > Hi Laurent/Kieran,
> > > >
> > > > I need to upstream a driver for a display controller that within
> > > > its registers memory region contains registers related to a PWM
> > > > device. The PWM device is for controlling the backlight of the
> > > > display.
> > > >
> > > > Ideally, I would like to create a separated driver for the PWM,
> > > > so that I can re-use "pwm-backlight", but since the registers
> > > > for the PWM are right in the middle of the registers for the
> > > > display controller I would need to ioremap the memory region for
> > > > the PWM registers region twice, once from the display controller
> > > > driver, and once from the PWM driver.
> > > >
> > > > Do you think that the double ioremap would be acceptable upstream?
> > >
> > > I think that an MFD driver can support such hardware. I checked
> > > Documentation/devicetree/bindings/mfd roughly, and then
> > > atmel-hlcdc.txt seems to have a display controller and a PWM device.
>
> While MFD should technically work, I think it's quite overkill. You
> could instead bundle both the display controller and the PWM
> controller in the same driver. The driver would create both a DRM/KMS
> device and a PWM device. The DT node for your device would contain a
> #pwm-cells property and could thus be referenced as a PWM controller
> by the backlight using the pwms property.
This makes sense, many thanks for pointing me in the direction.

>
> --
> Regards,
>
> Laurent Pinchart

Kind Regards,

Gareth Williams