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

#include "rd_rw612_bga-pinctrl.dtsi"
/ {

	aliases {
		usart-0 = &flexcomm3;
		led0 = &green_led;
		sw0 = &sw_4;
		i2c-0 = &flexcomm2;
		watchdog0 = &wwdt;
		dmic-dev = &dmic0;
	};

	chosen {
		zephyr,sram = &sram_data;
		zephyr,flash = &mx25u51245g;
		zephyr,code-partition = &slot0_partition;
		zephyr,flash-controller = &mx25u51245g;
		zephyr,console = &flexcomm3;
		zephyr,shell-uart = &flexcomm3;
	};

	leds {
		compatible = "gpio-leds";
		green_led: led_1 {
			gpios = <&hsgpio1 20 0>;
			label = "User LED_GREEN";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		sw_4: sw_4 {
			label = "User SW4";
			gpios = <&hsgpio0 25 0>;
		};
	};
};

&wwdt {
	status = "okay";
};

arduino_spi: &flexcomm0 {
	compatible = "nxp,lpc-spi";
	pinctrl-0 = <&pinmux_flexcomm0_spi>;
	pinctrl-names = "default";
	status = "okay";
	#address-cells = <1>;
	#size-cells = <0>;
};

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

&flexcomm3 {
	compatible = "nxp,lpc-usart";
	status = "okay";
	current-speed = <115200>;
	pinctrl-0 = <&pinmux_flexcomm3_usart>;
	pinctrl-names = "default";
};

&hsgpio0 {
	status = "okay";
};

&flexspi {
	status = "okay";
	ahb-bufferable;
	ahb-prefetch;
	ahb-cacheable;
	ahb-read-addr-opt;
	rx-clock-source = <1>;
	pinctrl-0 = <&pinmux_flexspi>;
	pinctrl-names = "default";
	status = "okay";
	mx25u51245g: mx25u51245g@0 {
		compatible = "nxp,imx-flexspi-nor";
		spi-max-frequency = <133000000>;
		reg = <0>;
		/* MX25UM51245G is 64MB, 512MBit flash part */
		size = <DT_SIZE_M(64 * 8)>;
		status = "okay";
		jedec-id = [c2 25 3a];
		erase-block-size = <4096>;
		write-block-size = <1>;

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

			boot_partition: partition@0 {
				label = "mcuboot";
				reg = <0x00000000 DT_SIZE_K(128)>;
			};
			/* Note slot 0 has one additional sector,
			 * this is intended for use with the swap move algorithm
			 */
			slot0_partition: partition@20000 {
				label = "image-0";
				reg = <0x00020000 0x3e0000>;
			};
			slot1_partition: partition@680000 {
				label = "image-1";
				reg = <0x680000 0x3e0000>;
			};
			storage_partition: partition@a60000 {
				label = "storage";
				reg = <0xa60000 0x35a0000>;
			};
		};
	};
};

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

/* Configure pdm channels 0-3 with gain, and cutoff settings
 * appropriate for the attached MEMS microphones.
 * Note that PDMC0/PDMC1 and PDMC2/PDMC3 are each connected to the same
 * microphone. For best results, read from PDM HW channel 0 as left channel,
 * and PDM HW channel 1 as right channel.
 */
&pdmc0 {
	status = "okay";
	gainshift = <3>;
	dc-cutoff = "155hz";
	dc-gain = <1>;
};

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

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

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

&dma0 {
	status = "okay";
};

&mrt0_channel0 {
	status = "okay";
};

&ctimer0 {
	status = "okay";
};

&pmu {
	reset-causes-en = <PMU_RESET_CM33_LOCKUP>,
			  <PMU_RESET_ITRC>,
			  <PMU_RESET_AP_RESET>;
};
