/*
 * Copyright (c) 2024 Cypress Semiconductor Corporation.
 * SPDX-License-Identifier: Apache-2.0
 */

#include <zephyr/dt-bindings/input/input-event-codes.h>

/ {
	aliases {
		led0 = &user_led0;
		led1 = &user_led1;
		sw0 = &user_bt0;
		sw1 = &user_bt1;
	};

	leds {
		compatible = "gpio-leds";
		user_led0: led_0 {
			label = "LED_0";
			gpios = <&gpio_prt1 1 GPIO_ACTIVE_LOW>;
		};

		user_led1: led_1 {
			label = "LED_1";
			gpios = <&gpio_prt5 2 GPIO_ACTIVE_LOW>;
		};
	};

	gpio_keys {
		compatible = "gpio-keys";

		user_bt0: user_btn0 {
			label = "SW_1";
			gpios = <&gpio_prt0 5 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
			zephyr,code = <INPUT_KEY_0>;
		};

		user_bt1: user_btn1 {
			label = "SW_2";
			gpios = <&gpio_prt1 0 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
			zephyr,code = <INPUT_KEY_1>;
		};
	};
};

&gpio_prt0 {
	status = "okay";
};

&gpio_prt1 {
	status = "okay";
};

&gpio_prt3 {
	status = "okay";
};

&gpio_prt5 {
	status = "okay";
};
