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

#include <nxp/nxp_rt.dtsi>

&sysclk {
	clock-frequency = <500000000>;
};

&itcm {
	reg = <0x00000000 DT_SIZE_K(32)>;
};

&dtcm {
	reg = <0x20000000 DT_SIZE_K(32)>;
};

&ocram {
	reg = <0x20200000 DT_SIZE_K(64)>;
};

&gpio1 {
	interrupts = <70 0>, <71 0>;
};

&gpio5 {
	interrupts = <73 0>;
};

&gpt1 {
	interrupts = <30 0>;
	gptfreq = <12500000>;
};

&gpt2 {
	interrupts = <31 0>;
	gptfreq = <12500000>;
};

&usb1 {
	interrupts = <25 0>;
};

&flexspi {
	interrupts = <26 0>;
};

&flexpwm1_pwm0 {
	interrupts = <34 0>;
};

&flexpwm1_pwm1 {
	interrupts = <35 0>;
};

&flexpwm1_pwm2 {
	interrupts = <36 0>;
};

&flexpwm1_pwm3 {
	interrupts = <37 0>;
};

&flexpwm1 {
	interrupts = <38 0>;
};

/ {
	soc {
		/* Fixup GPIO2 its a different location on RT1010 */
		/delete-node/ gpio@401bc000;

		gpio2: gpio@42000000 {
			compatible = "nxp,imx-gpio";
			reg = <0x42000000 0x4000>;
			interrupts = <72 0>;
			label = "GPIO_2";
			gpio-controller;
			#gpio-cells = <2>;
		};

		/* Remove GPIO3 & GPIO4, they dont exist on RT1010 */
		/delete-node/ gpio@401c0000;
		/delete-node/ gpio@401c4000;
	};
};
