diff options
| author | Kumar Gala <galak@kernel.crashing.org> | 2008-07-07 12:28:33 -0400 |
|---|---|---|
| committer | Kumar Gala <galak@kernel.crashing.org> | 2008-07-14 08:55:46 -0400 |
| commit | d0fc2eaaf4c56a95f5ed29b6bfb609e19714fc16 (patch) | |
| tree | 49b2fc779d4d051884d2dbc2c264ef608662312c /Documentation | |
| parent | b93eeba49efb30f88a83fc97ad22c255605654a1 (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>
Diffstat (limited to 'Documentation')
27 files changed, 1077 insertions, 1206 deletions
diff --git a/Documentation/powerpc/booting-without-of.txt b/Documentation/powerpc/booting-without-of.txt index f6394b509430..de2e5c05d6e7 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 | |||
| 1250 | defined; this list will expand as more and more SOC-containing | 1235 | defined; this list will expand as more and more SOC-containing |
| 1251 | platforms are moved over to use the flattened-device-tree model. | 1236 | platforms 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 | |||
| 3012 | VII - Marvell Discovery mv64[345]6x System Controller chips | 1818 | VII - 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 000000000000..74ae6f1cd2d6 --- /dev/null +++ b/Documentation/powerpc/dts-bindings/fsl/board.txt | |||
| @@ -0,0 +1,29 @@ | |||
| 1 | * Board Control and Status (BCSR) | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | |||
| 5 | - device_type : Should be "board-control" | ||
| 6 | - reg : Offset and length of the register set for the device | ||
| 7 | |||
| 8 | Example: | ||
| 9 | |||
| 10 | bcsr@f8000000 { | ||
| 11 | device_type = "board-control"; | ||
| 12 | reg = <f8000000 8000>; | ||
| 13 | }; | ||
| 14 | |||
| 15 | * Freescale on board FPGA | ||
| 16 | |||
| 17 | This is the memory-mapped registers for on board FPGA. | ||
| 18 | |||
| 19 | Required properities: | ||
| 20 | - compatible : should be "fsl,fpga-pixis". | ||
| 21 | - reg : should contain the address and the lenght of the FPPGA register | ||
| 22 | set. | ||
| 23 | |||
| 24 | Example (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 000000000000..088fc471e03a --- /dev/null +++ b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm.txt | |||
| @@ -0,0 +1,67 @@ | |||
| 1 | * Freescale Communications Processor Module | ||
| 2 | |||
| 3 | NOTE: This is an interim binding, and will likely change slightly, | ||
| 4 | as more devices are supported. The QE bindings especially are | ||
| 5 | incomplete. | ||
| 6 | |||
| 7 | * Root CPM node | ||
| 8 | |||
| 9 | Properties: | ||
| 10 | - compatible : "fsl,cpm1", "fsl,cpm2", or "fsl,qe". | ||
| 11 | - reg : A 48-byte region beginning with CPCR. | ||
| 12 | |||
| 13 | Example: | ||
| 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 | |||
| 38 | The multi-user/dual-ported RAM is expressed as a bus under the CPM node. | ||
| 39 | |||
| 40 | Ranges 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 | |||
| 52 | A child "data" node must exist, compatible with "fsl,cpm-muram-data", to | ||
| 53 | indicate the portion of muram that is usable by the OS for arbitrary | ||
| 54 | purposes. The data node may have an arbitrary number of reg resources, | ||
| 55 | all of which contribute to the allocatable muram pool. | ||
| 56 | |||
| 57 | Example, 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 000000000000..4c7d45eaf025 --- /dev/null +++ b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/brg.txt | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | * Baud Rate Generators | ||
| 2 | |||
| 3 | Currently defined compatibles: | ||
| 4 | fsl,cpm-brg | ||
| 5 | fsl,cpm1-brg | ||
| 6 | fsl,cpm2-brg | ||
| 7 | |||
| 8 | Properties: | ||
| 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 | |||
| 14 | Example: | ||
| 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 000000000000..87bc6048667e --- /dev/null +++ b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/i2c.txt | |||
| @@ -0,0 +1,41 @@ | |||
| 1 | * I2C | ||
| 2 | |||
| 3 | The I2C controller is expressed as a bus under the CPM node. | ||
| 4 | |||
| 5 | Properties: | ||
| 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. | ||
| 15 | The following two properties are deprecated. They are only used by legacy | ||
| 16 | i2c 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 | |||
| 25 | Example, 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 000000000000..8e3ee1681618 --- /dev/null +++ b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/pic.txt | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | * Interrupt Controllers | ||
| 2 | |||
| 3 | Currently 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 | |||
| 12 | Example: | ||
| 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 000000000000..74bfda4bb824 --- /dev/null +++ b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/usb.txt | |||
| @@ -0,0 +1,15 @@ | |||
| 1 | * USB (Universal Serial Bus Controller) | ||
| 2 | |||
| 3 | Properties: | ||
| 4 | - compatible : "fsl,cpm1-usb", "fsl,cpm2-usb", "fsl,qe-usb" | ||
| 5 | |||
| 6 | Example: | ||
| 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 000000000000..0e4269446580 --- /dev/null +++ b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/network.txt | |||
| @@ -0,0 +1,45 @@ | |||
| 1 | * Network | ||
| 2 | |||
| 3 | Currently 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 | |||
| 10 | Example: | ||
| 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 | |||
| 26 | Currently defined compatibles: | ||
| 27 | fsl,pq1-fec-mdio (reg is same as first resource of FEC device) | ||
| 28 | fsl,cpm2-mdio-bitbang (reg is port C registers) | ||
| 29 | |||
| 30 | Properties for fsl,cpm2-mdio-bitbang: | ||
| 31 | fsl,mdio-pin : pin of port C controlling mdio data | ||
| 32 | fsl,mdc-pin : pin of port C controlling mdio clock | ||
| 33 | |||
| 34 | Example: | ||
| 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 000000000000..78790d58dc2c --- /dev/null +++ b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe.txt | |||
| @@ -0,0 +1,58 @@ | |||
| 1 | * Freescale QUICC Engine module (QE) | ||
| 2 | This represents qe module that is installed on PowerQUICC II Pro. | ||
| 3 | |||
| 4 | NOTE: This is an interim binding; it should be updated to fit | ||
| 5 | in with the CPM binding later in this document. | ||
| 6 | |||
| 7 | Basically, it is a bus of devices, that could act more or less | ||
| 8 | as a complete entity (UCC, USB etc ). All of them should be siblings on | ||
| 9 | the "root" qe node, using the common properties from there. | ||
| 10 | The description below applies to the qe of MPC8360 and | ||
| 11 | more nodes and properties would be extended in the future. | ||
| 12 | |||
| 13 | i) Root QE device | ||
| 14 | |||
| 15 | Required 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 | |||
| 21 | Recommended properties | ||
| 22 | - brg-frequency : the internal clock source frequency for baud-rate | ||
| 23 | generators in Hz. | ||
| 24 | |||
| 25 | Example: | ||
| 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 | |||
| 39 | Required 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 | |||
| 47 | Example: | ||
| 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 000000000000..6c238f59b2a9 --- /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 | |||
| 19 | Example: | ||
| 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 000000000000..60984260207b --- /dev/null +++ b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/par_io.txt | |||
| @@ -0,0 +1,51 @@ | |||
| 1 | * Parallel I/O Ports | ||
| 2 | |||
| 3 | This node configures Parallel I/O ports for CPUs with QE support. | ||
| 4 | The node should reside in the "soc" node of the tree. For each | ||
| 5 | device that using parallel I/O ports, a child node should be created. | ||
| 6 | See the definition of the Pin configuration nodes below for more | ||
| 7 | information. | ||
| 8 | |||
| 9 | Required 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 | |||
| 14 | Example: | ||
| 15 | par_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 | |||
| 25 | Note that "par_io" nodes are obsolete, and should not be used for | ||
| 26 | the new device trees. Instead, each Par I/O bank should be represented | ||
| 27 | via its own gpio-controller node: | ||
| 28 | |||
| 29 | Required 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 | |||
| 36 | Example: | ||
| 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 000000000000..c5b43061db3a --- /dev/null +++ b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/pincfg.txt | |||
| @@ -0,0 +1,60 @@ | |||
| 1 | * Pin configuration nodes | ||
| 2 | |||
| 3 | Required 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 | |||
| 30 | Example: | ||
| 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 000000000000..e47734bee3f0 --- /dev/null +++ b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/ucc.txt | |||
| @@ -0,0 +1,70 @@ | |||
| 1 | * UCC (Unified Communications Controllers) | ||
| 2 | |||
| 3 | Required 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 | ||
| 32 | The following two properties are deprecated. rx-clock has been replaced | ||
| 33 | with rx-clock-name, and tx-clock has been replaced with tx-clock-name. | ||
| 34 | Drivers that currently use the deprecated properties should continue to | ||
| 35 | do so, in order to support older device trees, but they should be updated | ||
| 36 | to 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 | |||
| 46 | Required 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 | |||
| 50 | Recommended 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 | |||
| 56 | Example: | ||
| 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 000000000000..c8f44d6bcbcf --- /dev/null +++ b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/usb.txt | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | * USB (Universal Serial Bus Controller) | ||
| 2 | |||
| 3 | Required 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 | |||
| 15 | Example(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 000000000000..b35f3482e3e4 --- /dev/null +++ b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/serial.txt | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | * Serial | ||
| 2 | |||
| 3 | Currently 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 | |||
| 10 | Example: | ||
| 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 000000000000..deb35de70988 --- /dev/null +++ b/Documentation/powerpc/dts-bindings/fsl/diu.txt | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | * Freescale Display Interface Unit | ||
| 2 | |||
| 3 | The Freescale DIU is a LCD controller, with proper hardware, it can also | ||
| 4 | drive DVI monitors. | ||
| 5 | |||
| 6 | Required 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 | |||
| 12 | Example (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 000000000000..86826df00e64 --- /dev/null +++ b/Documentation/powerpc/dts-bindings/fsl/dma.txt | |||
| @@ -0,0 +1,127 @@ | |||
| 1 | * Freescale 83xx DMA Controller | ||
| 2 | |||
| 3 | Freescale PowerPC 83xx have on chip general purpose DMA controllers. | ||
| 4 | |||
| 5 | Required 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 | |||
| 27 | Optional 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 | |||
| 33 | Example: | ||
| 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 | |||
| 67 | Freescale PowerPC 85xx/86xx have on chip general purpose DMA controllers. | ||
| 68 | |||
| 69 | Required 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 | |||
| 91 | Example: | ||
| 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 000000000000..9a33efded4bc --- /dev/null +++ b/Documentation/powerpc/dts-bindings/fsl/gtm.txt | |||
| @@ -0,0 +1,31 @@ | |||
| 1 | * Freescale General-purpose Timers Module | ||
| 2 | |||
| 3 | Required 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 | |||
| 13 | Example: | ||
| 14 | |||
| 15 | timer@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 | |||
| 24 | timer@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 000000000000..9e7a2417dac5 --- /dev/null +++ b/Documentation/powerpc/dts-bindings/fsl/guts.txt | |||
| @@ -0,0 +1,25 @@ | |||
| 1 | * Global Utilities Block | ||
| 2 | |||
| 3 | The global utilities block controls power management, I/O device | ||
| 4 | enabling, power-on-reset configuration monitoring, general-purpose | ||
| 5 | I/O signal configuration, alternate function selection for multiplexed | ||
| 6 | signals, and clock control. | ||
| 7 | |||
| 8 | Required 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 | |||
| 14 | Recommended 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 | |||
| 20 | Example: | ||
| 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 000000000000..d0ab33e21fe6 --- /dev/null +++ b/Documentation/powerpc/dts-bindings/fsl/i2c.txt | |||
| @@ -0,0 +1,32 @@ | |||
| 1 | * I2C | ||
| 2 | |||
| 3 | Required properties : | ||
| 4 | |||
| 5 | - device_type : Should be "i2c" | ||
| 6 | - reg : Offset and length of the register set for the device | ||
| 7 | |||
| 8 | Recommended 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 | |||
| 24 | Example : | ||
| 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 000000000000..3300fec501c5 --- /dev/null +++ b/Documentation/powerpc/dts-bindings/fsl/lbc.txt | |||
| @@ -0,0 +1,35 @@ | |||
| 1 | * Chipselect/Local Bus | ||
| 2 | |||
| 3 | Properties: | ||
| 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 | |||
| 13 | Example: | ||
| 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 000000000000..b26b91992c55 --- /dev/null +++ b/Documentation/powerpc/dts-bindings/fsl/msi-pic.txt | |||
| @@ -0,0 +1,36 @@ | |||
| 1 | * Freescale MSI interrupt controller | ||
| 2 | |||
| 3 | Reguired 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 | |||
| 21 | Example: | ||
| 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 000000000000..b46bcf46c3d8 --- /dev/null +++ b/Documentation/powerpc/dts-bindings/fsl/sata.txt | |||
| @@ -0,0 +1,29 @@ | |||
| 1 | * Freescale 8xxx/3.0 Gb/s SATA nodes | ||
| 2 | |||
| 3 | SATA nodes are defined to describe on-chip Serial ATA controllers. | ||
| 4 | Each SATA port should have its own node. | ||
| 5 | |||
| 6 | Required 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 | |||
| 18 | Optional properties: | ||
| 19 | - interrupt-parent : optional, if needed for interrupt mapping | ||
| 20 | - reg : <registers mapping> | ||
| 21 | |||
| 22 | Example: | ||
| 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 000000000000..e7d9a344c4f4 --- /dev/null +++ b/Documentation/powerpc/dts-bindings/fsl/spi.txt | |||
| @@ -0,0 +1,24 @@ | |||
| 1 | * SPI (Serial Peripheral Interface) | ||
| 2 | |||
| 3 | Required 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 | |||
| 16 | Example: | ||
| 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 000000000000..d100555d488a --- /dev/null +++ b/Documentation/powerpc/dts-bindings/fsl/ssi.txt | |||
| @@ -0,0 +1,38 @@ | |||
| 1 | Freescale Synchronous Serial Interface | ||
| 2 | |||
| 3 | The SSI is a serial device that communicates with audio codecs. It can | ||
| 4 | be programmed in AC97, I2S, left-justified, or right-justified modes. | ||
| 5 | |||
| 6 | Required 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 | |||
| 28 | Optional 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 | |||
| 33 | Child 'codec' node required properties: | ||
| 34 | - compatible : compatible list, contains the name of the codec | ||
| 35 | |||
| 36 | Child '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 000000000000..583ef6b56c43 --- /dev/null +++ b/Documentation/powerpc/dts-bindings/fsl/tsec.txt | |||
| @@ -0,0 +1,69 @@ | |||
| 1 | * MDIO IO device | ||
| 2 | |||
| 3 | The MDIO is a bus to which the PHY devices are connected. For each | ||
| 4 | device that exists on this bus, a child node should be created. See | ||
| 5 | the definition of the PHY node below for an example of how to define | ||
| 6 | a PHY. | ||
| 7 | |||
| 8 | Required 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 | |||
| 13 | Example: | ||
| 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 | |||
| 27 | Required 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 | |||
| 49 | Recommended 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 | |||
| 58 | Example: | ||
| 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 000000000000..b00152402694 --- /dev/null +++ b/Documentation/powerpc/dts-bindings/fsl/usb.txt | |||
| @@ -0,0 +1,59 @@ | |||
| 1 | Freescale SOC USB controllers | ||
| 2 | |||
| 3 | The device node for a USB controller that is part of a Freescale | ||
| 4 | SOC is as described in the document "Open Firmware Recommended | ||
| 5 | Practice : Universal Serial Bus" with the following modifications | ||
| 6 | and additions : | ||
| 7 | |||
| 8 | Required 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 | |||
| 27 | Recommended 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 | |||
| 36 | Example 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 | |||
| 49 | Example 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 | }; | ||
