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

#include "frdm_mcxn947-pinctrl.dtsi"
#include <zephyr/dt-bindings/i2c/i2c.h>

/ {
	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";
};

&flexcomm2_lpi2c2 {
	pinctrl-0 = <&pinmux_flexcomm2_lpi2c>;
	pinctrl-names = "default";
	clock-frequency = <I2C_BITRATE_STANDARD>;
};

&flexcomm2_lpuart2 {
	current-speed = <115200>;
	pinctrl-0 = <&pinmux_flexcomm2_lpuart>;
	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";
};

&enet {
	pinctrl-0 = <&pinmux_enet_qos>;
	pinctrl-names = "default";
};

&enet_mac {
	phy-connection-type = "rmii";
	zephyr,random-mac-address;
	phy-handle = <&phy>;
};

&enet_mdio {
	phy: ethernet-phy@0 {
		compatible = "ethernet-phy";
		reg = <0>;
		status = "okay";
	};
};

&flexpwm1_pwm0 {
	pinctrl-0 = <&pinmux_flexpwm1_pwm0>;
	pinctrl-names = "default";
};
