/*
 * Copyright 2021-2023 NXP
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <nxp/nxp_rt11xx.dtsi>
#include <zephyr/dt-bindings/memory-controller/nxp,flexram.h>

/ {
	cpus {
		/delete-node/ cpu@1;
	};
	/*
	 * ITCM & DTCM are available only to the M7 core. EDMA interrupts are connected
	 * to the M7 core alone, hence this EDMA controller has been designated M7 only.
	 * GPIO 6 is available to both M4 and M7 cores, however the GPIO interrupt is
	 * only accessible to the M7.
	 *
	 * Refer to Chapter 3 of the Reference Manual
	 */
	soc {
		/delete-node/ dma-controller@40c14000;

		flexram: flexram@40028000 {
			compatible = "nxp,flexram";

			reg = <0x40028000 0x4000>;
			interrupts = <50 0>;

			#address-cells = <1>;
			#size-cells = <1>;

			flexram,bank-size = <32>;
			flexram,num-ram-banks = <16>;
			flexram,has-magic-addr;
			/* same as default fuse value */
			flexram,bank-spec = <FLEXRAM_DTCM>,
					     <FLEXRAM_DTCM>,
					     <FLEXRAM_DTCM>,
					     <FLEXRAM_DTCM>,
					     <FLEXRAM_ITCM>,
					     <FLEXRAM_ITCM>,
					     <FLEXRAM_ITCM>,
					     <FLEXRAM_ITCM>,
					     <FLEXRAM_DTCM>,
					     <FLEXRAM_DTCM>,
					     <FLEXRAM_DTCM>,
					     <FLEXRAM_DTCM>,
					     <FLEXRAM_ITCM>,
					     <FLEXRAM_ITCM>,
					     <FLEXRAM_ITCM>,
					     <FLEXRAM_ITCM>;

			itcm: itcm@0 {
				compatible = "zephyr,memory-region", "nxp,imx-itcm";
				reg = <0x00000000 DT_SIZE_K(256)>;
				zephyr,memory-region = "ITCM";
			};

			dtcm: dtcm@20000000 {
				compatible = "zephyr,memory-region", "nxp,imx-dtcm";
				reg = <0x20000000 DT_SIZE_K(256)>;
				zephyr,memory-region = "DTCM";
			};

			/* no ocram node for this bank-spec */
		};

		/*
		 * M7 uses different addresses from the M4 core for GPIO2 and
		 * GPIO3, see pg. 1460 of RT1170 ref manual for example
		 */
		gpio2: gpio@40130000 {
			compatible = "nxp,imx-gpio";
			reg = <0x40130000 0x4000>;
			interrupts = <102 0>, <103 0>;
			gpio-controller;
			#gpio-cells = <2>;
		};

		gpio3: gpio@40134000 {
			compatible = "nxp,imx-gpio";
			reg = <0x40134000 0x4000>;
			interrupts = <104 0>, <105 0>;
			gpio-controller;
			#gpio-cells = <2>;
		};

		fgpio2: gpio@42008000 {
			compatible = "nxp,imx-gpio";
			reg = <0x42008000 0x4000>;
			interrupts = <99 0>;
			gpio-controller;
			#gpio-cells = <2>;
		};

		fgpio3: gpio@4200c000 {
			compatible = "nxp,imx-gpio";
			reg = <0x4200c000 0x4000>;
			gpio-controller;
			#gpio-cells = <2>;
		};

		mailbox_a: mailbox@40c48000 {
			compatible = "nxp,imx-mu";
			reg = <0x40c48000 0x4000>;
			interrupts = <118 0>;
			rdc = <0>;
		};
	};
};


&sai1 {
	dmas = <&edma0 0 54>, <&edma0 0 55>;
	dma-names = "rx", "tx";
	nxp,tx-dma-channel = <0>;
	nxp,rx-dma-channel = <1>;
};

&sai2 {
	dmas = <&edma0 0 56>, <&edma0 0 57>;
	dma-names = "rx", "tx";
	nxp,tx-dma-channel = <3>;
	nxp,rx-dma-channel = <4>;
};

&sai3 {
	dmas = <&edma0 0 58>, <&edma0 0 59>;
	dma-names = "rx", "tx";
	nxp,tx-dma-channel = <5>;
	nxp,rx-dma-channel = <6>;
};

&sai4 {
	dmas = <&edma0 0 60>, <&edma0 0 61>;
	dma-names = "rx", "tx";
	nxp,tx-dma-channel = <7>;
	nxp,rx-dma-channel = <8>;
};

&lpuart1 {
	dmas = <&edma0 1 8>, <&edma0 2 9>;
	dma-names = "tx", "rx";
};

&lpuart2 {
	dmas = <&edma0 3 10>, <&edma0 4 11>;
	dma-names = "tx", "rx";
};

&lpuart3 {
	dmas = <&edma0 5 12>, <&edma0 6 13>;
	dma-names = "tx", "rx";
};

&lpuart4 {
	dmas = <&edma0 7 14>, <&edma0 8 15>;
	dma-names = "tx", "rx";
};

