1*e87cacadSFrank Rowand// SPDX-License-Identifier: GPL-2.0
2*e87cacadSFrank Rowand/dts-v1/;
3*e87cacadSFrank Rowand/plugin/;
4*e87cacadSFrank Rowand
5*e87cacadSFrank Rowand/*
6*e87cacadSFrank Rowand * &electric_1/motor-1/electric and &spin_ctrl_1/electric are the same node:
7*e87cacadSFrank Rowand *   /testcase-data-2/substation@100/motor-1/electric
8*e87cacadSFrank Rowand *
9*e87cacadSFrank Rowand * Thus the property "rpm_avail" in each fragment will
10*e87cacadSFrank Rowand * result in an attempt to update the same property twice.
11*e87cacadSFrank Rowand * This will result in an error and the overlay apply
12*e87cacadSFrank Rowand * will fail.
13*e87cacadSFrank Rowand *
14*e87cacadSFrank Rowand * The previous version of this test did not include the extra
15*e87cacadSFrank Rowand * level of node 'electric'.  That resulted in the 'rpm_avail'
16*e87cacadSFrank Rowand * property being located in the pre-existing node 'motor-1'.
17*e87cacadSFrank Rowand * Modifying a property results in a WARNING that a memory leak
18*e87cacadSFrank Rowand * will occur if the overlay is removed.  Since the overlay apply
19*e87cacadSFrank Rowand * fails, the memory leak does actually occur, and kmemleak will
20*e87cacadSFrank Rowand * further report the memory leak if CONFIG_DEBUG_KMEMLEAK is
21*e87cacadSFrank Rowand * enabled.  Adding the overlay node 'electric' avoids the
22*e87cacadSFrank Rowand * memory leak and thus people who use kmemleak will not
23*e87cacadSFrank Rowand * have to debug this non-problem again.
24*e87cacadSFrank Rowand */
25*e87cacadSFrank Rowand
26*e87cacadSFrank Rowand&electric_1 {
27*e87cacadSFrank Rowand	motor-1 {
28*e87cacadSFrank Rowand		electric {
29*e87cacadSFrank Rowand			rpm_avail = <100>;
30*e87cacadSFrank Rowand		};
31*e87cacadSFrank Rowand	};
32*e87cacadSFrank Rowand};
33*e87cacadSFrank Rowand
34*e87cacadSFrank Rowand&spin_ctrl_1 {
35*e87cacadSFrank Rowand	electric {
36*e87cacadSFrank Rowand		rpm_avail = <100 200>;
37*e87cacadSFrank Rowand	};
38*e87cacadSFrank Rowand};
39