[PATCH/RFC v3 08/19] video: display: Add MIPI DBI bus support

Tomi Valkeinen tomi.valkeinen at ti.com
Fri Sep 6 08:43:57 PDT 2013

On 06/09/13 17:09, Laurent Pinchart wrote:
> Hi Tomi,
> On Monday 26 August 2013 14:10:50 Tomi Valkeinen wrote:
>> On 09/08/13 20:14, 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).
>> This has been discussed before, but I don't remember that the issue would
>> have been cleared, so I'm bringing it up again.
>> What benefit does a real Linux DBI (or DSI) bus give us, compared to
>> representing the DBI the same way as DPI? DBI & DSI are in practice point-
>> to-point buses, and they do not support probing. Is it just that because DBI
>> and DSI can be used to control a device, they have to be Linux buses?
> The idea was to reuse the Linux bus infrastructure to benefit from features 
> such as power management. Implementing DBI/DSI control functions using a 
> DBI/DSI bus is also pretty easy, and would allow controlling DBI/DSI entities 
> much like we control I2C entities. I don't like the idea of using an I2C bus 
> with I2C access functions on one side, and embedding the DBI/DSI access 
> functions as part of CDF entity operations on the other side very much.

While I somewhat like the thought of having DBI and DSI as Linux buses,
I just don't see how it would work. Well, I'm mostly thinking about DSI
here, I have not used DBI for years.

Also, I might remember wrong, but I think I saw Linus expressing his
opinion at some point that he doesn't really like the idea of having a
Linux bus for simple point-to-point buses, which don't have probing
support, and so there isn't much "bus" to speak of, just a point to
point link.

And I think we get the same power management with just having a device
as a child device of another.

> This being said, this isn't the part of CDF that matters the most to me (it's 
> actually not part of CDF strictly speaking). If your model works well enough 
> it won't be too hard to convince me :-)
>> How do you see handling the devices where DBI or DSI is used for video only,
>> and the control is handled via, say, i2c? The module has to register two
>> drivers, and try to keep those in sync? I feel that could get rather hacky.
> If DBI or DSI is used for video only you don't need DBI/DSI control 
> operations, right ? So the entity driver will just be a regular I2C device 
> driver.

Well, DSI can't be used just like that. You need to configure it.

The thing is, DSI is used for both control and video. They are really
the same thing, both are sent as DSI packets. Both need similar kind of
configuration for the bus. If the DSI peripheral sits on a DSI bus, I
imagine this configuration is done via the DSI bus support. But if
there's no DSI bus, how is the configuration done?

I guess a possibility is to have a fixed configuration that cannot be
changed dynamically. But I have a feeling that it'll be a bit limiting
for some cases.

And even with fixed configuration, I think the configuration would
somehow be passed as DSI bus parameters from the board files or in the
DT data (the same way as, say i2c bus speed). If there's no DSI bus, as
the DSI peripheral sits on the i2c bus, where are the parameters?


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 901 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20130906/5759f886/attachment-0001.pgp>

More information about the dri-devel mailing list