/*
 * Copyright (c) 2016 NextThing Co
 * Copyright (c) 2016 Free Electrons
 * Copyright (c) 2016 Konsulko Inc.
 *
 * SPDX-License-Identifier:	GPL-2.0+
 */

/dts-v1/;
/plugin/;

/* Test that we can change an int by another */
&{/test-node} {
	test-int-property = <43>;
};

/* Test that we can replace a string by a longer one */
&{/test-node} {
	test-str-property = "foobar";
};

/* Test that we add a new property */
&{/test-node} {
	test-str-property-2 = "foobar2";
};

/* Test that we add a new node (by phandle) */
&{/test-node} {
	new-node {
		new-property;
	};
};

&{/} {
	local: new-local-node {
		new-property;
	};
};

&{/} {
	test-several-phandle = <&local>, <&local>;
};

&{/test-node} {
	sub-test-node {
		new-sub-test-property;
	};
};

&{/new-local-node} {
	another-new-property;
};
