/*
 * Copyright (c) 2020 Nuvoton Technology Corporation.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;

#include <nuvoton/npcx7m6fb.dtsi>
#include "npcx7m6fb_evb-pinctrl.dtsi"

/ {
	model = "Nuvoton NPCX7M6FB evaluation board";

	chosen {
		zephyr,sram = &sram0;
		zephyr,console = &uart1;
		zephyr,flash = &flash0;
	};

	aliases {
		/* For samples/basic/blinky_pwm */
		pwm-led0 = &pwm_led0_green;
		/* For pwm test suites */
		pwm-0 = &pwm6;
		/* For i2c test suites */
		i2c-0 = &i2c0_0;
	};

	pwmleds {
		compatible = "pwm-leds";
		pwm_led0_green: pwm_led_0 {
			pwms = <&pwm6 0 PWM_MSEC(20) PWM_POLARITY_INVERTED>;
			label = "User D7 green";
		};
	};

	power-states {
		suspend_to_idle0: suspend-to-idle0 {
			compatible = "zephyr,power-state";
			power-state-name = "suspend-to-idle";
			substate-id = <0>;
			min-residency-us = <1000>;
		};

		suspend_to_idle1: suspend-to-idle1 {
			compatible = "zephyr,power-state";
			power-state-name = "suspend-to-idle";
			substate-id = <1>;
			min-residency-us = <201000>;
		};
	};

	vsby-psl-in-list {
		psl-in-pads = <&psl_in1>; /* Use PSL_IN1 as detection pins */
		status = "okay";
	};
};

&cpu0 {
	cpu-power-states = <&suspend_to_idle0 &suspend_to_idle1>;
};

&psl_in1 {
	/* A falling edge detection type for PSL_IN1 */
	flag = <NPCX_PSL_FALLING_EDGE>;
};

/* Overwrite default device properties with overlays in board dt file here. */
&uart1 {
	status = "okay";
	current-speed = <115200>;
	/* Use UART1_SL2 ie. PIN64.65 */
	pinctrl-0 = <&uart1_2_sin_sout_gp64_65>;
	pinctrl-names = "default";
};

&pwm6 {
	status = "okay";
	pinctrl-0 = <&pwm6_gpc0>;
	pinctrl-names = "default";
};

&adc0 {
	status = "okay";
	/* Use adc0 channel 0 and 2 for 'adc_api' driver tests */
	pinctrl-0 = <&adc0_chan0_gp45
		     &adc0_chan2_gp43>;
	pinctrl-names = "default";
};

&espi0 {
	status = "okay";
	pinctrl-0 = <&espi_lpc_gp46_47_51_52_53_54_55_57>;
	pinctrl-names = "default";
};

&i2c0_0 {
	status = "okay";
	pinctrl-0 = <&i2c0_0_sda_scl_gpb4_b5>;
	pinctrl-names = "default";
	clock-frequency = <I2C_BITRATE_FAST>;
};

&i2c_ctrl0 {
	status = "okay";
};

&tach1 {
	status = "okay";
	pinctrl-0 = <&ta1_1_in_gp40>;
	pinctrl-names = "default";
	port = <NPCX_TACH_PORT_A>; /* port-A is selected */
	sample-clk = <NPCX_TACH_FREQ_LFCLK>; /* Use LFCLK as sampling clock */
	pulses-per-round = <1>; /* number of pulses per round of encoder */
};
