linux/Documentation/devicetree/bindings/powerpc/fsl/pamu.txt
<<
>>
Prefs
   1Freescale Peripheral Management Access Unit (PAMU) Device Tree Binding
   2
   3DESCRIPTION
   4
   5The PAMU is an I/O MMU that provides device-to-memory access control and
   6address translation capabilities.
   7
   8Required properties:
   9
  10- compatible    : <string>
  11                  First entry is a version-specific string, such as
  12                  "fsl,pamu-v1.0".  The second is "fsl,pamu".
  13- ranges        : <prop-encoded-array>
  14                  A standard property. Utilized to describe the memory mapped
  15                  I/O space utilized by the controller.  The size should
  16                  be set to the total size of the register space of all
  17                  physically present PAMU controllers.  For example, for
  18                  PAMU v1.0, on an SOC that has five PAMU devices, the size
  19                  is 0x5000.
  20- interrupts    : <prop-encoded-array>
  21                  Interrupt mappings.  The first tuple is the normal PAMU
  22                  interrupt, used for reporting access violations.  The second
  23                  is for PAMU hardware errors, such as PAMU operation errors
  24                  and ECC errors.
  25- #address-cells: <u32>
  26                  A standard property.
  27- #size-cells   : <u32>
  28                  A standard property.
  29
  30Optional properties:
  31- reg           : <prop-encoded-array>
  32                  A standard property.   It represents the CCSR registers of
  33                  all child PAMUs combined.  Include it to provide support
  34                  for legacy drivers.
  35- interrupt-parent : <phandle>
  36                  Phandle to interrupt controller
  37
  38Child nodes:
  39
  40Each child node represents one PAMU controller.  Each SOC device that is
  41connected to a specific PAMU device should have a "fsl,pamu-phandle" property
  42that links to the corresponding specific child PAMU controller.
  43
  44- reg           : <prop-encoded-array>
  45                  A standard property.  Specifies the physical address and
  46                  length (relative to the parent 'ranges' property) of this
  47                  PAMU controller's configuration registers.  The size should
  48                  be set to the size of this PAMU controllers's register space.
  49                  For PAMU v1.0, this size is 0x1000.
  50- fsl,primary-cache-geometry
  51                : <prop-encoded-array>
  52                  Two cells that specify the geometry of the primary PAMU
  53                  cache.  The first is the number of cache lines, and the
  54                  second is the number of "ways".  For direct-mapped caches,
  55                  specify a value of 1.
  56- fsl,secondary-cache-geometry
  57                : <prop-encoded-array>
  58                  Two cells that specify the geometry of the secondary PAMU
  59                  cache.  The first is the number of cache lines, and the
  60                  second is the number of "ways".  For direct-mapped caches,
  61                  specify a value of 1.
  62
  63Device nodes:
  64
  65Devices that have LIODNs need to specify links to the parent PAMU controller
  66(the actual PAMU controller that this device is connected to) and a pointer to
  67the LIODN register, if applicable.
  68
  69- fsl,iommu-parent
  70                : <phandle>
  71                Phandle to the single, specific PAMU controller node to which
  72                this device is connect.  The PAMU topology is represented in
  73                the device tree to assist code that dynamically determines the
  74                best LIODN values to minimize PAMU cache thrashing.
  75
  76- fsl,liodn-reg : <prop-encoded-array>
  77                  Two cells that specify the location of the LIODN register
  78                  for this device.  Required for devices that have a single
  79                  LIODN.  The first cell is a phandle to a node that contains
  80                  the registers where the LIODN is to be set.  The second is
  81                  the offset from the first "reg" resource of the node where
  82                  the specific LIODN register is located.
  83
  84
  85Example:
  86
  87        iommu@20000 {
  88                compatible = "fsl,pamu-v1.0", "fsl,pamu";
  89                reg = <0x20000 0x5000>;
  90                ranges = <0 0x20000 0x5000>;
  91                #address-cells = <1>;
  92                #size-cells = <1>;
  93                interrupts = <
  94                        24 2 0 0
  95                        16 2 1 30>;
  96
  97                pamu0: pamu@0 {
  98                        reg = <0 0x1000>;
  99                        fsl,primary-cache-geometry = <32 1>;
 100                        fsl,secondary-cache-geometry = <128 2>;
 101                };
 102
 103                pamu1: pamu@1000 {
 104                        reg = <0x1000 0x1000>;
 105                        fsl,primary-cache-geometry = <32 1>;
 106                        fsl,secondary-cache-geometry = <128 2>;
 107                };
 108
 109                pamu2: pamu@2000 {
 110                        reg = <0x2000 0x1000>;
 111                        fsl,primary-cache-geometry = <32 1>;
 112                        fsl,secondary-cache-geometry = <128 2>;
 113                };
 114
 115                pamu3: pamu@3000 {
 116                        reg = <0x3000 0x1000>;
 117                        fsl,primary-cache-geometry = <32 1>;
 118                        fsl,secondary-cache-geometry = <128 2>;
 119                };
 120
 121                pamu4: pamu@4000 {
 122                        reg = <0x4000 0x1000>;
 123                        fsl,primary-cache-geometry = <32 1>;
 124                        fsl,secondary-cache-geometry = <128 2>;
 125                };
 126        };
 127
 128        guts: global-utilities@e0000 {
 129                compatible = "fsl,qoriq-device-config-1.0";
 130                reg = <0xe0000 0xe00>;
 131                fsl,has-rstcr;
 132                #sleep-cells = <1>;
 133                fsl,liodn-bits = <12>;
 134        };
 135
 136/include/ "qoriq-dma-0.dtsi"
 137        dma@100300 {
 138                fsl,iommu-parent = <&pamu0>;
 139                fsl,liodn-reg = <&guts 0x584>; /* DMA2LIODNR */
 140        };
 141