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	node6 {
44		linux,phandle = <0xfffffffe>;
45		phandle = <0xfffffffe>;
46	};
47};
48
49/ {
50	/* Append labels (also changes property content) */
51	nx: node1 {
52		px: lref = <&ny>;
53	};
54
55	/* Add multiple labels */
56	ny: n2: node2 {
57		/* Add a label to a property */
58		p2: py: phandle = <0x1>;
59	};
60
61	/* Reassigning the same label should be a no-op */
62	n3: node3 {
63		p3: ref = <&{/node4}>;
64	};
65
66	/* Redefining a node/property should not remove labels */
67	node4 {
68		prop;
69	};
70
71};
72
73/ {
74	rref = <&{/}>;
75};
76