[PATCH/RFC v3 08/19] video: display: Add MIPI DBI bus support
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Fri Sep 6 07:56:56 PDT 2013
Hi Vikas,
On Wednesday 04 September 2013 18:22:45 Vikas Sajjan wrote:
> On 9 August 2013 22:44, Laurent Pinchart wrote:
> > MIPI DBI is a configurable-width parallel display bus that transmits
> > commands and data.
> >
> > Add a new DBI Linux bus type that implements the usual bus
> > infrastructure (including devices and drivers (un)registration and
> > matching, and bus configuration and access functions).
> >
> > Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> > ---
> >
> > drivers/video/display/Kconfig | 8 ++
> > drivers/video/display/Makefile | 1 +
> > drivers/video/display/mipi-dbi-bus.c | 234 ++++++++++++++++++++++++++++++
> > include/video/display.h | 4 +
> > include/video/mipi-dbi-bus.h | 125 +++++++++++++++++++
> > 5 files changed, 372 insertions(+)
> > create mode 100644 drivers/video/display/mipi-dbi-bus.c
> > create mode 100644 include/video/mipi-dbi-bus.h
[snip]
> > diff --git a/drivers/video/display/mipi-dbi-bus.c
> > b/drivers/video/display/mipi-dbi-bus.c new file mode 100644
> > index 0000000..791fb4d
> > --- /dev/null
> > +++ b/drivers/video/display/mipi-dbi-bus.c
[snip]
> > +/* ----------------------------------------------------------------------
> > + * Bus operations
> > + */
> > +
> > +int mipi_dbi_set_data_width(struct mipi_dbi_device *dev, unsigned int
> > width)
> > +{
> > + if (width != 8 && width != 16)
> > + return -EINVAL;
> > +
> > + dev->data_width = width;
> > + return 0;
> > +}
> > +EXPORT_SYMBOL_GPL(mipi_dbi_set_data_width);
> > +
> > +int mipi_dbi_write_command(struct mipi_dbi_device *dev, u16 cmd)
> > +{
> > + return dev->bus->ops->write_command(dev->bus, dev, cmd);
>
> Can you help me in pointing out where these function pointer
> (ops->write_command) are assigned in case MIPI DBI.
>
> In case of exynos (drivers/video/exynos/exynos_mipi_dsi.c), we
> assign them as below and register DSI as a platform device
>
> static struct mipi_dsim_master_ops master_ops = {
> .cmd_read = exynos_mipi_dsi_rd_data,
> .cmd_write = exynos_mipi_dsi_wr_data,
> .get_dsim_frame_done =
> exynos_mipi_dsi_get_frame_done_status,
> .clear_dsim_frame_done = exynos_mipi_dsi_clear_frame_done,
> .set_early_blank_mode = exynos_mipi_dsi_early_blank_mode,
> .set_blank_mode = exynos_mipi_dsi_blank_mode, };
>
> Since now you are saying to have it as linux BUS, how should we
> register these ops and how we can configure the MIPI DSI hw itself if
> we register it as bus. I could not find any help in mipi-dbi-bus.c,
> how we actually configure the MIPI DBI h/w itself.
>
> ideally mipi-dbi-bus.c should have done 2 things
> ======================================
>
> 1. provide a framework to register the DBI kind of panel = which is
> supported
>
> 2. provide a framework to register the actuall MIPI DBI H/W itself =
> which i think is missing (correct me, if i am missing anything)
Indeed, you're right... I'll go hide in a dark corner now.
Thinking about it, I should instead implement the missing code, that would
more helpful.
The patch is missing MIPI DBI bus registration. If you have already written
bus registration code feel free to send a patch, otherwise I'll fix it (I'll
wait for your confirmation first).
> > +}
--
Regards,
Laurent Pinchart
More information about the dri-devel
mailing list