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

/dts-v1/;

#include <nxp/nxp_kl25z.dtsi>

/ {
	model = "NXP Freedom KL25Z board";
	compatible = "nxp,frdm-kl25z", "nxp,kl25z", "nxp,mkl25z4";

	aliases {
		adc-0 = &adc0;
		uart-0 = &uart0;
		i2c-0 = &i2c0;
		i2c-1 = &i2c1;
		gpio-a = &gpioa;
		gpio-b = &gpiob;
		gpio-c = &gpioc;
		gpio-d = &gpiod;
		gpio-e = &gpioe;
		led0 = &green_led;
		led1 = &blue_led;
		led2 = &red_led;
		sw0 = &user_button_0;
		sw1 = &user_button_1;
	};

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

	leds {
		compatible = "gpio-leds";
		red_led: led_0 {
			gpios = <&gpiob 18 0>;
			label = "User LD1";
		};
		green_led: led_1 {
			gpios = <&gpiob 19 0>;
			label = "User LD2";
		};
		blue_led: led_2 {
			gpios = <&gpiod 1 0>;
			label = "User LD3";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		user_button_0: button_0 {
			label = "User SW0";
			gpios = <&gpioa 16 GPIO_INT_ACTIVE_LOW>;
		};
		user_button_1: button_1 {
			label = "User SW1";
			gpios = <&gpioa 17 GPIO_INT_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 0 0>,	/* A0 */
			   <1 0 &gpiob 1 0>,	/* A1 */
			   <2 0 &gpiob 2 0>,	/* A2 */
			   <3 0 &gpiob 3 0>,	/* A3 */
			   <4 0 &gpioc 2 0>,	/* A4 */
			   <5 0 &gpioc 1 0>,	/* A5 */
			   <6 0 &gpioa 1 0>,	/* D0 */
			   <7 0 &gpioa 2 0>,	/* D1 */
			   <8 0 &gpiod 4 0>,	/* D2 */
			   <9 0 &gpioa 12 0>,	/* D3 */
			   <10 0 &gpioa 4 0>,	/* D4 */
			   <11 0 &gpioa 5 0>,	/* D5 */
			   <12 0 &gpioc 8 0>,	/* D6 */
			   <13 0 &gpioc 9 0>,	/* D7 */
			   <14 0 &gpioa 13 0>,	/* D8 */
			   <15 0 &gpiod 5 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 0 0>,	/* D14 */
			   <21 0 &gpioe 1 0>;	/* D15 */
	};
};

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

&adc0 {
	status = "okay";
};

&i2c0 {
	status = "okay";
	mma8451q@1d {
		compatible = "nxp,fxos8700","nxp,mma8451q";
		reg = <0x1d>;
		label = "MMA8451Q";
		int1-gpios = <&gpioa 14 0>;
		int2-gpios = <&gpioa 15 0>;
	};
};

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

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