aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/powerpc
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/powerpc')
-rw-r--r--Documentation/powerpc/booting-without-of.txt252
1 files changed, 252 insertions, 0 deletions
diff --git a/Documentation/powerpc/booting-without-of.txt b/Documentation/powerpc/booting-without-of.txt
index 5c0ba235f5a5..b57e7da78976 100644
--- a/Documentation/powerpc/booting-without-of.txt
+++ b/Documentation/powerpc/booting-without-of.txt
@@ -1441,6 +1441,258 @@ platforms are moved over to use the flattened-device-tree model.
1441 descriptor-types-mask = <012b0ebf>; 1441 descriptor-types-mask = <012b0ebf>;
1442 }; 1442 };
1443 1443
1444 h) Board Control and Status (BCSR)
1445
1446 Required properties:
1447
1448 - device_type : Should be "board-control"
1449 - reg : Offset and length of the register set for the device
1450
1451 Example:
1452
1453 bcsr@f8000000 {
1454 device_type = "board-control";
1455 reg = <f8000000 8000>;
1456 };
1457
1458 i) Freescale QUICC Engine module (QE)
1459 This represents qe module that is installed on PowerQUICC II Pro.
1460 Hopefully it will merge backward compatibility with CPM/CPM2.
1461 Basically, it is a bus of devices, that could act more or less
1462 as a complete entity (UCC, USB etc ). All of them should be siblings on
1463 the "root" qe node, using the common properties from there.
1464 The description below applies to the the qe of MPC8360 and
1465 more nodes and properties would be extended in the future.
1466
1467 i) Root QE device
1468
1469 Required properties:
1470 - device_type : should be "qe";
1471 - model : precise model of the QE, Can be "QE", "CPM", or "CPM2"
1472 - reg : offset and length of the device registers.
1473 - bus-frequency : the clock frequency for QUICC Engine.
1474
1475 Recommended properties
1476 - brg-frequency : the internal clock source frequency for baud-rate
1477 generators in Hz.
1478
1479 Example:
1480 qe@e0100000 {
1481 #address-cells = <1>;
1482 #size-cells = <1>;
1483 #interrupt-cells = <2>;
1484 device_type = "qe";
1485 model = "QE";
1486 ranges = <0 e0100000 00100000>;
1487 reg = <e0100000 480>;
1488 brg-frequency = <0>;
1489 bus-frequency = <179A7B00>;
1490 }
1491
1492
1493 ii) SPI (Serial Peripheral Interface)
1494
1495 Required properties:
1496 - device_type : should be "spi".
1497 - compatible : should be "fsl_spi".
1498 - mode : the spi operation mode, it can be "cpu" or "qe".
1499 - reg : Offset and length of the register set for the device
1500 - interrupts : <a b> where a is the interrupt number and b is a
1501 field that represents an encoding of the sense and level
1502 information for the interrupt. This should be encoded based on
1503 the information in section 2) depending on the type of interrupt
1504 controller you have.
1505 - interrupt-parent : the phandle for the interrupt controller that
1506 services interrupts for this device.
1507
1508 Example:
1509 spi@4c0 {
1510 device_type = "spi";
1511 compatible = "fsl_spi";
1512 reg = <4c0 40>;
1513 interrupts = <82 0>;
1514 interrupt-parent = <700>;
1515 mode = "cpu";
1516 };
1517
1518
1519 iii) USB (Universal Serial Bus Controller)
1520
1521 Required properties:
1522 - device_type : should be "usb".
1523 - compatible : could be "qe_udc" or "fhci-hcd".
1524 - mode : the could be "host" or "slave".
1525 - reg : Offset and length of the register set for the device
1526 - interrupts : <a b> where a is the interrupt number and b is a
1527 field that represents an encoding of the sense and level
1528 information for the interrupt. This should be encoded based on
1529 the information in section 2) depending on the type of interrupt
1530 controller you have.
1531 - interrupt-parent : the phandle for the interrupt controller that
1532 services interrupts for this device.
1533
1534 Example(slave):
1535 usb@6c0 {
1536 device_type = "usb";
1537 compatible = "qe_udc";
1538 reg = <6c0 40>;
1539 interrupts = <8b 0>;
1540 interrupt-parent = <700>;
1541 mode = "slave";
1542 };
1543
1544
1545 iv) UCC (Unified Communications Controllers)
1546
1547 Required properties:
1548 - device_type : should be "network", "hldc", "uart", "transparent"
1549 "bisync" or "atm".
1550 - compatible : could be "ucc_geth" or "fsl_atm" and so on.
1551 - model : should be "UCC".
1552 - device-id : the ucc number(1-8), corresponding to UCCx in UM.
1553 - reg : Offset and length of the register set for the device
1554 - interrupts : <a b> where a is the interrupt number and b is a
1555 field that represents an encoding of the sense and level
1556 information for the interrupt. This should be encoded based on
1557 the information in section 2) depending on the type of interrupt
1558 controller you have.
1559 - interrupt-parent : the phandle for the interrupt controller that
1560 services interrupts for this device.
1561 - pio-handle : The phandle for the Parallel I/O port configuration.
1562 - rx-clock : represents the UCC receive clock source.
1563 0x00 : clock source is disabled;
1564 0x1~0x10 : clock source is BRG1~BRG16 respectively;
1565 0x11~0x28: clock source is QE_CLK1~QE_CLK24 respectively.
1566 - tx-clock: represents the UCC transmit clock source;
1567 0x00 : clock source is disabled;
1568 0x1~0x10 : clock source is BRG1~BRG16 respectively;
1569 0x11~0x28: clock source is QE_CLK1~QE_CLK24 respectively.
1570
1571 Required properties for network device_type:
1572 - mac-address : list of bytes representing the ethernet address.
1573 - phy-handle : The phandle for the PHY connected to this controller.
1574
1575 Example:
1576 ucc@2000 {
1577 device_type = "network";
1578 compatible = "ucc_geth";
1579 model = "UCC";
1580 device-id = <1>;
1581 reg = <2000 200>;
1582 interrupts = <a0 0>;
1583 interrupt-parent = <700>;
1584 mac-address = [ 00 04 9f 00 23 23 ];
1585 rx-clock = "none";
1586 tx-clock = "clk9";
1587 phy-handle = <212000>;
1588 pio-handle = <140001>;
1589 };
1590
1591
1592 v) Parallel I/O Ports
1593
1594 This node configures Parallel I/O ports for CPUs with QE support.
1595 The node should reside in the "soc" node of the tree. For each
1596 device that using parallel I/O ports, a child node should be created.
1597 See the definition of the Pin configuration nodes below for more
1598 information.
1599
1600 Required properties:
1601 - device_type : should be "par_io".
1602 - reg : offset to the register set and its length.
1603 - num-ports : number of Parallel I/O ports
1604
1605 Example:
1606 par_io@1400 {
1607 reg = <1400 100>;
1608 #address-cells = <1>;
1609 #size-cells = <0>;
1610 device_type = "par_io";
1611 num-ports = <7>;
1612 ucc_pin@01 {
1613 ......
1614 };
1615
1616
1617 vi) Pin configuration nodes
1618
1619 Required properties:
1620 - linux,phandle : phandle of this node; likely referenced by a QE
1621 device.
1622 - pio-map : array of pin configurations. Each pin is defined by 6
1623 integers. The six numbers are respectively: port, pin, dir,
1624 open_drain, assignment, has_irq.
1625 - port : port number of the pin; 0-6 represent port A-G in UM.
1626 - pin : pin number in the port.
1627 - dir : direction of the pin, should encode as follows:
1628
1629 0 = The pin is disabled
1630 1 = The pin is an output
1631 2 = The pin is an input
1632 3 = The pin is I/O
1633
1634 - open_drain : indicates the pin is normal or wired-OR:
1635
1636 0 = The pin is actively driven as an output
1637 1 = The pin is an open-drain driver. As an output, the pin is
1638 driven active-low, otherwise it is three-stated.
1639
1640 - assignment : function number of the pin according to the Pin Assignment
1641 tables in User Manual. Each pin can have up to 4 possible functions in
1642 QE and two options for CPM.
1643 - has_irq : indicates if the pin is used as source of exteral
1644 interrupts.
1645
1646 Example:
1647 ucc_pin@01 {
1648 linux,phandle = <140001>;
1649 pio-map = <
1650 /* port pin dir open_drain assignment has_irq */
1651 0 3 1 0 1 0 /* TxD0 */
1652 0 4 1 0 1 0 /* TxD1 */
1653 0 5 1 0 1 0 /* TxD2 */
1654 0 6 1 0 1 0 /* TxD3 */
1655 1 6 1 0 3 0 /* TxD4 */
1656 1 7 1 0 1 0 /* TxD5 */
1657 1 9 1 0 2 0 /* TxD6 */
1658 1 a 1 0 2 0 /* TxD7 */
1659 0 9 2 0 1 0 /* RxD0 */
1660 0 a 2 0 1 0 /* RxD1 */
1661 0 b 2 0 1 0 /* RxD2 */
1662 0 c 2 0 1 0 /* RxD3 */
1663 0 d 2 0 1 0 /* RxD4 */
1664 1 1 2 0 2 0 /* RxD5 */
1665 1 0 2 0 2 0 /* RxD6 */
1666 1 4 2 0 2 0 /* RxD7 */
1667 0 7 1 0 1 0 /* TX_EN */
1668 0 8 1 0 1 0 /* TX_ER */
1669 0 f 2 0 1 0 /* RX_DV */
1670 0 10 2 0 1 0 /* RX_ER */
1671 0 0 2 0 1 0 /* RX_CLK */
1672 2 9 1 0 3 0 /* GTX_CLK - CLK10 */
1673 2 8 2 0 1 0>; /* GTX125 - CLK9 */
1674 };
1675
1676 vii) Multi-User RAM (MURAM)
1677
1678 Required properties:
1679 - device_type : should be "muram".
1680 - mode : the could be "host" or "slave".
1681 - ranges : Should be defined as specified in 1) to describe the
1682 translation of MURAM addresses.
1683 - data-only : sub-node which defines the address area under MURAM
1684 bus that can be allocated as data/parameter
1685
1686 Example:
1687
1688 muram@10000 {
1689 device_type = "muram";
1690 ranges = <0 00010000 0000c000>;
1691
1692 data-only@0{
1693 reg = <0 c000>;
1694 };
1695 };
1444 1696
1445 More devices will be defined as this spec matures. 1697 More devices will be defined as this spec matures.
1446 1698