1/dts-v1/;
2
3m1: mq: /memreserve/ 0 0x1000;
4
5/ {
6	p0: pw: prop = "foo";
7
8	/* Explicit phandles */
9	n1: node1 {
10		linux,phandle = <0x2000>;
11		ref = <&{/node2}>; /* reference precedes target */
12		p1: lref;
13	};
14	node2 {
15		phandle = <0x1>;
16		ref = <&{/node1}>; /* reference after target */
17		lref = <&nx>;
18	};
19
20	/* Implicit phandles */
21	n3: node3 {
22		p3: ref = <&{/node4}>;
23		lref = <&n4>;
24	};
25	n4: node4 {
26		p4: prop = "foo";
27	};
28
29	/* Explicit phandle with implicit value */
30	/* This self-reference is the standard way to tag a node as requiring
31	 * a phandle (perhaps for reference by nodes that will be dynamically
32	 * added) without explicitly allocating it a phandle.
33	 * The self-reference requires some special internal handling, though
34	 * so check it actually works */
35	n5: nz: node5 {
36		linux,phandle = <&n5>;
37		phandle = <&nz>;
38		n1 = &n1;
39		n2 = &n2;
40		n3 = &n3;
41	};
42};
43
44/ {
45	/* Append labels (also changes property content) */
46	nx: node1 {
47		px: lref = <&ny>;
48	};
49
50	/* Add multiple labels */
51	ny: n2: node2 {
52		/* Add a label to a property */
53		p2: py: phandle = <0x1>;
54	};
55
56	/* Reassigning the same label should be a no-op */
57	n3: node3 {
58		p3: ref = <&{/node4}>;
59	};
60
61	/* Redefining a node/property should not remove labels */
62	node4 {
63		prop;
64	};
65
66};
67
68/ {
69	rref = <&{/}>;
70};
71