Tom Rini | 53633a8 | 2024-02-29 12:33:36 -0500 | [diff] [blame] | 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 multiple 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 | }; |