/*
 * Copyright 2022-2023, NXP
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;

#include <nxp/nxp_rt5xx.dtsi>
#include <zephyr/dt-bindings/input/input-event-codes.h>

#include "mimxrt595_evk_cm33-pinctrl.dtsi"


/ {
	model = "NXP MIMXRT595-EVK board";
	compatible = "nxp,mimxrt595";

	aliases {
		sw0 = &user_button_1;
		sw1 = &user_button_2;
		led0 = &green_led;
		led1 = &blue_led;
		led2 = &red_led;
		usart-0 = &flexcomm0;
		watchdog0 = &wwdt0;
		magn0 = &fxos8700;
		accel0 = &fxos8700;
		sdhc0 = &usdhc0;
		pwm-0 = &sc_timer;
		dmic-dev = &dmic0;
	};

	chosen {
		zephyr,flash-controller = &mx25um51345g;
		zephyr,flash = &mx25um51345g;
		zephyr,code-partition = &slot0_partition;
		zephyr,sram = &sram0;
		zephyr,console = &flexcomm0;
		zephyr,shell-uart = &flexcomm0;
		zephyr,display = &lcdif;
	};

	gpio_keys {
		compatible = "gpio-keys";
		user_button_1: button_0 {
			label = "User SW1";
			gpios = <&gpio0 25 GPIO_ACTIVE_LOW>;
			zephyr,code = <INPUT_KEY_0>;
		};
		user_button_2: button_1 {
			label = "User SW2";
			gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
			zephyr,code = <INPUT_KEY_1>;
		};
	};

	leds {
		compatible = "gpio-leds";
		green_led: led_1 {
			gpios = <&gpio1 0 0>;
			label = "User LED_GREEN";
		};
		blue_led: led_2 {
			gpios = <&gpio3 17 0>;
			label = "User LED_BLUE";
		};
		red_led: led_3 {
			gpios = <&gpio0 14 0>;
			label = "User LED_RED";
		};
	};

	arduino_header: arduino-connector {
		compatible = "arduino-header-r3";
		#gpio-cells = <2>;
		gpio-map-mask = <0xffffffff 0xffffffc0>;
		gpio-map-pass-thru = <0 0x3f>;
		gpio-map =	<0 0 &gpio0 5 0>,	/* A0 */
				<1 0 &gpio0 6 0>,	/* A1 */
				<2 0 &gpio0 19 0>,	/* A2 */
				<3 0 &gpio0 13 0>,	/* A3 */
				<4 0 &gpio4 22 0>,	/* A4 */
				<5 0 &gpio4 21 0>,	/* A5 */
				<6 0 &gpio4 31 0>,	/* D0 */
				<7 0 &gpio4 30 0>,	/* D1 */
				<8 0 &gpio4 20 0>,	/* D2 */
				<9 0 &gpio4 23 0>,	/* D3 */
				<10 0 &gpio4 24 0>,	/* D4 */
				<11 0 &gpio4 25 0>,	/* D5 */
				<12 0 &gpio4 26 0>,	/* D6 */
				<13 0 &gpio4 27 0>,	/* D7 */
				<14 0 &gpio4 28 0>,	/* D8 */
				<15 0 &gpio4 29 0>,	/* D9 */
				<16 0 &gpio5 0 0>,	/* D10 */
				<17 0 &gpio5 1 0>,	/* D11 */
				<18 0 &gpio5 2 0>,	/* D12 */
				<19 0 &gpio5 3 0>,	/* D13 */
				<20 0 &gpio4 22 0>,	/* D14 */
				<21 0 &gpio4 21 0>;	/* D15 */
	};

	/*
	 * This node describes the GPIO pins of the MIPI FPC interface,
	 * J44 on the EVK. This interface is standard to several
	 * NXP EVKs, and is used with several MIPI displays
	 * (available as zephyr shields)
	 */
	nxp_mipi_connector: mipi-connector {
		compatible = "gpio-nexus";
		#gpio-cells = <2>;
		gpio-map-mask = <0xffffffff 0xffffffc0>;
		gpio-map-pass-thru = <0 0x3f>;
		gpio-map =	<0  0 &gpio0 12 0>,	/* Pin 1, LEDK */
				<21 0 &gpio3 21 0>,	/* Pin 21, RESET */
				<22 0 &gpio3 18 0>,	/* Pin 22, LPTE */
				<26 0 &gpio0 30 0>,	/* Pin 26, CTP_I2C SDA */
				<27 0 &gpio0 29 0>,	/* Pin 27, CTP_I2C SCL */
				<28 0 &gpio4 4 0>,	/* Pin 28, CTP_RST */
				<29 0 &gpio3 19 0>,	/* Pin 29, CTP_INT */
				<32 0 &gpio3 15 0>,	/* Pin 32, PWR_EN */
				<34 0 &gpio0 12 0>;	/* Pin 34, BL_PWM */
	};

	en_mipi_display: enable-mipi-display {
		compatible = "regulator-fixed";
		regulator-name = "en_mipi_display";
		enable-gpios = <&gpio3 15 GPIO_ACTIVE_HIGH>;
		regulator-boot-on;
	};
};

