From: Grant Likely <grant.likely@secretlab.ca>
To: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: linux-kernel@vger.kernel.org, sodaville@linutronix.de,
x86@kernel.org, devicetree-discuss@lists.ozlabs.org
Subject: Re: [PATCH 03/15] x86/dtb: Add a device tree for CE4100
Date: Mon, 3 Jan 2011 10:45:00 -0700 [thread overview]
Message-ID: <20110103174500.GC2522@angua.secretlab.ca> (raw)
In-Reply-To: <4D21B2D8.8040509@linutronix.de>
On Mon, Jan 03, 2011 at 12:28:24PM +0100, Sebastian Andrzej Siewior wrote:
> Grant Likely wrote:
>
> >>diff --git a/arch/x86/platform/ce4100/falconfalls.dts b/arch/x86/platform/ce4100/falconfalls.dts
> >>new file mode 100644
> >>index 0000000..24e67ca
> >>--- /dev/null
> >>+++ b/arch/x86/platform/ce4100/falconfalls.dts
> >>+
> >>+ i2c@15a00 {
> >>+ #address-cells = <1>;
> >>+ #size-cells = <0>;
> >>+ reg = <0x15a00 0x0 0x0 0x0>;
> >>+
> >>+
> >>+ i2c@0 {
> >>+ reg = <0>;
> >>+ };
> >>+
> >>+ i2c@1 {
> >>+ #address-cells = <1>;
> >>+ #size-cells = <0>;
> >>+ reg = <1>;
> >>+
> >>+ pcf8575@26 {
> >>+ compatible = "ti,pcf8575";
> >>+ reg = <0x26>;
> >>+ };
> >>+ };
> >>+
> >>+ i2c@2 {
> >>+ #address-cells = <1>;
> >>+ #size-cells = <0>;
> >>+ reg = <2>;
> >>+
> >>+ pcf8575@26 {
> >>+ compatible = "ti,pcf8575";
> >>+ reg = <0x26>;
> >>+ };
> >>+ };
> >
> >All these i2c bus controllers should have a compatible value so that
> >the OS knows what driver to bind to them.
>
> The node i2c@15a00 is the PCI device. This PCI device has three bars, each
> bar is a complete i2c controller. All three controller share one IRQ. The
> device is probed via its pci-id and therefore I have no compatible value
> here. Do you want me to add compatible values based on "Vendor ID, Device
> ID, Subsystem Vendor ID, ..." as mention in the PCI-bindings?
If you have a node describing a device, then it *must* have a
compatible value. Use the OF PCI binding to determine what the
compatible value should be something like:
compatible = "pciVVVV,DDDD,SSSS,ssss", "pciVVVV,DDDD"
See page 9 on this pdf: http://www.openbios.org/data/docs/bus.pci.pdf
The list of possible formats in the binding doc is long, but most of
them probably don't apply in your case (but include the other entries
if they do).
Also, since the i2c@15a00 is *not* an actual i2c bus, it should not be
named 'i2c@...'. Name it something like i2c-controller@15a00,0,0.
You'll also note that I added ',0,0' to the end of the address.
That's because the node address reflects the parent bus address format
which uses 3 cells in this case.
> The child nodes here (i2c@0,...) represent the bars. I probably should
> replace i2c@0 with bar@0 and the reg property with a bar property. Would
> that be okay?
That depends. Are the child nodes separately memory mapped devices?
Or are all three controlled by a shared register bank in the
controller? If they are addressable (which they probably are) then
you need to use a ranges property to describe the translation from the
parent node to the child node. Since you say that the registers
define describe the bars, it probably makes sense to use a 2 cell
addressing scheme: one cell for the bar# and one cell for the offset
off the bar base address (which will be 0 for each I expect).
Something like this:
i2c-controller@15a00 {
compatible = "intel,<blah>", "pciVVVV,DDDD,SSSS,ssss", "pciVVVV,DDDD";
#address-cells = <2>;
#size-cells = <1>; // not 0! 0 is used for
// devices that cannot be
// memory mapped.
reg = <0x15a00 0x0 0x0 0x0>;
// Here's where the magic happens. Each entry in
// ranges describes how the parent pci address space
// (middle group of 3) is translated to the local
// address space (first group of 2) and the size of
// each range (last cell). In this particular case,
// the first cell of the local address is chosen to be
// 1:1 mapped to the BARs, and the second is the
// offset from be base of the BAR (which would be
// non-zero if you had 2 or more devices mapped off
// the same BAR)
//
// ranges allows the address mapping to be described
// in a way that the OS can interpret without
// requiring custom device driver code.
//
// This example assumes that each child node has it's
// own range of memory mapped registers.
ranges = <0 0 0x02000000 0 0xa0000000 0x1000>
<1 0 0x02000000 0 0xa0002000 0x1000>
<2 0 0x02000000 0 0xa0004000 0x1000>
i2c@0,0 {
#address-cells = <1>
#size-cells = <0>;
compatible = <need something here>;
reg = <1 0 0x1000>;
};
i2c@1,0 {
#address-cells = <1>;
#size-cells = <0>;
compatible = <need something here>;
reg = <1 0 0x1000>;
pcf8575@26 {
compatible = "ti,pcf8575";
reg = <0x26>;
};
};
i2c@2,0 {
#address-cells = <1>;
#size-cells = <0>;
compatible = <need something here>;
reg = <2 0 0x1000>;
pcf8575@26 {
compatible = "ti,pcf8575";
reg = <0x26>;
};
};
>
> >Also, the node names for the i2c devices should reflect what the
> >device does, not what the part number is (grep ePAPR for 'generic
> >names')
> Okay. This probably also means that I should replace pic@ with
> interrupt-controller and so on.
Correct.
g.
next prev parent reply other threads:[~2011-01-03 17:45 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1292600033-12271-1-git-send-email-bigeasy@linutronix.de>
[not found] ` <1292600033-12271-1-git-send-email-bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>
2010-12-17 15:33 ` [PATCH 02/15] x86: Add device tree support Sebastian Andrzej Siewior
2010-12-30 8:43 ` Grant Likely
[not found] ` <20101230084311.GD11721-MrY2KI0G/OVr83L8+7iqerDks+cytr/Z@public.gmane.org>
2010-12-30 21:01 ` Grant Likely
[not found] ` <AANLkTi=EFewaizO=1FLALE0eQPUmaFPfTmgoeF+JRpkt-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-01-02 0:40 ` H. Peter Anvin
2011-01-03 12:20 ` Sebastian Andrzej Siewior
2011-01-03 18:05 ` [sodaville] " H. Peter Anvin
2010-12-17 15:33 ` [PATCH 03/15] x86/dtb: Add a device tree for CE4100 Sebastian Andrzej Siewior
[not found] ` <1292600033-12271-4-git-send-email-bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>
2010-12-30 8:51 ` Grant Likely
[not found] ` <20101230085122.GE11721-MrY2KI0G/OVr83L8+7iqerDks+cytr/Z@public.gmane.org>
2011-01-03 11:28 ` Sebastian Andrzej Siewior
2011-01-03 17:45 ` Grant Likely [this message]
[not found] ` <20110103174500.GC2522-MrY2KI0G/OVr83L8+7iqerDks+cytr/Z@public.gmane.org>
2011-01-05 9:48 ` [PATCH v2 " Sebastian Andrzej Siewior
2011-01-05 10:01 ` [PATCH " Sebastian Andrzej Siewior
2011-01-05 23:20 ` David Gibson
2010-12-17 15:33 ` [PATCH 04/15] x86/dtb: add irq domain abstraction Sebastian Andrzej Siewior
2011-01-11 22:03 ` Grant Likely
[not found] ` <20110111220317.GA2131-MrY2KI0G/OVr83L8+7iqerDks+cytr/Z@public.gmane.org>
2011-01-23 13:06 ` Sebastian Andrzej Siewior
2010-12-17 15:33 ` [PATCH 05/15] x86/dtb: add early parsing of APIC and IO APIC Sebastian Andrzej Siewior
[not found] ` <1292600033-12271-6-git-send-email-bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>
2010-12-30 8:54 ` Grant Likely
2011-01-04 13:23 ` [PATCH v2 " Sebastian Andrzej Siewior
[not found] ` <20110104132302.GB21359-Hfxr4Dq0UpYb1SvskN2V4Q@public.gmane.org>
2011-01-11 22:14 ` Grant Likely
[not found] ` <20110111221401.GB2131-MrY2KI0G/OVr83L8+7iqerDks+cytr/Z@public.gmane.org>
2011-01-18 14:56 ` Sebastian Andrzej Siewior
2010-12-17 15:33 ` [PATCH 06/15] x86/dtb: add support hpet Sebastian Andrzej Siewior
[not found] ` <1292600033-12271-7-git-send-email-bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>
2011-01-11 22:26 ` Grant Likely
2010-12-17 15:33 ` [PATCH 07/15] of: move of_irq_map_pci() into generic code Sebastian Andrzej Siewior
2010-12-17 21:16 ` Benjamin Herrenschmidt
2011-01-04 14:27 ` [PATCH v2 " Sebastian Andrzej Siewior
[not found] ` <20110104142754.GD21359-Hfxr4Dq0UpYb1SvskN2V4Q@public.gmane.org>
2011-01-11 23:27 ` Grant Likely
[not found] ` <20110111232726.GD2131-MrY2KI0G/OVr83L8+7iqerDks+cytr/Z@public.gmane.org>
2011-01-12 18:21 ` Sebastian Andrzej Siewior
2010-12-17 15:33 ` [PATCH 08/15] x86/dtb: add support for PCI devices backed by dtb nodes Sebastian Andrzej Siewior
[not found] ` <1292600033-12271-9-git-send-email-bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>
2011-01-11 23:47 ` Grant Likely
2010-12-17 15:33 ` [PATCH 09/15] x86/dtb: Add generic bus probe Sebastian Andrzej Siewior
[not found] ` <1292600033-12271-10-git-send-email-bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>
2011-01-11 23:48 ` Grant Likely
2010-12-17 15:33 ` [PATCH 10/15] x86/ioapic: Add OF bindings for IO-APIC Sebastian Andrzej Siewior
[not found] ` <1292600033-12271-11-git-send-email-bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>
2011-01-11 23:53 ` Grant Likely
[not found] ` <20110111235353.GG2131-MrY2KI0G/OVr83L8+7iqerDks+cytr/Z@public.gmane.org>
2011-01-12 17:07 ` Sebastian Andrzej Siewior
[not found] ` <20110112170707.GA6907-Hfxr4Dq0UpYb1SvskN2V4Q@public.gmane.org>
2011-01-12 17:19 ` [sodaville] " H. Peter Anvin
[not found] ` <4D2DE2B9.2000607-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2011-01-13 10:38 ` Sebastian Andrzej Siewior
2010-12-17 15:33 ` [PATCH 12/15] of/address: use propper endianess in get_flags Sebastian Andrzej Siewior
2010-12-30 9:05 ` Grant Likely
2010-12-17 15:33 ` [PATCH 14/15] rtc/cmos: add OF bindings Sebastian Andrzej Siewior
[not found] ` <1292600033-12271-15-git-send-email-bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>
2011-01-12 0:04 ` Grant Likely
[not found] ` <20110112000442.GJ2131-MrY2KI0G/OVr83L8+7iqerDks+cytr/Z@public.gmane.org>
2011-01-13 10:50 ` [PATCH v2] " Sebastian Andrzej Siewior
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=20110103174500.GC2522@angua.secretlab.ca \
--to=grant.likely@secretlab.ca \
--cc=bigeasy@linutronix.de \
--cc=devicetree-discuss@lists.ozlabs.org \
--cc=linux-kernel@vger.kernel.org \
--cc=sodaville@linutronix.de \
--cc=x86@kernel.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).