/*
 * Copyright (c) 2018, Cypress
 * Copyright (c) 2020, ATL Electronics
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;

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

/ {
	model = "cy8ckit_062_wifi_bt_m0 with a Cypress PSoC6 SoC";
	compatible = "cypress,cy8ckit_062_wifi_bt_m0", "cypress,PSoC6";

	aliases {
		sw0 = &user_bt;
		led0 = &user_led;
		uart-6 = &uart6;
	};

	chosen {
		zephyr,sram = &sram0;
		zephyr,flash = &flash0;
		zephyr,console = &uart6;
		zephyr,shell-uart = &uart6;
	};

	leds {
		compatible = "gpio-leds";
		user_led: led_0 {
			label = "LED_0";
			gpios = <&gpio_prt13 7 GPIO_ACTIVE_HIGH>;
		};
	};

	gpio_keys {
		compatible = "gpio-keys";

		user_bt: button_0 {
			label = "SW_0";
			gpios = <&gpio_prt0 4 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
			zephyr,code = <INPUT_KEY_0>;
		};
	};
};

&gpio_prt0 {
	status = "okay";
	interrupt-parent = <&intmux_ch20>;
};

&gpio_prt13 {
	status = "okay";
};

&uart6 {
	status = "okay";
	current-speed = <115200>;

	interrupt-parent = <&intmux_ch21>;

	pinctrl-0 = <&p13_0_uart6_rx &p13_1_uart6_tx>;
};
