/*
 * Copyright (c) 2018, Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;

#include <microchip/mec1501hsz.dtsi>

/ {
	model = "Microchip MEC1501MODULAR_ASSY6885 evaluation board";
	compatible = "microchip,mec1501modular_assy6885",
		     "microchip,mec1501hsz";

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

	aliases {
		pwm-0 = &pwm0;
		peci-0 = &peci0;

		i2c0 = &i2c_smb_0;
		i2c1 = &i2c_smb_1;
		kscan0 = &kscan0;
	};

	power-states {
		idle: idle {
			compatible = "zephyr,power-state";
			power-state-name = "suspend-to-idle";
			min-residency-us = <1000000>;
		};

		suspend_to_ram: suspend_to_ram {
			compatible = "zephyr,power-state";
			power-state-name = "suspend-to-ram";
			min-residency-us = <2000000>;
		};
	};
};

&cpu0 {
	cpu-power-states = <&idle &suspend_to_ram>;
};

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

&adc0 {
	status = "okay";
};

&i2c_smb_0 {
	status = "okay";
	label = "I2C0";
	port_sel = <0>;
	sda-gpios = <&gpio_000_036 3 0>;
	scl-gpios = <&gpio_000_036 4 0>;
};

&i2c_smb_1 {
	status = "okay";
	label = "I2C1";
	port_sel = <1>;
	sda-gpios = <&gpio_100_136 24 0>;
	scl-gpios = <&gpio_100_136 25 0>;
};

&espi0 {
	status = "okay";
	io_girq = <19>;
	vw_girqs = <24 25>;
	pc_girq = <15>;
};

&ps2_0 {
	status = "okay";
};

&ps2_1 {
	status = "okay";
};

&pwm0 {
	status = "okay";
};

&kscan0 {
	status = "okay";
};

&peci0 {
	status = "okay";
};

&tach0 {
	status = "okay";
};
