/dts-v1/;

#include "tegra30.dtsi"

/ {
	model = "Toradex Colibri T30";
	compatible = "toradex,colibri_t30", "nvidia,tegra30";

	aliases {
		i2c0 = "/i2c@7000d000";
		i2c1 = "/i2c@7000c000";
		i2c2 = "/i2c@7000c700";
		sdhci0 = "/sdhci@78000600";
		sdhci1 = "/sdhci@78000200";
		usb0 = "/usb@7d000000";
		usb1 = "/usb@7d004000"; /* on module only, for ASIX */
		usb2 = "/usb@7d008000";
	};

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

	/* GEN1_I2C: I2C_SDA/SCL on SODIMM pin 194/196 (e.g. RTC on carrier
	   board) */
	i2c@7000c000 {
		status = "okay";
		clock-frequency = <100000>;
	};

	/* GEN2_I2C: unused */

	/* CAM_I2C: unused */

	/* DDC_CLOCK/DATA on X3 pin 15/16 (e.g. display EDID) */
	i2c@7000c700 {
		status = "okay";
		clock-frequency = <100000>;
	};

	/* PWR_I2C: power I2C to audio codec, PMIC, temperature sensor and
	   touch screen controller */
	i2c@7000d000 {
		status = "okay";
		clock-frequency = <100000>;
	};

	/* SPI1: Colibri SSP */
	spi@7000d400 {
		status = "okay";
		spi-max-frequency = <25000000>;
	};

	sdhci@78000200 {
		status = "okay";
		bus-width = <4>;
		cd-gpios = <&gpio 23 1>; /* PC7, MMCD */
	};

	sdhci@78000600 {
		status = "okay";
		bus-width = <8>;
		non-removable;
	};

	/* EHCI instance 0: USB1_DP/N -> USBC_P/N */
	usb@7d000000 {
		status = "okay";
		dr_mode = "peripheral";
	};

	/* EHCI instance 1: USB2_DP/N -> AX88772B */
	usb@7d004000 {
		status = "okay";
		phy_type = "utmi";
		nvidia,vbus-gpio = <&gpio 234 0>;	/* PDD2, VBUS_LAN */
	};

	/* EHCI instance 2: USB3_DP/N -> USBH_P/N */
	usb@7d008000 {
		status = "okay";
		nvidia,vbus-gpio = <&gpio 178 1>;	/* PW2, USBH_PEN */
	};
};
