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

#include "dm814x.dtsi"

/ {
	model = "HP t410 Smart Zero Client";
	compatible = "hp,t410", "ti,dm8148", "ti,dm814";

	memory@80000000 {
		device_type = "memory";
		reg = <0x80000000 0x40000000>;	/* 1 GB */
	};

	/* gpio9 seems to control USB VBUS regulator and/or hub power */
	usb_power: regulator@9 {
		compatible = "regulator-fixed";
		regulator-name = "usb_power";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		regulator-always-on;
	};

	vmmcsd_fixed: fixedregulator0 {
		compatible = "regulator-fixed";
		regulator-name = "vmmcsd_fixed";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	};
};

&cpsw_emac0 {
	phy-handle = <&ethphy0>;
	phy-mode = "rgmii-id";
};

&cpsw_emac1 {
	phy-handle = <&ethphy1>;
	phy-mode = "rgmii-id";
};

&davinci_mdio {
	ethphy0: ethernet-phy@0 {
		reg = <0>;
	};

	ethphy1: ethernet-phy@1 {
		reg = <1>;
	};
};

&mmc1 {
	status = "disabled";
};

&mmc2 {
	status = "disabled";
};

&mmc3 {
	pinctrl-names = "default";
	pinctrl-0 = <&sd2_pins>;
	vmmc-supply = <&vmmcsd_fixed>;
	bus-width = <8>;
	dmas = <&edma_xbar 8 0 1	/* use SDTXEVT1 instead of MCASP0TX */
		&edma_xbar 9 0 2>;	/* use SDRXEVT1 instead of MCASP0RX */
	dma-names = "tx", "rx";
	non-removable;
};

&pincntl {
	sd2_pins: sd2-pins {
		pinctrl-single,pins = <
			DM814X_IOPAD(0x09c0, PIN_INPUT_PULLUP | 0x1)	/* SD2_DAT[7] */
			DM814X_IOPAD(0x09c4, PIN_INPUT_PULLUP | 0x1)	/* SD2_DAT[6] */
			DM814X_IOPAD(0x09c8, PIN_INPUT_PULLUP | 0x1)	/* SD2_DAT[5] */
			DM814X_IOPAD(0x09cc, PIN_INPUT_PULLUP | 0x1)	/* SD2_DAT[4] */
			DM814X_IOPAD(0x09d0, PIN_INPUT_PULLUP | 0x1)	/* SD2_DAT[3] */
			DM814X_IOPAD(0x09d4, PIN_INPUT_PULLUP | 0x1)	/* SD2_DAT[2] */
			DM814X_IOPAD(0x09d8, PIN_INPUT_PULLUP | 0x1)	/* SD2_DAT[1] */
			DM814X_IOPAD(0x09dc, PIN_INPUT_PULLUP | 0x1)	/* SD2_DAT[0] */
			DM814X_IOPAD(0x09e0, PIN_INPUT | 0x1)		/* SD2_CLK */
			DM814X_IOPAD(0x09f4, PIN_INPUT_PULLUP | 0x2)	/* SD2_CMD */
			DM814X_IOPAD(0x0920, PIN_INPUT | 0x40)	/* SD2_SDCD */
			>;
	};

	usb0_pins: usb0-pins {
		pinctrl-single,pins = <
			DM814X_IOPAD(0x0c34, PIN_OUTPUT | 0x1)	/* USB0_DRVVBUS */
			>;
	};

	usb1_pins: usb1-pins {
		pinctrl-single,pins = <
			DM814X_IOPAD(0x0834, PIN_OUTPUT | 0x80)	/* USB1_DRVVBUS */
			>;
	};
};

&usb0 {
	pinctrl-names = "default";
	pinctrl-0 = <&usb0_pins>;
	dr_mode = "host";
};

&usb1 {
	pinctrl-names = "default";
	pinctrl-0 = <&usb1_pins>;
	dr_mode = "host";
};
