Commit 4543e286 authored by Andrejs Cainikovs's avatar Andrejs Cainikovs Committed by Vignesh Raghavendra
Browse files

arm64: dts: ti: verdin-am62: add support for Verdin USB1 interface



Add support for Verdin USB1 interface, implements role switch
functionality using "gpio-usb-b-connector", VBUS is also now
controlled with "regulator-fixed" using a standard GPIO.

Signed-off-by: default avatarAndrejs Cainikovs <andrejs.cainikovs@toradex.com>
Reviewed-by: default avatarFrancesco Dolcini <francesco.dolcini@toradex.com>
Link: https://lore.kernel.org/r/20240209130106.38739-1-andrejs.cainikovs@gmail.com


Signed-off-by: default avatarVignesh Raghavendra <vigneshr@ti.com>
parent c094c536
Loading
Loading
Loading
Loading
+44 −11
Original line number Diff line number Diff line
@@ -42,6 +42,22 @@ aliases {
		usb1 = &usb1;
	};

	connector {
		compatible = "gpio-usb-b-connector", "usb-b-connector";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_usb0_id>;
		id-gpios = <&main_gpio1 19 GPIO_ACTIVE_HIGH>;
		label = "USB_1";
		self-powered;
		vbus-supply = <&reg_usb0_vbus>;

		port {
			usb_dr_connector: endpoint {
				remote-endpoint = <&usb0_ep>;
			};
		};
	};

	verdin_gpio_keys: gpio-keys {
		compatible = "gpio-keys";
		pinctrl-names = "default";
@@ -151,6 +167,18 @@ reg_sdhc1_vqmmc: regulator-sdhci1-vqmmc {
		vin-supply = <&reg_sd_3v3_1v8>;
	};

	reg_usb0_vbus: regulator-usb0-vbus {
		compatible = "regulator-fixed";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_usb0_en>;
		enable-active-high;
		/* Verdin USB_1_EN (SODIMM 155) */
		gpio = <&main_gpio1 50 GPIO_ACTIVE_HIGH>;
		regulator-max-microvolt = <5000000>;
		regulator-min-microvolt = <5000000>;
		regulator-name = "USB_1_EN";
	};

	reserved-memory {
		#address-cells = <2>;
		#size-cells = <2>;
@@ -436,6 +464,13 @@ AM62X_IOPAD(0x0244, PIN_INPUT_PULLUP, 7) /* (C17) MMC1_SDWP.GPIO1_49 */ /* SODIM
		>;
	};

	/* Verdin USB_1_EN */
	pinctrl_usb0_en: main-gpio1-50-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0254, PIN_INPUT, 7) /* (C20) USB0_DRVVBUS.GPIO1_50 */ /* SODIMM 155 */
		>;
	};

	/* On-module I2C - PMIC_I2C */
	pinctrl_i2c0: main-i2c0-default-pins {
		pinctrl-single,pins = <
@@ -660,13 +695,6 @@ AM62X_IOPAD(0x0038, PIN_OUTPUT, 5) /* (E24) OSPI0_CSn3.UART5_TXD */ /*
		>;
	};

	/* Verdin USB_1 */
	pinctrl_usb0: main-usb0-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0254, PIN_OUTPUT, 0) /* (C20) USB0_DRVVBUS */ /* SODIMM 155 */
		>;
	};

	/* Verdin USB_2 */
	pinctrl_usb1: main-usb1-default-pins {
		pinctrl-single,pins = <
@@ -1013,7 +1041,7 @@ &main_gpio1 {
		"",
		"",
		"SODIMM_17",
		"", /* 50 */
		"SODIMM_155", /* 50 */
		"",
		"",
		"",
@@ -1428,11 +1456,16 @@ &usbss0 {
	status = "disabled";
};

/* TODO: role swich using ID pin */
&usb0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb0_id>;
	adp-disable;
	usb-role-switch;
	status = "disabled";

	port {
		usb0_ep: endpoint {
			remote-endpoint = <&usb_dr_connector>;
		};
	};
};

/* Verdin USB_2 */