// SPDX-License-Identifier: GPL-2.0
/*
 * Digi International's ConnectCore 6UL System-On-Module device tree source
 *
 * Copyright 2018 Digi International, Inc.
 *
 */

/ {
	memory@80000000 {
		device_type = "memory";
		reg = <0x80000000 0>; /* will be filled by U-Boot */
	};

	reserved-memory {
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

		linux,cma {
			compatible = "shared-dma-pool";
			reusable;
			size = <0x4000000>;
			linux,cma-default;
		};
	};
};

&adc1 {
	vref-supply = <&vdda_adc_3v3>;
};

&gpmi {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_gpmi_nand>;
	status = "okay";
};

&i2c1 {
	clock-frequency = <100000>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2c1>;
	status = "okay";

	pfuze3000: pmic@8 {
		compatible = "fsl,pfuze3000";
		reg = <0x08>;

		regulators {
			int_3v3: sw1a {
				regulator-min-microvolt = <700000>;
				regulator-max-microvolt = <3300000>;
				regulator-ramp-delay = <6250>;
				regulator-boot-on;
				regulator-always-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vdd_arm_soc_in: sw1b {
				regulator-min-microvolt = <700000>;
				regulator-max-microvolt = <1475000>;
				regulator-ramp-delay = <6250>;
				regulator-boot-on;
				regulator-always-on;

				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <925000>;
				};
			};

			ext_3v3: sw2 {
				regulator-min-microvolt = <2500000>;
				regulator-max-microvolt = <3300000>;
				regulator-ramp-delay = <6250>;
				regulator-always-on;
				regulator-boot-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vcc_ddr3: sw3 {
				regulator-min-microvolt = <900000>;
				regulator-max-microvolt = <1650000>;
				regulator-always-on;
				regulator-boot-on;

				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <1300000>;
				};
			};

			swbst_reg: swbst {
				regulator-min-microvolt = <5000000>;
				regulator-max-microvolt = <5150000>;
			};

			vdd_snvs_3v3: vsnvs {
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <3000000>;
				regulator-boot-on;
				regulator-always-on;
			};

			vrefddr: vrefddr {
				regulator-boot-on;
				regulator-always-on;
			};

			vdda_adc_3v3: vldo1 {
				compatible = "regulator-fixed";
				regulator-name = "vref-adc-3v3";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo2_ext: vldo2 {
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1550000>;
			};

			vdda_wlan: vccsd {
				regulator-min-microvolt = <2850000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
				regulator-boot-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vdd_high_in: v33 {
				regulator-min-microvolt = <2850000>;
				regulator-max-microvolt = <3300000>;
				regulator-boot-on;
				regulator-always-on;
			};

			ldo3_int: vldo3 {
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
			};

			ldo4_ext: vldo4 {
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
			};

			vcoin_chg: vcoin {
				regulator-min-microvolt = <2500000>;
				regulator-max-microvolt = <3300000>;
			};
		};
	};
};

/* UART1 (Bluetooth) */
&uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart1>;
	uart-has-rtscts;
	status = "okay";
};

/* USDHC1 (Wireless) */
&usdhc1 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_wifibt_ctrl>;
	pinctrl-1 = <&pinctrl_usdhc1_sleep &pinctrl_wifibt_ctrl_sleep>;
	non-removable;
	no-1-8-v;
	bus-width = <4>;
	status = "okay";
};

&iomuxc {
	pinctrl_gpmi_nand: gpmigrp {
		fsl,pins = <
			MX6UL_PAD_NAND_CE0_B__RAWNAND_CE0_B	0xb0b1
			MX6UL_PAD_NAND_RE_B__RAWNAND_RE_B	0xb0b1
			MX6UL_PAD_NAND_WE_B__RAWNAND_WE_B	0xb0b1
			MX6UL_PAD_NAND_WP_B__RAWNAND_WP_B	0xb0b1
			MX6UL_PAD_NAND_ALE__RAWNAND_ALE		0xb0b1
			MX6UL_PAD_NAND_CLE__RAWNAND_CLE		0xb0b1
			MX6UL_PAD_NAND_DATA00__RAWNAND_DATA00	0xb0b1
			MX6UL_PAD_NAND_DATA01__RAWNAND_DATA01	0xb0b1
			MX6UL_PAD_NAND_DATA02__RAWNAND_DATA02	0xb0b1
			MX6UL_PAD_NAND_DATA03__RAWNAND_DATA03	0xb0b1
			MX6UL_PAD_NAND_DATA04__RAWNAND_DATA04	0xb0b1
			MX6UL_PAD_NAND_DATA05__RAWNAND_DATA05	0xb0b1
			MX6UL_PAD_NAND_DATA06__RAWNAND_DATA06	0xb0b1
			MX6UL_PAD_NAND_DATA07__RAWNAND_DATA07	0xb0b1
			MX6UL_PAD_NAND_READY_B__RAWNAND_READY_B	0xb0b1
		>;
	};

	pinctrl_i2c1: i2c1grp {
		fsl,pins = <
			MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x4001b8b0
			MX6UL_PAD_UART4_RX_DATA__I2C1_SDA 0x4001b8b0
		>;
	};

	pinctrl_uart1: uart1grp {
		fsl,pins = <
			MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX   0x1b0b1
			MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX   0x1b0b1
			MX6UL_PAD_UART1_RTS_B__UART1_DCE_RTS    0x1b0b1
			MX6UL_PAD_UART1_CTS_B__UART1_DCE_CTS    0x1b0b1
		>;
	};

	pinctrl_usdhc1: usdhc1grp {
		fsl,pins = <
			MX6UL_PAD_SD1_CMD__USDHC1_CMD           0x17059
			MX6UL_PAD_SD1_CLK__USDHC1_CLK           0x17051
			MX6UL_PAD_SD1_DATA0__USDHC1_DATA0       0x17059
			MX6UL_PAD_SD1_DATA1__USDHC1_DATA1       0x17059
			MX6UL_PAD_SD1_DATA2__USDHC1_DATA2       0x17059
			MX6UL_PAD_SD1_DATA3__USDHC1_DATA3       0x17059
		>;
	};

	pinctrl_usdhc1_sleep: usdhc1grp-sleep {
		fsl,pins = <
			MX6UL_PAD_SD1_CMD__GPIO2_IO16           0x3000
			MX6UL_PAD_SD1_CLK__GPIO2_IO17           0x3000
			MX6UL_PAD_SD1_DATA0__GPIO2_IO18         0x3000
			MX6UL_PAD_SD1_DATA1__GPIO2_IO19         0x3000
			MX6UL_PAD_SD1_DATA2__GPIO2_IO20         0x3000
			MX6UL_PAD_SD1_DATA3__GPIO2_IO21         0x3000
		>;
	};

	pinctrl_wifibt_ctrl: wifibt-ctrl-grp {
		fsl,pins = <
			MX6UL_PAD_SNVS_TAMPER0__GPIO5_IO00      0x08a0
			MX6UL_PAD_SNVS_TAMPER9__GPIO5_IO09      0x08a0
		>;
	};

	pinctrl_wifibt_ctrl_sleep: wifibt-ctrl-grp-sleep {
		fsl,pins = <
			MX6UL_PAD_SNVS_TAMPER0__GPIO5_IO00      0x3000
			MX6UL_PAD_SNVS_TAMPER9__GPIO5_IO09      0x3000
		>;
	};
};

&reg_arm {
	vin-supply = <&vdd_arm_soc_in>;
	regulator-allow-bypass;
};

&reg_soc {
	vin-supply = <&vdd_arm_soc_in>;
	regulator-allow-bypass;
};
