/*
 * Copyright 2024 NXP
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include "frdm_mcxn947-pinctrl.dtsi"

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

	leds {
		compatible = "gpio-leds";
		green_led: led_1 {
			gpios = <&gpio0 27 GPIO_ACTIVE_LOW>;
			label = "Green LED";
			status = "disabled";
		};
		blue_led: led_2 {
			gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
			label = "Blue LED";
			status = "disabled";
		};
		red_led: led_3 {
			gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
			label = "Red LED";
			status = "disabled";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		user_button_2: button_0 {
			label = "User SW2";
			gpios = <&gpio0 23 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
			status = "disabled";
		};
		user_button_3: button_1 {
			label = "User SW3";
			gpios = <&gpio0 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
			status = "disabled";
		};
	};
};

&flexcomm1_lpspi1 {
	pinctrl-0 = <&pinmux_flexcomm1_lpspi>;
	pinctrl-names = "default";
};

&flexcomm4_lpuart4 {
	current-speed = <115200>;
	pinctrl-0 = <&pinmux_flexcomm4_lpuart>;
	pinctrl-names = "default";
};

/*
 * MCXN947 board uses OS timer as the kernel timer
 * In case we need to switch to SYSTICK timer, then
 * replace &os_timer with &systick
 */
&os_timer {
	status = "okay";
};

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

		boot_partition: partition@0 {
			label = "mcuboot";
			reg = <0x00000000 DT_SIZE_K(64)>;
		};
		slot0_partition: partition@10000 {
			label = "image-0";
			reg = <0x00010000 DT_SIZE_K(960)>;
		};
		slot1_partition: partition@100000 {
			label = "image-1";
			reg = <0x00100000 DT_SIZE_K(960)>;
		};
		scratch_partition: partition@1f0000 {
			label = "image-scratch";
			reg = <0x001f0000 DT_SIZE_K(64)>;
		};
	};
};

&flexspi {
	pinctrl-0 = <&pinmux_flexspi>;
	pinctrl-names = "default";
	ahb-prefetch;
	ahb-bufferable;
	ahb-cacheable;
	ahb-read-addr-opt;
	combination-mode;
	rx-clock-source = <1>;

	/* WINBOND flash memory*/
	w25q64jvssiq: w25q64jvssiq@0 {
		compatible = "nxp,imx-flexspi-nor";
		status = "disabled";
		size = <67108864>;
		reg = <0>;
		spi-max-frequency = <133000000>;
		jedec-id = [ef 40 17];
		erase-block-size = <4096>;
		write-block-size = <1>;
		cs-interval-unit = <1>;
		cs-interval = <2>;
		cs-hold-time = <3>;
		cs-setup-time = <3>;
		data-valid-time = <2>;
		column-space = <0>;
		partitions {
			compatible = "fixed-partitions";
			#address-cells = <1>;
			#size-cells = <1>;
			storage_partition: partition@0 {
				label = "storage";
				reg = <0x0 DT_SIZE_M(8)>;
			};
		};
	};
};

&dac0 {
	pinctrl-0 = <&pinmux_dac0>;
	pinctrl-names = "default";
};
