MPC5200 Device Tree Bindings
----------------------------

(c) 2006-2007 Secret Lab Technologies Ltd
Grant Likely <grant.likely at secretlab.ca>

********** DRAFT ***********
* WARNING: Do not depend on the stability of these bindings just yet.
* The MPC5200 device tree conventions are still in flux
* Keep an eye on the linuxppc-dev mailing list for more details
********** DRAFT ***********

I - Introduction
================
Boards supported by the arch/powerpc architecture require device tree be
passed by the boot loader to the kernel at boot time.  The device tree
describes what devices are present on the board and how they are
connected.  The device tree can either be passed as a binary blob (as
described in Documentation/powerpc/booting-without-of.txt), or passed
by Open Firmare (IEEE 1275) compatible firmware using an OF compatible
client interface API.

This document specifies the requirements on the device-tree for mpc5200
based boards.  These requirements are above and beyond the details
specified in either the OpenFirmware spec or booting-without-of.txt

All new mpc5200-based boards are expected to match this document.  In
cases where this document is not sufficient to support a new board port,
this document should be updated as part of adding the new board support.

II - Philosophy
===============
The core of this document is naming convention.  The whole point of
defining this convention is to reduce or eliminate the number of
special cases required to support a 5200 board.  If all 5200 boards
follow the same convention, then generic 5200 support code will work
rather than coding special cases for each new board.

This section tries to capture the thought process behind why the naming
convention is what it is.

1.  names
---------
There is strong convention/requirements already established for children
of the root node.  'cpus' describes the processor cores, 'memory'
describes memory, and 'chosen' provides boot configuration.  Other nodes
are added to describe devices attached to the processor local bus.

Following convention already established with other system-on-chip
processors, 5200 device trees should use the name 'soc5200' for the
parent node of on chip devices, and the root node should be its parent.

Child nodes are typically named after the configured function.  ie.
the FEC node is named 'ethernet', and a PSC in uart mode is named 'serial'.

2. device_type property
-----------------------
similar to the node name convention above; the device_type reflects the
configured function of a device.  ie. 'serial' for a uart and 'spi' for
an spi controller.  However, while node names *should* reflect the
configured function, device_type *must* match the configured function
exactly.

3. compatible property
----------------------
Since device_type isn't enough to match devices to drivers, there also
needs to be a naming convention for the compatible property.  Compatible
is an list of device descriptions sorted from specific to generic.  For
the mpc5200, the required format for each compatible value is
<chip>-<device>[-<mode>].  The OS should be able to match a device driver
to the device based solely on the compatible value.  If two drivers
match on the compatible list; the 'most compatible' driver should be
selected.

The split between the MPC5200 and the MPC5200B leaves a bit of a
connundrum.  How should the compatible property be set up to provide
maximum compatability information; but still acurately describe the
chip?  For the MPC5200; the answer is easy.  Most of the SoC devices
originally appeared on the MPC5200.  Since they didn't exist anywhere
else; the 5200 compatible properties will contain only one item;
"mpc5200-<device>".

The 5200B is almost the same as the 5200, but not quite.  It fixes
silicon bugs and it adds a small number of enhancements.  Most of the
devices either provide exactly the same interface as on the 5200.  A few
devices have extra functions but still have a backwards compatible mode.
To express this infomation as completely as possible, 5200B device trees
should have two items in the compatible list;
"mpc5200b-<device>\0mpc5200-<device>".  It is *strongly* recommended
that 5200B device trees follow this convention (instead of only listing
the base mpc5200 item).

If another chip appear on the market with one of the mpc5200 SoC
devices, then the compatible list should include mpc5200-<device>.

ie. ethernet on mpc5200: compatible = "mpc5200-ethernet"
    ethernet on mpc5200b: compatible = "mpc5200b-ethernet\0mpc5200-ethernet"

Modal devices, like PSCs, also append the configured function to the
end of the compatible field.  ie. A PSC in i2s mode would specify
"mpc5200-psc-i2s", not "mpc5200-i2s".  This convention is chosen to
avoid naming conflicts with non-psc devices providing the same
function.  For example, "mpc5200-spi" and "mpc5200-psc-spi" describe
the mpc5200 simple spi device and a PSC spi mode respectively.

If the soc device is more generic and present on other SOCs, the
compatible property can specify the more generic device type also.

ie. mscan: compatible = "mpc5200-mscan\0fsl,mscan";

At the time of writing, exact chip may be either 'mpc5200' or
'mpc5200b'.

Device drivers should always try to match as generically as possible.

III - Structure
===============
The device tree for an mpc5200 board follows the structure defined in
booting-without-of.txt with the following additional notes:

0) the root node
----------------
Typical root description node; see booting-without-of

1) The cpus node
----------------
The cpus node follows the basic layout described in booting-without-of.
The bus-frequency property holds the XLB bus frequency
The clock-frequency property holds the core frequency

2) The memory node
------------------
Typical memory description node; see booting-without-of.

3) The soc5200 node
-------------------
This node describes the on chip SOC peripherals.  Every mpc5200 based
board will have this node, and as such there is a common naming
convention for SOC devices.

