/*
 * Copyright (c) 2020, Linaro
 * Copyright (c) 2022, NXP
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <nxp/nxp_rt10xx.dtsi>

&flexram {
	flexram,num-ram-banks = <8>;
	/* default fuse */
	flexram,bank-spec = <FLEXRAM_OCRAM>,
			     <FLEXRAM_OCRAM>,
			     <FLEXRAM_DTCM>,
			     <FLEXRAM_DTCM>,
			     <FLEXRAM_ITCM>,
			     <FLEXRAM_ITCM>,
			     <FLEXRAM_OCRAM>,
			     <FLEXRAM_OCRAM>;
};

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

/* i.MX rt1024 default FlexRAM partition:
 * ITCM: 64KB
 * DTCM: 64KB
 * OCRAM: 128KB
 */
&itcm {
	reg = <0x00000000 DT_SIZE_K(64)>;
};

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

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

&ccm {
	ipg-podf {
		clock-div = <4>;
	};
};

&flexspi {
	status = "okay";
	reg = <0x402a8000 0x4000>, <0x60000000 DT_SIZE_M(4)>;
	/* 32 megabit internal flash present on chip */
	w25q32jvwj0: w25q32jvwj0@0 {
		compatible = "nxp,imx-flexspi-nor";
		size = <DT_SIZE_M(32)>;
		reg = <0>;
		spi-max-frequency = <133000000>;
		status = "okay";
		jedec-id = [9d 70 17];
		erase-block-size = <DT_SIZE_K(4)>;
		write-block-size = <1>;
	};
};

/ {
	soc {
		/* GPIOS 4 and 6-9 are not preset on RT1024 */
		/delete-node/ gpio@401c4000;
		/delete-node/ gpio@42000000;
		/delete-node/ gpio@42004000;
		/delete-node/ gpio@42008000;
		/delete-node/ gpio@4200c000;
		/* RT1024 has only one flexSPI controller */
		/delete-node/ spi@402a4000;
	};
};

/*
 * GPIO pinmux options. These options define the pinmux settings
 * for GPIO ports on the package, so that the GPIO driver can
 * select GPIO mux options during GPIO configuration.
 */

&gpio1{
	pinmux = <&iomuxc_gpio_ad_b0_00_gpio1_io00>,
		<&iomuxc_gpio_ad_b0_01_gpio1_io01>,
		<&iomuxc_gpio_ad_b0_02_gpio1_io02>,
		<&iomuxc_gpio_ad_b0_03_gpio1_io03>,
		<&iomuxc_gpio_ad_b0_04_gpio1_io04>,
		<&iomuxc_gpio_ad_b0_05_gpio1_io05>,
		<&iomuxc_gpio_ad_b0_06_gpio1_io06>,
		<&iomuxc_gpio_ad_b0_07_gpio1_io07>,
		<&iomuxc_gpio_ad_b0_08_gpio1_io08>,
		<&iomuxc_gpio_ad_b0_09_gpio1_io09>,
		<&iomuxc_gpio_ad_b0_10_gpio1_io10>,
		<&iomuxc_gpio_ad_b0_11_gpio1_io11>,
		<&iomuxc_gpio_ad_b0_12_gpio1_io12>,
		<&iomuxc_gpio_ad_b0_13_gpio1_io13>,
		<&iomuxc_gpio_ad_b0_14_gpio1_io14>,
		<&iomuxc_gpio_ad_b0_15_gpio1_io15>,
		<&iomuxc_gpio_ad_b1_06_gpio1_io22>,
		<&iomuxc_gpio_ad_b1_07_gpio1_io23>,
		<&iomuxc_gpio_ad_b1_08_gpio1_io24>,
		<&iomuxc_gpio_ad_b1_09_gpio1_io25>,
		<&iomuxc_gpio_ad_b1_10_gpio1_io26>,
		<&iomuxc_gpio_ad_b1_11_gpio1_io27>,
		<&iomuxc_gpio_ad_b1_12_gpio1_io28>,
		<&iomuxc_gpio_ad_b1_13_gpio1_io29>,
		<&iomuxc_gpio_ad_b1_14_gpio1_io30>,
		<&iomuxc_gpio_ad_b1_15_gpio1_io31>;
	gpio-reserved-ranges = <16 6>;
};

