Re: [PATCH 03/15] x86/dtb: Add a device tree for CE4100

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Grant Likely
Date: Monday, January 3, 2011 - 10:45 am

On Mon, Jan 03, 2011 at 12:28:24PM +0100, Sebastian Andrzej Siewior wrote:

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.


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>;
			};
		};


Correct.

g.

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Add device tree support for x86, v2, Sebastian Andrzej Si ..., (Fri Dec 17, 8:33 am)
[PATCH 01/15] x86/e820: remove conditional early mapping i ..., Sebastian Andrzej Si ..., (Fri Dec 17, 8:33 am)
[PATCH 02/15] x86: Add device tree support, Sebastian Andrzej Si ..., (Fri Dec 17, 8:33 am)
[PATCH 03/15] x86/dtb: Add a device tree for CE4100, Sebastian Andrzej Si ..., (Fri Dec 17, 8:33 am)
[PATCH 04/15] x86/dtb: add irq domain abstraction, Sebastian Andrzej Si ..., (Fri Dec 17, 8:33 am)
[PATCH 05/15] x86/dtb: add early parsing of APIC and IO APIC, Sebastian Andrzej Si ..., (Fri Dec 17, 8:33 am)
[PATCH 06/15] x86/dtb: add support hpet, Sebastian Andrzej Si ..., (Fri Dec 17, 8:33 am)
[PATCH 07/15] of: move of_irq_map_pci() into generic code, Sebastian Andrzej Si ..., (Fri Dec 17, 8:33 am)
[PATCH 08/15] x86/dtb: add support for PCI devices backed ..., Sebastian Andrzej Si ..., (Fri Dec 17, 8:33 am)
[PATCH 09/15] x86/dtb: Add generic bus probe, Sebastian Andrzej Si ..., (Fri Dec 17, 8:33 am)
[PATCH 10/15] x86/ioapic: Add OF bindings for IO-APIC, Sebastian Andrzej Si ..., (Fri Dec 17, 8:33 am)
[PATCH 11/15] x86/ce4100: use OF for ioapic, Sebastian Andrzej Si ..., (Fri Dec 17, 8:33 am)
[PATCH 12/15] of/address: use propper endianess in get_flags, Sebastian Andrzej Si ..., (Fri Dec 17, 8:33 am)
[PATCH 13/15] x86/rtc: don't register rtc if we have an OF ..., Sebastian Andrzej Si ..., (Fri Dec 17, 8:33 am)
[PATCH 14/15] rtc/cmos: add OF bindings, Sebastian Andrzej Si ..., (Fri Dec 17, 8:33 am)
[PATCH 15/15] x86/pci: remove warning, Sebastian Andrzej Si ..., (Fri Dec 17, 8:33 am)
Re: [PATCH 07/15] of: move of_irq_map_pci() into generic code, Benjamin Herrenschmidt, (Fri Dec 17, 2:16 pm)
Re: [PATCH 02/15] x86: Add device tree support, Grant Likely, (Thu Dec 30, 1:43 am)
Re: [PATCH 03/15] x86/dtb: Add a device tree for CE4100, Grant Likely, (Thu Dec 30, 1:51 am)
Re: [PATCH 02/15] x86: Add device tree support, Grant Likely, (Thu Dec 30, 2:01 pm)
Re: [PATCH 02/15] x86: Add device tree support, H. Peter Anvin, (Sat Jan 1, 5:40 pm)
Re: [PATCH 03/15] x86/dtb: Add a device tree for CE4100, Sebastian Andrzej Si ..., (Mon Jan 3, 4:28 am)
Re: [PATCH 02/15] x86: Add device tree support, Sebastian Andrzej Si ..., (Mon Jan 3, 5:20 am)
Re: [PATCH 03/15] x86/dtb: Add a device tree for CE4100, Grant Likely, (Mon Jan 3, 10:45 am)
Re: [sodaville] [PATCH 02/15] x86: Add device tree support, H. Peter Anvin, (Mon Jan 3, 11:05 am)
[PATCH v2 01/15] x86/e820: remove conditional early mappin ..., Sebastian Andrzej Si ..., (Tue Jan 4, 6:08 am)
[PATCH v2 05/15] x86/dtb: add early parsing of APIC and IO ..., Sebastian Andrzej Si ..., (Tue Jan 4, 6:23 am)
[PATCH v2 13/15] x86/rtc: don't register rtc if we the DT blob, Sebastian Andrzej Si ..., (Tue Jan 4, 6:28 am)
[PATCH v2 07/15] of: move of_irq_map_pci() into generic code, Sebastian Andrzej Si ..., (Tue Jan 4, 7:27 am)