diff mbox series

[U-Boot,1/1] colibri_imx7: migrate usb to driver model

Message ID 20190411145532.477-1-igor.opaniuk@toradex.com
State Superseded
Delegated to: Stefano Babic
Headers show
Series [U-Boot,1/1] colibri_imx7: migrate usb to driver model | expand

Commit Message

Igor Opaniuk April 11, 2019, 2:55 p.m. UTC
Migrate USB to Driver Model (CONFIG_DM_USB=y).

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
---
 arch/arm/dts/imx7-colibri-emmc.dts    | 37 +++++++++++++++++++++++++
 arch/arm/dts/imx7-colibri-rawnand.dts | 40 +++++++++++++++++++++++++++
 configs/colibri_imx7_defconfig        |  1 +
 configs/colibri_imx7_emmc_defconfig   |  1 +
 4 files changed, 79 insertions(+)

Comments

Marcel Ziswiler April 12, 2019, 11:26 a.m. UTC | #1
Hi Igor

Just some minor nitpicks below.

On Thu, 2019-04-11 at 16:55 +0200, Igor Opaniuk wrote:
> Migrate USB to Driver Model (CONFIG_DM_USB=y).
> 
> Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

> ---
>  arch/arm/dts/imx7-colibri-emmc.dts    | 37 +++++++++++++++++++++++++
>  arch/arm/dts/imx7-colibri-rawnand.dts | 40
> +++++++++++++++++++++++++++
>  configs/colibri_imx7_defconfig        |  1 +
>  configs/colibri_imx7_emmc_defconfig   |  1 +
>  4 files changed, 79 insertions(+)
> 
> diff --git a/arch/arm/dts/imx7-colibri-emmc.dts b/arch/arm/dts/imx7-
> colibri-emmc.dts
> index efd600091d..a9f272a65e 100644
> --- a/arch/arm/dts/imx7-colibri-emmc.dts
> +++ b/arch/arm/dts/imx7-colibri-emmc.dts
> @@ -13,11 +13,30 @@
>  	aliases {
>  		mmc0 = &usdhc3;
>  		mmc1 = &usdhc1;
> +		usb0 = &usbotg1; /* required for ums */
>  	};
>  
>  	chosen {
>  		stdout-path = &uart1;
>  	};
> +
> +	reg_5v0: regulator-5v0 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "5V";
> +		regulator-min-microvolt = <5000000>;
> +		regulator-max-microvolt = <5000000>;
> +	};
> +
> +	reg_usbh_vbus: regulator-usbh-vbus {
> +		compatible = "regulator-fixed";
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&pinctrl_usbh_reg>;
> +		regulator-name = "VCC_USB[1-4]";
> +		regulator-min-microvolt = <5000000>;
> +		regulator-max-microvolt = <5000000>;
> +		gpio = <&gpio4 7 GPIO_ACTIVE_LOW>;
> +		vin-supply = <&reg_5v0>;
> +	};
>  };
>  
>  &usdhc3 {
> @@ -44,4 +63,22 @@
>  			MX7D_PAD_SD3_STROBE__SD3_STROBE         0x19
>  		>;
>  	};
> +
> +	pinctrl_usbh_reg: gpio-usbh-vbus {
> +		fsl,pins = <
> +			MX7D_PAD_UART3_CTS_B__GPIO4_IO7	0x14
> +		>;
> +	};
> +};
> +
> +&usbotg2 {
> +	dr_mode = "host";
> +	vbus-supply = <&reg_usbh_vbus>;
> +	status = "okay";
> +};
> +
> +&usbotg1 {
> +	dr_mode = "host";
> +	vbus-supply = <&reg_usbh_vbus>;

That is actually not quite correct for Colibri. On Colibri the turning
on of the USB host power is actually done purely in hardware based on
the cable detect pin. You may also see this when looking at e.g. the
Colibri iMX6 device tree.

> +	status = "okay";
>  };
> diff --git a/arch/arm/dts/imx7-colibri-rawnand.dts
> b/arch/arm/dts/imx7-colibri-rawnand.dts
> index 4eb86fb011..e48e750a57 100644
> --- a/arch/arm/dts/imx7-colibri-rawnand.dts
> +++ b/arch/arm/dts/imx7-colibri-rawnand.dts
> @@ -13,6 +13,28 @@
>  	chosen {
>  		stdout-path = &uart1;
>  	};
> +
> +	aliases {
> +		usb0 = &usbotg1; /* required for ums */
> +	};
> +
> +	reg_5v0: regulator-5v0 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "5V";
> +		regulator-min-microvolt = <5000000>;
> +		regulator-max-microvolt = <5000000>;
> +	};
> +
> +	reg_usbh_vbus: regulator-usbh-vbus {
> +		compatible = "regulator-fixed";
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&pinctrl_usbh_reg>;
> +		regulator-name = "VCC_USB[1-4]";
> +		regulator-min-microvolt = <5000000>;
> +		regulator-max-microvolt = <5000000>;
> +		gpio = <&gpio4 7 GPIO_ACTIVE_LOW>;
> +		vin-supply = <&reg_5v0>;
> +	};
>  };
>  
>  &gpmi {
> @@ -43,4 +65,22 @@
>  			MX7D_PAD_SD3_DATA7__NAND_DATA07		0x71
>  		>;
>  	};
> +
> +	pinctrl_usbh_reg: gpio-usbh-vbus {
> +		fsl,pins = <
> +			MX7D_PAD_UART3_CTS_B__GPIO4_IO7	0x14
> +		>;
> +	};
> +};
> +
> +&usbotg2 {
> +	dr_mode = "host";
> +	vbus-supply = <&reg_usbh_vbus>;
> +	status = "okay";
> +};
> +
> +&usbotg1 {
> +	dr_mode = "host";
> +	vbus-supply = <&reg_usbh_vbus>;

Also drop the above as previously mentioned.

> +	status = "okay";
>  };
> diff --git a/configs/colibri_imx7_defconfig
> b/configs/colibri_imx7_defconfig
> index 7a52361a2a..43af825d5c 100644
> --- a/configs/colibri_imx7_defconfig
> +++ b/configs/colibri_imx7_defconfig
> @@ -62,6 +62,7 @@ CONFIG_PINCTRL=y
>  CONFIG_PINCTRL_IMX7=y
>  CONFIG_DM_PMIC=y
>  CONFIG_PMIC_RN5T567=y
> +CONFIG_DM_USB=y
>  CONFIG_USB=y
>  CONFIG_USB_EHCI_HCD=y
>  CONFIG_USB_GADGET=y
> diff --git a/configs/colibri_imx7_emmc_defconfig
> b/configs/colibri_imx7_emmc_defconfig
> index 5e2a204a88..beec2704c5 100644
> --- a/configs/colibri_imx7_emmc_defconfig
> +++ b/configs/colibri_imx7_emmc_defconfig
> @@ -64,3 +64,4 @@ CONFIG_USB_GADGET_DOWNLOAD=y
>  CONFIG_VIDEO=y
>  CONFIG_FAT_WRITE=y
>  CONFIG_OF_LIBFDT_OVERLAY=y
> +CONFIG_DM_USB=y