&lpuart5 {
	dmas = <&edma0 9 16>, <&edma0 10 17>;
	dma-names = "tx", "rx";
};

&lpuart6 {
	dmas = <&edma0 11 18>, <&edma0 12 19>;
	dma-names = "tx", "rx";
};

&lpuart7 {
	dmas = <&edma0 13 20>, <&edma0 14 21>;
	dma-names = "tx", "rx";
};

&lpuart8 {
	dmas = <&edma0 15 22>, <&edma0 16 23>;
	dma-names = "tx", "rx";
};

&lpuart9 {
	dmas = <&edma0 17 24>, <&edma0 18 25>;
	dma-names = "tx", "rx";
};

&lpuart10 {
	dmas = <&edma0 19 26>, <&edma0 20 27>;
	dma-names = "tx", "rx";
};

&lpuart11 {
	dmas = <&edma0 21 28>, <&edma0 22 29>;
	dma-names = "tx", "rx";
};

&lpuart12 {
	dmas = <&edma0 23 30>, <&edma0 24 31>;
	dma-names = "tx", "rx";
};


&gpio1 {
	interrupts = <100 0>, <101 0>;
};

&gpio4 {
	interrupts = <106 0>, <107 0>;
};

&gpio5 {
	interrupts = <108 0>, <109 0>;
};

&gpio6 {
	interrupts = <61 0>, <62 0>;
};

&gpio13 {
	interrupts = <93 0>;
};

/* Set default power states for CM7 cpu */
&cpu0 {
	cpu-power-states = <&idle &suspend>;
};


