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