Cheers

Marcel
diff mbox series

Patch

diff --git a/arch/arm/dts/imx7-colibri-emmc.dts b/arch/arm/dts/imx7-colibri-emmc.dts
index efd600091d..a9f272a65e 100644
--- a/arch/arm/dts/imx7-colibri-emmc.dts
+++ b/arch/arm/dts/imx7-colibri-emmc.dts
@@ -13,11 +13,30 @@ 
 	aliases {
 		mmc0 = &usdhc3;
 		mmc1 = &usdhc1;
+		usb0 = &usbotg1; /* required for ums */
 	};
 
 	chosen {
 		stdout-path = &uart1;
 	};
+
+	reg_5v0: regulator-5v0 {
+		compatible = "regulator-fixed";
+		regulator-name = "5V";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+	};
+
+	reg_usbh_vbus: regulator-usbh-vbus {
+		compatible = "regulator-fixed";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_usbh_reg>;
+		regulator-name = "VCC_USB[1-4]";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpio = <&gpio4 7 GPIO_ACTIVE_LOW>;
+		vin-supply = <&reg_5v0>;
+	};
 };
 
 &usdhc3 {
@@ -44,4 +63,22 @@ 
 			MX7D_PAD_SD3_STROBE__SD3_STROBE         0x19
 		>;
 	};
