/*
 * 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;
	};

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