Re: [PATCH v2 4/9] drm/panel: Add driver for the LG Philips LB035Q02 panel

Sam Ravnborg
2019-08-11T16:49:54Z

Hi Noralf.

> > +static int lb035q02_write(struct lb035q02_device *lcd, u16 reg, u16 val)
> > +{
> > + struct spi_message msg;
> > + struct spi_transfer index_xfer = {
> > + .len = 3,
> > + .cs_change = 1,
> > + };
> > + struct spi_transfer value_xfer = {
> > + .len = 3,
> > + };
> > + u8 buffer[16];
> > +
> > + spi_message_init(&msg);
> > +
> > + /* register index */
> > + buffer[0] = 0x70;
> > + buffer[1] = 0x00;
> > + buffer[2] = reg & 0x7f;
> > + index_xfer.tx_buf = buffer;
> > + spi_message_add_tail(&index_xfer, &msg);
> > +
> > + /* register value */
> > + buffer[4] = 0x72;
> > + buffer[5] = val >> 8;
> > + buffer[6] = val;
> > + value_xfer.tx_buf = buffer + 4;
> > + spi_message_add_tail(&value_xfer, &msg);
> > +
> > + return spi_sync(lcd->spi, &msg);
> > +}
>
> Just a note to Sam:
> This is the same spi protocol that the ili9325 controller on the hy28b
> panel uses.
>
> I remembered that I have experimented with a regmap implementation:
> https://github.com/notro/tinydrm/blob/master/tinydrm-ili9325.c#L191

regmap seems a too limited interface to use when trying to generalize
this.
We should rather go for a ili-lib or something that can be used in all
the present and future ili based drivers.
Obviously it depends on how similar the ili based chips are.

I did a quick look and this driver did not match the ili9325 datasheet
as different bits was are in register 0x1.
So it smeels like another, similar. ili varaint.

So for this driver we would just use the hardcoded varaint already
present. Then we may re-visit ili-lib idea later if we see too much
similar code.
This is as I see it for now...

Sam