+
+	pinctrl_usbh_reg: gpio-usbh-vbus {
+		fsl,pins = <
+			MX7D_PAD_UART3_CTS_B__GPIO4_IO7	0x14
+		>;
+	};
+};
+
+&usbotg2 {
+	dr_mode = "host";
+	vbus-supply = <&reg_usbh_vbus>;
+	status = "okay";
+};
+
+&usbotg1 {
+	dr_mode = "host";
+	vbus-supply = <&reg_usbh_vbus>;
+	status = "okay";
 };
diff --git a/arch/arm/dts/imx7-colibri-rawnand.dts b/arch/arm/dts/imx7-colibri-rawnand.dts
index 4eb86fb011..e48e750a57 100644
--- a/arch/arm/dts/imx7-colibri-rawnand.dts
+++ b/arch/arm/dts/imx7-colibri-rawnand.dts
@@ -13,6 +13,28 @@ 
 	chosen {
 		stdout-path = &uart1;
 	};
+
+	aliases {
+		usb0 = &usbotg1; /* required for ums */
+	};
+
+	reg_5v0: regulator-5v0 {
+		compatible = "regulator-fixed";
+		regulator-name = "5V";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+	};
+
+	reg_usbh_vbus: regulator-usbh-vbus {
+		compatible = "regulator-fixed";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_usbh_reg>;
+		regulator-name = "VCC_USB[1-4]";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpio = <&gpio4 7 GPIO_ACTIVE_LOW>;
+		vin-supply = <&reg_5v0>;
+	};
 };
 
 &gpmi {
@@ -43,4 +65,22 @@ 
 			MX7D_PAD_SD3_DATA7__NAND_DATA07		0x71
 		>;
 	};
+
+	pinctrl_usbh_reg: gpio-usbh-vbus {
+		fsl,pins = <
+			MX7D_PAD_UART3_CTS_B__GPIO4_IO7	0x14
+		>;
+	};
+};
+
+&usbotg2 {
+	dr_mode = "host";
+	vbus-supply = <&reg_usbh_vbus>;
+	status = "okay";
+};
+
+&usbotg1 {
+	dr_mode = "host";
+	vbus-supply = <&reg_usbh_vbus>;
+	status = "okay";
 };
diff --git a/configs/colibri_imx7_defconfig b/configs/colibri_imx7_defconfig
index 7a52361a2a..43af825d5c 100644
--- a/configs/colibri_imx7_defconfig
+++ b/configs/colibri_imx7_defconfig
@@ -62,6 +62,7 @@  CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX7=y
 CONFIG_DM_PMIC=y
 CONFIG_PMIC_RN5T567=y
+CONFIG_DM_USB=y
 CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_GADGET=y
diff --git a/configs/colibri_imx7_emmc_defconfig b/configs/colibri_imx7_emmc_defconfig
index 5e2a204a88..beec2704c5 100644
--- a/configs/colibri_imx7_emmc_defconfig
+++ b/configs/colibri_imx7_emmc_defconfig
@@ -64,3 +64,4 @@  CONFIG_USB_GADGET_DOWNLOAD=y
 CONFIG_VIDEO=y
 CONFIG_FAT_WRITE=y
 CONFIG_OF_LIBFDT_OVERLAY=y
+CONFIG_DM_USB=y