/* SPDX-License-Identifier: Apache-2.0 */

/dts-v1/;

#include <nxp/nxp_k6x.dtsi>
#include "frdm_k64f-pinctrl.dtsi"

/ {
	model = "NXP Freedom MK64F board";
	compatible = "nxp,mk64f12", "nxp,k64f", "nxp,k6x";

	aliases {
		led0 = &green_led;
		led1 = &blue_led;
		led2 = &red_led;
		sw0 = &user_button_3;
		sw1 = &user_button_2;
		magn0 = &fxos8700;
		accel0 = &fxos8700;
	};

	chosen {
		zephyr,sram = &sram0;
		zephyr,flash = &flash0;
		zephyr,code-partition = &slot0_partition;
		zephyr,console = &uart0;
		zephyr,shell-uart = &uart0;
		zephyr,uart-pipe = &uart0;
		zephyr,canbus = &flexcan0;
	};

	leds {
		compatible = "gpio-leds";
		red_led: led_0 {
			gpios = <&gpiob 22 GPIO_ACTIVE_LOW>;
			label = "User LD1";
		};
		green_led: led_1 {
			gpios = <&gpioe 26 GPIO_ACTIVE_LOW>;
			label = "User LD2";
		};
		blue_led: led_2 {
			gpios = <&gpiob 21 GPIO_ACTIVE_LOW>;
			label = "User LD3";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		user_button_2: button_0 {
			label = "User SW2";
			gpios = <&gpioc 6 GPIO_ACTIVE_LOW>;
		};
		user_button_3: button_1 {
			label = "User SW3";
			gpios = <&gpioa 4 GPIO_ACTIVE_LOW>;
		};
	};

	arduino_header: connector {
		compatible = "arduino-header-r3";
		#gpio-cells = <2>;
		gpio-map-mask = <0xffffffff 0xffffffc0>;
		gpio-map-pass-thru = <0 0x3f>;
		gpio-map = <0 0 &gpiob 2 0>,	/* A0 */
			   <1 0 &gpiob 3 0>,	/* A1 */
			   <2 0 &gpiob 10 0>,	/* A2 */
			   <3 0 &gpiob 11 0>,	/* A3 */
			   <4 0 &gpioc 11 0>,	/* A4 */
			   <5 0 &gpioc 10 0>,	/* A5 */
			   <6 0 &gpioc 16 0>,	/* D0 */
			   <7 0 &gpioc 17 0>,	/* D1 */
			   <8 0 &gpiob 9 0>,	/* D2 */
			   <9 0 &gpioa 1 0>,	/* D3 */
			   <10 0 &gpiob 23 0>,	/* D4 */
			   <11 0 &gpioa 2 0>,	/* D5 */
			   <12 0 &gpioc 2 0>,	/* D6 */
			   <13 0 &gpioc 3 0>,	/* D7 */
			   /* NOTE: HW Rev D and below use: */
			   /* <14 0 &gpioa 0 0>, */
			   /* NOTE: HW Rev E and on use: */
			   <14 0 &gpioc 12 0>,	/* D8 */
			   <15 0 &gpioc 4 0>,	/* D9 */
			   <16 0 &gpiod 0 0>,	/* D10 */
			   <17 0 &gpiod 2 0>,	/* D11 */
			   <18 0 &gpiod 3 0>,	/* D12 */
			   <19 0 &gpiod 1 0>,	/* D13 */
			   <20 0 &gpioe 25 0>,	/* D14 */
			   <21 0 &gpioe 24 0>;	/* D15 */
	};
};

&sim {
	pllfll-select = <KINETIS_SIM_PLLFLLSEL_MCGPLLCLK>;
	er32k-select = <KINETIS_SIM_ER32KSEL_RTC>;
};

arduino_serial: &uart3 {
	status = "okay";
	current-speed = <115200>;
	pinctrl-0 = <&uart3_default>;
	pinctrl-names = "default";
};

&cpu0 {
	clock-frequency = <120000000>;
};

&adc0 {
	status = "okay";
	pinctrl-0 = <&adc0_default>;
	pinctrl-names = "default";
};

&adc1 {
	status = "okay";
	pinctrl-0 = <&adc1_default>;
	pinctrl-names = "default";
};

&temp1 {
	status = "okay";
};

&dac0 {
	status = "okay";
	voltage-reference = <2>;
};

arduino_i2c: &i2c0 {
	status = "okay";
	pinctrl-0 = <&i2c0_default>;
	pinctrl-names = "default";

	fxos8700: fxos8700@1d {
		compatible = "nxp,fxos8700";
		reg = <0x1d>;
		int1-gpios = <&gpioc 6 GPIO_ACTIVE_LOW>;
		int2-gpios = <&gpioc 13 GPIO_ACTIVE_LOW>;
	};
};

arduino_spi: &spi0 {
	status = "okay";
	pinctrl-0 = <&spi0_default>;
	pinctrl-names = "default";
};

&ftm0 {
	status = "okay";
	compatible = "nxp,kinetis-ftm-pwm";
	#pwm-cells = <3>;
	pinctrl-0 = <&ftm0_default>;
	pinctrl-names = "default";
};

&ftm3 {
	status = "okay";
	compatible = "nxp,kinetis-ftm-pwm";
	#pwm-cells = <3>;
	pinctrl-0 = <&ftm3_default>;
	pinctrl-names = "default";
};

&uart0 {
	status = "okay";
	current-speed = <115200>;
	pinctrl-0 = <&uart0_default>;
	pinctrl-names = "default";
};

&uart2 {
	pinctrl-0 = <&uart2_default>;
	pinctrl-names = "default";
};

zephyr_udc0: &usbotg {
	compatible = "nxp,kinetis-usbd";
	status = "okay";
	num-bidir-endpoints = <8>;
};

&gpioa {
	status = "okay";
};

&gpiob {
	status = "okay";
};

&gpioc {
	status = "okay";
};

&gpiod {
	status = "okay";
};

&gpioe {
	status = "okay";
};

&flash0 {

	partitions {
		compatible = "fixed-partitions";
		#address-cells = <1>;
		#size-cells = <1>;

		boot_partition: partition@0 {
			label = "mcuboot";
			reg = <0x00000000 0x00010000>;
			read-only;
		};

		/*
		 * The flash starting at 0x00010000 and ending at
		 * 0x0001ffff (sectors 16-31) is reserved for use
		 * by the application.
		 */
		storage_partition: partition@1e000 {
			label = "storage";
			reg = <0x0001e000 0x00002000>;
		};

		slot0_partition: partition@20000 {
			label = "image-0";
			reg = <0x00020000 0x00060000>;
		};
		slot1_partition: partition@80000 {
			label = "image-1";
			reg = <0x00080000 0x00060000>;
		};
		scratch_partition: partition@e0000 {
			label = "image-scratch";
			reg = <0x000e0000 0x00020000>;
		};
	};
};

&enet {
	status = "okay";
	pinctrl-0 = <&enet_default>;
	pinctrl-names = "default";
	ptp {
		/* Be aware that PTC16 and PTC17 are also used for uart3 */
		status = "disabled";
		pinctrl-0 = <&ptp_default>;
		pinctrl-names = "default";
	};
};

&flexcan0 {
	status = "okay";
	pinctrl-0 = <&flexcan0_default>;
	pinctrl-names = "default";
	bus-speed = <125000>;
};

&edma0 {
	status = "okay";
};

&pit0 {
	status = "okay";
};
