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

/dts-v1/;

#include <microchip/mec1501hsz.dtsi>

/ {
	model = "Microchip MEC15XXEVB_ASSY6853 evaluation board";
	compatible = "microchip,mec15xxevb_assy6853", "microchip,mec1501hsz";

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

	aliases {
		led0 = &led2;
		led1 = &led3;
		led2 = &led4;
		pwm-0 = &pwm0;
		peci-0 = &peci0;
		i2c0 = &i2c_smb_0;
		i2c-0 = &i2c_smb_0;
		i2c1 = &i2c_smb_1;
		i2c7 = &i2c_smb_2;
		kscan0 = &kscan0;
	};

	leds {
		compatible = "gpio-leds";
		led2: led_0 {
			/* GPIO156/LED0 on schematic,
			 * LED2 on silkscreen.
			 */
			gpios = <&gpio_140_176 14 GPIO_ACTIVE_LOW>;
			label = "LED 2";
		};
		led3: led_1 {
			/* GPIO157/LED1 on schematic,
			 * LED3 on silkscreen.
			 */
			gpios = <&gpio_140_176 15 GPIO_ACTIVE_LOW>;
			label = "LED 3";
		};
		led4: led_2 {
			/* GPIO153/LED2 on schematic,
			 * LED4 on silkscreen.
			 */
			gpios = <&gpio_140_176 11 GPIO_ACTIVE_LOW>;
			label = "LED 4";
		};
	};

	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>;
};

&uart2 {
	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>;

	pca9555@26 {
		compatible = "nxp,pca95xx";
		label = "GPIO_P0";

		/* Depends on JP53 for device address.
		 * Pin 1-2 = A0, pin 3-4 = A1, pin 5-6 = A2.
		 * Address is: 0100<A2><A1><A0>b.
		 *
		 * Default has pin 1-2 on JP53 connected,
		 * resulting in device address 0x26.
		 */
		reg = <0x26>;

		gpio-controller;
		#gpio-cells = <2>;
	};
};

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

&i2c_smb_2 {
	status = "okay";
	label = "I2C7";
	port_sel = <7>;
	sda-gpios = <&gpio_000_036 10 0>;
	scl-gpios = <&gpio_000_036 11 0>;
};

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

&timer5 {
	status = "okay";
};

&ps2_0 {
	status = "okay";
};

&ps2_1 {
	status = "okay";
};

&pwm0 {
	status = "okay";
};

&kscan0 {
	status = "okay";
};

&peci0 {
	status = "okay";
};

&spi0 {
	status = "okay";
	port_sel = <0>;
	chip_select = <0>;
	lines = <1>;
};

&tach0 {
	status = "okay";
};
