From: Tabi Timur-B04825 <B04825-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
To: Mitch Bradley <wmb-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
Cc: "Paweł Moll" <Pawel.Moll-5wv7dgnIgG8@public.gmane.org>,
"patches-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org"
<patches-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
"devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org"
<devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org>,
"Rob Herring"
<rob.herring-CfjtxxwdHycX+EX/Zwu52A@public.gmane.org>,
"linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>
Subject: Re: [PATCH] ARM: vexpress: initial device tree support
Date: Tue, 10 Jan 2012 02:24:08 +0000 [thread overview]
Message-ID: <4F0BA146.807@freescale.com> (raw)
In-Reply-To: <4F0B897A.20502-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
Mitch Bradley wrote:
> The way it works for many "graphics cards" is that the display hardware
> subsystem includes an I2C (also called "SMBUS") interface that connects to
> the EDID ROM on the monitor. In this model, the EDID interface is not a
> standalone device, but rather a feature of the display device.
>
> In that scenario, the EDID-reading code is just part of the display
> driver, so you don't need a separate device node.
On the system I'm supporting, the I2C bus is not part of the video
hardware. The EDID "device" is not even on a dedicated bus -- it's on a
shared I2C bus with other devices.
> If the display hardware does not include a dedicated I2C interface
> intended for EDID, then I think what you need is a way to associate an
> external I2C interface with the display driver for that hardware. The
> interpretation of the data as EDID is not really part of the hardware
> interface, but rather a function of the display driver. Therefore, I think
> the right way to look at this is not to have a binding for "EDID
> interfaces", but rather a convention for associating a specific instance
> of an I2C interface with a display driver.
I don't think that's going to work for me. Reading the EDID data is a
platform function, not a video driver function. I'm adding platform code
to read the EDID data.
We can't really make it generic, either, even though it's using address
0x50 like everyone else. On my platform, for instance, I need to enable
the EDID interface via an FPGA, perform the I2C read, and then disable the
EDID interface.
> The obvious way to do that would be to have a property in the display
> driver whose value is the phandle of an i2c device node. The display
> driver can then use that to read and interpret the EDID bytes.
Hmmm.... now that I think about it, I can create platform-specific "EDID
enable" and "EDID disable" functions, and let the video driver do the I2C
load generically, using a phandle.
> In my opinion, pushing the EDID abstraction into a node by itself is not
> worthwhile.
Well, I have to create an I2C device node in order to get any I2C working.
> The EDID spec says that you read either 128 or 256 bytes from
> an I2C device at I2C address 0x50; you hardly need an abstraction for
> that, given that you have a "read from I2C" method.
> The right level of abstraction at the device node level is "this hardware
> implements an I2C bus master", for which there is already a binding. Then
> all you need is a reference to that device from a display device node.
>
> The display device driver will need to interpret the EDID data in an
> device-dependent manner. That is inherent in the fact that the driver for
> the given display hardware must map the EDID description of the monitor
> into display-hardware-dependent timing settings.
>
> Some I2C interfaces are implemented by bit-banging GPIOs, while others use
> dedicated hardware protocol engines. The display driver need not know or
> care about that, as it should be hidden by the i2c bus abstraction.
This gives me something to think about. Thanks.
--
Timur Tabi
Linux kernel developer at Freescale
next prev parent reply other threads:[~2012-01-10 2:24 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-21 9:19 [PATCH] ARM: vexpress: initial device tree support Dave Martin
[not found] ` <1316596786-2539-1-git-send-email-dave.martin-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2011-09-21 13:24 ` Rob Herring
[not found] ` <4E79E588.6010703-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-09-21 14:24 ` Dave Martin
2011-09-21 14:33 ` Pawel Moll
[not found] ` <1316615590.4611.624.camel-okZbbLrgpR/YkXV2EHHjLW3o5bpOHsLO@public.gmane.org>
2011-09-21 15:49 ` Dave Martin
2011-09-21 14:57 ` Grant Likely
2011-09-21 16:01 ` Pawel Moll
[not found] ` <1316620877.4611.647.camel-okZbbLrgpR/YkXV2EHHjLW3o5bpOHsLO@public.gmane.org>
2011-09-21 16:17 ` Dave Martin
2011-09-21 16:28 ` Pawel Moll
[not found] ` <CACxGe6sTYYXbpXvPb4C+y4JX0eRxLvwjbFycXA8Mjc-XWS1QUA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-09-21 16:37 ` Rob Herring
[not found] ` <4E7A12E2.9040107-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-09-21 17:15 ` Dave Martin
[not found] ` <20110921171545.GG2872-5wv7dgnIgG8@public.gmane.org>
2011-09-21 17:47 ` Mitch Bradley
[not found] ` <4E7A2334.7020904-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2011-09-22 12:19 ` Dave Martin
2012-01-09 23:26 ` Tabi Timur-B04825
[not found] ` <CAOZdJXXPJEaFO-ymvb_TsTJ6W2T7_aWXA=9RZprVmKBOn9cu8A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-01-10 0:42 ` Mitch Bradley
[not found] ` <4F0B897A.20502-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-01-10 2:24 ` Tabi Timur-B04825 [this message]
2012-01-10 12:22 ` Jamie Lokier
[not found] ` <20120110122252.GA7180-DqlFc3psUjeg7Qil/0GVWOc42C6kRsbE@public.gmane.org>
2012-01-10 21:58 ` Timur Tabi
[not found] ` <4F0CB485.9010106-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2012-01-10 22:35 ` Mitch Bradley
[not found] ` <4F0CBD46.2010909-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-01-10 23:55 ` Stephen Warren
[not found] ` <74CDBE0F657A3D45AFBB94109FB122FF177EE3A59C-C7FfzLzN0UxDw2glCA4ptUEOCMrvLtNR@public.gmane.org>
2012-01-11 0:02 ` Timur Tabi
2012-01-11 0:28 ` Timur Tabi
[not found] ` <4F0CD7BC.7080409-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2012-01-11 6:43 ` Mitch Bradley
[not found] ` <4F0D2F90.8020801-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-01-11 20:17 ` Timur Tabi
[not found] ` <4F0DEE4F.3080103-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2012-01-11 23:20 ` Mitch Bradley
[not found] ` <4F0E1923.4090703-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-01-11 23:32 ` Timur Tabi
2012-01-11 20:29 ` Stephen Warren
[not found] ` <74CDBE0F657A3D45AFBB94109FB122FF177EE3A770-C7FfzLzN0UxDw2glCA4ptUEOCMrvLtNR@public.gmane.org>
2012-01-11 20:32 ` Timur Tabi
[not found] ` <4F0DF1E6.40602-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2012-01-11 20:36 ` Stephen Warren
[not found] ` <74CDBE0F657A3D45AFBB94109FB122FF177EE3A777-C7FfzLzN0UxDw2glCA4ptUEOCMrvLtNR@public.gmane.org>
2012-01-11 21:37 ` Timur Tabi
[not found] ` <4F0E0113.9090703-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2012-01-11 21:57 ` Stephen Warren
2012-01-12 12:24 ` Jamie Lokier
[not found] ` <20120112122406.GG7180-DqlFc3psUjeg7Qil/0GVWOc42C6kRsbE@public.gmane.org>
2012-01-12 16:49 ` Stephen Warren
2012-01-11 23:16 ` Mitch Bradley
[not found] ` <4F0E1843.7030207-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-01-12 0:15 ` Stephen Warren
[not found] ` <74CDBE0F657A3D45AFBB94109FB122FF177EE3A848-C7FfzLzN0UxDw2glCA4ptUEOCMrvLtNR@public.gmane.org>
2012-01-12 0:38 ` Mitch Bradley
[not found] ` <4F0E2B95.7070402-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-01-12 0:47 ` Mitch Bradley
2012-01-12 16:45 ` Stephen Warren
2012-01-12 12:09 ` Jamie Lokier
[not found] ` <20120112120920.GF7180-DqlFc3psUjeg7Qil/0GVWOc42C6kRsbE@public.gmane.org>
2012-01-12 16:52 ` Stephen Warren
2012-01-10 11:04 ` Dave Martin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F0BA146.807@freescale.com \
--to=b04825-kzfg59tc24xl57midrcfdg@public.gmane.org \
--cc=Pawel.Moll-5wv7dgnIgG8@public.gmane.org \
--cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=patches-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=rob.herring-CfjtxxwdHycX+EX/Zwu52A@public.gmane.org \
--cc=wmb-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).