&gpio2{
	pinmux = <&iomuxc_gpio_emc_00_gpio2_io00>,
		<&iomuxc_gpio_emc_01_gpio2_io01>,
		<&iomuxc_gpio_emc_02_gpio2_io02>,
		<&iomuxc_gpio_emc_03_gpio2_io03>,
		<&iomuxc_gpio_emc_04_gpio2_io04>,
		<&iomuxc_gpio_emc_05_gpio2_io05>,
		<&iomuxc_gpio_emc_06_gpio2_io06>,
		<&iomuxc_gpio_emc_07_gpio2_io07>,
		<&iomuxc_gpio_emc_08_gpio2_io08>,
		<&iomuxc_gpio_emc_09_gpio2_io09>,
		<&iomuxc_gpio_emc_10_gpio2_io10>,
		<&iomuxc_gpio_emc_11_gpio2_io11>,
		<&iomuxc_gpio_emc_12_gpio2_io12>,
		<&iomuxc_gpio_emc_13_gpio2_io13>,
		<&iomuxc_gpio_emc_14_gpio2_io14>,
		<&iomuxc_gpio_emc_15_gpio2_io15>,
		<&iomuxc_gpio_emc_16_gpio2_io16>,
		<&iomuxc_gpio_emc_17_gpio2_io17>,
		<&iomuxc_gpio_emc_18_gpio2_io18>,
		<&iomuxc_gpio_emc_19_gpio2_io19>,
		<&iomuxc_gpio_emc_20_gpio2_io20>,
		<&iomuxc_gpio_emc_21_gpio2_io21>,
		<&iomuxc_gpio_emc_22_gpio2_io22>,
		<&iomuxc_gpio_emc_23_gpio2_io23>,
		<&iomuxc_gpio_emc_24_gpio2_io24>,
		<&iomuxc_gpio_emc_25_gpio2_io25>,
		<&iomuxc_gpio_emc_26_gpio2_io26>,
		<&iomuxc_gpio_emc_27_gpio2_io27>,
		<&iomuxc_gpio_emc_28_gpio2_io28>,
		<&iomuxc_gpio_emc_29_gpio2_io29>,
		<&iomuxc_gpio_emc_30_gpio2_io30>,
		<&iomuxc_gpio_emc_31_gpio2_io31>;
};

&gpio3{
	pinmux = <&iomuxc_gpio_emc_32_gpio3_io00>,
		<&iomuxc_gpio_emc_33_gpio3_io01>,
		<&iomuxc_gpio_emc_34_gpio3_io02>,
		<&iomuxc_gpio_emc_35_gpio3_io03>,
		<&iomuxc_gpio_emc_36_gpio3_io04>,
		<&iomuxc_gpio_emc_37_gpio3_io05>,
		<&iomuxc_gpio_emc_38_gpio3_io06>,
		<&iomuxc_gpio_emc_39_gpio3_io07>,
		<&iomuxc_gpio_emc_40_gpio3_io08>,
		<&iomuxc_gpio_emc_41_gpio3_io09>,
		<&iomuxc_gpio_sd_b0_00_gpio3_io13>,
		<&iomuxc_gpio_sd_b0_01_gpio3_io14>,
		<&iomuxc_gpio_sd_b0_02_gpio3_io15>,
		<&iomuxc_gpio_sd_b0_03_gpio3_io16>,
		<&iomuxc_gpio_sd_b0_04_gpio3_io17>,
		<&iomuxc_gpio_sd_b0_05_gpio3_io18>,
		<&iomuxc_gpio_sd_b0_06_gpio3_io19>,
		<&iomuxc_gpio_sd_b1_00_gpio3_io20>,
		<&iomuxc_gpio_sd_b1_01_gpio3_io21>,
		<&iomuxc_gpio_sd_b1_02_gpio3_io22>,
		<&iomuxc_gpio_sd_b1_03_gpio3_io23>,
		<&iomuxc_gpio_sd_b1_04_gpio3_io24>,
		<&iomuxc_gpio_sd_b1_05_gpio3_io25>,
		<&iomuxc_gpio_sd_b1_06_gpio3_io26>,
		<&iomuxc_gpio_sd_b1_07_gpio3_io27>,
		<&iomuxc_gpio_sd_b1_08_gpio3_io28>,
		<&iomuxc_gpio_sd_b1_09_gpio3_io29>,
		<&iomuxc_gpio_sd_b1_10_gpio3_io30>,
		<&iomuxc_gpio_sd_b1_11_gpio3_io31>;
	gpio-reserved-ranges = <10 3>;
};

&gpio5{
	pinmux = <&iomuxc_snvs_wakeup_gpio5_io00>,
		<&iomuxc_snvs_pmic_on_req_gpio5_io01>,
		<&iomuxc_snvs_pmic_stby_req_gpio5_io02>;
};
