xref: /freebsd/sys/contrib/device-tree/Bindings/powerpc/fsl/raideng.txt (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
1c66ec88fSEmmanuel Vadot* Freescale 85xx RAID Engine nodes
2c66ec88fSEmmanuel Vadot
3c66ec88fSEmmanuel VadotRAID Engine nodes are defined to describe on-chip RAID accelerators.  Each RAID
4c66ec88fSEmmanuel VadotEngine should have a separate node.
5c66ec88fSEmmanuel Vadot
6c66ec88fSEmmanuel VadotSupported chips:
7c66ec88fSEmmanuel VadotP5020, P5040
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel VadotRequired properties:
10c66ec88fSEmmanuel Vadot
11c66ec88fSEmmanuel Vadot- compatible:	Should contain "fsl,raideng-v1.0" as the value
12c66ec88fSEmmanuel Vadot		This identifies RAID Engine block. 1 in 1.0 represents
13c66ec88fSEmmanuel Vadot		major number whereas 0 represents minor number. The
14c66ec88fSEmmanuel Vadot		version matches the hardware IP version.
15c66ec88fSEmmanuel Vadot- reg:		offset and length of the register set for the device
16c66ec88fSEmmanuel Vadot- ranges:	standard ranges property specifying the translation
17c66ec88fSEmmanuel Vadot		between child address space and parent address space
18c66ec88fSEmmanuel Vadot
19c66ec88fSEmmanuel VadotExample:
20c66ec88fSEmmanuel Vadot	/* P5020 */
21c66ec88fSEmmanuel Vadot	raideng: raideng@320000 {
22c66ec88fSEmmanuel Vadot		compatible = "fsl,raideng-v1.0";
23c66ec88fSEmmanuel Vadot		#address-cells = <1>;
24c66ec88fSEmmanuel Vadot		#size-cells = <1>;
25c66ec88fSEmmanuel Vadot		reg	= <0x320000 0x10000>;
26c66ec88fSEmmanuel Vadot		ranges	= <0 0x320000 0x10000>;
27c66ec88fSEmmanuel Vadot	};
28c66ec88fSEmmanuel Vadot
29c66ec88fSEmmanuel Vadot
30c66ec88fSEmmanuel VadotThere must be a sub-node for each job queue present in RAID Engine
31c66ec88fSEmmanuel VadotThis node must be a sub-node of the main RAID Engine node
32c66ec88fSEmmanuel Vadot
33c66ec88fSEmmanuel Vadot- compatible:	Should contain "fsl,raideng-v1.0-job-queue" as the value
34c66ec88fSEmmanuel Vadot		This identifies the job queue interface
35c66ec88fSEmmanuel Vadot- reg:		offset and length of the register set for job queue
36c66ec88fSEmmanuel Vadot- ranges:	standard ranges property specifying the translation
37c66ec88fSEmmanuel Vadot		between child address space and parent address space
38c66ec88fSEmmanuel Vadot
39c66ec88fSEmmanuel VadotExample:
40c66ec88fSEmmanuel Vadot	/* P5020 */
41c66ec88fSEmmanuel Vadot	raideng_jq0@1000 {
42c66ec88fSEmmanuel Vadot		compatible = "fsl,raideng-v1.0-job-queue";
43c66ec88fSEmmanuel Vadot		reg	   = <0x1000 0x1000>;
44c66ec88fSEmmanuel Vadot		ranges	   = <0x0 0x1000 0x1000>;
45c66ec88fSEmmanuel Vadot	};
46c66ec88fSEmmanuel Vadot
47c66ec88fSEmmanuel Vadot
48c66ec88fSEmmanuel VadotThere must be a sub-node for each job ring present in RAID Engine
49c66ec88fSEmmanuel VadotThis node must be a sub-node of job queue node
50c66ec88fSEmmanuel Vadot
51c66ec88fSEmmanuel Vadot- compatible:	Must contain "fsl,raideng-v1.0-job-ring" as the value
52c66ec88fSEmmanuel Vadot		This identifies job ring. Should contain either
53c66ec88fSEmmanuel Vadot		"fsl,raideng-v1.0-hp-ring" or "fsl,raideng-v1.0-lp-ring"
54c66ec88fSEmmanuel Vadot		depending upon whether ring has high or low priority
55c66ec88fSEmmanuel Vadot- reg:		offset and length of the register set for job ring
56c66ec88fSEmmanuel Vadot- interrupts:	interrupt mapping for job ring IRQ
57c66ec88fSEmmanuel Vadot
58c66ec88fSEmmanuel VadotOptional property:
59c66ec88fSEmmanuel Vadot
60c66ec88fSEmmanuel Vadot- fsl,liodn:	Specifies the LIODN to be used for Job Ring. This
61c66ec88fSEmmanuel Vadot		property is normally set by firmware. Value
62c66ec88fSEmmanuel Vadot		is of 12-bits which is the LIODN number for this JR.
63*aa1a8ff2SEmmanuel Vadot		This property is used by the IOMMU (PAMU) to distinguish
64c66ec88fSEmmanuel Vadot		transactions from this JR and than be able to do address
65c66ec88fSEmmanuel Vadot		translation & protection accordingly.
66c66ec88fSEmmanuel Vadot
67c66ec88fSEmmanuel VadotExample:
68c66ec88fSEmmanuel Vadot	/* P5020 */
69c66ec88fSEmmanuel Vadot	raideng_jq0@1000 {
70c66ec88fSEmmanuel Vadot		compatible = "fsl,raideng-v1.0-job-queue";
71c66ec88fSEmmanuel Vadot		reg	   = <0x1000 0x1000>;
72c66ec88fSEmmanuel Vadot		ranges	   = <0x0 0x1000 0x1000>;
73c66ec88fSEmmanuel Vadot
74c66ec88fSEmmanuel Vadot		raideng_jr0: jr@0 {
75c66ec88fSEmmanuel Vadot			compatible = "fsl,raideng-v1.0-job-ring", "fsl,raideng-v1.0-hp-ring";
76c66ec88fSEmmanuel Vadot			reg	   = <0x0 0x400>;
77c66ec88fSEmmanuel Vadot			interrupts = <139 2 0 0>;
78c66ec88fSEmmanuel Vadot			interrupt-parent = <&mpic>;
79c66ec88fSEmmanuel Vadot			fsl,liodn = <0x41>;
80c66ec88fSEmmanuel Vadot		};
81c66ec88fSEmmanuel Vadot	};
82