aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKumar Gala <galak@kernel.crashing.org>2008-07-07 12:28:33 -0400
committerKumar Gala <galak@kernel.crashing.org>2008-07-14 08:55:46 -0400
commitd0fc2eaaf4c56a95f5ed29b6bfb609e19714fc16 (patch)
tree49b2fc779d4d051884d2dbc2c264ef608662312c
parentb93eeba49efb30f88a83fc97ad22c255605654a1 (diff)
powerpc/fsl: Refactor device bindings
Moved Freescale SoC related bindings out of booting-without-of.txt and into their own files. Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
-rw-r--r--Documentation/powerpc/booting-without-of.txt1218
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/board.txt29
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm.txt67
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/brg.txt21
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/i2c.txt41
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/pic.txt18
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/usb.txt15
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/cpm_qe/network.txt45
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe.txt58
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/firmware.txt24
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/par_io.txt51
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/pincfg.txt60
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/ucc.txt70
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/usb.txt22
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/cpm_qe/serial.txt21
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/diu.txt18
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/dma.txt127
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/gtm.txt31
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/guts.txt25
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/i2c.txt32
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/lbc.txt35
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/msi-pic.txt36
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/sata.txt29
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/spi.txt24
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/ssi.txt38
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/tsec.txt69
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/usb.txt59
27 files changed, 1077 insertions, 1206 deletions
diff --git a/Documentation/powerpc/booting-without-of.txt b/Documentation/powerpc/booting-without-of.txt
index f6394b50943..de2e5c05d6e 100644
--- a/Documentation/powerpc/booting-without-of.txt
+++ b/Documentation/powerpc/booting-without-of.txt
@@ -41,27 +41,12 @@ Table of Contents
41 VI - System-on-a-chip devices and nodes 41 VI - System-on-a-chip devices and nodes
42 1) Defining child nodes of an SOC 42 1) Defining child nodes of an SOC
43 2) Representing devices without a current OF specification 43 2) Representing devices without a current OF specification
44 a) MDIO IO device 44 a) PHY nodes
45 b) Gianfar-compatible ethernet nodes 45 b) Interrupt controllers
46 c) PHY nodes 46 c) CFI or JEDEC memory-mapped NOR flash
47 d) Interrupt controllers 47 d) 4xx/Axon EMAC ethernet nodes
48 e) I2C 48 e) Xilinx IP cores
49 f) Freescale SOC USB controllers 49 f) USB EHCI controllers
50 g) Freescale SOC SEC Security Engines
51 h) Board Control and Status (BCSR)
52 i) Freescale QUICC Engine module (QE)
53 j) CFI or JEDEC memory-mapped NOR flash
54 k) Global Utilities Block
55 l) Freescale Communications Processor Module
56 m) Chipselect/Local Bus
57 n) 4xx/Axon EMAC ethernet nodes
58 o) Xilinx IP cores
59 p) Freescale Synchronous Serial Interface
60 q) USB EHCI controllers
61 r) Freescale Display Interface Unit
62 s) Freescale on board FPGA
63 t) Freescael MSI interrupt controller
64 u) Freescale General-purpose Timers Module
65 50
66 VII - Marvell Discovery mv64[345]6x System Controller chips 51 VII - Marvell Discovery mv64[345]6x System Controller chips
67 1) The /system-controller node 52 1) The /system-controller node
@@ -1250,80 +1235,7 @@ descriptions for the SOC devices for which new nodes have been
1250defined; this list will expand as more and more SOC-containing 1235defined; this list will expand as more and more SOC-containing
1251platforms are moved over to use the flattened-device-tree model. 1236platforms are moved over to use the flattened-device-tree model.
1252 1237
1253 a) MDIO IO device 1238 a) PHY nodes
1254
1255 The MDIO is a bus to which the PHY devices are connected. For each
1256 device that exists on this bus, a child node should be created. See
1257 the definition of the PHY node below for an example of how to define
1258 a PHY.
1259
1260 Required properties:
1261 - reg : Offset and length of the register set for the device
1262 - compatible : Should define the compatible device type for the
1263 mdio. Currently, this is most likely to be "fsl,gianfar-mdio"
1264
1265 Example:
1266
1267 mdio@24520 {
1268 reg = <24520 20>;
1269 compatible = "fsl,gianfar-mdio";
1270
1271 ethernet-phy@0 {
1272 ......
1273 };
1274 };
1275
1276
1277 b) Gianfar-compatible ethernet nodes
1278
1279 Required properties:
1280
1281 - device_type : Should be "network"
1282 - model : Model of the device. Can be "TSEC", "eTSEC", or "FEC"
1283 - compatible : Should be "gianfar"
1284 - reg : Offset and length of the register set for the device
1285 - mac-address : List of bytes representing the ethernet address of
1286 this controller
1287 - interrupts : <a b> where a is the interrupt number and b is a
1288 field that represents an encoding of the sense and level
1289 information for the interrupt. This should be encoded based on
1290 the information in section 2) depending on the type of interrupt
1291 controller you have.
1292 - interrupt-parent : the phandle for the interrupt controller that
1293 services interrupts for this device.
1294 - phy-handle : The phandle for the PHY connected to this ethernet
1295 controller.
1296 - fixed-link : <a b c d e> where a is emulated phy id - choose any,
1297 but unique to the all specified fixed-links, b is duplex - 0 half,
1298 1 full, c is link speed - d#10/d#100/d#1000, d is pause - 0 no
1299 pause, 1 pause, e is asym_pause - 0 no asym_pause, 1 asym_pause.
1300
1301 Recommended properties:
1302
1303 - phy-connection-type : a string naming the controller/PHY interface type,
1304 i.e., "mii" (default), "rmii", "gmii", "rgmii", "rgmii-id", "sgmii",
1305 "tbi", or "rtbi". This property is only really needed if the connection
1306 is of type "rgmii-id", as all other connection types are detected by
1307 hardware.
1308
1309
1310 Example:
1311
1312 ethernet@24000 {
1313 #size-cells = <0>;
1314 device_type = "network";
1315 model = "TSEC";
1316 compatible = "gianfar";
1317 reg = <24000 1000>;
1318 mac-address = [ 00 E0 0C 00 73 00 ];
1319 interrupts = <d 3 e 3 12 3>;
1320 interrupt-parent = <40000>;
1321 phy-handle = <2452000>
1322 };
1323
1324
1325
1326 c) PHY nodes
1327 1239
1328 Required properties: 1240 Required properties:
1329 1241
@@ -1351,7 +1263,7 @@ platforms are moved over to use the flattened-device-tree model.
1351 }; 1263 };
1352 1264
1353 1265
1354 d) Interrupt controllers 1266 b) Interrupt controllers
1355 1267
1356 Some SOC devices contain interrupt controllers that are different 1268 Some SOC devices contain interrupt controllers that are different
1357 from the standard Open PIC specification. The SOC device nodes for 1269 from the standard Open PIC specification. The SOC device nodes for
@@ -1371,508 +1283,7 @@ platforms are moved over to use the flattened-device-tree model.
1371 device_type = "open-pic"; 1283 device_type = "open-pic";
1372 }; 1284 };
1373 1285
1374 1286 c) CFI or JEDEC memory-mapped NOR flash
1375 e) I2C
1376
1377 Required properties :
1378
1379 - device_type : Should be "i2c"
1380 - reg : Offset and length of the register set for the device
1381
1382 Recommended properties :
1383
1384 - compatible : Should be "fsl-i2c" for parts compatible with
1385 Freescale I2C specifications.
1386 - interrupts : <a b> where a is the interrupt number and b is a
1387 field that represents an encoding of the sense and level
1388 information for the interrupt. This should be encoded based on
1389 the information in section 2) depending on the type of interrupt
1390 controller you have.
1391 - interrupt-parent : the phandle for the interrupt controller that
1392 services interrupts for this device.
1393 - dfsrr : boolean; if defined, indicates that this I2C device has
1394 a digital filter sampling rate register
1395 - fsl5200-clocking : boolean; if defined, indicated that this device
1396 uses the FSL 5200 clocking mechanism.
1397
1398 Example :
1399
1400 i2c@3000 {
1401 interrupt-parent = <40000>;
1402 interrupts = <1b 3>;
1403 reg = <3000 18>;
1404 device_type = "i2c";
1405 compatible = "fsl-i2c";
1406 dfsrr;
1407 };
1408
1409
1410 f) Freescale SOC USB controllers
1411
1412 The device node for a USB controller that is part of a Freescale
1413 SOC is as described in the document "Open Firmware Recommended
1414 Practice : Universal Serial Bus" with the following modifications
1415 and additions :
1416
1417 Required properties :
1418 - compatible : Should be "fsl-usb2-mph" for multi port host USB
1419 controllers, or "fsl-usb2-dr" for dual role USB controllers
1420 - phy_type : For multi port host USB controllers, should be one of
1421 "ulpi", or "serial". For dual role USB controllers, should be
1422 one of "ulpi", "utmi", "utmi_wide", or "serial".
1423 - reg : Offset and length of the register set for the device
1424 - port0 : boolean; if defined, indicates port0 is connected for
1425 fsl-usb2-mph compatible controllers. Either this property or
1426 "port1" (or both) must be defined for "fsl-usb2-mph" compatible
1427 controllers.
1428 - port1 : boolean; if defined, indicates port1 is connected for
1429 fsl-usb2-mph compatible controllers. Either this property or
1430 "port0" (or both) must be defined for "fsl-usb2-mph" compatible
1431 controllers.
1432 - dr_mode : indicates the working mode for "fsl-usb2-dr" compatible
1433 controllers. Can be "host", "peripheral", or "otg". Default to
1434 "host" if not defined for backward compatibility.
1435
1436 Recommended properties :
1437 - interrupts : <a b> where a is the interrupt number and b is a
1438 field that represents an encoding of the sense and level
1439 information for the interrupt. This should be encoded based on
1440 the information in section 2) depending on the type of interrupt
1441 controller you have.
1442 - interrupt-parent : the phandle for the interrupt controller that
1443 services interrupts for this device.
1444
1445 Example multi port host USB controller device node :
1446 usb@22000 {
1447 compatible = "fsl-usb2-mph";
1448 reg = <22000 1000>;
1449 #address-cells = <1>;
1450 #size-cells = <0>;
1451 interrupt-parent = <700>;
1452 interrupts = <27 1>;
1453 phy_type = "ulpi";
1454 port0;
1455 port1;
1456 };
1457
1458 Example dual role USB controller device node :
1459 usb@23000 {
1460 compatible = "fsl-usb2-dr";
1461 reg = <23000 1000>;
1462 #address-cells = <1>;
1463 #size-cells = <0>;
1464 interrupt-parent = <700>;
1465 interrupts = <26 1>;
1466 dr_mode = "otg";
1467 phy = "ulpi";
1468 };
1469
1470
1471 g) Freescale SOC SEC Security Engines
1472
1473 Required properties:
1474
1475 - device_type : Should be "crypto"
1476 - model : Model of the device. Should be "SEC1" or "SEC2"
1477 - compatible : Should be "talitos"
1478 - reg : Offset and length of the register set for the device
1479 - interrupts : <a b> where a is the interrupt number and b is a
1480 field that represents an encoding of the sense and level
1481 information for the interrupt. This should be encoded based on
1482 the information in section 2) depending on the type of interrupt
1483 controller you have.
1484 - interrupt-parent : the phandle for the interrupt controller that
1485 services interrupts for this device.
1486 - num-channels : An integer representing the number of channels
1487 available.
1488 - channel-fifo-len : An integer representing the number of
1489 descriptor pointers each channel fetch fifo can hold.
1490 - exec-units-mask : The bitmask representing what execution units
1491 (EUs) are available. It's a single 32-bit cell. EU information
1492 should be encoded following the SEC's Descriptor Header Dword
1493 EU_SEL0 field documentation, i.e. as follows:
1494
1495 bit 0 = reserved - should be 0
1496 bit 1 = set if SEC has the ARC4 EU (AFEU)
1497 bit 2 = set if SEC has the DES/3DES EU (DEU)
1498 bit 3 = set if SEC has the message digest EU (MDEU)
1499 bit 4 = set if SEC has the random number generator EU (RNG)
1500 bit 5 = set if SEC has the public key EU (PKEU)
1501 bit 6 = set if SEC has the AES EU (AESU)
1502 bit 7 = set if SEC has the Kasumi EU (KEU)
1503
1504 bits 8 through 31 are reserved for future SEC EUs.
1505
1506 - descriptor-types-mask : The bitmask representing what descriptors
1507 are available. It's a single 32-bit cell. Descriptor type
1508 information should be encoded following the SEC's Descriptor
1509 Header Dword DESC_TYPE field documentation, i.e. as follows:
1510
1511 bit 0 = set if SEC supports the aesu_ctr_nonsnoop desc. type
1512 bit 1 = set if SEC supports the ipsec_esp descriptor type
1513 bit 2 = set if SEC supports the common_nonsnoop desc. type
1514 bit 3 = set if SEC supports the 802.11i AES ccmp desc. type
1515 bit 4 = set if SEC supports the hmac_snoop_no_afeu desc. type
1516 bit 5 = set if SEC supports the srtp descriptor type
1517 bit 6 = set if SEC supports the non_hmac_snoop_no_afeu desc.type
1518 bit 7 = set if SEC supports the pkeu_assemble descriptor type
1519 bit 8 = set if SEC supports the aesu_key_expand_output desc.type
1520 bit 9 = set if SEC supports the pkeu_ptmul descriptor type
1521 bit 10 = set if SEC supports the common_nonsnoop_afeu desc. type
1522 bit 11 = set if SEC supports the pkeu_ptadd_dbl descriptor type
1523
1524 ..and so on and so forth.
1525
1526 Example:
1527
1528 /* MPC8548E */
1529 crypto@30000 {
1530 device_type = "crypto";
1531 model = "SEC2";
1532 compatible = "talitos";
1533 reg = <30000 10000>;
1534 interrupts = <1d 3>;
1535 interrupt-parent = <40000>;
1536 num-channels = <4>;
1537 channel-fifo-len = <18>;
1538 exec-units-mask = <000000fe>;
1539 descriptor-types-mask = <012b0ebf>;
1540 };
1541
1542 h) Board Control and Status (BCSR)
1543
1544 Required properties:
1545
1546 - device_type : Should be "board-control"
1547 - reg : Offset and length of the register set for the device
1548
1549 Example:
1550
1551 bcsr@f8000000 {
1552 device_type = "board-control";
1553 reg = <f8000000 8000>;
1554 };
1555
1556 i) Freescale QUICC Engine module (QE)
1557 This represents qe module that is installed on PowerQUICC II Pro.
1558
1559 NOTE: This is an interim binding; it should be updated to fit
1560 in with the CPM binding later in this document.
1561
1562 Basically, it is a bus of devices, that could act more or less
1563 as a complete entity (UCC, USB etc ). All of them should be siblings on
1564 the "root" qe node, using the common properties from there.
1565 The description below applies to the qe of MPC8360 and
1566 more nodes and properties would be extended in the future.
1567
1568 i) Root QE device
1569
1570 Required properties:
1571 - compatible : should be "fsl,qe";
1572 - model : precise model of the QE, Can be "QE", "CPM", or "CPM2"
1573 - reg : offset and length of the device registers.
1574 - bus-frequency : the clock frequency for QUICC Engine.
1575
1576 Recommended properties
1577 - brg-frequency : the internal clock source frequency for baud-rate
1578 generators in Hz.
1579
1580 Example:
1581 qe@e0100000 {
1582 #address-cells = <1>;
1583 #size-cells = <1>;
1584 #interrupt-cells = <2>;
1585 compatible = "fsl,qe";
1586 ranges = <0 e0100000 00100000>;
1587 reg = <e0100000 480>;
1588 brg-frequency = <0>;
1589 bus-frequency = <179A7B00>;
1590 }
1591
1592
1593 ii) SPI (Serial Peripheral Interface)
1594
1595 Required properties:
1596 - cell-index : SPI controller index.
1597 - compatible : should be "fsl,spi".
1598 - mode : the SPI operation mode, it can be "cpu" or "cpu-qe".
1599 - reg : Offset and length of the register set for the device
1600 - interrupts : <a b> where a is the interrupt number and b is a
1601 field that represents an encoding of the sense and level
1602 information for the interrupt. This should be encoded based on
1603 the information in section 2) depending on the type of interrupt
1604 controller you have.
1605 - interrupt-parent : the phandle for the interrupt controller that
1606 services interrupts for this device.
1607
1608 Example:
1609 spi@4c0 {
1610 cell-index = <0>;
1611 compatible = "fsl,spi";
1612 reg = <4c0 40>;
1613 interrupts = <82 0>;
1614 interrupt-parent = <700>;
1615 mode = "cpu";
1616 };
1617
1618
1619 iii) USB (Universal Serial Bus Controller)
1620
1621 Required properties:
1622 - compatible : could be "qe_udc" or "fhci-hcd".
1623 - mode : the could be "host" or "slave".
1624 - reg : Offset and length of the register set for the device
1625 - interrupts : <a b> where a is the interrupt number and b is a
1626 field that represents an encoding of the sense and level
1627 information for the interrupt. This should be encoded based on
1628 the information in section 2) depending on the type of interrupt
1629 controller you have.
1630 - interrupt-parent : the phandle for the interrupt controller that
1631 services interrupts for this device.
1632
1633 Example(slave):
1634 usb@6c0 {
1635 compatible = "qe_udc";
1636 reg = <6c0 40>;
1637 interrupts = <8b 0>;
1638 interrupt-parent = <700>;
1639 mode = "slave";
1640 };
1641
1642
1643 iv) UCC (Unified Communications Controllers)
1644
1645 Required properties:
1646 - device_type : should be "network", "hldc", "uart", "transparent"
1647 "bisync", "atm", or "serial".
1648 - compatible : could be "ucc_geth" or "fsl_atm" and so on.
1649 - cell-index : the ucc number(1-8), corresponding to UCCx in UM.
1650 - reg : Offset and length of the register set for the device
1651 - interrupts : <a b> where a is the interrupt number and b is a
1652 field that represents an encoding of the sense and level
1653 information for the interrupt. This should be encoded based on
1654 the information in section 2) depending on the type of interrupt
1655 controller you have.
1656 - interrupt-parent : the phandle for the interrupt controller that
1657 services interrupts for this device.
1658 - pio-handle : The phandle for the Parallel I/O port configuration.
1659 - port-number : for UART drivers, the port number to use, between 0 and 3.
1660 This usually corresponds to the /dev/ttyQE device, e.g. <0> = /dev/ttyQE0.
1661 The port number is added to the minor number of the device. Unlike the
1662 CPM UART driver, the port-number is required for the QE UART driver.
1663 - soft-uart : for UART drivers, if specified this means the QE UART device
1664 driver should use "Soft-UART" mode, which is needed on some SOCs that have
1665 broken UART hardware. Soft-UART is provided via a microcode upload.
1666 - rx-clock-name: the UCC receive clock source
1667 "none": clock source is disabled
1668 "brg1" through "brg16": clock source is BRG1-BRG16, respectively
1669 "clk1" through "clk24": clock source is CLK1-CLK24, respectively
1670 - tx-clock-name: the UCC transmit clock source
1671 "none": clock source is disabled
1672 "brg1" through "brg16": clock source is BRG1-BRG16, respectively
1673 "clk1" through "clk24": clock source is CLK1-CLK24, respectively
1674 The following two properties are deprecated. rx-clock has been replaced
1675 with rx-clock-name, and tx-clock has been replaced with tx-clock-name.
1676 Drivers that currently use the deprecated properties should continue to
1677 do so, in order to support older device trees, but they should be updated
1678 to check for the new properties first.
1679 - rx-clock : represents the UCC receive clock source.
1680 0x00 : clock source is disabled;
1681 0x1~0x10 : clock source is BRG1~BRG16 respectively;
1682 0x11~0x28: clock source is QE_CLK1~QE_CLK24 respectively.
1683 - tx-clock: represents the UCC transmit clock source;
1684 0x00 : clock source is disabled;
1685 0x1~0x10 : clock source is BRG1~BRG16 respectively;
1686 0x11~0x28: clock source is QE_CLK1~QE_CLK24 respectively.
1687
1688 Required properties for network device_type:
1689 - mac-address : list of bytes representing the ethernet address.
1690 - phy-handle : The phandle for the PHY connected to this controller.
1691
1692 Recommended properties:
1693 - phy-connection-type : a string naming the controller/PHY interface type,
1694 i.e., "mii" (default), "rmii", "gmii", "rgmii", "rgmii-id" (Internal
1695 Delay), "rgmii-txid" (delay on TX only), "rgmii-rxid" (delay on RX only),
1696 "tbi", or "rtbi".
1697
1698 Example:
1699 ucc@2000 {
1700 device_type = "network";
1701 compatible = "ucc_geth";
1702 cell-index = <1>;
1703 reg = <2000 200>;
1704 interrupts = <a0 0>;
1705 interrupt-parent = <700>;
1706 mac-address = [ 00 04 9f 00 23 23 ];
1707 rx-clock = "none";
1708 tx-clock = "clk9";
1709 phy-handle = <212000>;
1710 phy-connection-type = "gmii";
1711 pio-handle = <140001>;
1712 };
1713
1714
1715 v) Parallel I/O Ports
1716
1717 This node configures Parallel I/O ports for CPUs with QE support.
1718 The node should reside in the "soc" node of the tree. For each
1719 device that using parallel I/O ports, a child node should be created.
1720 See the definition of the Pin configuration nodes below for more
1721 information.
1722
1723 Required properties:
1724 - device_type : should be "par_io".
1725 - reg : offset to the register set and its length.
1726 - num-ports : number of Parallel I/O ports
1727
1728 Example:
1729 par_io@1400 {
1730 reg = <1400 100>;
1731 #address-cells = <1>;
1732 #size-cells = <0>;
1733 device_type = "par_io";
1734 num-ports = <7>;
1735 ucc_pin@01 {
1736 ......
1737 };
1738
1739 Note that "par_io" nodes are obsolete, and should not be used for
1740 the new device trees. Instead, each Par I/O bank should be represented
1741 via its own gpio-controller node:
1742
1743 Required properties:
1744 - #gpio-cells : should be "2".
1745 - compatible : should be "fsl,<chip>-qe-pario-bank",
1746 "fsl,mpc8323-qe-pario-bank".
1747 - reg : offset to the register set and its length.
1748 - gpio-controller : node to identify gpio controllers.
1749
1750 Example:
1751 qe_pio_a: gpio-controller@1400 {
1752 #gpio-cells = <2>;
1753 compatible = "fsl,mpc8360-qe-pario-bank",
1754 "fsl,mpc8323-qe-pario-bank";
1755 reg = <0x1400 0x18>;
1756 gpio-controller;
1757 };
1758
1759 qe_pio_e: gpio-controller@1460 {
1760 #gpio-cells = <2>;
1761 compatible = "fsl,mpc8360-qe-pario-bank",
1762 "fsl,mpc8323-qe-pario-bank";
1763 reg = <0x1460 0x18>;
1764 gpio-controller;
1765 };
1766
1767 vi) Pin configuration nodes
1768
1769 Required properties:
1770 - linux,phandle : phandle of this node; likely referenced by a QE
1771 device.
1772 - pio-map : array of pin configurations. Each pin is defined by 6
1773 integers. The six numbers are respectively: port, pin, dir,
1774 open_drain, assignment, has_irq.
1775 - port : port number of the pin; 0-6 represent port A-G in UM.
1776 - pin : pin number in the port.
1777 - dir : direction of the pin, should encode as follows:
1778
1779 0 = The pin is disabled
1780 1 = The pin is an output
1781 2 = The pin is an input
1782 3 = The pin is I/O
1783
1784 - open_drain : indicates the pin is normal or wired-OR:
1785
1786 0 = The pin is actively driven as an output
1787 1 = The pin is an open-drain driver. As an output, the pin is
1788 driven active-low, otherwise it is three-stated.
1789
1790 - assignment : function number of the pin according to the Pin Assignment
1791 tables in User Manual. Each pin can have up to 4 possible functions in
1792 QE and two options for CPM.
1793 - has_irq : indicates if the pin is used as source of external
1794 interrupts.
1795
1796 Example:
1797 ucc_pin@01 {
1798 linux,phandle = <140001>;
1799 pio-map = <
1800 /* port pin dir open_drain assignment has_irq */
1801 0 3 1 0 1 0 /* TxD0 */
1802 0 4 1 0 1 0 /* TxD1 */
1803 0 5 1 0 1 0 /* TxD2 */
1804 0 6 1 0 1 0 /* TxD3 */
1805 1 6 1 0 3 0 /* TxD4 */
1806 1 7 1 0 1 0 /* TxD5 */
1807 1 9 1 0 2 0 /* TxD6 */
1808 1 a 1 0 2 0 /* TxD7 */
1809 0 9 2 0 1 0 /* RxD0 */
1810 0 a 2 0 1 0 /* RxD1 */
1811 0 b 2 0 1 0 /* RxD2 */
1812 0 c 2 0 1 0 /* RxD3 */
1813 0 d 2 0 1 0 /* RxD4 */
1814 1 1 2 0 2 0 /* RxD5 */
1815 1 0 2 0 2 0 /* RxD6 */
1816 1 4 2 0 2 0 /* RxD7 */
1817 0 7 1 0 1 0 /* TX_EN */
1818 0 8 1 0 1 0 /* TX_ER */
1819 0 f 2 0 1 0 /* RX_DV */
1820 0 10 2 0 1 0 /* RX_ER */
1821 0 0 2 0 1 0 /* RX_CLK */
1822 2 9 1 0 3 0 /* GTX_CLK - CLK10 */
1823 2 8 2 0 1 0>; /* GTX125 - CLK9 */
1824 };
1825
1826 vii) Multi-User RAM (MURAM)
1827
1828 Required properties:
1829 - compatible : should be "fsl,qe-muram", "fsl,cpm-muram".
1830 - mode : the could be "host" or "slave".
1831 - ranges : Should be defined as specified in 1) to describe the
1832 translation of MURAM addresses.
1833 - data-only : sub-node which defines the address area under MURAM
1834 bus that can be allocated as data/parameter
1835
1836 Example:
1837
1838 muram@10000 {
1839 compatible = "fsl,qe-muram", "fsl,cpm-muram";
1840 ranges = <0 00010000 0000c000>;
1841
1842 data-only@0{
1843 compatible = "fsl,qe-muram-data",
1844 "fsl,cpm-muram-data";
1845 reg = <0 c000>;
1846 };
1847 };
1848
1849 viii) Uploaded QE firmware
1850
1851 If a new firwmare has been uploaded to the QE (usually by the
1852 boot loader), then a 'firmware' child node should be added to the QE
1853 node. This node provides information on the uploaded firmware that
1854 device drivers may need.
1855
1856 Required properties:
1857 - id: The string name of the firmware. This is taken from the 'id'
1858 member of the qe_firmware structure of the uploaded firmware.
1859 Device drivers can search this string to determine if the
1860 firmware they want is already present.
1861 - extended-modes: The Extended Modes bitfield, taken from the
1862 firmware binary. It is a 64-bit number represented
1863 as an array of two 32-bit numbers.
1864 - virtual-traps: The virtual traps, taken from the firmware binary.
1865 It is an array of 8 32-bit numbers.
1866
1867 Example:
1868
1869 firmware {
1870 id = "Soft-UART";
1871 extended-modes = <0 0>;
1872 virtual-traps = <0 0 0 0 0 0 0 0>;
1873 }
1874
1875 j) CFI or JEDEC memory-mapped NOR flash
1876 1287
1877 Flash chips (Memory Technology Devices) are often used for solid state 1288 Flash chips (Memory Technology Devices) are often used for solid state
1878 file systems on embedded devices. 1289 file systems on embedded devices.
@@ -1936,310 +1347,7 @@ platforms are moved over to use the flattened-device-tree model.
1936 }; 1347 };
1937 }; 1348 };
1938 1349
1939 k) Global Utilities Block 1350 d) 4xx/Axon EMAC ethernet nodes
1940
1941 The global utilities block controls power management, I/O device
1942 enabling, power-on-reset configuration monitoring, general-purpose
1943 I/O signal configuration, alternate function selection for multiplexed
1944 signals, and clock control.
1945
1946 Required properties:
1947
1948 - compatible : Should define the compatible device type for
1949 global-utilities.
1950 - reg : Offset and length of the register set for the device.
1951
1952 Recommended properties:
1953
1954 - fsl,has-rstcr : Indicates that the global utilities register set
1955 contains a functioning "reset control register" (i.e. the board
1956 is wired to reset upon setting the HRESET_REQ bit in this register).
1957
1958 Example:
1959
1960 global-utilities@e0000 { /* global utilities block */
1961 compatible = "fsl,mpc8548-guts";
1962 reg = <e0000 1000>;
1963 fsl,has-rstcr;
1964 };
1965
1966 l) Freescale Communications Processor Module
1967
1968 NOTE: This is an interim binding, and will likely change slightly,
1969 as more devices are supported. The QE bindings especially are
1970 incomplete.
1971
1972 i) Root CPM node
1973
1974 Properties:
1975 - compatible : "fsl,cpm1", "fsl,cpm2", or "fsl,qe".
1976 - reg : A 48-byte region beginning with CPCR.
1977
1978 Example:
1979 cpm@119c0 {
1980 #address-cells = <1>;
1981 #size-cells = <1>;
1982 #interrupt-cells = <2>;
1983 compatible = "fsl,mpc8272-cpm", "fsl,cpm2";
1984 reg = <119c0 30>;
1985 }
1986
1987 ii) Properties common to mulitple CPM/QE devices
1988
1989 - fsl,cpm-command : This value is ORed with the opcode and command flag
1990 to specify the device on which a CPM command operates.
1991
1992 - fsl,cpm-brg : Indicates which baud rate generator the device
1993 is associated with. If absent, an unused BRG
1994 should be dynamically allocated. If zero, the
1995 device uses an external clock rather than a BRG.
1996
1997 - reg : Unless otherwise specified, the first resource represents the
1998 scc/fcc/ucc registers, and the second represents the device's
1999 parameter RAM region (if it has one).
2000
2001 iii) Serial
2002
2003 Currently defined compatibles:
2004 - fsl,cpm1-smc-uart
2005 - fsl,cpm2-smc-uart
2006 - fsl,cpm1-scc-uart
2007 - fsl,cpm2-scc-uart
2008 - fsl,qe-uart
2009
2010 Example:
2011
2012 serial@11a00 {
2013 device_type = "serial";
2014 compatible = "fsl,mpc8272-scc-uart",
2015 "fsl,cpm2-scc-uart";
2016 reg = <11a00 20 8000 100>;
2017 interrupts = <28 8>;
2018 interrupt-parent = <&PIC>;
2019 fsl,cpm-brg = <1>;
2020 fsl,cpm-command = <00800000>;
2021 };
2022
2023 iii) Network
2024
2025 Currently defined compatibles:
2026 - fsl,cpm1-scc-enet
2027 - fsl,cpm2-scc-enet
2028 - fsl,cpm1-fec-enet
2029 - fsl,cpm2-fcc-enet (third resource is GFEMR)
2030 - fsl,qe-enet
2031
2032 Example:
2033
2034 ethernet@11300 {
2035 device_type = "network";
2036 compatible = "fsl,mpc8272-fcc-enet",
2037 "fsl,cpm2-fcc-enet";
2038 reg = <11300 20 8400 100 11390 1>;
2039 local-mac-address = [ 00 00 00 00 00 00 ];
2040 interrupts = <20 8>;
2041 interrupt-parent = <&PIC>;
2042 phy-handle = <&PHY0>;
2043 fsl,cpm-command = <12000300>;
2044 };
2045
2046 iv) MDIO
2047
2048 Currently defined compatibles:
2049 fsl,pq1-fec-mdio (reg is same as first resource of FEC device)
2050 fsl,cpm2-mdio-bitbang (reg is port C registers)
2051
2052 Properties for fsl,cpm2-mdio-bitbang:
2053 fsl,mdio-pin : pin of port C controlling mdio data
2054 fsl,mdc-pin : pin of port C controlling mdio clock
2055
2056 Example:
2057
2058 mdio@10d40 {
2059 device_type = "mdio";
2060 compatible = "fsl,mpc8272ads-mdio-bitbang",
2061 "fsl,mpc8272-mdio-bitbang",
2062 "fsl,cpm2-mdio-bitbang";
2063 reg = <10d40 14>;
2064 #address-cells = <1>;
2065 #size-cells = <0>;
2066 fsl,mdio-pin = <12>;
2067 fsl,mdc-pin = <13>;
2068 };
2069
2070 v) Baud Rate Generators
2071
2072 Currently defined compatibles:
2073 fsl,cpm-brg
2074 fsl,cpm1-brg
2075 fsl,cpm2-brg
2076
2077 Properties:
2078 - reg : There may be an arbitrary number of reg resources; BRG
2079 numbers are assigned to these in order.
2080 - clock-frequency : Specifies the base frequency driving
2081 the BRG.
2082
2083 Example:
2084
2085 brg@119f0 {
2086 compatible = "fsl,mpc8272-brg",
2087 "fsl,cpm2-brg",
2088 "fsl,cpm-brg";
2089 reg = <119f0 10 115f0 10>;
2090 clock-frequency = <d#25000000>;
2091 };
2092
2093 vi) Interrupt Controllers
2094
2095 Currently defined compatibles:
2096 - fsl,cpm1-pic
2097 - only one interrupt cell
2098 - fsl,pq1-pic
2099 - fsl,cpm2-pic
2100 - second interrupt cell is level/sense:
2101 - 2 is falling edge
2102 - 8 is active low
2103
2104 Example:
2105
2106 interrupt-controller@10c00 {
2107 #interrupt-cells = <2>;
2108 interrupt-controller;
2109 reg = <10c00 80>;
2110 compatible = "mpc8272-pic", "fsl,cpm2-pic";
2111 };
2112
2113 vii) USB (Universal Serial Bus Controller)
2114
2115 Properties:
2116 - compatible : "fsl,cpm1-usb", "fsl,cpm2-usb", "fsl,qe-usb"
2117
2118 Example:
2119 usb@11bc0 {
2120 #address-cells = <1>;
2121 #size-cells = <0>;
2122 compatible = "fsl,cpm2-usb";
2123 reg = <11b60 18 8b00 100>;
2124 interrupts = <b 8>;
2125 interrupt-parent = <&PIC>;
2126 fsl,cpm-command = <2e600000>;
2127 };
2128
2129 viii) Multi-User RAM (MURAM)
2130
2131 The multi-user/dual-ported RAM is expressed as a bus under the CPM node.
2132
2133 Ranges must be set up subject to the following restrictions:
2134
2135 - Children's reg nodes must be offsets from the start of all muram, even
2136 if the user-data area does not begin at zero.
2137 - If multiple range entries are used, the difference between the parent
2138 address and the child address must be the same in all, so that a single
2139 mapping can cover them all while maintaining the ability to determine
2140 CPM-side offsets with pointer subtraction. It is recommended that
2141 multiple range entries not be used.
2142 - A child address of zero must be translatable, even if no reg resources
2143 contain it.
2144
2145 A child "data" node must exist, compatible with "fsl,cpm-muram-data", to
2146 indicate the portion of muram that is usable by the OS for arbitrary
2147 purposes. The data node may have an arbitrary number of reg resources,
2148 all of which contribute to the allocatable muram pool.
2149
2150 Example, based on mpc8272:
2151
2152 muram@0 {
2153 #address-cells = <1>;
2154 #size-cells = <1>;
2155 ranges = <0 0 10000>;
2156
2157 data@0 {
2158 compatible = "fsl,cpm-muram-data";
2159 reg = <0 2000 9800 800>;
2160 };
2161 };
2162
2163 x) I2C
2164
2165 The I2C controller is expressed as a bus under the CPM node.
2166
2167 Properties:
2168 - compatible : "fsl,cpm1-i2c", "fsl,cpm2-i2c"
2169 - reg : On CPM2 devices, the second resource doesn't specify the I2C
2170 Parameter RAM itself, but the I2C_BASE field of the CPM2 Parameter RAM
2171 (typically 0x8afc 0x2).
2172 - #address-cells : Should be one. The cell is the i2c device address with
2173 the r/w bit set to zero.
2174 - #size-cells : Should be zero.
2175 - clock-frequency : Can be used to set the i2c clock frequency. If
2176 unspecified, a default frequency of 60kHz is being used.
2177 The following two properties are deprecated. They are only used by legacy
2178 i2c drivers to find the bus to probe:
2179 - linux,i2c-index : Can be used to hard code an i2c bus number. By default,
2180 the bus number is dynamically assigned by the i2c core.
2181 - linux,i2c-class : Can be used to override the i2c class. The class is used
2182 by legacy i2c device drivers to find a bus in a specific context like
2183 system management, video or sound. By default, I2C_CLASS_HWMON (1) is
2184 being used. The definition of the classes can be found in
2185 include/i2c/i2c.h
2186
2187 Example, based on mpc823:
2188
2189 i2c@860 {
2190 compatible = "fsl,mpc823-i2c",
2191 "fsl,cpm1-i2c";
2192 reg = <0x860 0x20 0x3c80 0x30>;
2193 interrupts = <16>;
2194 interrupt-parent = <&CPM_PIC>;
2195 fsl,cpm-command = <0x10>;
2196 #address-cells = <1>;
2197 #size-cells = <0>;
2198
2199 rtc@68 {
2200 compatible = "dallas,ds1307";
2201 reg = <0x68>;
2202 };
2203 };
2204
2205 m) Chipselect/Local Bus
2206
2207 Properties:
2208 - name : Should be localbus
2209 - #address-cells : Should be either two or three. The first cell is the
2210 chipselect number, and the remaining cells are the
2211 offset into the chipselect.
2212 - #size-cells : Either one or two, depending on how large each chipselect
2213 can be.
2214 - ranges : Each range corresponds to a single chipselect, and cover
2215 the entire access window as configured.
2216
2217 Example:
2218 localbus@f0010100 {
2219 compatible = "fsl,mpc8272-localbus",
2220 "fsl,pq2-localbus";
2221 #address-cells = <2>;
2222 #size-cells = <1>;
2223 reg = <f0010100 40>;
2224
2225 ranges = <0 0 fe000000 02000000
2226 1 0 f4500000 00008000>;
2227
2228 flash@0,0 {
2229 compatible = "jedec-flash";
2230 reg = <0 0 2000000>;
2231 bank-width = <4>;
2232 device-width = <1>;
2233 };
2234
2235 board-control@1,0 {
2236 reg = <1 0 20>;
2237 compatible = "fsl,mpc8272ads-bcsr";
2238 };
2239 };
2240
2241
2242 n) 4xx/Axon EMAC ethernet nodes
2243 1351
2244 The EMAC ethernet controller in IBM and AMCC 4xx chips, and also 1352 The EMAC ethernet controller in IBM and AMCC 4xx chips, and also
2245 the Axon bridge. To operate this needs to interact with a ths 1353 the Axon bridge. To operate this needs to interact with a ths
@@ -2387,7 +1495,7 @@ platforms are moved over to use the flattened-device-tree model.
2387 available. 1495 available.
2388 For Axon: 0x0000012a 1496 For Axon: 0x0000012a
2389 1497
2390 o) Xilinx IP cores 1498 e) Xilinx IP cores
2391 1499
2392 The Xilinx EDK toolchain ships with a set of IP cores (devices) for use 1500 The Xilinx EDK toolchain ships with a set of IP cores (devices) for use
2393 in Xilinx Spartan and Virtex FPGAs. The devices cover the whole range 1501 in Xilinx Spartan and Virtex FPGAs. The devices cover the whole range
@@ -2681,206 +1789,7 @@ platforms are moved over to use the flattened-device-tree model.
2681 - reg-offset : A value of 3 is required 1789 - reg-offset : A value of 3 is required
2682 - reg-shift : A value of 2 is required 1790 - reg-shift : A value of 2 is required
2683 1791
2684 1792 f) USB EHCI controllers
2685 p) Freescale Synchronous Serial Interface
2686
2687 The SSI is a serial device that communicates with audio codecs. It can
2688 be programmed in AC97, I2S, left-justified, or right-justified modes.
2689
2690 Required properties:
2691 - compatible : compatible list, containing "fsl,ssi"
2692 - cell-index : the SSI, <0> = SSI1, <1> = SSI2, and so on
2693 - reg : offset and length of the register set for the device
2694 - interrupts : <a b> where a is the interrupt number and b is a
2695 field that represents an encoding of the sense and
2696 level information for the interrupt. This should be
2697 encoded based on the information in section 2)
2698 depending on the type of interrupt controller you
2699 have.
2700 - interrupt-parent : the phandle for the interrupt controller that
2701 services interrupts for this device.
2702 - fsl,mode : the operating mode for the SSI interface
2703 "i2s-slave" - I2S mode, SSI is clock slave
2704 "i2s-master" - I2S mode, SSI is clock master
2705 "lj-slave" - left-justified mode, SSI is clock slave
2706 "lj-master" - l.j. mode, SSI is clock master
2707 "rj-slave" - right-justified mode, SSI is clock slave
2708 "rj-master" - r.j., SSI is clock master
2709 "ac97-slave" - AC97 mode, SSI is clock slave
2710 "ac97-master" - AC97 mode, SSI is clock master
2711
2712 Optional properties:
2713 - codec-handle : phandle to a 'codec' node that defines an audio
2714 codec connected to this SSI. This node is typically
2715 a child of an I2C or other control node.
2716
2717 Child 'codec' node required properties:
2718 - compatible : compatible list, contains the name of the codec
2719
2720 Child 'codec' node optional properties:
2721 - clock-frequency : The frequency of the input clock, which typically
2722 comes from an on-board dedicated oscillator.
2723
2724 * Freescale 83xx DMA Controller
2725
2726 Freescale PowerPC 83xx have on chip general purpose DMA controllers.
2727
2728 Required properties:
2729
2730 - compatible : compatible list, contains 2 entries, first is
2731 "fsl,CHIP-dma", where CHIP is the processor
2732 (mpc8349, mpc8360, etc.) and the second is
2733 "fsl,elo-dma"
2734 - reg : <registers mapping for DMA general status reg>
2735 - ranges : Should be defined as specified in 1) to describe the
2736 DMA controller channels.
2737 - cell-index : controller index. 0 for controller @ 0x8100
2738 - interrupts : <interrupt mapping for DMA IRQ>
2739 - interrupt-parent : optional, if needed for interrupt mapping
2740
2741
2742 - DMA channel nodes:
2743 - compatible : compatible list, contains 2 entries, first is
2744 "fsl,CHIP-dma-channel", where CHIP is the processor
2745 (mpc8349, mpc8350, etc.) and the second is
2746 "fsl,elo-dma-channel"
2747 - reg : <registers mapping for channel>
2748 - cell-index : dma channel index starts at 0.
2749
2750 Optional properties:
2751 - interrupts : <interrupt mapping for DMA channel IRQ>
2752 (on 83xx this is expected to be identical to
2753 the interrupts property of the parent node)
2754 - interrupt-parent : optional, if needed for interrupt mapping
2755
2756 Example:
2757 dma@82a8 {
2758 #address-cells = <1>;
2759 #size-cells = <1>;
2760 compatible = "fsl,mpc8349-dma", "fsl,elo-dma";
2761 reg = <82a8 4>;
2762 ranges = <0 8100 1a4>;
2763 interrupt-parent = <&ipic>;
2764 interrupts = <47 8>;
2765 cell-index = <0>;
2766 dma-channel@0 {
2767 compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
2768 cell-index = <0>;
2769 reg = <0 80>;
2770 };
2771 dma-channel@80 {
2772 compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
2773 cell-index = <1>;
2774 reg = <80 80>;
2775 };
2776 dma-channel@100 {
2777 compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
2778 cell-index = <2>;
2779 reg = <100 80>;
2780 };
2781 dma-channel@180 {
2782 compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
2783 cell-index = <3>;
2784 reg = <180 80>;
2785 };
2786 };
2787
2788 * Freescale 85xx/86xx DMA Controller
2789
2790 Freescale PowerPC 85xx/86xx have on chip general purpose DMA controllers.
2791
2792 Required properties:
2793
2794 - compatible : compatible list, contains 2 entries, first is
2795 "fsl,CHIP-dma", where CHIP is the processor
2796 (mpc8540, mpc8540, etc.) and the second is
2797 "fsl,eloplus-dma"
2798 - reg : <registers mapping for DMA general status reg>
2799 - cell-index : controller index. 0 for controller @ 0x21000,
2800 1 for controller @ 0xc000
2801 - ranges : Should be defined as specified in 1) to describe the
2802 DMA controller channels.
2803
2804 - DMA channel nodes:
2805 - compatible : compatible list, contains 2 entries, first is
2806 "fsl,CHIP-dma-channel", where CHIP is the processor
2807 (mpc8540, mpc8560, etc.) and the second is
2808 "fsl,eloplus-dma-channel"
2809 - cell-index : dma channel index starts at 0.
2810 - reg : <registers mapping for channel>
2811 - interrupts : <interrupt mapping for DMA channel IRQ>
2812 - interrupt-parent : optional, if needed for interrupt mapping
2813
2814 Example:
2815 dma@21300 {
2816 #address-cells = <1>;
2817 #size-cells = <1>;
2818 compatible = "fsl,mpc8540-dma", "fsl,eloplus-dma";
2819 reg = <21300 4>;
2820 ranges = <0 21100 200>;
2821 cell-index = <0>;
2822 dma-channel@0 {
2823 compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
2824 reg = <0 80>;
2825 cell-index = <0>;
2826 interrupt-parent = <&mpic>;
2827 interrupts = <14 2>;
2828 };
2829 dma-channel@80 {
2830 compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
2831 reg = <80 80>;
2832 cell-index = <1>;
2833 interrupt-parent = <&mpic>;
2834 interrupts = <15 2>;
2835 };
2836 dma-channel@100 {
2837 compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
2838 reg = <100 80>;
2839 cell-index = <2>;
2840 interrupt-parent = <&mpic>;
2841 interrupts = <16 2>;
2842 };
2843 dma-channel@180 {
2844 compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
2845 reg = <180 80>;
2846 cell-index = <3>;
2847 interrupt-parent = <&mpic>;
2848 interrupts = <17 2>;
2849 };
2850 };
2851
2852 * Freescale 8xxx/3.0 Gb/s SATA nodes
2853
2854 SATA nodes are defined to describe on-chip Serial ATA controllers.
2855 Each SATA port should have its own node.
2856
2857 Required properties:
2858 - compatible : compatible list, contains 2 entries, first is
2859 "fsl,CHIP-sata", where CHIP is the processor
2860 (mpc8315, mpc8379, etc.) and the second is
2861 "fsl,pq-sata"
2862 - interrupts : <interrupt mapping for SATA IRQ>
2863 - cell-index : controller index.
2864 1 for controller @ 0x18000
2865 2 for controller @ 0x19000
2866 3 for controller @ 0x1a000
2867 4 for controller @ 0x1b000
2868
2869 Optional properties:
2870 - interrupt-parent : optional, if needed for interrupt mapping
2871 - reg : <registers mapping>
2872
2873 Example:
2874
2875 sata@18000 {
2876 compatible = "fsl,mpc8379-sata", "fsl,pq-sata";
2877 reg = <0x18000 0x1000>;
2878 cell-index = <1>;
2879 interrupts = <2c 8>;
2880 interrupt-parent = < &ipic >;
2881 };
2882
2883 q) USB EHCI controllers
2884 1793
2885 Required properties: 1794 Required properties:
2886 - compatible : should be "usb-ehci". 1795 - compatible : should be "usb-ehci".
@@ -2906,109 +1815,6 @@ platforms are moved over to use the flattened-device-tree model.
2906 big-endian; 1815 big-endian;
2907 }; 1816 };
2908 1817
2909 r) Freescale Display Interface Unit
2910
2911 The Freescale DIU is a LCD controller, with proper hardware, it can also
2912 drive DVI monitors.
2913
2914 Required properties:
2915 - compatible : should be "fsl-diu".
2916 - reg : should contain at least address and length of the DIU register
2917 set.
2918 - Interrupts : one DIU interrupt should be describe here.
2919
2920 Example (MPC8610HPCD)
2921 display@2c000 {
2922 compatible = "fsl,diu";
2923 reg = <0x2c000 100>;
2924 interrupts = <72 2>;
2925 interrupt-parent = <&mpic>;
2926 };
2927
2928 s) Freescale on board FPGA
2929
2930 This is the memory-mapped registers for on board FPGA.
2931
2932 Required properities:
2933 - compatible : should be "fsl,fpga-pixis".
2934 - reg : should contain the address and the lenght of the FPPGA register
2935 set.
2936
2937 Example (MPC8610HPCD)
2938 board-control@e8000000 {
2939 compatible = "fsl,fpga-pixis";
2940 reg = <0xe8000000 32>;
2941 };
2942
2943 t) Freescale MSI interrupt controller
2944
2945 Reguired properities:
2946 - compatible : compatible list, contains 2 entries,
2947 first is "fsl,CHIP-msi", where CHIP is the processor(mpc8610, mpc8572,
2948 etc.) and the second is "fsl,mpic-msi" or "fsl,ipic-msi" depending on
2949 the parent type.
2950 - reg : should contain the address and the length of the shared message
2951 interrupt register set.
2952 - msi-available-ranges: use <start count> style section to define which
2953 msi interrupt can be used in the 256 msi interrupts. This property is
2954 optional, without this, all the 256 MSI interrupts can be used.
2955 - interrupts : each one of the interrupts here is one entry per 32 MSIs,
2956 and routed to the host interrupt controller. the interrupts should
2957 be set as edge sensitive.
2958 - interrupt-parent: the phandle for the interrupt controller
2959 that services interrupts for this device. for 83xx cpu, the interrupts
2960 are routed to IPIC, and for 85xx/86xx cpu the interrupts are routed
2961 to MPIC.
2962
2963 Example
2964 msi@41600 {
2965 compatible = "fsl,mpc8610-msi", "fsl,mpic-msi";
2966 reg = <0x41600 0x80>;
2967 msi-available-ranges = <0 0x100>;
2968 interrupts = <
2969 0xe0 0
2970 0xe1 0
2971 0xe2 0
2972 0xe3 0
2973 0xe4 0
2974 0xe5 0
2975 0xe6 0
2976 0xe7 0>;
2977 interrupt-parent = <&mpic>;
2978 };
2979
2980 u) Freescale General-purpose Timers Module
2981
2982 Required properties:
2983 - compatible : should be
2984 "fsl,<chip>-gtm", "fsl,gtm" for SOC GTMs
2985 "fsl,<chip>-qe-gtm", "fsl,qe-gtm", "fsl,gtm" for QE GTMs
2986 "fsl,<chip>-cpm2-gtm", "fsl,cpm2-gtm", "fsl,gtm" for CPM2 GTMs
2987 - reg : should contain gtm registers location and length (0x40).
2988 - interrupts : should contain four interrupts.
2989 - interrupt-parent : interrupt source phandle.
2990 - clock-frequency : specifies the frequency driving the timer.
2991
2992 Example:
2993
2994 timer@500 {
2995 compatible = "fsl,mpc8360-gtm", "fsl,gtm";
2996 reg = <0x500 0x40>;
2997 interrupts = <90 8 78 8 84 8 72 8>;
2998 interrupt-parent = <&ipic>;
2999 /* filled by u-boot */
3000 clock-frequency = <0>;
3001 };
3002
3003 timer@440 {
3004 compatible = "fsl,mpc8360-qe-gtm", "fsl,qe-gtm", "fsl,gtm";
3005 reg = <0x440 0x40>;
3006 interrupts = <12 13 14 15>;
3007 interrupt-parent = <&qeic>;
3008 /* filled by u-boot */
3009 clock-frequency = <0>;
3010 };
3011
3012VII - Marvell Discovery mv64[345]6x System Controller chips 1818VII - Marvell Discovery mv64[345]6x System Controller chips
3013=========================================================== 1819===========================================================
3014 1820
diff --git a/Documentation/powerpc/dts-bindings/fsl/board.txt b/Documentation/powerpc/dts-bindings/fsl/board.txt
new file mode 100644
index 00000000000..74ae6f1cd2d
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/board.txt
@@ -0,0 +1,29 @@
1* Board Control and Status (BCSR)
2
3Required properties:
4
5 - device_type : Should be "board-control"
6 - reg : Offset and length of the register set for the device
7
8Example:
9
10 bcsr@f8000000 {
11 device_type = "board-control";
12 reg = <f8000000 8000>;
13 };
14
15* Freescale on board FPGA
16
17This is the memory-mapped registers for on board FPGA.
18
19Required properities:
20- compatible : should be "fsl,fpga-pixis".
21- reg : should contain the address and the lenght of the FPPGA register
22 set.
23
24Example (MPC8610HPCD):
25
26 board-control@e8000000 {
27 compatible = "fsl,fpga-pixis";
28 reg = <0xe8000000 32>;
29 };
diff --git a/Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm.txt b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm.txt
new file mode 100644
index 00000000000..088fc471e03
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm.txt
@@ -0,0 +1,67 @@
1* Freescale Communications Processor Module
2
3NOTE: This is an interim binding, and will likely change slightly,
4as more devices are supported. The QE bindings especially are
5incomplete.
6
7* Root CPM node
8
9Properties:
10- compatible : "fsl,cpm1", "fsl,cpm2", or "fsl,qe".
11- reg : A 48-byte region beginning with CPCR.
12
13Example:
14 cpm@119c0 {
15 #address-cells = <1>;
16 #size-cells = <1>;
17 #interrupt-cells = <2>;
18 compatible = "fsl,mpc8272-cpm", "fsl,cpm2";
19 reg = <119c0 30>;
20 }
21
22* Properties common to mulitple CPM/QE devices
23
24- fsl,cpm-command : This value is ORed with the opcode and command flag
25 to specify the device on which a CPM command operates.
26
27- fsl,cpm-brg : Indicates which baud rate generator the device
28 is associated with. If absent, an unused BRG
29 should be dynamically allocated. If zero, the
30 device uses an external clock rather than a BRG.
31
32- reg : Unless otherwise specified, the first resource represents the
33 scc/fcc/ucc registers, and the second represents the device's
34 parameter RAM region (if it has one).
35
36* Multi-User RAM (MURAM)
37
38The multi-user/dual-ported RAM is expressed as a bus under the CPM node.
39
40Ranges must be set up subject to the following restrictions:
41
42- Children's reg nodes must be offsets from the start of all muram, even
43 if the user-data area does not begin at zero.
44- If multiple range entries are used, the difference between the parent
45 address and the child address must be the same in all, so that a single
46 mapping can cover them all while maintaining the ability to determine
47 CPM-side offsets with pointer subtraction. It is recommended that
48 multiple range entries not be used.
49- A child address of zero must be translatable, even if no reg resources
50 contain it.
51
52A child "data" node must exist, compatible with "fsl,cpm-muram-data", to
53indicate the portion of muram that is usable by the OS for arbitrary
54purposes. The data node may have an arbitrary number of reg resources,
55all of which contribute to the allocatable muram pool.
56
57Example, based on mpc8272:
58 muram@0 {
59 #address-cells = <1>;
60 #size-cells = <1>;
61 ranges = <0 0 10000>;
62
63 data@0 {
64 compatible = "fsl,cpm-muram-data";
65 reg = <0 2000 9800 800>;
66 };
67 };
diff --git a/Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/brg.txt b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/brg.txt
new file mode 100644
index 00000000000..4c7d45eaf02
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/brg.txt
@@ -0,0 +1,21 @@
1* Baud Rate Generators
2
3Currently defined compatibles:
4fsl,cpm-brg
5fsl,cpm1-brg
6fsl,cpm2-brg
7
8Properties:
9- reg : There may be an arbitrary number of reg resources; BRG
10 numbers are assigned to these in order.
11- clock-frequency : Specifies the base frequency driving
12 the BRG.
13
14Example:
15 brg@119f0 {
16 compatible = "fsl,mpc8272-brg",
17 "fsl,cpm2-brg",
18 "fsl,cpm-brg";
19 reg = <119f0 10 115f0 10>;
20 clock-frequency = <d#25000000>;
21 };
diff --git a/Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/i2c.txt b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/i2c.txt
new file mode 100644
index 00000000000..87bc6048667
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/i2c.txt
@@ -0,0 +1,41 @@
1* I2C
2
3The I2C controller is expressed as a bus under the CPM node.
4
5Properties:
6- compatible : "fsl,cpm1-i2c", "fsl,cpm2-i2c"
7- reg : On CPM2 devices, the second resource doesn't specify the I2C
8 Parameter RAM itself, but the I2C_BASE field of the CPM2 Parameter RAM
9 (typically 0x8afc 0x2).
10- #address-cells : Should be one. The cell is the i2c device address with
11 the r/w bit set to zero.
12- #size-cells : Should be zero.
13- clock-frequency : Can be used to set the i2c clock frequency. If
14 unspecified, a default frequency of 60kHz is being used.
15The following two properties are deprecated. They are only used by legacy
16i2c drivers to find the bus to probe:
17- linux,i2c-index : Can be used to hard code an i2c bus number. By default,
18 the bus number is dynamically assigned by the i2c core.
19- linux,i2c-class : Can be used to override the i2c class. The class is used
20 by legacy i2c device drivers to find a bus in a specific context like
21 system management, video or sound. By default, I2C_CLASS_HWMON (1) is
22 being used. The definition of the classes can be found in
23 include/i2c/i2c.h
24
25Example, based on mpc823:
26
27 i2c@860 {
28 compatible = "fsl,mpc823-i2c",
29 "fsl,cpm1-i2c";
30 reg = <0x860 0x20 0x3c80 0x30>;
31 interrupts = <16>;
32 interrupt-parent = <&CPM_PIC>;
33 fsl,cpm-command = <0x10>;
34 #address-cells = <1>;
35 #size-cells = <0>;
36
37 rtc@68 {
38 compatible = "dallas,ds1307";
39 reg = <0x68>;
40 };
41 };
diff --git a/Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/pic.txt b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/pic.txt
new file mode 100644
index 00000000000..8e3ee168161
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/pic.txt
@@ -0,0 +1,18 @@
1* Interrupt Controllers
2
3Currently defined compatibles:
4- fsl,cpm1-pic
5 - only one interrupt cell
6- fsl,pq1-pic
7- fsl,cpm2-pic
8 - second interrupt cell is level/sense:
9 - 2 is falling edge
10 - 8 is active low
11
12Example:
13 interrupt-controller@10c00 {
14 #interrupt-cells = <2>;
15 interrupt-controller;
16 reg = <10c00 80>;
17 compatible = "mpc8272-pic", "fsl,cpm2-pic";
18 };
diff --git a/Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/usb.txt b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/usb.txt
new file mode 100644
index 00000000000..74bfda4bb82
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/usb.txt
@@ -0,0 +1,15 @@
1* USB (Universal Serial Bus Controller)
2
3Properties:
4- compatible : "fsl,cpm1-usb", "fsl,cpm2-usb", "fsl,qe-usb"
5
6Example:
7 usb@11bc0 {
8 #address-cells = <1>;
9 #size-cells = <0>;
10 compatible = "fsl,cpm2-usb";
11 reg = <11b60 18 8b00 100>;
12 interrupts = <b 8>;
13 interrupt-parent = <&PIC>;
14 fsl,cpm-command = <2e600000>;
15 };
diff --git a/Documentation/powerpc/dts-bindings/fsl/cpm_qe/network.txt b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/network.txt
new file mode 100644
index 00000000000..0e426944658
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/network.txt
@@ -0,0 +1,45 @@
1* Network
2
3Currently defined compatibles:
4- fsl,cpm1-scc-enet
5- fsl,cpm2-scc-enet
6- fsl,cpm1-fec-enet
7- fsl,cpm2-fcc-enet (third resource is GFEMR)
8- fsl,qe-enet
9
10Example:
11
12 ethernet@11300 {
13 device_type = "network";
14 compatible = "fsl,mpc8272-fcc-enet",
15 "fsl,cpm2-fcc-enet";
16 reg = <11300 20 8400 100 11390 1>;
17 local-mac-address = [ 00 00 00 00 00 00 ];
18 interrupts = <20 8>;
19 interrupt-parent = <&PIC>;
20 phy-handle = <&PHY0>;
21 fsl,cpm-command = <12000300>;
22 };
23
24* MDIO
25
26Currently defined compatibles:
27fsl,pq1-fec-mdio (reg is same as first resource of FEC device)
28fsl,cpm2-mdio-bitbang (reg is port C registers)
29
30Properties for fsl,cpm2-mdio-bitbang:
31fsl,mdio-pin : pin of port C controlling mdio data
32fsl,mdc-pin : pin of port C controlling mdio clock
33
34Example:
35 mdio@10d40 {
36 device_type = "mdio";
37 compatible = "fsl,mpc8272ads-mdio-bitbang",
38 "fsl,mpc8272-mdio-bitbang",
39 "fsl,cpm2-mdio-bitbang";
40 reg = <10d40 14>;
41 #address-cells = <1>;
42 #size-cells = <0>;
43 fsl,mdio-pin = <12>;
44 fsl,mdc-pin = <13>;
45 };
diff --git a/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe.txt b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe.txt
new file mode 100644
index 00000000000..78790d58dc2
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe.txt
@@ -0,0 +1,58 @@
1* Freescale QUICC Engine module (QE)
2This represents qe module that is installed on PowerQUICC II Pro.
3
4NOTE: This is an interim binding; it should be updated to fit
5in with the CPM binding later in this document.
6
7Basically, it is a bus of devices, that could act more or less
8as a complete entity (UCC, USB etc ). All of them should be siblings on
9the "root" qe node, using the common properties from there.
10The description below applies to the qe of MPC8360 and
11more nodes and properties would be extended in the future.
12
13i) Root QE device
14
15Required properties:
16- compatible : should be "fsl,qe";
17- model : precise model of the QE, Can be "QE", "CPM", or "CPM2"
18- reg : offset and length of the device registers.
19- bus-frequency : the clock frequency for QUICC Engine.
20
21Recommended properties
22- brg-frequency : the internal clock source frequency for baud-rate
23 generators in Hz.
24
25Example:
26 qe@e0100000 {
27 #address-cells = <1>;
28 #size-cells = <1>;
29 #interrupt-cells = <2>;
30 compatible = "fsl,qe";
31 ranges = <0 e0100000 00100000>;
32 reg = <e0100000 480>;
33 brg-frequency = <0>;
34 bus-frequency = <179A7B00>;
35 }
36
37* Multi-User RAM (MURAM)
38
39Required properties:
40- compatible : should be "fsl,qe-muram", "fsl,cpm-muram".
41- mode : the could be "host" or "slave".
42- ranges : Should be defined as specified in 1) to describe the
43 translation of MURAM addresses.
44- data-only : sub-node which defines the address area under MURAM
45 bus that can be allocated as data/parameter
46
47Example:
48
49 muram@10000 {
50 compatible = "fsl,qe-muram", "fsl,cpm-muram";
51 ranges = <0 00010000 0000c000>;
52
53 data-only@0{
54 compatible = "fsl,qe-muram-data",
55 "fsl,cpm-muram-data";
56 reg = <0 c000>;
57 };
58 };
diff --git a/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/firmware.txt b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/firmware.txt
new file mode 100644
index 00000000000..6c238f59b2a
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/firmware.txt
@@ -0,0 +1,24 @@
1* Uploaded QE firmware
2
3 If a new firwmare has been uploaded to the QE (usually by the
4 boot loader), then a 'firmware' child node should be added to the QE
5 node. This node provides information on the uploaded firmware that
6 device drivers may need.
7
8 Required properties:
9 - id: The string name of the firmware. This is taken from the 'id'
10 member of the qe_firmware structure of the uploaded firmware.
11 Device drivers can search this string to determine if the
12 firmware they want is already present.
13 - extended-modes: The Extended Modes bitfield, taken from the
14 firmware binary. It is a 64-bit number represented
15 as an array of two 32-bit numbers.
16 - virtual-traps: The virtual traps, taken from the firmware binary.
17 It is an array of 8 32-bit numbers.
18
19Example:
20 firmware {
21 id = "Soft-UART";
22 extended-modes = <0 0>;
23 virtual-traps = <0 0 0 0 0 0 0 0>;
24 };
diff --git a/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/par_io.txt b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/par_io.txt
new file mode 100644
index 00000000000..60984260207
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/par_io.txt
@@ -0,0 +1,51 @@
1* Parallel I/O Ports
2
3This node configures Parallel I/O ports for CPUs with QE support.
4The node should reside in the "soc" node of the tree. For each
5device that using parallel I/O ports, a child node should be created.
6See the definition of the Pin configuration nodes below for more
7information.
8
9Required properties:
10- device_type : should be "par_io".
11- reg : offset to the register set and its length.
12- num-ports : number of Parallel I/O ports
13
14Example:
15par_io@1400 {
16 reg = <1400 100>;
17 #address-cells = <1>;
18 #size-cells = <0>;
19 device_type = "par_io";
20 num-ports = <7>;
21 ucc_pin@01 {
22 ......
23 };
24
25Note that "par_io" nodes are obsolete, and should not be used for
26the new device trees. Instead, each Par I/O bank should be represented
27via its own gpio-controller node:
28
29Required properties:
30- #gpio-cells : should be "2".
31- compatible : should be "fsl,<chip>-qe-pario-bank",
32 "fsl,mpc8323-qe-pario-bank".
33- reg : offset to the register set and its length.
34- gpio-controller : node to identify gpio controllers.
35
36Example:
37 qe_pio_a: gpio-controller@1400 {
38 #gpio-cells = <2>;
39 compatible = "fsl,mpc8360-qe-pario-bank",
40 "fsl,mpc8323-qe-pario-bank";
41 reg = <0x1400 0x18>;
42 gpio-controller;
43 };
44
45 qe_pio_e: gpio-controller@1460 {
46 #gpio-cells = <2>;
47 compatible = "fsl,mpc8360-qe-pario-bank",
48 "fsl,mpc8323-qe-pario-bank";
49 reg = <0x1460 0x18>;
50 gpio-controller;
51 };
diff --git a/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/pincfg.txt b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/pincfg.txt
new file mode 100644
index 00000000000..c5b43061db3
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/pincfg.txt
@@ -0,0 +1,60 @@
1* Pin configuration nodes
2
3Required properties:
4- linux,phandle : phandle of this node; likely referenced by a QE
5 device.
6- pio-map : array of pin configurations. Each pin is defined by 6
7 integers. The six numbers are respectively: port, pin, dir,
8 open_drain, assignment, has_irq.
9 - port : port number of the pin; 0-6 represent port A-G in UM.
10 - pin : pin number in the port.
11 - dir : direction of the pin, should encode as follows:
12
13 0 = The pin is disabled
14 1 = The pin is an output
15 2 = The pin is an input
16 3 = The pin is I/O
17
18 - open_drain : indicates the pin is normal or wired-OR:
19
20 0 = The pin is actively driven as an output
21 1 = The pin is an open-drain driver. As an output, the pin is
22 driven active-low, otherwise it is three-stated.
23
24 - assignment : function number of the pin according to the Pin Assignment
25 tables in User Manual. Each pin can have up to 4 possible functions in
26 QE and two options for CPM.
27 - has_irq : indicates if the pin is used as source of external
28 interrupts.
29
30Example:
31 ucc_pin@01 {
32 linux,phandle = <140001>;
33 pio-map = <
34 /* port pin dir open_drain assignment has_irq */
35 0 3 1 0 1 0 /* TxD0 */
36 0 4 1 0 1 0 /* TxD1 */
37 0 5 1 0 1 0 /* TxD2 */
38 0 6 1 0 1 0 /* TxD3 */
39 1 6 1 0 3 0 /* TxD4 */
40 1 7 1 0 1 0 /* TxD5 */
41 1 9 1 0 2 0 /* TxD6 */
42 1 a 1 0 2 0 /* TxD7 */
43 0 9 2 0 1 0 /* RxD0 */
44 0 a 2 0 1 0 /* RxD1 */
45 0 b 2 0 1 0 /* RxD2 */
46 0 c 2 0 1 0 /* RxD3 */
47 0 d 2 0 1 0 /* RxD4 */
48 1 1 2 0 2 0 /* RxD5 */
49 1 0 2 0 2 0 /* RxD6 */
50 1 4 2 0 2 0 /* RxD7 */
51 0 7 1 0 1 0 /* TX_EN */
52 0 8 1 0 1 0 /* TX_ER */
53 0 f 2 0 1 0 /* RX_DV */
54 0 10 2 0 1 0 /* RX_ER */
55 0 0 2 0 1 0 /* RX_CLK */
56 2 9 1 0 3 0 /* GTX_CLK - CLK10 */
57 2 8 2 0 1 0>; /* GTX125 - CLK9 */
58 };
59
60
diff --git a/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/ucc.txt b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/ucc.txt
new file mode 100644
index 00000000000..e47734bee3f
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/ucc.txt
@@ -0,0 +1,70 @@
1* UCC (Unified Communications Controllers)
2
3Required properties:
4- device_type : should be "network", "hldc", "uart", "transparent"
5 "bisync", "atm", or "serial".
6- compatible : could be "ucc_geth" or "fsl_atm" and so on.
7- cell-index : the ucc number(1-8), corresponding to UCCx in UM.
8- reg : Offset and length of the register set for the device
9- interrupts : <a b> where a is the interrupt number and b is a
10 field that represents an encoding of the sense and level
11 information for the interrupt. This should be encoded based on
12 the information in section 2) depending on the type of interrupt
13 controller you have.
14- interrupt-parent : the phandle for the interrupt controller that
15 services interrupts for this device.
16- pio-handle : The phandle for the Parallel I/O port configuration.
17- port-number : for UART drivers, the port number to use, between 0 and 3.
18 This usually corresponds to the /dev/ttyQE device, e.g. <0> = /dev/ttyQE0.
19 The port number is added to the minor number of the device. Unlike the
20 CPM UART driver, the port-number is required for the QE UART driver.
21- soft-uart : for UART drivers, if specified this means the QE UART device
22 driver should use "Soft-UART" mode, which is needed on some SOCs that have
23 broken UART hardware. Soft-UART is provided via a microcode upload.
24- rx-clock-name: the UCC receive clock source
25 "none": clock source is disabled
26 "brg1" through "brg16": clock source is BRG1-BRG16, respectively
27 "clk1" through "clk24": clock source is CLK1-CLK24, respectively
28- tx-clock-name: the UCC transmit clock source
29 "none": clock source is disabled
30 "brg1" through "brg16": clock source is BRG1-BRG16, respectively
31 "clk1" through "clk24": clock source is CLK1-CLK24, respectively
32The following two properties are deprecated. rx-clock has been replaced
33with rx-clock-name, and tx-clock has been replaced with tx-clock-name.
34Drivers that currently use the deprecated properties should continue to
35do so, in order to support older device trees, but they should be updated
36to check for the new properties first.
37- rx-clock : represents the UCC receive clock source.
38 0x00 : clock source is disabled;
39 0x1~0x10 : clock source is BRG1~BRG16 respectively;
40 0x11~0x28: clock source is QE_CLK1~QE_CLK24 respectively.
41- tx-clock: represents the UCC transmit clock source;
42 0x00 : clock source is disabled;
43 0x1~0x10 : clock source is BRG1~BRG16 respectively;
44 0x11~0x28: clock source is QE_CLK1~QE_CLK24 respectively.
45
46Required properties for network device_type:
47- mac-address : list of bytes representing the ethernet address.
48- phy-handle : The phandle for the PHY connected to this controller.
49
50Recommended properties:
51- phy-connection-type : a string naming the controller/PHY interface type,
52 i.e., "mii" (default), "rmii", "gmii", "rgmii", "rgmii-id" (Internal
53 Delay), "rgmii-txid" (delay on TX only), "rgmii-rxid" (delay on RX only),
54 "tbi", or "rtbi".
55
56Example:
57 ucc@2000 {
58 device_type = "network";
59 compatible = "ucc_geth";
60 cell-index = <1>;
61 reg = <2000 200>;
62 interrupts = <a0 0>;
63 interrupt-parent = <700>;
64 mac-address = [ 00 04 9f 00 23 23 ];
65 rx-clock = "none";
66 tx-clock = "clk9";
67 phy-handle = <212000>;
68 phy-connection-type = "gmii";
69 pio-handle = <140001>;
70 };
diff --git a/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/usb.txt b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/usb.txt
new file mode 100644
index 00000000000..c8f44d6bcbc
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/usb.txt
@@ -0,0 +1,22 @@
1* USB (Universal Serial Bus Controller)
2
3Required properties:
4- compatible : could be "qe_udc" or "fhci-hcd".
5- mode : the could be "host" or "slave".
6- reg : Offset and length of the register set for the device
7- interrupts : <a b> where a is the interrupt number and b is a
8 field that represents an encoding of the sense and level
9 information for the interrupt. This should be encoded based on
10 the information in section 2) depending on the type of interrupt
11 controller you have.
12- interrupt-parent : the phandle for the interrupt controller that
13 services interrupts for this device.
14
15Example(slave):
16 usb@6c0 {
17 compatible = "qe_udc";
18 reg = <6c0 40>;
19 interrupts = <8b 0>;
20 interrupt-parent = <700>;
21 mode = "slave";
22 };
diff --git a/Documentation/powerpc/dts-bindings/fsl/cpm_qe/serial.txt b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/serial.txt
new file mode 100644
index 00000000000..b35f3482e3e
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/serial.txt
@@ -0,0 +1,21 @@
1* Serial
2
3Currently defined compatibles:
4- fsl,cpm1-smc-uart
5- fsl,cpm2-smc-uart
6- fsl,cpm1-scc-uart
7- fsl,cpm2-scc-uart
8- fsl,qe-uart
9
10Example:
11
12 serial@11a00 {
13 device_type = "serial";
14 compatible = "fsl,mpc8272-scc-uart",
15 "fsl,cpm2-scc-uart";
16 reg = <11a00 20 8000 100>;
17 interrupts = <28 8>;
18 interrupt-parent = <&PIC>;
19 fsl,cpm-brg = <1>;
20 fsl,cpm-command = <00800000>;
21 };
diff --git a/Documentation/powerpc/dts-bindings/fsl/diu.txt b/Documentation/powerpc/dts-bindings/fsl/diu.txt
new file mode 100644
index 00000000000..deb35de7098
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/diu.txt
@@ -0,0 +1,18 @@
1* Freescale Display Interface Unit
2
3The Freescale DIU is a LCD controller, with proper hardware, it can also
4drive DVI monitors.
5
6Required properties:
7- compatible : should be "fsl-diu".
8- reg : should contain at least address and length of the DIU register
9 set.
10- Interrupts : one DIU interrupt should be describe here.
11
12Example (MPC8610HPCD):
13 display@2c000 {
14 compatible = "fsl,diu";
15 reg = <0x2c000 100>;
16 interrupts = <72 2>;
17 interrupt-parent = <&mpic>;
18 };
diff --git a/Documentation/powerpc/dts-bindings/fsl/dma.txt b/Documentation/powerpc/dts-bindings/fsl/dma.txt
new file mode 100644
index 00000000000..86826df00e6
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/dma.txt
@@ -0,0 +1,127 @@
1* Freescale 83xx DMA Controller
2
3Freescale PowerPC 83xx have on chip general purpose DMA controllers.
4
5Required properties:
6
7- compatible : compatible list, contains 2 entries, first is
8 "fsl,CHIP-dma", where CHIP is the processor
9 (mpc8349, mpc8360, etc.) and the second is
10 "fsl,elo-dma"
11- reg : <registers mapping for DMA general status reg>
12- ranges : Should be defined as specified in 1) to describe the
13 DMA controller channels.
14- cell-index : controller index. 0 for controller @ 0x8100
15- interrupts : <interrupt mapping for DMA IRQ>
16- interrupt-parent : optional, if needed for interrupt mapping
17
18
19- DMA channel nodes:
20 - compatible : compatible list, contains 2 entries, first is
21 "fsl,CHIP-dma-channel", where CHIP is the processor
22 (mpc8349, mpc8350, etc.) and the second is
23 "fsl,elo-dma-channel"
24 - reg : <registers mapping for channel>
25 - cell-index : dma channel index starts at 0.
26
27Optional properties:
28 - interrupts : <interrupt mapping for DMA channel IRQ>
29 (on 83xx this is expected to be identical to
30 the interrupts property of the parent node)
31 - interrupt-parent : optional, if needed for interrupt mapping
32
33Example:
34 dma@82a8 {
35 #address-cells = <1>;
36 #size-cells = <1>;
37 compatible = "fsl,mpc8349-dma", "fsl,elo-dma";
38 reg = <82a8 4>;
39 ranges = <0 8100 1a4>;
40 interrupt-parent = <&ipic>;
41 interrupts = <47 8>;
42 cell-index = <0>;
43 dma-channel@0 {
44 compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
45 cell-index = <0>;
46 reg = <0 80>;
47 };
48 dma-channel@80 {
49 compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
50 cell-index = <1>;
51 reg = <80 80>;
52 };
53 dma-channel@100 {
54 compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
55 cell-index = <2>;
56 reg = <100 80>;
57 };
58 dma-channel@180 {
59 compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
60 cell-index = <3>;
61 reg = <180 80>;
62 };
63 };
64
65* Freescale 85xx/86xx DMA Controller
66
67Freescale PowerPC 85xx/86xx have on chip general purpose DMA controllers.
68
69Required properties:
70
71- compatible : compatible list, contains 2 entries, first is
72 "fsl,CHIP-dma", where CHIP is the processor
73 (mpc8540, mpc8540, etc.) and the second is
74 "fsl,eloplus-dma"
75- reg : <registers mapping for DMA general status reg>
76- cell-index : controller index. 0 for controller @ 0x21000,
77 1 for controller @ 0xc000
78- ranges : Should be defined as specified in 1) to describe the
79 DMA controller channels.
80
81- DMA channel nodes:
82 - compatible : compatible list, contains 2 entries, first is
83 "fsl,CHIP-dma-channel", where CHIP is the processor
84 (mpc8540, mpc8560, etc.) and the second is
85 "fsl,eloplus-dma-channel"
86 - cell-index : dma channel index starts at 0.
87 - reg : <registers mapping for channel>
88 - interrupts : <interrupt mapping for DMA channel IRQ>
89 - interrupt-parent : optional, if needed for interrupt mapping
90
91Example:
92 dma@21300 {
93 #address-cells = <1>;
94 #size-cells = <1>;
95 compatible = "fsl,mpc8540-dma", "fsl,eloplus-dma";
96 reg = <21300 4>;
97 ranges = <0 21100 200>;
98 cell-index = <0>;
99 dma-channel@0 {
100 compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
101 reg = <0 80>;
102 cell-index = <0>;
103 interrupt-parent = <&mpic>;
104 interrupts = <14 2>;
105 };
106 dma-channel@80 {
107 compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
108 reg = <80 80>;
109 cell-index = <1>;
110 interrupt-parent = <&mpic>;
111 interrupts = <15 2>;
112 };
113 dma-channel@100 {
114 compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
115 reg = <100 80>;
116 cell-index = <2>;
117 interrupt-parent = <&mpic>;
118 interrupts = <16 2>;
119 };
120 dma-channel@180 {
121 compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
122 reg = <180 80>;
123 cell-index = <3>;
124 interrupt-parent = <&mpic>;
125 interrupts = <17 2>;
126 };
127 };
diff --git a/Documentation/powerpc/dts-bindings/fsl/gtm.txt b/Documentation/powerpc/dts-bindings/fsl/gtm.txt
new file mode 100644
index 00000000000..9a33efded4b
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/gtm.txt
@@ -0,0 +1,31 @@
1* Freescale General-purpose Timers Module
2
3Required properties:
4 - compatible : should be
5 "fsl,<chip>-gtm", "fsl,gtm" for SOC GTMs
6 "fsl,<chip>-qe-gtm", "fsl,qe-gtm", "fsl,gtm" for QE GTMs
7 "fsl,<chip>-cpm2-gtm", "fsl,cpm2-gtm", "fsl,gtm" for CPM2 GTMs
8 - reg : should contain gtm registers location and length (0x40).
9 - interrupts : should contain four interrupts.
10 - interrupt-parent : interrupt source phandle.
11 - clock-frequency : specifies the frequency driving the timer.
12
13Example:
14
15timer@500 {
16 compatible = "fsl,mpc8360-gtm", "fsl,gtm";
17 reg = <0x500 0x40>;
18 interrupts = <90 8 78 8 84 8 72 8>;
19 interrupt-parent = <&ipic>;
20 /* filled by u-boot */
21 clock-frequency = <0>;
22};
23
24timer@440 {
25 compatible = "fsl,mpc8360-qe-gtm", "fsl,qe-gtm", "fsl,gtm";
26 reg = <0x440 0x40>;
27 interrupts = <12 13 14 15>;
28 interrupt-parent = <&qeic>;
29 /* filled by u-boot */
30 clock-frequency = <0>;
31};
diff --git a/Documentation/powerpc/dts-bindings/fsl/guts.txt b/Documentation/powerpc/dts-bindings/fsl/guts.txt
new file mode 100644
index 00000000000..9e7a2417dac
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/guts.txt
@@ -0,0 +1,25 @@
1* Global Utilities Block
2
3The global utilities block controls power management, I/O device
4enabling, power-on-reset configuration monitoring, general-purpose
5I/O signal configuration, alternate function selection for multiplexed
6signals, and clock control.
7
8Required properties:
9
10 - compatible : Should define the compatible device type for
11 global-utilities.
12 - reg : Offset and length of the register set for the device.
13
14Recommended properties:
15
16 - fsl,has-rstcr : Indicates that the global utilities register set
17 contains a functioning "reset control register" (i.e. the board
18 is wired to reset upon setting the HRESET_REQ bit in this register).
19
20Example:
21 global-utilities@e0000 { /* global utilities block */
22 compatible = "fsl,mpc8548-guts";
23 reg = <e0000 1000>;
24 fsl,has-rstcr;
25 };
diff --git a/Documentation/powerpc/dts-bindings/fsl/i2c.txt b/Documentation/powerpc/dts-bindings/fsl/i2c.txt
new file mode 100644
index 00000000000..d0ab33e21fe
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/i2c.txt
@@ -0,0 +1,32 @@
1* I2C
2
3Required properties :
4
5 - device_type : Should be "i2c"
6 - reg : Offset and length of the register set for the device
7
8Recommended properties :
9
10 - compatible : Should be "fsl-i2c" for parts compatible with
11 Freescale I2C specifications.
12 - interrupts : <a b> where a is the interrupt number and b is a
13 field that represents an encoding of the sense and level
14 information for the interrupt. This should be encoded based on
15 the information in section 2) depending on the type of interrupt
16 controller you have.
17 - interrupt-parent : the phandle for the interrupt controller that
18 services interrupts for this device.
19 - dfsrr : boolean; if defined, indicates that this I2C device has
20 a digital filter sampling rate register
21 - fsl5200-clocking : boolean; if defined, indicated that this device
22 uses the FSL 5200 clocking mechanism.
23
24Example :
25 i2c@3000 {
26 interrupt-parent = <40000>;
27 interrupts = <1b 3>;
28 reg = <3000 18>;
29 device_type = "i2c";
30 compatible = "fsl-i2c";
31 dfsrr;
32 };
diff --git a/Documentation/powerpc/dts-bindings/fsl/lbc.txt b/Documentation/powerpc/dts-bindings/fsl/lbc.txt
new file mode 100644
index 00000000000..3300fec501c
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/lbc.txt
@@ -0,0 +1,35 @@
1* Chipselect/Local Bus
2
3Properties:
4- name : Should be localbus
5- #address-cells : Should be either two or three. The first cell is the
6 chipselect number, and the remaining cells are the
7 offset into the chipselect.
8- #size-cells : Either one or two, depending on how large each chipselect
9 can be.
10- ranges : Each range corresponds to a single chipselect, and cover
11 the entire access window as configured.
12
13Example:
14 localbus@f0010100 {
15 compatible = "fsl,mpc8272-localbus",
16 "fsl,pq2-localbus";
17 #address-cells = <2>;
18 #size-cells = <1>;
19 reg = <f0010100 40>;
20
21 ranges = <0 0 fe000000 02000000
22 1 0 f4500000 00008000>;
23
24 flash@0,0 {
25 compatible = "jedec-flash";
26 reg = <0 0 2000000>;
27 bank-width = <4>;
28 device-width = <1>;
29 };
30
31 board-control@1,0 {
32 reg = <1 0 20>;
33 compatible = "fsl,mpc8272ads-bcsr";
34 };
35 };
diff --git a/Documentation/powerpc/dts-bindings/fsl/msi-pic.txt b/Documentation/powerpc/dts-bindings/fsl/msi-pic.txt
new file mode 100644
index 00000000000..b26b91992c5
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/msi-pic.txt
@@ -0,0 +1,36 @@
1* Freescale MSI interrupt controller
2
3Reguired properities:
4- compatible : compatible list, contains 2 entries,
5 first is "fsl,CHIP-msi", where CHIP is the processor(mpc8610, mpc8572,
6 etc.) and the second is "fsl,mpic-msi" or "fsl,ipic-msi" depending on
7 the parent type.
8- reg : should contain the address and the length of the shared message
9 interrupt register set.
10- msi-available-ranges: use <start count> style section to define which
11 msi interrupt can be used in the 256 msi interrupts. This property is
12 optional, without this, all the 256 MSI interrupts can be used.
13- interrupts : each one of the interrupts here is one entry per 32 MSIs,
14 and routed to the host interrupt controller. the interrupts should
15 be set as edge sensitive.
16- interrupt-parent: the phandle for the interrupt controller
17 that services interrupts for this device. for 83xx cpu, the interrupts
18 are routed to IPIC, and for 85xx/86xx cpu the interrupts are routed
19 to MPIC.
20
21Example:
22 msi@41600 {
23 compatible = "fsl,mpc8610-msi", "fsl,mpic-msi";
24 reg = <0x41600 0x80>;
25 msi-available-ranges = <0 0x100>;
26 interrupts = <
27 0xe0 0
28 0xe1 0
29 0xe2 0
30 0xe3 0
31 0xe4 0
32 0xe5 0
33 0xe6 0
34 0xe7 0>;
35 interrupt-parent = <&mpic>;
36 };
diff --git a/Documentation/powerpc/dts-bindings/fsl/sata.txt b/Documentation/powerpc/dts-bindings/fsl/sata.txt
new file mode 100644
index 00000000000..b46bcf46c3d
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/sata.txt
@@ -0,0 +1,29 @@
1* Freescale 8xxx/3.0 Gb/s SATA nodes
2
3SATA nodes are defined to describe on-chip Serial ATA controllers.
4Each SATA port should have its own node.
5
6Required properties:
7- compatible : compatible list, contains 2 entries, first is
8 "fsl,CHIP-sata", where CHIP is the processor
9 (mpc8315, mpc8379, etc.) and the second is
10 "fsl,pq-sata"
11- interrupts : <interrupt mapping for SATA IRQ>
12- cell-index : controller index.
13 1 for controller @ 0x18000
14 2 for controller @ 0x19000
15 3 for controller @ 0x1a000
16 4 for controller @ 0x1b000
17
18Optional properties:
19- interrupt-parent : optional, if needed for interrupt mapping
20- reg : <registers mapping>
21
22Example:
23 sata@18000 {
24 compatible = "fsl,mpc8379-sata", "fsl,pq-sata";
25 reg = <0x18000 0x1000>;
26 cell-index = <1>;
27 interrupts = <2c 8>;
28 interrupt-parent = < &ipic >;
29 };
diff --git a/Documentation/powerpc/dts-bindings/fsl/spi.txt b/Documentation/powerpc/dts-bindings/fsl/spi.txt
new file mode 100644
index 00000000000..e7d9a344c4f
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/spi.txt
@@ -0,0 +1,24 @@
1* SPI (Serial Peripheral Interface)
2
3Required properties:
4- cell-index : SPI controller index.
5- compatible : should be "fsl,spi".
6- mode : the SPI operation mode, it can be "cpu" or "cpu-qe".
7- reg : Offset and length of the register set for the device
8- interrupts : <a b> where a is the interrupt number and b is a
9 field that represents an encoding of the sense and level
10 information for the interrupt. This should be encoded based on
11 the information in section 2) depending on the type of interrupt
12 controller you have.
13- interrupt-parent : the phandle for the interrupt controller that
14 services interrupts for this device.
15
16Example:
17 spi@4c0 {
18 cell-index = <0>;
19 compatible = "fsl,spi";
20 reg = <4c0 40>;
21 interrupts = <82 0>;
22 interrupt-parent = <700>;
23 mode = "cpu";
24 };
diff --git a/Documentation/powerpc/dts-bindings/fsl/ssi.txt b/Documentation/powerpc/dts-bindings/fsl/ssi.txt
new file mode 100644
index 00000000000..d100555d488
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/ssi.txt
@@ -0,0 +1,38 @@
1Freescale Synchronous Serial Interface
2
3The SSI is a serial device that communicates with audio codecs. It can
4be programmed in AC97, I2S, left-justified, or right-justified modes.
5
6Required properties:
7- compatible : compatible list, containing "fsl,ssi"
8- cell-index : the SSI, <0> = SSI1, <1> = SSI2, and so on
9- reg : offset and length of the register set for the device
10- interrupts : <a b> where a is the interrupt number and b is a
11 field that represents an encoding of the sense and
12 level information for the interrupt. This should be
13 encoded based on the information in section 2)
14 depending on the type of interrupt controller you
15 have.
16- interrupt-parent : the phandle for the interrupt controller that
17 services interrupts for this device.
18- fsl,mode : the operating mode for the SSI interface
19 "i2s-slave" - I2S mode, SSI is clock slave
20 "i2s-master" - I2S mode, SSI is clock master
21 "lj-slave" - left-justified mode, SSI is clock slave
22 "lj-master" - l.j. mode, SSI is clock master
23 "rj-slave" - right-justified mode, SSI is clock slave
24 "rj-master" - r.j., SSI is clock master
25 "ac97-slave" - AC97 mode, SSI is clock slave
26 "ac97-master" - AC97 mode, SSI is clock master
27
28Optional properties:
29- codec-handle : phandle to a 'codec' node that defines an audio
30 codec connected to this SSI. This node is typically
31 a child of an I2C or other control node.
32
33Child 'codec' node required properties:
34- compatible : compatible list, contains the name of the codec
35
36Child 'codec' node optional properties:
37- clock-frequency : The frequency of the input clock, which typically
38 comes from an on-board dedicated oscillator.
diff --git a/Documentation/powerpc/dts-bindings/fsl/tsec.txt b/Documentation/powerpc/dts-bindings/fsl/tsec.txt
new file mode 100644
index 00000000000..583ef6b56c4
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/tsec.txt
@@ -0,0 +1,69 @@
1* MDIO IO device
2
3The MDIO is a bus to which the PHY devices are connected. For each
4device that exists on this bus, a child node should be created. See
5the definition of the PHY node below for an example of how to define
6a PHY.
7
8Required properties:
9 - reg : Offset and length of the register set for the device
10 - compatible : Should define the compatible device type for the
11 mdio. Currently, this is most likely to be "fsl,gianfar-mdio"
12
13Example:
14
15 mdio@24520 {
16 reg = <24520 20>;
17 compatible = "fsl,gianfar-mdio";
18
19 ethernet-phy@0 {
20 ......
21 };
22 };
23
24
25* Gianfar-compatible ethernet nodes
26
27Required properties:
28
29 - device_type : Should be "network"
30 - model : Model of the device. Can be "TSEC", "eTSEC", or "FEC"
31 - compatible : Should be "gianfar"
32 - reg : Offset and length of the register set for the device
33 - mac-address : List of bytes representing the ethernet address of
34 this controller
35 - interrupts : <a b> where a is the interrupt number and b is a
36 field that represents an encoding of the sense and level
37 information for the interrupt. This should be encoded based on
38 the information in section 2) depending on the type of interrupt
39 controller you have.
40 - interrupt-parent : the phandle for the interrupt controller that
41 services interrupts for this device.
42 - phy-handle : The phandle for the PHY connected to this ethernet
43 controller.
44 - fixed-link : <a b c d e> where a is emulated phy id - choose any,
45 but unique to the all specified fixed-links, b is duplex - 0 half,
46 1 full, c is link speed - d#10/d#100/d#1000, d is pause - 0 no
47 pause, 1 pause, e is asym_pause - 0 no asym_pause, 1 asym_pause.
48
49Recommended properties:
50
51 - phy-connection-type : a string naming the controller/PHY interface type,
52 i.e., "mii" (default), "rmii", "gmii", "rgmii", "rgmii-id", "sgmii",
53 "tbi", or "rtbi". This property is only really needed if the connection
54 is of type "rgmii-id", as all other connection types are detected by
55 hardware.
56
57
58Example:
59 ethernet@24000 {
60 #size-cells = <0>;
61 device_type = "network";
62 model = "TSEC";
63 compatible = "gianfar";
64 reg = <24000 1000>;
65 mac-address = [ 00 E0 0C 00 73 00 ];
66 interrupts = <d 3 e 3 12 3>;
67 interrupt-parent = <40000>;
68 phy-handle = <2452000>
69 };
diff --git a/Documentation/powerpc/dts-bindings/fsl/usb.txt b/Documentation/powerpc/dts-bindings/fsl/usb.txt
new file mode 100644
index 00000000000..b0015240269
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/usb.txt
@@ -0,0 +1,59 @@
1Freescale SOC USB controllers
2
3The device node for a USB controller that is part of a Freescale
4SOC is as described in the document "Open Firmware Recommended
5Practice : Universal Serial Bus" with the following modifications
6and additions :
7
8Required properties :
9 - compatible : Should be "fsl-usb2-mph" for multi port host USB
10 controllers, or "fsl-usb2-dr" for dual role USB controllers
11 - phy_type : For multi port host USB controllers, should be one of
12 "ulpi", or "serial". For dual role USB controllers, should be
13 one of "ulpi", "utmi", "utmi_wide", or "serial".
14 - reg : Offset and length of the register set for the device
15 - port0 : boolean; if defined, indicates port0 is connected for
16 fsl-usb2-mph compatible controllers. Either this property or
17 "port1" (or both) must be defined for "fsl-usb2-mph" compatible
18 controllers.
19 - port1 : boolean; if defined, indicates port1 is connected for
20 fsl-usb2-mph compatible controllers. Either this property or
21 "port0" (or both) must be defined for "fsl-usb2-mph" compatible
22 controllers.
23 - dr_mode : indicates the working mode for "fsl-usb2-dr" compatible
24 controllers. Can be "host", "peripheral", or "otg". Default to
25 "host" if not defined for backward compatibility.
26
27Recommended properties :
28 - interrupts : <a b> where a is the interrupt number and b is a
29 field that represents an encoding of the sense and level
30 information for the interrupt. This should be encoded based on
31 the information in section 2) depending on the type of interrupt
32 controller you have.
33 - interrupt-parent : the phandle for the interrupt controller that
34 services interrupts for this device.
35
36Example multi port host USB controller device node :
37 usb@22000 {
38 compatible = "fsl-usb2-mph";
39 reg = <22000 1000>;
40 #address-cells = <1>;
41 #size-cells = <0>;
42 interrupt-parent = <700>;
43 interrupts = <27 1>;
44 phy_type = "ulpi";
45 port0;
46 port1;
47 };
48
49Example dual role USB controller device node :
50 usb@23000 {
51 compatible = "fsl-usb2-dr";
52 reg = <23000 1000>;
53 #address-cells = <1>;
54 #size-cells = <0>;
55 interrupt-parent = <700>;
56 interrupts = <26 1>;
57 dr_mode = "otg";
58 phy = "ulpi";
59 };