/*
 * 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_emc_b1_00_gpio_mux1_io00>,
		<&iomuxc_gpio_emc_b1_01_gpio_mux1_io01>,
		<&iomuxc_gpio_emc_b1_02_gpio_mux1_io02>,
		<&iomuxc_gpio_emc_b1_03_gpio_mux1_io03>,
		<&iomuxc_gpio_emc_b1_04_gpio_mux1_io04>,
		<&iomuxc_gpio_emc_b1_05_gpio_mux1_io05>,
		<&iomuxc_gpio_emc_b1_06_gpio_mux1_io06>,
		<&iomuxc_gpio_emc_b1_07_gpio_mux1_io07>,
		<&iomuxc_gpio_emc_b1_08_gpio_mux1_io08>,
		<&iomuxc_gpio_emc_b1_09_gpio_mux1_io09>,
		<&iomuxc_gpio_emc_b1_10_gpio_mux1_io10>,
		<&iomuxc_gpio_emc_b1_11_gpio_mux1_io11>,
		<&iomuxc_gpio_emc_b1_12_gpio_mux1_io12>,
		<&iomuxc_gpio_emc_b1_13_gpio_mux1_io13>,
		<&iomuxc_gpio_emc_b1_14_gpio_mux1_io14>,
		<&iomuxc_gpio_emc_b1_15_gpio_mux1_io15>,
		<&iomuxc_gpio_emc_b1_16_gpio_mux1_io16>,
		<&iomuxc_gpio_emc_b1_17_gpio_mux1_io17>,
		<&iomuxc_gpio_emc_b1_18_gpio_mux1_io18>,
		<&iomuxc_gpio_emc_b1_19_gpio_mux1_io19>,
		<&iomuxc_gpio_emc_b1_20_gpio_mux1_io20>,
		<&iomuxc_gpio_emc_b1_21_gpio_mux1_io21>,
		<&iomuxc_gpio_emc_b1_22_gpio_mux1_io22>,
		<&iomuxc_gpio_emc_b1_23_gpio_mux1_io23>,
		<&iomuxc_gpio_emc_b1_24_gpio_mux1_io24>,
		<&iomuxc_gpio_emc_b1_25_gpio_mux1_io25>,
		<&iomuxc_gpio_emc_b1_26_gpio_mux1_io26>,
		<&iomuxc_gpio_emc_b1_27_gpio_mux1_io27>,
		<&iomuxc_gpio_emc_b1_28_gpio_mux1_io28>,
		<&iomuxc_gpio_emc_b1_29_gpio_mux1_io29>,
		<&iomuxc_gpio_emc_b1_30_gpio_mux1_io30>,
		<&iomuxc_gpio_emc_b1_31_gpio_mux1_io31>;
};

&gpio10{
	pinmux = <&iomuxc_gpio_ad_33_gpio10_io00>,
		<&iomuxc_gpio_ad_34_gpio10_io01>,
		<&iomuxc_gpio_ad_35_gpio10_io02>,
		<&iomuxc_gpio_sd_b1_00_gpio10_io03>,
		<&iomuxc_gpio_sd_b1_01_gpio10_io04>,
		<&iomuxc_gpio_sd_b1_02_gpio10_io05>,
		<&iomuxc_gpio_sd_b1_03_gpio10_io06>,
		<&iomuxc_gpio_sd_b1_04_gpio10_io07>,
		<&iomuxc_gpio_sd_b1_05_gpio10_io08>,
		<&iomuxc_gpio_sd_b2_00_gpio10_io09>,
		<&iomuxc_gpio_sd_b2_01_gpio10_io10>,
		<&iomuxc_gpio_sd_b2_02_gpio10_io11>,
		<&iomuxc_gpio_sd_b2_03_gpio10_io12>,
		<&iomuxc_gpio_sd_b2_04_gpio10_io13>,
		<&iomuxc_gpio_sd_b2_05_gpio10_io14>,
		<&iomuxc_gpio_sd_b2_06_gpio10_io15>,
		<&iomuxc_gpio_sd_b2_07_gpio10_io16>,
		<&iomuxc_gpio_sd_b2_08_gpio10_io17>,
		<&iomuxc_gpio_sd_b2_09_gpio10_io18>,
		<&iomuxc_gpio_sd_b2_10_gpio10_io19>,
		<&iomuxc_gpio_sd_b2_11_gpio10_io20>,
		<&iomuxc_gpio_disp_b1_00_gpio10_io21>,
		<&iomuxc_gpio_disp_b1_01_gpio10_io22>,
		<&iomuxc_gpio_disp_b1_02_gpio10_io23>,
		<&iomuxc_gpio_disp_b1_03_gpio10_io24>,
		<&iomuxc_gpio_disp_b1_04_gpio10_io25>,
		<&iomuxc_gpio_disp_b1_05_gpio10_io26>,
		<&iomuxc_gpio_disp_b1_06_gpio10_io27>,
		<&iomuxc_gpio_disp_b1_07_gpio10_io28>,
		<&iomuxc_gpio_disp_b1_08_gpio10_io29>,
		<&iomuxc_gpio_disp_b1_09_gpio10_io30>,
		<&iomuxc_gpio_disp_b1_10_gpio10_io31>;
};

&gpio11{
	pinmux = <&iomuxc_gpio_disp_b1_11_gpio11_io00>,
		<&iomuxc_gpio_disp_b2_00_gpio11_io01>,
		<&iomuxc_gpio_disp_b2_01_gpio11_io02>,
		<&iomuxc_gpio_disp_b2_02_gpio11_io03>,
		<&iomuxc_gpio_disp_b2_03_gpio11_io04>,
		<&iomuxc_gpio_disp_b2_04_gpio11_io05>,
		<&iomuxc_gpio_disp_b2_05_gpio11_io06>,
		<&iomuxc_gpio_disp_b2_06_gpio11_io07>,
		<&iomuxc_gpio_disp_b2_07_gpio11_io08>,
		<&iomuxc_gpio_disp_b2_08_gpio11_io09>,
		<&iomuxc_gpio_disp_b2_09_gpio11_io10>,
		<&iomuxc_gpio_disp_b2_10_gpio11_io11>,
		<&iomuxc_gpio_disp_b2_11_gpio11_io12>,
		<&iomuxc_gpio_disp_b2_12_gpio11_io13>,
		<&iomuxc_gpio_disp_b2_13_gpio11_io14>,
		<&iomuxc_gpio_disp_b2_14_gpio11_io15>,
		<&iomuxc_gpio_disp_b2_15_gpio11_io16>;
};

&gpio12{
	pinmux = <&iomuxc_lpsr_gpio_lpsr_00_gpio12_io00>,
		<&iomuxc_lpsr_gpio_lpsr_01_gpio12_io01>,
		<&iomuxc_lpsr_gpio_lpsr_02_gpio12_io02>,
		<&iomuxc_lpsr_gpio_lpsr_03_gpio12_io03>,
		<&iomuxc_lpsr_gpio_lpsr_04_gpio12_io04>,
		<&iomuxc_lpsr_gpio_lpsr_05_gpio12_io05>,
		<&iomuxc_lpsr_gpio_lpsr_06_gpio12_io06>,
		<&iomuxc_lpsr_gpio_lpsr_07_gpio12_io07>,
		<&iomuxc_lpsr_gpio_lpsr_08_gpio12_io08>,
		<&iomuxc_lpsr_gpio_lpsr_09_gpio12_io09>,
		<&iomuxc_lpsr_gpio_lpsr_10_gpio12_io10>,
		<&iomuxc_lpsr_gpio_lpsr_11_gpio12_io11>,
		<&iomuxc_lpsr_gpio_lpsr_12_gpio12_io12>,
		<&iomuxc_lpsr_gpio_lpsr_13_gpio12_io13>,
		<&iomuxc_lpsr_gpio_lpsr_14_gpio12_io14>,
		<&iomuxc_lpsr_gpio_lpsr_15_gpio12_io15>;
};

&gpio13{
	pinmux = <&iomuxc_snvs_wakeup_dig_gpio13_io00>,
		<&iomuxc_snvs_pmic_on_req_dig_gpio13_io01>,
		<&iomuxc_snvs_pmic_stby_req_dig_gpio13_io02>,
		<&iomuxc_snvs_gpio_snvs_00_dig_gpio13_io03>,
		<&iomuxc_snvs_gpio_snvs_01_dig_gpio13_io04>,
		<&iomuxc_snvs_gpio_snvs_02_dig_gpio13_io05>,
		<&iomuxc_snvs_gpio_snvs_03_dig_gpio13_io06>,
		<&iomuxc_snvs_gpio_snvs_04_dig_gpio13_io07>,
		<&iomuxc_snvs_gpio_snvs_05_dig_gpio13_io08>,
		<&iomuxc_snvs_gpio_snvs_06_dig_gpio13_io09>,
		<&iomuxc_snvs_gpio_snvs_07_dig_gpio13_io10>,
		<&iomuxc_snvs_gpio_snvs_08_dig_gpio13_io11>,
		<&iomuxc_snvs_gpio_snvs_09_dig_gpio13_io12>;
};

&gpio2{
	pinmux = <&iomuxc_gpio_emc_b1_32_gpio_mux2_io00>,
		<&iomuxc_gpio_emc_b1_33_gpio_mux2_io01>,
		<&iomuxc_gpio_emc_b1_34_gpio_mux2_io02>,
		<&iomuxc_gpio_emc_b1_35_gpio_mux2_io03>,
		<&iomuxc_gpio_emc_b1_36_gpio_mux2_io04>,
		<&iomuxc_gpio_emc_b1_37_gpio_mux2_io05>,
		<&iomuxc_gpio_emc_b1_38_gpio_mux2_io06>,
		<&iomuxc_gpio_emc_b1_39_gpio_mux2_io07>,
		<&iomuxc_gpio_emc_b1_40_gpio_mux2_io08>,
		<&iomuxc_gpio_emc_b1_41_gpio_mux2_io09>,
		<&iomuxc_gpio_emc_b2_00_gpio_mux2_io10>,
		<&iomuxc_gpio_emc_b2_01_gpio_mux2_io11>,
		<&iomuxc_gpio_emc_b2_02_gpio_mux2_io12>,
		<&iomuxc_gpio_emc_b2_03_gpio_mux2_io13>,
		<&iomuxc_gpio_emc_b2_04_gpio_mux2_io14>,
		<&iomuxc_gpio_emc_b2_05_gpio_mux2_io15>,
		<&iomuxc_gpio_emc_b2_06_gpio_mux2_io16>,
		<&iomuxc_gpio_emc_b2_07_gpio_mux2_io17>,
		<&iomuxc_gpio_emc_b2_08_gpio_mux2_io18>,
		<&iomuxc_gpio_emc_b2_09_gpio_mux2_io19>,
		<&iomuxc_gpio_emc_b2_10_gpio_mux2_io20>,
		<&iomuxc_gpio_emc_b2_11_gpio_mux2_io21>,
		<&iomuxc_gpio_emc_b2_12_gpio_mux2_io22>,
		<&iomuxc_gpio_emc_b2_13_gpio_mux2_io23>,
		<&iomuxc_gpio_emc_b2_14_gpio_mux2_io24>,
		<&iomuxc_gpio_emc_b2_15_gpio_mux2_io25>,
		<&iomuxc_gpio_emc_b2_16_gpio_mux2_io26>,
		<&iomuxc_gpio_emc_b2_17_gpio_mux2_io27>,
		<&iomuxc_gpio_emc_b2_18_gpio_mux2_io28>,
		<&iomuxc_gpio_emc_b2_19_gpio_mux2_io29>,
		<&iomuxc_gpio_emc_b2_20_gpio_mux2_io30>,
		<&iomuxc_gpio_ad_00_gpio_mux2_io31>;
};

&gpio3{
	pinmux = <&iomuxc_gpio_ad_01_gpio_mux3_io00>,
		<&iomuxc_gpio_ad_02_gpio_mux3_io01>,
		<&iomuxc_gpio_ad_03_gpio_mux3_io02>,
		<&iomuxc_gpio_ad_04_gpio_mux3_io03>,
		<&iomuxc_gpio_ad_05_gpio_mux3_io04>,
		<&iomuxc_gpio_ad_06_gpio_mux3_io05>,
		<&iomuxc_gpio_ad_07_gpio_mux3_io06>,
		<&iomuxc_gpio_ad_08_gpio_mux3_io07>,
		<&iomuxc_gpio_ad_09_gpio_mux3_io08>,
		<&iomuxc_gpio_ad_10_gpio_mux3_io09>,
		<&iomuxc_gpio_ad_11_gpio_mux3_io10>,
		<&iomuxc_gpio_ad_12_gpio_mux3_io11>,
		<&iomuxc_gpio_ad_13_gpio_mux3_io12>,
		<&iomuxc_gpio_ad_14_gpio_mux3_io13>,
		<&iomuxc_gpio_ad_15_gpio_mux3_io14>,
		<&iomuxc_gpio_ad_16_gpio_mux3_io15>,
		<&iomuxc_gpio_ad_17_gpio_mux3_io16>,
		<&iomuxc_gpio_ad_18_gpio_mux3_io17>,
		<&iomuxc_gpio_ad_19_gpio_mux3_io18>,
		<&iomuxc_gpio_ad_20_gpio_mux3_io19>,
		<&iomuxc_gpio_ad_21_gpio_mux3_io20>,
		<&iomuxc_gpio_ad_22_gpio_mux3_io21>,
		<&iomuxc_gpio_ad_23_gpio_mux3_io22>,
		<&iomuxc_gpio_ad_24_gpio_mux3_io23>,
		<&iomuxc_gpio_ad_25_gpio_mux3_io24>,
		<&iomuxc_gpio_ad_26_gpio_mux3_io25>,
		<&iomuxc_gpio_ad_27_gpio_mux3_io26>,
		<&iomuxc_gpio_ad_28_gpio_mux3_io27>,
		<&iomuxc_gpio_ad_29_gpio_mux3_io28>,
		<&iomuxc_gpio_ad_30_gpio_mux3_io29>,
		<&iomuxc_gpio_ad_31_gpio_mux3_io30>,
		<&iomuxc_gpio_ad_32_gpio_mux3_io31>;
};

&fgpio2{
	pinmux = <&iomuxc_gpio_emc_b1_32_gpio_mux2_io00_cm7>,
		<&iomuxc_gpio_emc_b1_33_gpio_mux2_io01_cm7>,
		<&iomuxc_gpio_emc_b1_34_gpio_mux2_io02_cm7>,
		<&iomuxc_gpio_emc_b1_35_gpio_mux2_io03_cm7>,
		<&iomuxc_gpio_emc_b1_36_gpio_mux2_io04_cm7>,
		<&iomuxc_gpio_emc_b1_37_gpio_mux2_io05_cm7>,
		<&iomuxc_gpio_emc_b1_38_gpio_mux2_io06_cm7>,
		<&iomuxc_gpio_emc_b1_39_gpio_mux2_io07_cm7>,
		<&iomuxc_gpio_emc_b1_40_gpio_mux2_io08_cm7>,
		<&iomuxc_gpio_emc_b1_41_gpio_mux2_io09_cm7>,
		<&iomuxc_gpio_emc_b2_00_gpio_mux2_io10_cm7>,
		<&iomuxc_gpio_emc_b2_01_gpio_mux2_io11_cm7>,
		<&iomuxc_gpio_emc_b2_02_gpio_mux2_io12_cm7>,
		<&iomuxc_gpio_emc_b2_03_gpio_mux2_io13_cm7>,
		<&iomuxc_gpio_emc_b2_04_gpio_mux2_io14_cm7>,
		<&iomuxc_gpio_emc_b2_05_gpio_mux2_io15_cm7>,
		<&iomuxc_gpio_emc_b2_06_gpio_mux2_io16_cm7>,
		<&iomuxc_gpio_emc_b2_07_gpio_mux2_io17_cm7>,
		<&iomuxc_gpio_emc_b2_08_gpio_mux2_io18_cm7>,
		<&iomuxc_gpio_emc_b2_09_gpio_mux2_io19_cm7>,
		<&iomuxc_gpio_emc_b2_10_gpio_mux2_io20_cm7>,
		<&iomuxc_gpio_emc_b2_11_gpio_mux2_io21_cm7>,
		<&iomuxc_gpio_emc_b2_12_gpio_mux2_io22_cm7>,
		<&iomuxc_gpio_emc_b2_13_gpio_mux2_io23_cm7>,
		<&iomuxc_gpio_emc_b2_14_gpio_mux2_io24_cm7>,
		<&iomuxc_gpio_emc_b2_15_gpio_mux2_io25_cm7>,
		<&iomuxc_gpio_emc_b2_16_gpio_mux2_io26_cm7>,
		<&iomuxc_gpio_emc_b2_17_gpio_mux2_io27_cm7>,
		<&iomuxc_gpio_emc_b2_18_gpio_mux2_io28_cm7>,
		<&iomuxc_gpio_emc_b2_19_gpio_mux2_io29_cm7>,
		<&iomuxc_gpio_emc_b2_20_gpio_mux2_io30_cm7>,
		<&iomuxc_gpio_ad_00_gpio_mux2_io31_cm7>;
};

&fgpio3{
	pinmux = <&iomuxc_gpio_ad_01_gpio_mux3_io00_cm7>,
		<&iomuxc_gpio_ad_02_gpio_mux3_io01_cm7>,
		<&iomuxc_gpio_ad_03_gpio_mux3_io02_cm7>,
		<&iomuxc_gpio_ad_04_gpio_mux3_io03_cm7>,
		<&iomuxc_gpio_ad_05_gpio_mux3_io04_cm7>,
		<&iomuxc_gpio_ad_06_gpio_mux3_io05_cm7>,
		<&iomuxc_gpio_ad_07_gpio_mux3_io06_cm7>,
		<&iomuxc_gpio_ad_08_gpio_mux3_io07_cm7>,
		<&iomuxc_gpio_ad_09_gpio_mux3_io08_cm7>,
		<&iomuxc_gpio_ad_10_gpio_mux3_io09_cm7>,
		<&iomuxc_gpio_ad_11_gpio_mux3_io10_cm7>,
		<&iomuxc_gpio_ad_12_gpio_mux3_io11_cm7>,
		<&iomuxc_gpio_ad_13_gpio_mux3_io12_cm7>,
		<&iomuxc_gpio_ad_14_gpio_mux3_io13_cm7>,
		<&iomuxc_gpio_ad_15_gpio_mux3_io14_cm7>,
		<&iomuxc_gpio_ad_16_gpio_mux3_io15_cm7>,
		<&iomuxc_gpio_ad_17_gpio_mux3_io16_cm7>,
		<&iomuxc_gpio_ad_18_gpio_mux3_io17_cm7>,
		<&iomuxc_gpio_ad_19_gpio_mux3_io18_cm7>,
		<&iomuxc_gpio_ad_20_gpio_mux3_io19_cm7>,
		<&iomuxc_gpio_ad_21_gpio_mux3_io20_cm7>,
		<&iomuxc_gpio_ad_22_gpio_mux3_io21_cm7>,
		<&iomuxc_gpio_ad_23_gpio_mux3_io22_cm7>,
		<&iomuxc_gpio_ad_24_gpio_mux3_io23_cm7>,
		<&iomuxc_gpio_ad_25_gpio_mux3_io24_cm7>,
		<&iomuxc_gpio_ad_26_gpio_mux3_io25_cm7>,
		<&iomuxc_gpio_ad_27_gpio_mux3_io26_cm7>,
		<&iomuxc_gpio_ad_28_gpio_mux3_io27_cm7>,
		<&iomuxc_gpio_ad_29_gpio_mux3_io28_cm7>,
		<&iomuxc_gpio_ad_30_gpio_mux3_io29_cm7>,
		<&iomuxc_gpio_ad_31_gpio_mux3_io30_cm7>,
		<&iomuxc_gpio_ad_32_gpio_mux3_io31_cm7>;
};

&gpio4{
	pinmux = <&iomuxc_gpio_ad_33_gpio_mux4_io00>,
		<&iomuxc_gpio_ad_34_gpio_mux4_io01>,
		<&iomuxc_gpio_ad_35_gpio_mux4_io02>,
		<&iomuxc_gpio_sd_b1_00_gpio_mux4_io03>,
		<&iomuxc_gpio_sd_b1_01_gpio_mux4_io04>,
		<&iomuxc_gpio_sd_b1_02_gpio_mux4_io05>,
		<&iomuxc_gpio_sd_b1_03_gpio_mux4_io06>,
		<&iomuxc_gpio_sd_b1_04_gpio_mux4_io07>,
		<&iomuxc_gpio_sd_b1_05_gpio_mux4_io08>,
		<&iomuxc_gpio_sd_b2_00_gpio_mux4_io09>,
		<&iomuxc_gpio_sd_b2_01_gpio_mux4_io10>,
		<&iomuxc_gpio_sd_b2_02_gpio_mux4_io11>,
		<&iomuxc_gpio_sd_b2_03_gpio_mux4_io12>,
		<&iomuxc_gpio_sd_b2_04_gpio_mux4_io13>,
		<&iomuxc_gpio_sd_b2_05_gpio_mux4_io14>,
		<&iomuxc_gpio_sd_b2_06_gpio_mux4_io15>,
		<&iomuxc_gpio_sd_b2_07_gpio_mux4_io16>,
		<&iomuxc_gpio_sd_b2_08_gpio_mux4_io17>,
		<&iomuxc_gpio_sd_b2_09_gpio_mux4_io18>,
		<&iomuxc_gpio_sd_b2_10_gpio_mux4_io19>,
		<&iomuxc_gpio_sd_b2_11_gpio_mux4_io20>,
		<&iomuxc_gpio_disp_b1_00_gpio_mux4_io21>,
		<&iomuxc_gpio_disp_b1_01_gpio_mux4_io22>,
		<&iomuxc_gpio_disp_b1_02_gpio_mux4_io23>,
		<&iomuxc_gpio_disp_b1_03_gpio_mux4_io24>,
		<&iomuxc_gpio_disp_b1_04_gpio_mux4_io25>,
		<&iomuxc_gpio_disp_b1_05_gpio_mux4_io26>,
		<&iomuxc_gpio_disp_b1_06_gpio_mux4_io27>,
		<&iomuxc_gpio_disp_b1_07_gpio_mux4_io28>,
		<&iomuxc_gpio_disp_b1_08_gpio_mux4_io29>,
		<&iomuxc_gpio_disp_b1_09_gpio_mux4_io30>,
		<&iomuxc_gpio_disp_b1_10_gpio_mux4_io31>;
};

&gpio5{
	pinmux = <&iomuxc_gpio_disp_b1_11_gpio_mux5_io00>,
		<&iomuxc_gpio_disp_b2_00_gpio_mux5_io01>,
		<&iomuxc_gpio_disp_b2_01_gpio_mux5_io02>,
		<&iomuxc_gpio_disp_b2_02_gpio_mux5_io03>,
		<&iomuxc_gpio_disp_b2_03_gpio_mux5_io04>,
		<&iomuxc_gpio_disp_b2_04_gpio_mux5_io05>,
		<&iomuxc_gpio_disp_b2_05_gpio_mux5_io06>,
		<&iomuxc_gpio_disp_b2_06_gpio_mux5_io07>,
		<&iomuxc_gpio_disp_b2_07_gpio_mux5_io08>,
		<&iomuxc_gpio_disp_b2_08_gpio_mux5_io09>,
		<&iomuxc_gpio_disp_b2_09_gpio_mux5_io10>,
		<&iomuxc_gpio_disp_b2_10_gpio_mux5_io11>,
		<&iomuxc_gpio_disp_b2_11_gpio_mux5_io12>,
		<&iomuxc_gpio_disp_b2_12_gpio_mux5_io13>,
		<&iomuxc_gpio_disp_b2_13_gpio_mux5_io14>,
		<&iomuxc_gpio_disp_b2_14_gpio_mux5_io15>,
		<&iomuxc_gpio_disp_b2_15_gpio_mux5_io16>;
};

&gpio6{
	pinmux = <&iomuxc_lpsr_gpio_lpsr_00_gpio_mux6_io00>,
		<&iomuxc_lpsr_gpio_lpsr_01_gpio_mux6_io01>,
		<&iomuxc_lpsr_gpio_lpsr_02_gpio_mux6_io02>,
		<&iomuxc_lpsr_gpio_lpsr_03_gpio_mux6_io03>,
		<&iomuxc_lpsr_gpio_lpsr_04_gpio_mux6_io04>,
		<&iomuxc_lpsr_gpio_lpsr_05_gpio_mux6_io05>,
		<&iomuxc_lpsr_gpio_lpsr_06_gpio_mux6_io06>,
		<&iomuxc_lpsr_gpio_lpsr_07_gpio_mux6_io07>,
		<&iomuxc_lpsr_gpio_lpsr_08_gpio_mux6_io08>,
		<&iomuxc_lpsr_gpio_lpsr_09_gpio_mux6_io09>,
		<&iomuxc_lpsr_gpio_lpsr_10_gpio_mux6_io10>,
		<&iomuxc_lpsr_gpio_lpsr_11_gpio_mux6_io11>,
		<&iomuxc_lpsr_gpio_lpsr_12_gpio_mux6_io12>,
		<&iomuxc_lpsr_gpio_lpsr_13_gpio_mux6_io13>,
		<&iomuxc_lpsr_gpio_lpsr_14_gpio_mux6_io14>,
		<&iomuxc_lpsr_gpio_lpsr_15_gpio_mux6_io15>;
};

&gpio7{
	pinmux = <&iomuxc_gpio_emc_b1_00_gpio7_io00>,
		<&iomuxc_gpio_emc_b1_01_gpio7_io01>,
		<&iomuxc_gpio_emc_b1_02_gpio7_io02>,
		<&iomuxc_gpio_emc_b1_03_gpio7_io03>,
		<&iomuxc_gpio_emc_b1_04_gpio7_io04>,
		<&iomuxc_gpio_emc_b1_05_gpio7_io05>,
		<&iomuxc_gpio_emc_b1_06_gpio7_io06>,
		<&iomuxc_gpio_emc_b1_07_gpio7_io07>,
		<&iomuxc_gpio_emc_b1_08_gpio7_io08>,
		<&iomuxc_gpio_emc_b1_09_gpio7_io09>,
		<&iomuxc_gpio_emc_b1_10_gpio7_io10>,
		<&iomuxc_gpio_emc_b1_11_gpio7_io11>,
		<&iomuxc_gpio_emc_b1_12_gpio7_io12>,
		<&iomuxc_gpio_emc_b1_13_gpio7_io13>,
		<&iomuxc_gpio_emc_b1_14_gpio7_io14>,
		<&iomuxc_gpio_emc_b1_15_gpio7_io15>,
		<&iomuxc_gpio_emc_b1_16_gpio7_io16>,
		<&iomuxc_gpio_emc_b1_17_gpio7_io17>,
		<&iomuxc_gpio_emc_b1_18_gpio7_io18>,
		<&iomuxc_gpio_emc_b1_19_gpio7_io19>,
		<&iomuxc_gpio_emc_b1_20_gpio7_io20>,
		<&iomuxc_gpio_emc_b1_21_gpio7_io21>,
		<&iomuxc_gpio_emc_b1_22_gpio7_io22>,
		<&iomuxc_gpio_emc_b1_23_gpio7_io23>,
		<&iomuxc_gpio_emc_b1_24_gpio7_io24>,
		<&iomuxc_gpio_emc_b1_25_gpio7_io25>,
		<&iomuxc_gpio_emc_b1_26_gpio7_io26>,
		<&iomuxc_gpio_emc_b1_27_gpio7_io27>,
		<&iomuxc_gpio_emc_b1_28_gpio7_io28>,
		<&iomuxc_gpio_emc_b1_29_gpio7_io29>,
		<&iomuxc_gpio_emc_b1_30_gpio7_io30>,
		<&iomuxc_gpio_emc_b1_31_gpio7_io31>;
};

&gpio8{
	pinmux = <&iomuxc_gpio_emc_b1_32_gpio8_io00>,
		<&iomuxc_gpio_emc_b1_33_gpio8_io01>,
		<&iomuxc_gpio_emc_b1_34_gpio8_io02>,
		<&iomuxc_gpio_emc_b1_35_gpio8_io03>,
		<&iomuxc_gpio_emc_b1_36_gpio8_io04>,
		<&iomuxc_gpio_emc_b1_37_gpio8_io05>,
		<&iomuxc_gpio_emc_b1_38_gpio8_io06>,
		<&iomuxc_gpio_emc_b1_39_gpio8_io07>,
		<&iomuxc_gpio_emc_b1_40_gpio8_io08>,
		<&iomuxc_gpio_emc_b1_41_gpio8_io09>,
		<&iomuxc_gpio_emc_b2_00_gpio8_io10>,
		<&iomuxc_gpio_emc_b2_01_gpio8_io11>,
		<&iomuxc_gpio_emc_b2_02_gpio8_io12>,
		<&iomuxc_gpio_emc_b2_03_gpio8_io13>,
		<&iomuxc_gpio_emc_b2_04_gpio8_io14>,
		<&iomuxc_gpio_emc_b2_05_gpio8_io15>,
		<&iomuxc_gpio_emc_b2_06_gpio8_io16>,
		<&iomuxc_gpio_emc_b2_07_gpio8_io17>,
		<&iomuxc_gpio_emc_b2_08_gpio8_io18>,
		<&iomuxc_gpio_emc_b2_09_gpio8_io19>,
		<&iomuxc_gpio_emc_b2_10_gpio8_io20>,
		<&iomuxc_gpio_emc_b2_11_gpio8_io21>,
		<&iomuxc_gpio_emc_b2_12_gpio8_io22>,
		<&iomuxc_gpio_emc_b2_13_gpio8_io23>,
		<&iomuxc_gpio_emc_b2_14_gpio8_io24>,
		<&iomuxc_gpio_emc_b2_15_gpio8_io25>,
		<&iomuxc_gpio_emc_b2_16_gpio8_io26>,
		<&iomuxc_gpio_emc_b2_17_gpio8_io27>,
		<&iomuxc_gpio_emc_b2_18_gpio8_io28>,
		<&iomuxc_gpio_emc_b2_19_gpio8_io29>,
		<&iomuxc_gpio_emc_b2_20_gpio8_io30>,
		<&iomuxc_gpio_ad_00_gpio8_io31>;
};

&gpio9{
	pinmux = <&iomuxc_gpio_ad_01_gpio9_io00>,
		<&iomuxc_gpio_ad_02_gpio9_io01>,
		<&iomuxc_gpio_ad_03_gpio9_io02>,
		<&iomuxc_gpio_ad_04_gpio9_io03>,
		<&iomuxc_gpio_ad_05_gpio9_io04>,
		<&iomuxc_gpio_ad_06_gpio9_io05>,
		<&iomuxc_gpio_ad_07_gpio9_io06>,
		<&iomuxc_gpio_ad_08_gpio9_io07>,
		<&iomuxc_gpio_ad_09_gpio9_io08>,
		<&iomuxc_gpio_ad_10_gpio9_io09>,
		<&iomuxc_gpio_ad_11_gpio9_io10>,
		<&iomuxc_gpio_ad_12_gpio9_io11>,
		<&iomuxc_gpio_ad_13_gpio9_io12>,
		<&iomuxc_gpio_ad_14_gpio9_io13>,
		<&iomuxc_gpio_ad_15_gpio9_io14>,
		<&iomuxc_gpio_ad_16_gpio9_io15>,
		<&iomuxc_gpio_ad_17_gpio9_io16>,
		<&iomuxc_gpio_ad_18_gpio9_io17>,
		<&iomuxc_gpio_ad_19_gpio9_io18>,
		<&iomuxc_gpio_ad_20_gpio9_io19>,
		<&iomuxc_gpio_ad_21_gpio9_io20>,
		<&iomuxc_gpio_ad_22_gpio9_io21>,
		<&iomuxc_gpio_ad_23_gpio9_io22>,
		<&iomuxc_gpio_ad_24_gpio9_io23>,
		<&iomuxc_gpio_ad_25_gpio9_io24>,
		<&iomuxc_gpio_ad_26_gpio9_io25>,
		<&iomuxc_gpio_ad_27_gpio9_io26>,
		<&iomuxc_gpio_ad_28_gpio9_io27>,
		<&iomuxc_gpio_ad_29_gpio9_io28>,
		<&iomuxc_gpio_ad_30_gpio9_io29>,
		<&iomuxc_gpio_ad_31_gpio9_io30>,
		<&iomuxc_gpio_ad_32_gpio9_io31>;
};
