/*
 * 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;
		sdhc0 = &usdhc1;
	};

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

	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>;
		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: ov7725@21 {
		compatible = "ovti,ov7725";
		reg = <0x21>;
		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 = <&ov7725>;
	pinctrl-0 = <&pinmux_csi>;
	pinctrl-names = "default";

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

&edma0 {
	status = "okay";
};

&systick {
	status = "okay";
};
