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

/ {
	test_device: test_device@0 {
		compatible = "vnd,pinctrl-device";
		reg = <0x0 0x1>;
		pinctrl-0 = <&test_device_default>;
		pinctrl-names = "default";
	};
};

&pinctrl {
	test_device_default: test_device_default {
		/* Note: the groups are just meant for testing if properties and
		   pins are parsed correctly, but do not necessarily represent a
		   feasible combination */
		group1 {
			psels = <NRF_PSEL(UART_TX, 0, 1)>,
				<NRF_PSEL(UART_RTS, 0, 2)>,
				<NRF_PSEL_DISCONNECTED(UART_RX)>;
		};
		group2 {
			psels = <NRF_PSEL(UART_RX, 0, 3)>;
			nordic,drive-mode = <NRF_DRIVE_H0S1>;
		};
		group3 {
			psels = <NRF_PSEL(UART_RX, 0, 4)>;
			bias-pull-up;
		};
		group4 {
			psels = <NRF_PSEL(UART_RX, 0, 5)>;
			bias-pull-down;
		};
		group5 {
			psels = <NRF_PSEL(UART_CTS, 1, 6)>;
			low-power-enable;
		};
	};
};