/*
 * RT595 EVK 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";
	wakeup-source;
};

&rtc {
	status = "okay";
};

&flexcomm0 {
	compatible = "nxp,lpc-usart";
	status = "okay";
	current-speed = <115200>;
	pinctrl-0 = <&pinmux_flexcomm0_usart>;
	pinctrl-names = "default";
	dmas = <&dma0 0>, <&dma0 1>;
	dma-names = "rx", "tx";
};

arduino_i2c: &flexcomm4 {
	compatible = "nxp,lpc-i2c";
	status = "okay";
	clock-frequency = <I2C_BITRATE_FAST>;
	#address-cells = <1>;
	#size-cells = <0>;
	pinctrl-0 = <&pinmux_flexcomm4_i2c>;
	pinctrl-names = "default";

	fxos8700: fxos8700@1e {
		compatible = "nxp,fxos8700";
		reg = <0x1e>;
		int1-gpios = <&gpio0 22 GPIO_ACTIVE_LOW>;
		reset-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
	};
};

nxp_mipi_i2c: &arduino_i2c {};

zephyr_mipi_dsi: &mipi_dsi {};

zephyr_lcdif: &lcdif {};


hs_spi1: &hs_lspi1 {
	compatible = "nxp,lpc-spi";
	pinctrl-0 = <&pinmux_flexcomm16_spi>;
	pinctrl-names = "default";
	dmas = <&dma0 28>, <&dma0 29>;
	dma-names = "rx", "tx";
	status = "okay";
};

/* I2S RX */
i2s0: &flexcomm1 {
	compatible = "nxp,lpc-i2s";
	pinctrl-0 = <&pinmux_flexcomm1_i2s>;
	pinctrl-names = "default";
	#address-cells = <1>;
	#size-cells = <0>;
	dmas = <&dma0 2>;
	dma-names = "rx";
	status = "disabled";
};

/* I2S TX */
i2s1: &flexcomm3 {
	compatible = "nxp,lpc-i2s";
	pinctrl-0 = <&pinmux_flexcomm3_i2s>;
	pinctrl-names = "default";
	#address-cells = <1>;
	#size-cells = <0>;
	dmas = <&dma0 7>;
	dma-names = "tx";
	status = "disabled";
};

arduino_serial: &flexcomm12 {
	compatible = "nxp,lpc-usart";
	status = "okay";
	current-speed = <115200>;
	pinctrl-0 = <&pinmux_flexcomm12_usart>;
	pinctrl-names = "default";
	dmas = <&dma0 34>, <&dma0 35>;
	dma-names = "rx", "tx";
};

/* PCA9420 PMIC */
&pmic_i2c {
	status = "okay";
	clock-frequency = <I2C_BITRATE_FAST>;
	#address-cells = <1>;
	#size-cells = <0>;
	pinctrl-0 = <&pinmux_pmic_i2c>;
	pinctrl-names = "default";

	pca9420: pca9420@61 {
		compatible = "nxp,pca9420";
		reg = <0x61>;
		nxp,enable-modesel-pins;

		pca9420_sw1: BUCK1 {
			regulator-boot-on;
			nxp,mode0-microvolt = <1100000>;
			nxp,mode1-microvolt = <600000>;
			nxp,mode2-microvolt = <900000>;
			nxp,mode3-microvolt = <800000>;
		};

		pca9420_sw2: BUCK2 {
			regulator-boot-on;
			nxp,mode0-microvolt = <1800000>;
			nxp,mode1-microvolt = <1800000>;
			nxp,mode2-microvolt = <1800000>;
			nxp,mode3-microvolt = <1800000>;
		};

		pca9420_ldo1: LDO1 {
			regulator-boot-on;
			nxp,mode0-microvolt = <1800000>;
			nxp,mode1-microvolt = <1800000>;
			nxp,mode2-microvolt = <1800000>;
			nxp,mode3-microvolt = <1800000>;
		};

		pca9420_ldo2: LDO2 {
			regulator-boot-on;
			nxp,mode0-microvolt = <3300000>;
			nxp,mode1-microvolt = <3300000>;
			nxp,mode2-microvolt = <3300000>;
			nxp,mode3-microvolt = <3300000>;
		};
	};
};

&lpadc0 {
	status = "okay";
	pinctrl-0 = <&pinmux_lpadc0>;
	pinctrl-names = "default";
};

&gpio0 {
	status = "okay";
};

&gpio1 {
	status = "okay";
};

&gpio2 {
	status = "okay";
};

