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

#include <nxp/nxp_rt10xx.dtsi>

/* i.MX rt1060 has two continuous on-chip RAM, one is part of the
 * FlexRAM mapped at 0x20280000 (vs 0x20280000 on rt1050) and is
 * configurable (256KB by defaults), the other one is dedicated 512KB
 * ram (OCRAM2) mapped at 0x20200000. In order to have a continuous
 * region, we describe them in one 768Kb unique node.
 */
&ocram {
	compatible = "mmio-sram";
	reg = <0x20200000 DT_SIZE_K(768)>;
};

&ccm {
	arm-podf {
		clock-div = <2>;
	};

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

/* i.MX rt1060 has a second Ethernet controller. */
/ {
	soc {
		enet2: ethernet@402d4000 {
			compatible = "nxp,kinetis-ethernet";
			reg = <0x402D4000 0x628>;
			interrupts = <152 0>;
			interrupt-names = "COMMON";
			status = "disabled";
			ptp {
				compatible = "nxp,kinetis-ptp";
				status = "disabled";
				interrupts = <153 0>;
				interrupt-names = "IEEE1588_TMR";
			};
		};
	};
};

/*
 * 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_00_gpio1_io16>,
		<&iomuxc_gpio_ad_b1_01_gpio1_io17>,
		<&iomuxc_gpio_ad_b1_02_gpio1_io18>,
		<&iomuxc_gpio_ad_b1_03_gpio1_io19>,
		<&iomuxc_gpio_ad_b1_04_gpio1_io20>,
		<&iomuxc_gpio_ad_b1_05_gpio1_io21>,
		<&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>;
};

&gpio2{
	pinmux = <&iomuxc_gpio_b0_00_gpio2_io00>,
		<&iomuxc_gpio_b0_01_gpio2_io01>,
		<&iomuxc_gpio_b0_02_gpio2_io02>,
		<&iomuxc_gpio_b0_03_gpio2_io03>,
		<&iomuxc_gpio_b0_04_gpio2_io04>,
		<&iomuxc_gpio_b0_05_gpio2_io05>,
		<&iomuxc_gpio_b0_06_gpio2_io06>,
		<&iomuxc_gpio_b0_07_gpio2_io07>,
		<&iomuxc_gpio_b0_08_gpio2_io08>,
		<&iomuxc_gpio_b0_09_gpio2_io09>,
		<&iomuxc_gpio_b0_10_gpio2_io10>,
		<&iomuxc_gpio_b0_11_gpio2_io11>,
		<&iomuxc_gpio_b0_12_gpio2_io12>,
		<&iomuxc_gpio_b0_13_gpio2_io13>,
		<&iomuxc_gpio_b0_14_gpio2_io14>,
		<&iomuxc_gpio_b0_15_gpio2_io15>,
		<&iomuxc_gpio_b1_00_gpio2_io16>,
		<&iomuxc_gpio_b1_01_gpio2_io17>,
		<&iomuxc_gpio_b1_02_gpio2_io18>,
		<&iomuxc_gpio_b1_03_gpio2_io19>,
		<&iomuxc_gpio_b1_04_gpio2_io20>,
		<&iomuxc_gpio_b1_05_gpio2_io21>,
		<&iomuxc_gpio_b1_06_gpio2_io22>,
		<&iomuxc_gpio_b1_07_gpio2_io23>,
		<&iomuxc_gpio_b1_08_gpio2_io24>,
		<&iomuxc_gpio_b1_09_gpio2_io25>,
		<&iomuxc_gpio_b1_10_gpio2_io26>,
		<&iomuxc_gpio_b1_11_gpio2_io27>,
		<&iomuxc_gpio_b1_12_gpio2_io28>,
		<&iomuxc_gpio_b1_13_gpio2_io29>,
		<&iomuxc_gpio_b1_14_gpio2_io30>,
		<&iomuxc_gpio_b1_15_gpio2_io31>;
};

&gpio3{
	pinmux = <&iomuxc_gpio_sd_b1_00_gpio3_io00>,
		<&iomuxc_gpio_sd_b1_01_gpio3_io01>,
		<&iomuxc_gpio_sd_b1_02_gpio3_io02>,
		<&iomuxc_gpio_sd_b1_03_gpio3_io03>,
		<&iomuxc_gpio_sd_b1_04_gpio3_io04>,
		<&iomuxc_gpio_sd_b1_05_gpio3_io05>,
		<&iomuxc_gpio_sd_b1_06_gpio3_io06>,
		<&iomuxc_gpio_sd_b1_07_gpio3_io07>,
		<&iomuxc_gpio_sd_b1_08_gpio3_io08>,
		<&iomuxc_gpio_sd_b1_09_gpio3_io09>,
		<&iomuxc_gpio_sd_b1_10_gpio3_io10>,
		<&iomuxc_gpio_sd_b1_11_gpio3_io11>,
		<&iomuxc_gpio_sd_b0_00_gpio3_io12>,
		<&iomuxc_gpio_sd_b0_01_gpio3_io13>,
		<&iomuxc_gpio_sd_b0_02_gpio3_io14>,
		<&iomuxc_gpio_sd_b0_03_gpio3_io15>,
		<&iomuxc_gpio_sd_b0_04_gpio3_io16>,
		<&iomuxc_gpio_sd_b0_05_gpio3_io17>,
		<&iomuxc_gpio_emc_32_gpio3_io18>,
		<&iomuxc_gpio_emc_33_gpio3_io19>,
		<&iomuxc_gpio_emc_34_gpio3_io20>,
		<&iomuxc_gpio_emc_35_gpio3_io21>,
		<&iomuxc_gpio_emc_36_gpio3_io22>,
		<&iomuxc_gpio_emc_37_gpio3_io23>,
		<&iomuxc_gpio_emc_38_gpio3_io24>,
		<&iomuxc_gpio_emc_39_gpio3_io25>,
		<&iomuxc_gpio_emc_40_gpio3_io26>,
		<&iomuxc_gpio_emc_41_gpio3_io27>;
};

&gpio4{
	pinmux = <&iomuxc_gpio_emc_00_gpio4_io00>,
		<&iomuxc_gpio_emc_01_gpio4_io01>,
		<&iomuxc_gpio_emc_02_gpio4_io02>,
		<&iomuxc_gpio_emc_03_gpio4_io03>,
		<&iomuxc_gpio_emc_04_gpio4_io04>,
		<&iomuxc_gpio_emc_05_gpio4_io05>,
		<&iomuxc_gpio_emc_06_gpio4_io06>,
		<&iomuxc_gpio_emc_07_gpio4_io07>,
		<&iomuxc_gpio_emc_08_gpio4_io08>,
		<&iomuxc_gpio_emc_09_gpio4_io09>,
		<&iomuxc_gpio_emc_10_gpio4_io10>,
		<&iomuxc_gpio_emc_11_gpio4_io11>,
		<&iomuxc_gpio_emc_12_gpio4_io12>,
		<&iomuxc_gpio_emc_13_gpio4_io13>,
		<&iomuxc_gpio_emc_14_gpio4_io14>,
		<&iomuxc_gpio_emc_15_gpio4_io15>,
		<&iomuxc_gpio_emc_16_gpio4_io16>,
		<&iomuxc_gpio_emc_17_gpio4_io17>,
		<&iomuxc_gpio_emc_18_gpio4_io18>,
		<&iomuxc_gpio_emc_19_gpio4_io19>,
		<&iomuxc_gpio_emc_20_gpio4_io20>,
		<&iomuxc_gpio_emc_21_gpio4_io21>,
		<&iomuxc_gpio_emc_22_gpio4_io22>,
		<&iomuxc_gpio_emc_23_gpio4_io23>,
		<&iomuxc_gpio_emc_24_gpio4_io24>,
		<&iomuxc_gpio_emc_25_gpio4_io25>,
		<&iomuxc_gpio_emc_26_gpio4_io26>,
		<&iomuxc_gpio_emc_27_gpio4_io27>,
		<&iomuxc_gpio_emc_28_gpio4_io28>,
		<&iomuxc_gpio_emc_29_gpio4_io29>,
		<&iomuxc_gpio_emc_30_gpio4_io30>,
		<&iomuxc_gpio_emc_31_gpio4_io31>;
};

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

&gpio6{
	pinmux = <&iomuxc_gpio_ad_b0_00_gpio6_io00>,
		<&iomuxc_gpio_ad_b0_01_gpio6_io01>,
		<&iomuxc_gpio_ad_b0_02_gpio6_io02>,
		<&iomuxc_gpio_ad_b0_03_gpio6_io03>,
		<&iomuxc_gpio_ad_b0_04_gpio6_io04>,
		<&iomuxc_gpio_ad_b0_05_gpio6_io05>,
		<&iomuxc_gpio_ad_b0_06_gpio6_io06>,
		<&iomuxc_gpio_ad_b0_07_gpio6_io07>,
		<&iomuxc_gpio_ad_b0_08_gpio6_io08>,
		<&iomuxc_gpio_ad_b0_09_gpio6_io09>,
		<&iomuxc_gpio_ad_b0_10_gpio6_io10>,
		<&iomuxc_gpio_ad_b0_11_gpio6_io11>,
		<&iomuxc_gpio_ad_b0_12_gpio6_io12>,
		<&iomuxc_gpio_ad_b0_13_gpio6_io13>,
		<&iomuxc_gpio_ad_b0_14_gpio6_io14>,
		<&iomuxc_gpio_ad_b0_15_gpio6_io15>,
		<&iomuxc_gpio_ad_b1_00_gpio6_io16>,
		<&iomuxc_gpio_ad_b1_01_gpio6_io17>,
		<&iomuxc_gpio_ad_b1_02_gpio6_io18>,
		<&iomuxc_gpio_ad_b1_03_gpio6_io19>,
		<&iomuxc_gpio_ad_b1_04_gpio6_io20>,
		<&iomuxc_gpio_ad_b1_05_gpio6_io21>,
		<&iomuxc_gpio_ad_b1_06_gpio6_io22>,
		<&iomuxc_gpio_ad_b1_07_gpio6_io23>,
		<&iomuxc_gpio_ad_b1_08_gpio6_io24>,
		<&iomuxc_gpio_ad_b1_09_gpio6_io25>,
		<&iomuxc_gpio_ad_b1_10_gpio6_io26>,
		<&iomuxc_gpio_ad_b1_11_gpio6_io27>,
		<&iomuxc_gpio_ad_b1_12_gpio6_io28>,
		<&iomuxc_gpio_ad_b1_13_gpio6_io29>,
		<&iomuxc_gpio_ad_b1_14_gpio6_io30>,
		<&iomuxc_gpio_ad_b1_15_gpio6_io31>;
};

&gpio7{
	pinmux = <&iomuxc_gpio_b0_00_gpio7_io00>,
		<&iomuxc_gpio_b0_01_gpio7_io01>,
		<&iomuxc_gpio_b0_02_gpio7_io02>,
		<&iomuxc_gpio_b0_03_gpio7_io03>,
		<&iomuxc_gpio_b0_04_gpio7_io04>,
		<&iomuxc_gpio_b0_05_gpio7_io05>,
		<&iomuxc_gpio_b0_06_gpio7_io06>,
		<&iomuxc_gpio_b0_07_gpio7_io07>,
		<&iomuxc_gpio_b0_08_gpio7_io08>,
		<&iomuxc_gpio_b0_09_gpio7_io09>,
		<&iomuxc_gpio_b0_10_gpio7_io10>,
		<&iomuxc_gpio_b0_11_gpio7_io11>,
		<&iomuxc_gpio_b0_12_gpio7_io12>,
		<&iomuxc_gpio_b0_13_gpio7_io13>,
		<&iomuxc_gpio_b0_14_gpio7_io14>,
		<&iomuxc_gpio_b0_15_gpio7_io15>,
		<&iomuxc_gpio_b1_00_gpio7_io16>,
		<&iomuxc_gpio_b1_01_gpio7_io17>,
		<&iomuxc_gpio_b1_02_gpio7_io18>,
		<&iomuxc_gpio_b1_03_gpio7_io19>,
		<&iomuxc_gpio_b1_04_gpio7_io20>,
		<&iomuxc_gpio_b1_05_gpio7_io21>,
		<&iomuxc_gpio_b1_06_gpio7_io22>,
		<&iomuxc_gpio_b1_07_gpio7_io23>,
		<&iomuxc_gpio_b1_08_gpio7_io24>,
		<&iomuxc_gpio_b1_09_gpio7_io25>,
		<&iomuxc_gpio_b1_10_gpio7_io26>,
		<&iomuxc_gpio_b1_11_gpio7_io27>,
		<&iomuxc_gpio_b1_12_gpio7_io28>,
		<&iomuxc_gpio_b1_13_gpio7_io29>,
		<&iomuxc_gpio_b1_14_gpio7_io30>,
		<&iomuxc_gpio_b1_15_gpio7_io31>;
};

&gpio8{
	pinmux = <&iomuxc_gpio_sd_b1_00_gpio8_io00>,
		<&iomuxc_gpio_sd_b1_01_gpio8_io01>,
		<&iomuxc_gpio_sd_b1_02_gpio8_io02>,
		<&iomuxc_gpio_sd_b1_03_gpio8_io03>,
		<&iomuxc_gpio_sd_b1_04_gpio8_io04>,
		<&iomuxc_gpio_sd_b1_05_gpio8_io05>,
		<&iomuxc_gpio_sd_b1_06_gpio8_io06>,
		<&iomuxc_gpio_sd_b1_07_gpio8_io07>,
		<&iomuxc_gpio_sd_b1_08_gpio8_io08>,
		<&iomuxc_gpio_sd_b1_09_gpio8_io09>,
		<&iomuxc_gpio_sd_b1_10_gpio8_io10>,
		<&iomuxc_gpio_sd_b1_11_gpio8_io11>,
		<&iomuxc_gpio_sd_b0_00_gpio8_io12>,
		<&iomuxc_gpio_sd_b0_01_gpio8_io13>,
		<&iomuxc_gpio_sd_b0_02_gpio8_io14>,
		<&iomuxc_gpio_sd_b0_03_gpio8_io15>,
		<&iomuxc_gpio_sd_b0_04_gpio8_io16>,
		<&iomuxc_gpio_sd_b0_05_gpio8_io17>,
		<&iomuxc_gpio_emc_32_gpio8_io18>,
		<&iomuxc_gpio_emc_33_gpio8_io19>,
		<&iomuxc_gpio_emc_34_gpio8_io20>,
		<&iomuxc_gpio_emc_35_gpio8_io21>,
		<&iomuxc_gpio_emc_36_gpio8_io22>,
		<&iomuxc_gpio_emc_37_gpio8_io23>,
		<&iomuxc_gpio_emc_38_gpio8_io24>,
		<&iomuxc_gpio_emc_39_gpio8_io25>,
		<&iomuxc_gpio_emc_40_gpio8_io26>,
		<&iomuxc_gpio_emc_41_gpio8_io27>;
};

&gpio9{
	pinmux = <&iomuxc_gpio_emc_00_gpio9_io00>,
		<&iomuxc_gpio_emc_01_gpio9_io01>,
		<&iomuxc_gpio_emc_02_gpio9_io02>,
		<&iomuxc_gpio_emc_03_gpio9_io03>,
		<&iomuxc_gpio_emc_04_gpio9_io04>,
		<&iomuxc_gpio_emc_05_gpio9_io05>,
		<&iomuxc_gpio_emc_06_gpio9_io06>,
		<&iomuxc_gpio_emc_07_gpio9_io07>,
		<&iomuxc_gpio_emc_08_gpio9_io08>,
		<&iomuxc_gpio_emc_09_gpio9_io09>,
		<&iomuxc_gpio_emc_10_gpio9_io10>,
		<&iomuxc_gpio_emc_11_gpio9_io11>,
		<&iomuxc_gpio_emc_12_gpio9_io12>,
		<&iomuxc_gpio_emc_13_gpio9_io13>,
		<&iomuxc_gpio_emc_14_gpio9_io14>,
		<&iomuxc_gpio_emc_15_gpio9_io15>,
		<&iomuxc_gpio_emc_16_gpio9_io16>,
		<&iomuxc_gpio_emc_17_gpio9_io17>,
		<&iomuxc_gpio_emc_18_gpio9_io18>,
		<&iomuxc_gpio_emc_19_gpio9_io19>,
		<&iomuxc_gpio_emc_20_gpio9_io20>,
		<&iomuxc_gpio_emc_21_gpio9_io21>,
		<&iomuxc_gpio_emc_22_gpio9_io22>,
		<&iomuxc_gpio_emc_23_gpio9_io23>,
		<&iomuxc_gpio_emc_24_gpio9_io24>,
		<&iomuxc_gpio_emc_25_gpio9_io25>,
		<&iomuxc_gpio_emc_26_gpio9_io26>,
		<&iomuxc_gpio_emc_27_gpio9_io27>,
		<&iomuxc_gpio_emc_28_gpio9_io28>,
		<&iomuxc_gpio_emc_29_gpio9_io29>,
		<&iomuxc_gpio_emc_30_gpio9_io30>,
		<&iomuxc_gpio_emc_31_gpio9_io31>;
};