Required properties:
name			type		description
----			----		-----------
device_type		string		must be "soc"
ranges			int		should be <0 baseaddr baseaddr+10000>
reg			int		must be <baseaddr 10000>
compatible		string		mpc5200: "mpc5200-soc"
					mpc5200b: "mpc5200b-soc\0mpc5200-soc"
system-frequency	int		Fsystem frequency; source of all
					other clocks.
bus-frequency		int		IPB bus frequency in HZ.  Clock rate
					used by most of the soc devices.
#interrupt-cells	int		must be <3>.

Recommended properties:
name			type		description
----			----		-----------
model			string		Exact model of the chip;
					ie: model="fsl,mpc5200"
revision		string		Silicon revision of chip
					ie: revision="M08A"

The 'model' and 'revision' properties are *strongly* recommended.  Having
them presence acts as a bit of a safety net for working around as yet
undiscovered bugs on one version of silicon.  For example, device drivers
can use the model and revision properties to decide if a bug fix should
be turned on.

4) soc5200 child nodes
----------------------
Any on chip SOC devices available to Linux must appear as soc5200 child nodes.

Note: The tables below show the value for the mpc5200.  A mpc5200b device
tree should use the "mpc5200b-<device>\0mpc5200-<device> form.

Required soc5200 child nodes:
name		device_type		compatible	Description
----		-----------		----------	-----------
cdm@<addr>	cdm			mpc5200-cmd	Clock Distribution
pic@<addr>	interrupt-controller	mpc5200-pic	need an interrupt
							controller to boot
bestcomm@<addr>	dma-controller		mpc5200-bestcomm 5200 pic also requires
							 the bestcomm device

Recommended soc5200 child nodes; populate as needed for your board
name		device_type	compatible	  Description
----		-----------	----------	  -----------
gpt@<addr>	gpt		mpc5200-gpt	  General purpose timers
rtc@<addr>	rtc		mpc5200-rtc	  Real time clock
mscan@<addr>	mscan		mpc5200-mscan	  CAN bus controller
pci@<addr>	pci		mpc5200-pci	  PCI bridge
serial@<addr>	serial		mpc5200-psc-uart  PSC in serial mode
i2s@<addr>	sound		mpc5200-psc-i2s	  PSC in i2s mode
ac97@<addr>	sound		mpc5200-psc-ac97  PSC in ac97 mode
spi@<addr>	spi		mpc5200-psc-spi	  PSC in spi mode
irda@<addr>	irda		mpc5200-psc-irda  PSC in IrDA mode
spi@<addr>	spi		mpc5200-spi	  MPC5200 spi device
ethernet@<addr>	network		mpc5200-fec	  MPC5200 ethernet device
ata@<addr>	ata		mpc5200-ata	  IDE ATA interface
i2c@<addr>	i2c		mpc5200-i2c	  I2C controller
usb@<addr>	usb-ohci-be	mpc5200-ohci,ohci-be	USB controller
xlb@<addr>	xlb		mpc5200-xlb	  XLB arbritrator

Important child node properties
name		type		description
----		----		-----------
cell-index	int		When multiple devices are present, is the
				index of the device in the hardware (ie. There
				are 6 PSC on the 5200 numbered PSC1 to PSC6)
				    PSC1 has 'cell-index = <0>'
				    PSC4 has 'cell-index = <3>'

5) General Purpose Timer nodes (child of soc5200 node)
On the mpc5200 and 5200b, GPT0 has a watchdog timer function.  If the board
design supports the internal wdt, then the device node for GPT0 should
include the empty property 'has-wdt'.

6) PSC nodes (child of soc5200 node)
PSC nodes can define the optional 'port-number' property to force assignment
order of serial ports.  For example, PSC5 might be physically connected to
the port labeled 'COM1' and PSC1 wired to 'COM1'.  In this case, PSC5 would
have a "port-number = <0>" property, and PSC1 would have "port-number = <1>".

PSC in i2s mode:  The mpc5200 and mpc5200b PSCs are not compatible when in
i2s mode.  An 'mpc5200b-psc-i2s' node cannot include 'mpc5200-psc-i2s' in the
compatible field.

IV - Extra Notes
================

1. Interrupt mapping
--------------------
The mpc5200 pic driver splits hardware IRQ numbers into two levels.  The
split reflects the layout of the PIC hardware itself, which groups
interrupts into one of three groups; CRIT, MAIN or PERP.  Also, the
Bestcomm dma engine has it's own set of interrupt sources which are
cascaded off of peripheral interrupt 0, which the driver interprets as a
fourth group, SDMA.

The interrupts property for device nodes using the mpc5200 pic consists
of three cells; <L1 L2 level>

    L1 := [CRIT=0, MAIN=1, PERP=2, SDMA=3]
    L2 := interrupt number; directly mapped from the value in the
          "ICTL PerStat, MainStat, CritStat Encoded Register"
    level := [LEVEL_HIGH=0, EDGE_RISING=1, EDGE_FALLING=2, LEVEL_LOW=3]

2. Shared registers
-------------------
Some SoC devices share registers between them.  ie. the i2c devices use
a single clock control register, and almost all device are affected by
the port_config register.  Devices which need to manipulate shared regs
should look to the parent SoC node.  The soc node is responsible
for arbitrating all shared register access.