/*
 * GPIO module interrupts are shared between all GPIO devices on this
 * SOC, but Zephyr does not currently support sharing interrupts between
 * devices. The user can select GPIO modules to support interrupts by
 * setting the appropriate `int-source` and `interrupt` property for
 * a given module. On this board, GPIO3 and GPIO4 are configured to support
 * interrupts.
 */
&gpio3 {
	status = "okay";
	int-source = "int-a";
	interrupts = <2 0>;
};

&gpio4 {
	status = "okay";
	int-source = "int-b";
	interrupts = <3 0>;
};

&gpio5 {
	status = "okay";
};

&gpio6 {
	status = "okay";
};

&user_button_1 {
	status = "okay";
};

&user_button_2 {
	status = "okay";
};

&green_led {
	status = "okay";
};

&blue_led {
	status = "okay";
};

&red_led {
	status = "okay";
};

&dma0 {
	status = "okay";
};

zephyr_udc0: &usbhs {
	status = "okay";
};

&ctimer0 {
	status = "okay";
};

&ctimer1 {
	status = "okay";
};

&ctimer2 {
	status = "okay";
};

&ctimer3 {
	status = "okay";
};

&ctimer4 {
	status = "okay";
};

&usdhc0 {
	status = "okay";
	pwr-gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>;
	cd-gpios = <&gpio2 9 GPIO_ACTIVE_LOW>;
	mmc {
		compatible = "zephyr,mmc-disk";
		status = "okay";
	};
	pinctrl-0 = <&pinmux_usdhc>;
	pinctrl-names = "default";
	mmc-hs200-1_8v;
	mmc-hs400-1_8v;
};

&wwdt0 {
	status = "okay";
};

&flexspi {
	status = "okay";
	pinctrl-0 = <&pinmux_flexspi>;
	pinctrl-1 = <&pinmux_flexspi_sleep>;
	pinctrl-names = "default", "sleep";

	mx25um51345g: mx25um51345g@0 {
		compatible = "nxp,imx-flexspi-mx25um51345g";
		/* MX25UM51245G is 64MB, 512MBit flash part */
		size = <DT_SIZE_M(64 * 8)>;
		reg = <0>;
		spi-max-frequency = <200000000>;
		status = "okay";
		jedec-id = [c2 81 3a];
		erase-block-size = <4096>;
		write-block-size = <16>;

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

			boot_partition: partition@0 {
				label = "mcuboot";
				reg = <0x00000000 DT_SIZE_K(128)>;
			};
			slot0_partition: partition@20000 {
				label = "image-0";
				reg = <0x00020000 DT_SIZE_K(3076)>;
			};
			slot1_partition: partition@321000 {
				label = "image-1";
				reg = <0x00321000 DT_SIZE_K(3072)>;
			};
			storage_partition: partition@621000 {
				label = "storage";
				reg = <0x00621000 DT_SIZE_M(57)>;
			};
		};
	};
};

&flexspi2 {
	status = "okay";
	pinctrl-0 = <&pinmux_flexspi2>;
	pinctrl-names = "default";
	rx-clock-source = <3>;
	ahb-prefetch;
	ahb-bufferable;
	ahb-cacheable;
	ahb-read-addr-opt;
	aps6408l: aps6408l@0 {
		compatible = "nxp,imx-flexspi-aps6408l";
		/* APS6408L is 8MB, 64MBit pSRAM */
		size = <DT_SIZE_M(8 * 8)>;
		reg = <0>;
		spi-max-frequency = <198000000>;
		status = "okay";
		cs-interval-unit = <1>;
		cs-interval = <5>;
		cs-hold-time = <3>;
		cs-setup-time = <3>;
		data-valid-time = <1>;
		column-space = <0>;
		ahb-write-wait-unit = <2>;
		ahb-write-wait-interval = <0>;
	};
};

&sc_timer {
	pinctrl-0 = <&pinmux_sctimer_default>;
	pinctrl-names = "default";
	status = "okay";
};

&i3c0 {
	pinctrl-0 = <&pinmux_i3c>;
	pinctrl-names = "default";

	status = "okay";
};

&mbox {
	status = "okay";
};

/* Disable this node if not using USB and need another MPU region */
&sram1 {
	status = "okay";
};

/* Enable smartDMA controller */
&smartdma {
	status = "okay";
};

/* Add smartDMA to mipi DSI */
&mipi_dsi {
	dmas = <&smartdma>;
	dma-names = "smartdma";
};

&dmic0 {
	status = "okay";
	pinctrl-0 = <&pinmux_dmic0>;
	pinctrl-names = "default";
	use2fs;
};

/* Configure pdm channels 0 and 1 with gain, and cutoff settings
 * appropriate for the attached MEMS microphones.
 */
&pdmc0 {
	status = "okay";
	gainshift = <3>;
	dc-cutoff = "155hz";
	dc-gain = <1>;
};

&pdmc1 {
	status = "okay";
	gainshift = <3>;
	dc-cutoff = "155hz";
	dc-gain = <1>;
};

&mrt_channel0 {
	status = "okay";
};
