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 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel