#include <dt-bindings/mfd/max77620.h>

#include "tegra210.dtsi"

/ {
	model = "NVIDIA Jetson TX1";
	compatible = "nvidia,p2180", "nvidia,tegra210";

	aliases {
		rtc0 = "/i2c@7000d000/pmic@3c";
		rtc1 = "/rtc@7000e000";
		serial0 = &uarta;
	};

	chosen {
		stdout-path = "serial0:115200n8";
	};

	memory {
		device_type = "memory";
		reg = <0x0 0x80000000 0x1 0x0>;
	};

	gpu@57000000 {
		vdd-supply = <&vdd_gpu>;
	};

	/* debug port */
	serial@70006000 {
		status = "okay";
	};

	i2c@7000d000 {
		status = "okay";
		clock-frequency = <400000>;

		pmic: pmic@3c {
			compatible = "maxim,max77620";
			reg = <0x3c>;
			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;

			#interrupt-cells = <2>;
			interrupt-controller;

			#gpio-cells = <2>;
			gpio-controller;

			pinctrl-names = "default";
			pinctrl-0 = <&max77620_default>;

			max77620_default: pinmux {
				gpio0 {
					pins = "gpio0";
					function = "gpio";
				};

				gpio1 {
					pins = "gpio1";
					function = "fps-out";
					drive-push-pull = <1>;
					maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
					maxim,active-fps-power-up-slot = <7>;
					maxim,active-fps-power-down-slot = <0>;
				};

				gpio2_3 {
					pins = "gpio2", "gpio3";
					function = "fps-out";
					drive-open-drain = <1>;
					maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
				};

				gpio4 {
					pins = "gpio4";
					function = "32k-out1";
				};

				gpio5_6_7 {
					pins = "gpio5", "gpio6", "gpio7";
					function = "gpio";
					drive-push-pull = <1>;
				};
			};

			fps {
				fps0 {
					maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
					maxim,suspend-fps-time-period-us = <1280>;
				};

				fps1 {
					maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN1>;
					maxim,suspend-fps-time-period-us = <1280>;
				};

				fps2 {
					maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
				};
			};

			regulators {
				in-ldo0-1-supply = <&vdd_pre>;
				in-ldo7-8-supply = <&vdd_pre>;
				in-sd3-supply = <&vdd_5v0_sys>;

				vdd_soc: sd0 {
					regulator-name = "VDD_SOC";
					regulator-min-microvolt = <600000>;
					regulator-max-microvolt = <1400000>;
					regulator-always-on;
					regulator-boot-on;

					regulator-enable-ramp-delay = <146>;
					regulator-ramp-delay = <27500>;

					maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
				};

				vdd_ddr: sd1 {
					regulator-name = "VDD_DDR_1V1_PMIC";
					regulator-always-on;
					regulator-boot-on;

					regulator-enable-ramp-delay = <130>;
					regulator-ramp-delay = <27500>;

					maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
				};

				vdd_pre: sd2 {
					regulator-name = "VDD_PRE_REG_1V35";
					regulator-min-microvolt = <1350000>;
					regulator-max-microvolt = <1350000>;

					regulator-enable-ramp-delay = <176>;
					regulator-ramp-delay = <27500>;

					maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
				};

				vdd_1v8: sd3 {
					regulator-name = "VDD_1V8";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
					regulator-always-on;
					regulator-boot-on;

					regulator-enable-ramp-delay = <242>;
					regulator-ramp-delay = <27500>;

					maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
				};

				vdd_sys_1v2: ldo0 {
					regulator-name = "AVDD_SYS_1V2";
					regulator-min-microvolt = <1200000>;
					regulator-max-microvolt = <1200000>;
					regulator-always-on;
					regulator-boot-on;

					regulator-enable-ramp-delay = <26>;
					regulator-ramp-delay = <100000>;

					maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
				};

				vdd_pex_1v05: ldo1 {
					regulator-name = "VDD_PEX_1V05";
					regulator-min-microvolt = <1050000>;
					regulator-max-microvolt = <1050000>;

					regulator-enable-ramp-delay = <22>;
					regulator-ramp-delay = <100000>;

					maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
				};

				vddio_sdmmc: ldo2 {
					regulator-name = "VDDIO_SDMMC";
					/*
					 * Technically this supply should have
					 * a supported range from 1.8 - 3.3 V.
					 * However, that would cause the SDHCI
					 * driver to request 2.7 V upon access
					 * and that in turn will cause traffic
					 * to be broken. Leave it at 3.3 V for
					 * now.
					 */
					regulator-min-microvolt = <3300000>;
					regulator-max-microvolt = <3300000>;
					regulator-always-on;
					regulator-boot-on;

					regulator-enable-ramp-delay = <62>;
					regulator-ramp-delay = <100000>;

					maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
				};

				vdd_cam_hv: ldo3 {
					regulator-name = "VDD_CAM_HV";
					regulator-min-microvolt = <2800000>;
					regulator-max-microvolt = <2800000>;

					regulator-enable-ramp-delay = <50>;
					regulator-ramp-delay = <100000>;

					maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
				};

				vdd_rtc: ldo4 {
					regulator-name = "VDD_RTC";
					regulator-min-microvolt = <850000>;
					regulator-max-microvolt = <850000>;
					regulator-always-on;
					regulator-boot-on;

					regulator-enable-ramp-delay = <22>;
					regulator-ramp-delay = <100000>;

					maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
				};

				vdd_ts_hv: ldo5 {
					regulator-name = "VDD_TS_HV";
					regulator-min-microvolt = <3300000>;
					regulator-max-microvolt = <3300000>;

					regulator-enable-ramp-delay = <62>;
					regulator-ramp-delay = <100000>;

					maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
				};

				vdd_ts: ldo6 {
					regulator-name = "VDD_TS_1V8";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;

					regulator-enable-ramp-delay = <36>;
					regulator-ramp-delay = <100000>;

					maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
					maxim,active-fps-power-up-slot = <7>;
					maxim,active-fps-power-down-slot = <0>;
				};

				avdd_1v05_pll: ldo7 {
					regulator-name = "AVDD_1V05_PLL";
					regulator-min-microvolt = <1050000>;
					regulator-max-microvolt = <1050000>;
					regulator-always-on;
					regulator-boot-on;

					regulator-enable-ramp-delay = <24>;
					regulator-ramp-delay = <100000>;

					maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
				};

				avdd_1v05: ldo8 {
					regulator-name = "AVDD_SATA_HDMI_DP_1V05";
					regulator-min-microvolt = <1050000>;
					regulator-max-microvolt = <1050000>;

					regulator-enable-ramp-delay = <22>;
					regulator-ramp-delay = <100000>;

					maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
				};
			};
		};
	};

	pmc@7000e400 {
		nvidia,invert-interrupt;
	};

	/* eMMC */
	sdhci@700b0600 {
		status = "okay";
		bus-width = <8>;
		non-removable;
	};

	clocks {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <0>;

		clk32k_in: clock@0 {
			compatible = "fixed-clock";
			reg = <0>;
			#clock-cells = <0>;
			clock-frequency = <32768>;
		};
	};

	regulators {
		vdd_gpu: regulator@100 {
			compatible = "pwm-regulator";
			reg = <100>;
			pwms = <&pwm 1 4880>;
			regulator-name = "VDD_GPU";
			regulator-min-microvolt = <710000>;
			regulator-max-microvolt = <1320000>;
			enable-gpios = <&pmic 6 GPIO_ACTIVE_HIGH>;
			regulator-ramp-delay = <80>;
			regulator-enable-ramp-delay = <1000>;
		};
	};
};
