/*
 * Copyright (c) 2019, MADMACHINE LIMITED
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;

#include <nxp/nxp_rt1050.dtsi>
#include "mm_swiftio-pinctrl.dtsi"

/ {
	model = "MM MM-SWIFTIO board";
	compatible = "nxp,mimxrt1052";

	aliases {
		led0 = &green_led;
		led1 = &red_led;
		led2 = &blue_led;
	};

	chosen {
		zephyr,sram = &sdram0;
		zephyr,itcm = &itcm;
		zephyr,dtcm = &dtcm;
		zephyr,console = &lpuart1;
		zephyr,shell-uart = &lpuart1;
	};

	sdram0: memory@80000000 {
		/* Micron MT48LC16M16A2B4-6AIT:G */
		device_type = "memory";
		reg = <0x80000000 DT_SIZE_M(32)>;
	};

	leds {
		compatible = "gpio-leds";
		red_led: led_0 {
			gpios = <&gpio1 9 0>;
			label = "RGB R";
		};

		green_led: led_1 {
			gpios = <&gpio1 10 0>;
			label = "RGB G";
		};

		blue_led: led_2 {
			gpios = <&gpio1 11 0>;
			label = "RGB B";
		};
	};
};


&flexspi {
	reg = <0x402a8000 0x4000>, <0x60000000 DT_SIZE_M(8)>;
	is25wp064: is25wp064@0 {
		compatible = "nxp,imx-flexspi-nor";
		size = <67108864>;
		label = "IS25WP064";
		reg = <0>;
		spi-max-frequency = <133000000>;
		status = "okay";
		jedec-id = [9d 70 17];
	};
};

&lpuart1 {
	status = "okay";
	current-speed = <115200>;
	pinctrl-0 = <&pinmux_lpuart1>;
	pinctrl-1 = <&pinmux_lpuart1_sleep>;
	pinctrl-names = "default", "sleep";
};

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

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

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

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

&lpi2c1 {
	status = "okay";
	pinctrl-0 = <&pinmux_lpi2c1>;
	pinctrl-names = "default";
};

&lpi2c3 {
	status = "okay";
	pinctrl-0 = <&pinmux_lpi2c3>;
	pinctrl-names = "default";

	ov7725@21 {
		compatible = "ovti,ov7725";
		reg = <0x21>;
		label = "OV7725";
		status = "okay";

		reset-gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>;

		port {
			ov7725_ep_out: endpoint {
				remote-endpoint = <&csi_ep_in>;
			};
		};
	};
};

&lpspi3 {
	status = "okay";
	pcs-sck-delay = <50>;
	sck-pcs-delay = <50>;
	transfer-delay = <50>;
};

&lpspi4 {
	status = "okay";
	pcs-sck-delay = <50>;
	sck-pcs-delay = <50>;
	transfer-delay = <50>;
};

&flexpwm1_pwm3 {
	status = "okay";
};

&flexpwm2_pwm0 {
	status = "okay";
};

&flexpwm2_pwm1 {
	status = "okay";
};

&flexpwm2_pwm2 {
	status = "okay";
};

&flexpwm2_pwm3 {
	status = "okay";
};

&flexpwm4_pwm0 {
	status = "okay";
};

&flexpwm4_pwm1 {
	status = "okay";
};

&flexpwm4_pwm2 {
	status = "okay";
};

&flexpwm4_pwm3 {
	status = "okay";
};

&usb1 {
	status = "okay";
};

&usdhc1 {
	status = "okay";
	cd-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>;
	no-1-8-v;
	pinctrl-0 = <&pinmux_usdhc1>;
	pinctrl-1 = <&pinmux_usdhc1_slow>;
	pinctrl-2 = <&pinmux_usdhc1_med>;
	pinctrl-3 = <&pinmux_usdhc1_fast>;
	pinctrl-names = "default", "slow", "med", "fast";
	mmc {
		compatible = "zephyr,sdmmc-disk";
		status = "okay";
	};
};

&csi {
	status = "okay";
	sensor-label = "OV7725";
	pinctrl-0 = <&pinmux_csi>;
	pinctrl-names = "default";

	port {
		csi_ep_in: endpoint {
			remote-endpoint = <&ov7725_ep_out>;
		};
	};
};

&edma0 {
	status = "okay";
};
