// SPDX-License-Identifier: GPL-2.0
/dts-v1/;

#include <dt-bindings/input/linux-event-codes.h>
#include <dt-bindings/input/gpio-keys.h>
#include <dt-bindings/mfd/max77620.h>

#include "tegra186.dtsi"

/ {
	model = "NVIDIA Jetson TX2 NX Developer Kit";
	compatible = "nvidia,p3509-0000+p3636-0001", "nvidia,tegra186";

	aliases {
		ethernet0 = "/ethernet@2490000";
		i2c0 = "/bpmp/i2c";
		i2c1 = "/i2c@3160000";
		i2c2 = "/i2c@c240000";
		i2c3 = "/i2c@3180000";
		i2c4 = "/i2c@3190000";
		i2c5 = "/i2c@31c0000";
		i2c6 = "/i2c@c250000";
		i2c7 = "/i2c@31e0000";
		mmc0 = "/mmc@3460000";
		serial0 = &uarta;
	};

	chosen {
		bootargs = "earlycon console=ttyS0,115200n8";
		stdout-path = "serial0:115200n8";
	};

	memory@80000000 {
		device_type = "memory";
		reg = <0x0 0x80000000 0x0 0x70000000>;
	};

	ethernet@2490000 {
		status = "okay";

		phy-reset-gpios = <&gpio_aon TEGRA186_AON_GPIO(AA, 6) GPIO_ACTIVE_LOW>;
		phy-handle = <&phy>;
		phy-mode = "rgmii-id";

		mdio {
			#address-cells = <1>;
			#size-cells = <0>;

			phy: ethernet-phy@0 {
				compatible = "ethernet-phy-ieee802.3-c22";
				reg = <0x0>;
				interrupt-parent = <&gpio_aon>;
				interrupts = <TEGRA186_AON_GPIO(AA, 7) IRQ_TYPE_LEVEL_LOW>;
				#phy-cells = <0>;
			};
		};
	};

	aconnect@2900000 {
		status = "okay";

		ahub@2900800 {
			status = "okay";

			i2s@2901000 {
				status = "okay";

				ports {
					#address-cells = <1>;
					#size-cells = <0>;

					port@0 {
						reg = <0>;

						i2s1_cif_ep: endpoint {
							remote-endpoint = <&xbar_i2s1_ep>;
						};
					};

					i2s1_port: port@1 {
						reg = <1>;

						i2s1_dap_ep: endpoint {
							dai-format = "i2s";
							/* Placeholder for external Codec */
						};
					};
				};
			};

			i2s@2901200 {
				status = "okay";

				ports {
					#address-cells = <1>;
					#size-cells = <0>;

					port@0 {
						reg = <0>;

						i2s3_cif_ep: endpoint {
							remote-endpoint = <&xbar_i2s3_ep>;
						};
					};

					i2s3_port: port@1 {
						reg = <1>;

						i2s3_dap_ep: endpoint {
							dai-format = "i2s";
							/* Placeholder for external Codec */
						};
					};
				};
			};

			dmic@2904000 {
				status = "okay";

				ports {
					#address-cells = <1>;
					#size-cells = <0>;

					port@0 {
						reg = <0>;

						dmic1_cif_ep: endpoint {
							remote-endpoint = <&xbar_dmic1_ep>;
						};
					};

					dmic1_port: port@1 {
						reg = <1>;

						dmic1_dap_ep: endpoint {
							/* Place holder for external Codec */
						};
					};
				};
			};

			dmic@2904100 {
				status = "okay";

				ports {
					#address-cells = <1>;
					#size-cells = <0>;

					port@0 {
						reg = <0>;

						dmic2_cif_ep: endpoint {
							remote-endpoint = <&xbar_dmic2_ep>;
						};
					};

					dmic2_port: port@1 {
						reg = <1>;

						dmic2_dap_ep: endpoint {
							/* Place holder for external Codec */
						};
					};
				};
			};

			admaif@290f000 {
				status = "okay";

				ports {
					#address-cells = <1>;
					#size-cells = <0>;

					admaif0_port: port@0 {
						reg = <0x0>;

						admaif0_ep: endpoint {
							remote-endpoint = <&xbar_admaif0_ep>;
						};
					};

					admaif1_port: port@1 {
						reg = <0x1>;

						admaif1_ep: endpoint {
							remote-endpoint = <&xbar_admaif1_ep>;
						};
					};

					admaif2_port: port@2 {
						reg = <0x2>;

						admaif2_ep: endpoint {
							remote-endpoint = <&xbar_admaif2_ep>;
						};
					};

					admaif3_port: port@3 {
						reg = <0x3>;

						admaif3_ep: endpoint {
							remote-endpoint = <&xbar_admaif3_ep>;
						};
					};

					admaif4_port: port@4 {
						reg = <0x4>;

						admaif4_ep: endpoint {
							remote-endpoint = <&xbar_admaif4_ep>;
						};
					};

					admaif5_port: port@5 {
						reg = <0x5>;

						admaif5_ep: endpoint {
							remote-endpoint = <&xbar_admaif5_ep>;
						};
					};

					admaif6_port: port@6 {
						reg = <0x6>;

						admaif6_ep: endpoint {
							remote-endpoint = <&xbar_admaif6_ep>;
						};
					};

					admaif7_port: port@7 {
						reg = <0x7>;

						admaif7_ep: endpoint {
							remote-endpoint = <&xbar_admaif7_ep>;
						};
					};

					admaif8_port: port@8 {
						reg = <0x8>;

						admaif8_ep: endpoint {
							remote-endpoint = <&xbar_admaif8_ep>;
						};
					};

					admaif9_port: port@9 {
						reg = <0x9>;

						admaif9_ep: endpoint {
							remote-endpoint = <&xbar_admaif9_ep>;
						};
					};

					admaif10_port: port@a {
						reg = <0xa>;

						admaif10_ep: endpoint {
							remote-endpoint = <&xbar_admaif10_ep>;
						};
					};

					admaif11_port: port@b {
						reg = <0xb>;

						admaif11_ep: endpoint {
							remote-endpoint = <&xbar_admaif11_ep>;
						};
					};

					admaif12_port: port@c {
						reg = <0xc>;

						admaif12_ep: endpoint {
							remote-endpoint = <&xbar_admaif12_ep>;
						};
					};

					admaif13_port: port@d {
						reg = <0xd>;

						admaif13_ep: endpoint {
							remote-endpoint = <&xbar_admaif13_ep>;
						};
					};

					admaif14_port: port@e {
						reg = <0xe>;

						admaif14_ep: endpoint {
							remote-endpoint = <&xbar_admaif14_ep>;
						};
					};

					admaif15_port: port@f {
						reg = <0xf>;

						admaif15_ep: endpoint {
							remote-endpoint = <&xbar_admaif15_ep>;
						};
					};

					admaif16_port: port@10 {
						reg = <0x10>;

						admaif16_ep: endpoint {
							remote-endpoint = <&xbar_admaif16_ep>;
						};
					};

					admaif17_port: port@11 {
						reg = <0x11>;

						admaif17_ep: endpoint {
							remote-endpoint = <&xbar_admaif17_ep>;
						};
					};

					admaif18_port: port@12 {
						reg = <0x12>;

						admaif18_ep: endpoint {
							remote-endpoint = <&xbar_admaif18_ep>;
						};
					};

					admaif19_port: port@13 {
						reg = <0x13>;

						admaif19_ep: endpoint {
							remote-endpoint = <&xbar_admaif19_ep>;
						};
					};
				};
			};

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@0 {
					reg = <0x0>;

					xbar_admaif0_ep: endpoint {
						remote-endpoint = <&admaif0_ep>;
					};
				};

				port@1 {
					reg = <0x1>;

					xbar_admaif1_ep: endpoint {
						remote-endpoint = <&admaif1_ep>;
					};
				};

				port@2 {
					reg = <0x2>;

					xbar_admaif2_ep: endpoint {
						remote-endpoint = <&admaif2_ep>;
					};
				};

				port@3 {
					reg = <0x3>;

					xbar_admaif3_ep: endpoint {
						remote-endpoint = <&admaif3_ep>;
					};
				};

				port@4 {
					reg = <0x4>;

					xbar_admaif4_ep: endpoint {
						remote-endpoint = <&admaif4_ep>;
					};
				};

				port@5 {
					reg = <0x5>;

					xbar_admaif5_ep: endpoint {
						remote-endpoint = <&admaif5_ep>;
					};
				};

				port@6 {
					reg = <0x6>;

					xbar_admaif6_ep: endpoint {
						remote-endpoint = <&admaif6_ep>;
					};
				};

				port@7 {
					reg = <0x7>;

					xbar_admaif7_ep: endpoint {
						remote-endpoint = <&admaif7_ep>;
					};
				};

				port@8 {
					reg = <0x8>;

					xbar_admaif8_ep: endpoint {
						remote-endpoint = <&admaif8_ep>;
					};
				};

				port@9 {
					reg = <0x9>;

					xbar_admaif9_ep: endpoint {
						remote-endpoint = <&admaif9_ep>;
					};
				};

				port@a {
					reg = <0xa>;

					xbar_admaif10_ep: endpoint {
						remote-endpoint = <&admaif10_ep>;
					};
				};

				port@b {
					reg = <0xb>;

					xbar_admaif11_ep: endpoint {
						remote-endpoint = <&admaif11_ep>;
					};
				};

				port@c {
					reg = <0xc>;

					xbar_admaif12_ep: endpoint {
						remote-endpoint = <&admaif12_ep>;
					};
				};

				port@d {
					reg = <0xd>;

					xbar_admaif13_ep: endpoint {
						remote-endpoint = <&admaif13_ep>;
					};
				};

				port@e {
					reg = <0xe>;

					xbar_admaif14_ep: endpoint {
						remote-endpoint = <&admaif14_ep>;
					};
				};

				port@f {
					reg = <0xf>;

					xbar_admaif15_ep: endpoint {
						remote-endpoint = <&admaif15_ep>;
					};
				};

				port@10 {
					reg = <0x10>;

					xbar_admaif16_ep: endpoint {
						remote-endpoint = <&admaif16_ep>;
					};
				};

				port@11 {
					reg = <0x11>;

					xbar_admaif17_ep: endpoint {
						remote-endpoint = <&admaif17_ep>;
					};
				};

				port@12 {
					reg = <0x12>;

					xbar_admaif18_ep: endpoint {
						remote-endpoint = <&admaif18_ep>;
					};
				};

				port@13 {
					reg = <0x13>;

					xbar_admaif19_ep: endpoint {
						remote-endpoint = <&admaif19_ep>;
					};
				};

				xbar_i2s1_port: port@14 {
					reg = <0x14>;

					xbar_i2s1_ep: endpoint {
						remote-endpoint = <&i2s1_cif_ep>;
					};
				};

				xbar_i2s3_port: port@16 {
					reg = <0x16>;

					xbar_i2s3_ep: endpoint {
						remote-endpoint = <&i2s3_cif_ep>;
					};
				};

				xbar_dmic1_port: port@1a {
					reg = <0x1a>;

					xbar_dmic1_ep: endpoint {
						remote-endpoint = <&dmic1_cif_ep>;
					};
				};

				xbar_dmic2_port: port@1b {
					reg = <0x1b>;

					xbar_dmic2_ep: endpoint {
						remote-endpoint = <&dmic2_cif_ep>;
					};
				};
			};
		};

		dma-controller@2930000 {
			status = "okay";
		};

		interrupt-controller@2a40000 {
			status = "okay";
		};
	};

	memory-controller@2c00000 {
		status = "okay";
	};

	timer@3010000 {
		status = "okay";
	};

	serial@3100000 {
		status = "okay";
	};

	i2c@3160000 {
		status = "okay";
	};

	i2c@3180000 {
		status = "okay";

		power-monitor@40 {
			compatible = "ti,ina3221";
			reg = <0x40>;
			#address-cells = <1>;
			#size-cells = <0>;

			input@0 {
				reg = <0>;
				label = "VDD_IN";
				shunt-resistor-micro-ohms = <5>;
			};

			input@1 {
				reg = <1>;
				label = "VDD_CPU_GPU";
				shunt-resistor-micro-ohms = <5>;
			};

			input@2 {
				reg = <2>;
				label = "VDD_SOC";
				shunt-resistor-micro-ohms = <5>;
			};
		};
	};

	ddc: i2c@3190000 {
		status = "okay";
	};

	i2c@31c0000 {
		status = "okay";
	};

	i2c@31e0000 {
		status = "okay";
	};

	/* SDMMC4 (eMMC) */
	mmc@3460000 {
		status = "okay";
		bus-width = <8>;
		non-removable;

		vqmmc-supply = <&vdd_1v8_ap>;
		vmmc-supply = <&vdd_3v3_sys>;
	};

	hda@3510000 {
		nvidia,model = "NVIDIA Jetson TX2 NX HDA";
		status = "okay";
	};

	padctl@3520000 {
		status = "okay";

		avdd-pll-erefeut-supply = <&vdd_1v8_pll>;
		avdd-usb-supply = <&vdd_3v3_sys>;
		vclamp-usb-supply = <&vdd_1v8>;
		vddio-hsic-supply = <&gnd>;

		pads {
			usb2 {
				status = "okay";

				lanes {
					micro_b: usb2-0 {
						nvidia,function = "xusb";
						status = "okay";
					};

					usb2-1 {
						nvidia,function = "xusb";
						status = "okay";
					};

					usb2-2 {
						nvidia,function = "xusb";
						status = "okay";
					};
				};
			};

			usb3 {
				status = "okay";

				lanes {
					usb3-1 {
						nvidia,function = "xusb";
						status = "okay";
					};
				};
			};
		};

		ports {
			usb2-0 {
				status = "okay";
				mode = "otg";
				vbus-supply = <&vdd_5v0_sys>;
				usb-role-switch;

				connector {
					compatible = "gpio-usb-b-connector",
						     "usb-b-connector";
					label = "micro-USB";
					type = "micro";
					vbus-gpios = <&gpio
						      TEGRA186_MAIN_GPIO(L, 4)
						      GPIO_ACTIVE_LOW>;
					id-gpios = <&pmic 0 GPIO_ACTIVE_HIGH>;
				};
			};

			usb2-1 {
				status = "okay";
				mode = "host";

				vbus-supply = <&vdd_5v0_sys>;
			};

			usb2-2 {
				status = "okay";
				mode = "host";

				vbus-supply = <&vdd_5v0_sys>;
			};

			usb3-1 {
				nvidia,usb2-companion = <1>;
				vbus-supply = <&vdd_5v0_sys>;
				status = "okay";
			};
		};
	};

	usb@3530000 {
		status = "okay";

		phys = <&{/padctl@3520000/pads/usb2/lanes/usb2-0}>,
		       <&{/padctl@3520000/pads/usb2/lanes/usb2-1}>,
		       <&{/padctl@3520000/pads/usb2/lanes/usb2-2}>,
		       <&{/padctl@3520000/pads/usb3/lanes/usb3-1}>;
		phy-names = "usb2-0", "usb2-1", "usb2-2", "usb3-1";
	};

	usb@3550000 {
		status = "okay";

		phys = <&micro_b>;
		phy-names = "usb2-0";
	};

	hsp@3c00000 {
		status = "okay";
	};

	i2c@c240000 {
		status = "okay";
	};

	i2c@c250000 {
		status = "okay";

		/* module ID EEPROM */
		eeprom@50 {
			compatible = "atmel,24c02";
			reg = <0x50>;

			label = "module";
			vcc-supply = <&vdd_1v8>;
			address-width = <8>;
			pagesize = <8>;
			size = <256>;
			read-only;
		};

		/* carrier board ID EEPROM */
		eeprom@57 {
			compatible = "atmel,24c02";
			reg = <0x57>;

			label = "system";
			vcc-supply = <&vdd_1v8>;
			address-width = <8>;
			pagesize = <8>;
			size = <256>;
			read-only;
		};
	};

	rtc@c2a0000 {
		status = "okay";
	};

	pwm@c340000 {
		status = "okay";
	};

	pmc@c360000 {
		nvidia,invert-interrupt;
	};

	pcie@10003000 {
		status = "okay";

		dvdd-pex-supply = <&vdd_pex>;
		hvdd-pex-pll-supply = <&vdd_1v8>;
		hvdd-pex-supply = <&vdd_1v8>;
		vddio-pexctl-aud-supply = <&vdd_1v8>;

		pci@1,0 {
			nvidia,num-lanes = <2>;
			status = "okay";
		};

		pci@2,0 {
			nvidia,num-lanes = <1>;
			status = "disabled";
		};

		pci@3,0 {
			nvidia,num-lanes = <1>;
			status = "okay";
		};
	};

	host1x@13e00000 {
		status = "okay";

		dpaux@15040000 {
			status = "okay";
		};

		display-hub@15200000 {
			status = "okay";
		};

		dsi@15300000 {
			status = "disabled";
		};

		/* DP */
		sor@15540000 {
			status = "okay";

			avdd-io-hdmi-dp-supply = <&vdd_hdmi_1v05>;
			vdd-hdmi-dp-pll-supply = <&vdd_1v8_ap>;

			nvidia,dpaux = <&dpaux>;
		};

		/* HDMI */
		sor@15580000 {
			status = "okay";

			avdd-io-hdmi-dp-supply = <&vdd_hdmi_1v05>;
			vdd-hdmi-dp-pll-supply = <&vdd_1v8_ap>;
			hdmi-supply = <&vdd_hdmi>;

			nvidia,ddc-i2c-bus = <&ddc>;
			nvidia,hpd-gpio = <&gpio TEGRA186_MAIN_GPIO(P, 1)
						 GPIO_ACTIVE_LOW>;
		};

		dpaux@155c0000 {
			status = "okay";
		};
	};

	gpu@17000000 {
		status = "okay";
	};

	bpmp {
		i2c {
			status = "okay";

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

				interrupt-parent = <&pmc>;
				interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
				#interrupt-cells = <2>;
				interrupt-controller;

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

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

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

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

					fps2 {
						maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
						maxim,shutdown-fps-time-period-us = <640>;
					};
				};

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

					gpio1 {
						pins = "gpio1";
						function = "fps-out";
						maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
					};

					gpio2 {
						pins = "gpio2";
						function = "fps-out";
						maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
					};

					gpio3 {
						pins = "gpio3";
						function = "fps-out";
						maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
					};

					gpio4 {
						pins = "gpio4";
						function = "32k-out1";
						drive-push-pull = <1>;
					};

					gpio5 {
						pins = "gpio5";
						function = "gpio";
						drive-push-pull = <0>;
					};

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

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

				regulators {
					in-sd0-supply = <&vdd_5v0_sys>;
					in-sd1-supply = <&vdd_5v0_sys>;
					in-sd2-supply = <&vdd_5v0_sys>;
					in-sd3-supply = <&vdd_5v0_sys>;

					in-ldo0-1-supply = <&vdd_5v0_sys>;
					in-ldo2-supply = <&vdd_5v0_sys>;
					in-ldo3-5-supply = <&vdd_5v0_sys>;
					in-ldo4-6-supply = <&vdd_1v8>;
					in-ldo7-8-supply = <&avdd_dsi_csi>;

					sd0 {
						regulator-name = "VDD_DDR_1V1_PMIC";
						regulator-min-microvolt = <1100000>;
						regulator-max-microvolt = <1100000>;
						regulator-always-on;
						regulator-boot-on;
					};

					avdd_dsi_csi: sd1 {
						regulator-name = "AVDD_DSI_CSI_1V2";
						regulator-min-microvolt = <1200000>;
						regulator-max-microvolt = <1200000>;
					};

					vdd_1v8: sd2 {
						regulator-name = "VDD_1V8";
						regulator-min-microvolt = <1800000>;
						regulator-max-microvolt = <1800000>;
					};

					vdd_3v3_sys: sd3 {
						regulator-name = "VDD_3V3_SYS";
						regulator-min-microvolt = <3300000>;
						regulator-max-microvolt = <3300000>;
					};

					vdd_1v8_pll: ldo0 {
						regulator-name = "VDD_1V8_AP_PLL";
						regulator-min-microvolt = <1800000>;
						regulator-max-microvolt = <1800000>;
					};

					ldo2 {
						regulator-name = "VDDIO_3V3_AOHV";
						regulator-min-microvolt = <3300000>;
						regulator-max-microvolt = <3300000>;
						regulator-always-on;
						regulator-boot-on;
					};

					vddio_sdmmc1: ldo3 {
						regulator-name = "VDDIO_SDMMC1_AP";
						regulator-min-microvolt = <1800000>;
						regulator-max-microvolt = <3300000>;
					};

					ldo4 {
						regulator-name = "VDD_RTC";
						regulator-min-microvolt = <1000000>;
						regulator-max-microvolt = <1000000>;
					};

					vddio_sdmmc3: ldo5 {
						regulator-name = "VDDIO_SDMMC3_AP";
						regulator-min-microvolt = <2800000>;
						regulator-max-microvolt = <2800000>;
					};

					vdd_hdmi_1v05: ldo7 {
						regulator-name = "VDD_HDMI_1V05";
						regulator-min-microvolt = <1050000>;
						regulator-max-microvolt = <1050000>;
					};

					vdd_pex: ldo8 {
						regulator-name = "VDD_PEX_1V05";
						regulator-min-microvolt = <1050000>;
						regulator-max-microvolt = <1050000>;
					};
				};
			};
		};
	};

	cpus {
		cpu@0 {
			enable-method = "psci";
		};

		cpu@1 {
			enable-method = "psci";
		};

		cpu@2 {
			enable-method = "psci";
		};

		cpu@3 {
			enable-method = "psci";
		};

		cpu@4 {
			enable-method = "psci";
		};

		cpu@5 {
			enable-method = "psci";
		};
	};

	gpio-keys {
		compatible = "gpio-keys";

		key-power {
			label = "Power";
			gpios = <&gpio_aon TEGRA186_AON_GPIO(FF, 0)
					   GPIO_ACTIVE_LOW>;
			linux,input-type = <EV_KEY>;
			linux,code = <KEY_POWER>;
			debounce-interval = <10>;
			wakeup-event-action = <EV_ACT_ASSERTED>;
			wakeup-source;
		};

		key-volume-down {
			label = "Volume Down";
			gpios = <&gpio_aon TEGRA186_AON_GPIO(FF, 2)
					   GPIO_ACTIVE_LOW>;
			linux,input-type = <EV_KEY>;
			linux,code = <KEY_VOLUMEDOWN>;
			debounce-interval = <10>;
		};

		key-volume-up {
			label = "Volume Up";
			gpios = <&gpio_aon TEGRA186_AON_GPIO(FF, 1)
					   GPIO_ACTIVE_LOW>;
			linux,input-type = <EV_KEY>;
			linux,code = <KEY_VOLUMEUP>;
			debounce-interval = <10>;
		};
	};

	psci {
		compatible = "arm,psci-1.0";
		status = "okay";
		method = "smc";
	};

	fan: pwm-fan {
		compatible = "pwm-fan";
		pwms = <&pwm4 0 45334>;

		cooling-levels = <0 64 128 255>;
		#cooling-cells = <2>;
	};

	gnd: regulator-gnd {
		compatible = "regulator-fixed";
		regulator-name = "GND";
		regulator-min-microvolt = <0>;
		regulator-max-microvolt = <0>;
		regulator-always-on;
		regulator-boot-on;
	};

	vdd_5v0_sys: regulator-vdd-5v0-sys {
		compatible = "regulator-fixed";
		regulator-name = "VDD_5V0_SYS";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		regulator-always-on;
		regulator-boot-on;
	};

	vdd_1v8_ap: regulator-vdd-1v8-ap {
		compatible = "regulator-fixed";
		regulator-name = "VDD_1V8_AP";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;

		gpio = <&pmic 1 GPIO_ACTIVE_HIGH>;
		enable-active-high;

		vin-supply = <&vdd_1v8>;
	};

	vdd_hdmi: regulator-vdd-hdmi {
		compatible = "regulator-fixed";
		regulator-name = "VDD_5V0_HDMI_CON";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;

		vin-supply = <&vdd_5v0_sys>;
	};

	sound {
		compatible = "nvidia,tegra186-audio-graph-card";
		status = "okay";

		dais = /* FE */
		       <&admaif0_port>, <&admaif1_port>, <&admaif2_port>, <&admaif3_port>,
		       <&admaif4_port>, <&admaif5_port>, <&admaif6_port>, <&admaif7_port>,
		       <&admaif8_port>, <&admaif9_port>, <&admaif10_port>, <&admaif11_port>,
		       <&admaif12_port>, <&admaif13_port>, <&admaif14_port>, <&admaif15_port>,
		       <&admaif16_port>, <&admaif17_port>, <&admaif18_port>, <&admaif19_port>,
		       /* Router */
		       <&xbar_i2s1_port>, <&xbar_i2s3_port>,
		       <&xbar_dmic1_port>, <&xbar_dmic2_port>,
		       /* I/O */
		       <&i2s1_port>, <&i2s3_port>,
		       <&dmic1_port>, <&dmic2_port>;

		label = "NVIDIA Jetson TX2 NX APE";
	};

	thermal-zones {
		cpu-thermal {
			polling-delay = <0>;
			polling-delay-passive = <500>;
			status = "okay";

			trips {
				cpu_trip_critical: critical {
					temperature = <96500>;
					hysteresis = <0>;
					type = "critical";
				};

				cpu_trip_hot: hot {
					temperature = <79000>;
					hysteresis = <2000>;
					type = "hot";
				};

				cpu_trip_active: active {
					temperature = <62000>;
					hysteresis = <2000>;
					type = "active";
				};

				cpu_trip_passive: passive {
					temperature = <45000>;
					hysteresis = <2000>;
					type = "passive";
				};
			};

			cooling-maps {
				cpu-critical {
					cooling-device = <&fan 3 3>;
					trip = <&cpu_trip_critical>;
				};

				cpu-hot {
					cooling-device = <&fan 2 2>;
					trip = <&cpu_trip_hot>;
				};

				cpu-active {
					cooling-device = <&fan 1 1>;
					trip = <&cpu_trip_active>;
				};

				cpu-passive {
					cooling-device = <&fan 0 0>;
					trip = <&cpu_trip_passive>;
				};
			};
		};

		aux-thermal {
			polling-delay = <0>;
			polling-delay-passive = <500>;
			status = "okay";

			trips {
				aux_alert0: critical {
					temperature = <90000>;
					hysteresis = <0>;
					type = "critical";
				};
			};
		};

		gpu-thermal {
			polling-delay = <0>;
			polling-delay-passive = <500>;
			status = "okay";

			trips {
				gpu_alert0: critical {
					temperature = <99000>;
					hysteresis = <0>;
					type = "critical";
				};
			};
		};
	};
};
