/*
 * Copyright (c) 2021 Nordic Semiconductor ASA
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/ {
	pinctrl {
		compatible = "vnd,pinctrl-test";

		/* default state for device 0 */
		test_device0_default: test_device0_default {
			group1 {
				pins = <0>;
				bias-pull-up;
			};
			group2 {
				pins = <1>;
				bias-pull-down;
			};
		};

		/* sleep state for device 0 */
		test_device0_sleep: test_device0_sleep {
			group1 {
				pins = <0>, <1>;
			};
		};

		/* alternative default state for device 0 */
		test_device0_alt_default: test_device0_alt_default {
			group1 {
				pins = <2>;
				bias-pull-down;
			};
			group2 {
				pins = <3>;
				bias-pull-up;
			};
		};

		/* alternative sleep state for device 0 */
		test_device0_alt_sleep: test_device0_alt_sleep {
			group1 {
				pins = <2>, <3>;
			};
		};

		/* default state for device 1 */
		test_device1_default: test_device1_default {
			group1 {
				pins = <10>, <11>, <12>;
			};
		};

		/* custom state "mystate" for device 1 */
		test_device1_mystate: test_device1_mystate {
			group1 {
				pins = <10>;
			};
			group2 {
				pins = <11>;
				bias-pull-up;
			};
			group3 {
				pins = <12>;
				bias-pull-down;
			};
		};
	};

	zephyr,user {
		test_device0_alt_default = <&test_device0_alt_default>;
		test_device0_alt_sleep = <&test_device0_alt_sleep>;
	};

	test_device0: test_device@0 {
		compatible = "vnd,pinctrl-device";
		reg = <0x0 0x1>;
		pinctrl-0 = <&test_device0_default>;
		pinctrl-1 = <&test_device0_sleep>;
		pinctrl-names = "default", "sleep";
	};

	test_device1: test_device@1 {
		compatible = "vnd,pinctrl-device";
		reg = <0x1 0x1>;
		pinctrl-0 = <&test_device1_default>;
		pinctrl-1 = <&test_device1_mystate>;
		pinctrl-names = "default", "mystate";
	};
};
