From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932138AbcFBH1H (ORCPT ); Thu, 2 Jun 2016 03:27:07 -0400 Received: from mailout4.w1.samsung.com ([210.118.77.14]:43925 "EHLO mailout4.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751293AbcFBH1D (ORCPT ); Thu, 2 Jun 2016 03:27:03 -0400 X-AuditID: cbfec7f5-f792a6d000001302-e5-574fdfc32e6b Subject: Re: [PATCH v3 12/12] ARM: dts: exynos: Fix LAN and HUB after bootloader initialization on Odroid U3 To: Peter Chen References: <1464768141-25420-1-git-send-email-k.kozlowski@samsung.com> <1464768141-25420-13-git-send-email-k.kozlowski@samsung.com> <20160601115929.GA16740@shlinux2> Cc: Ulf Hansson , Sebastian Reichel , Dmitry Eremin-Solenikov , David Woodhouse , Javier Martinez Canillas , linux-kernel@vger.kernel.org, linux-mmc@vger.kernel.org, linux-pm@vger.kernel.or, Alan Stern , linux-usb@vger.kernel.org, Rob Herring , Pawel Moll , Mark Rutland , Ian Campbell , Kumar Gala , Kukjin Kim , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, Greg Kroah-Hartman , Bartlomiej Zolnierkiewicz From: Krzysztof Kozlowski X-Enigmail-Draft-Status: N1110 Message-id: <574FDFC1.5050209@samsung.com> Date: Thu, 02 Jun 2016 09:26:57 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-version: 1.0 In-reply-to: <20160601115929.GA16740@shlinux2> Content-type: text/plain; charset=windows-1252 Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA02Ra0hTYRjHe89tZ9LquDTfrDRGMxpqswJfoySw4ESQfgiMimrqSUU3ZXOW fUnIIa68jlBX2cVN3ZyIU9RsJc6RkOUF8xJ5wVto3pAyzMDaaUR++z3/5/fn+fDQuHic8KeT VRmcWqVIlVBeRPdm18eQzonoWHnuu52ooayeRCUzKzh66uohUbHFgKPCxeckuldZTyH9oJ1C PV8tAC0u2TC0MBeGCqcXcGSfHiLRQNtjCrl+FwJU3l9LoLLeNxh6UaXDkXm4H0NFpXUE0r12 CVD3qwxU9KuPQl11saf9WFuFDbADBfkY+9I4JmAt1d8ptrFGxtqteRQ7OuSg2PYnNgHbaLrL NhW6hUdj64AtaLIC1rVWSrDf7AExOy57nUzgUpMzOfWRyBteSYNtZjJ9KvD2pMVBZoPcPXog pCFzHNoGR4CHd8O+8XpKD7xoMWMG0LJhwj3DFwDXW2cEvLWLUcHmB7XuBU37MEFwufKCx7EC 2DffivEDzlgo2PdjCucLFHMMNlabKM+JAJh/v4TgyyJGBlft5/iYYKRwOG8O49mXuQSNLet/ WcR4w3XDOMGzkAmFuuY5wFdxN0/0y/gYZwJho20JLwLexi0N43/LuMV6BnAr8OW08emauETl 0VCNQqnRqhJD49OUduD5+lorML894QQMDSTbRduCo2PFpCJTk6V0AkjjEh9R1ag7EiUosu5w 6rTram0qp3GCvTQh8ROVt61cFDOJigwuhePSOfW/LUYL/bMBSZvCgztahs5HOCQbw0P75s05 zibVhSsp4fJbmGozZtVPThAb0gZ5XHLvhuBT1sOCCJlhZvlU+cGfs9e0y1dbhSOHN637gyI/ T2I5IfqbNUXG4vEzBlw9IKqafv9BuqoJimlHDsNShqSqRairONB5ViQlRzvKomajDln8tRJC k6QIk+FqjeIPRgsSSfECAAA= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 06/01/2016 01:59 PM, Peter Chen wrote: > On Wed, Jun 01, 2016 at 10:02:21AM +0200, Krzysztof Kozlowski wrote: >> On Odroid U3 (Exynos4412-based) board if USB was initialized by >> bootloader (in U-Boot "usb start" before tftpboot), the HUB (usb3503) >> and LAN (smsc95xx) after after successful probing were not visible in the >> system ("lsusb"). >> >> In such case the devices had to be fully reset before configuring. >> Reset by GPIO (called RESET_N pin) and by RESET field in STCD register >> in usb3503 HUB are not sufficient. Instead full reset has to be done by >> disabling and enabling regulator. >> >> Signed-off-by: Krzysztof Kozlowski >> --- >> arch/arm/boot/dts/exynos4412-odroidu3.dts | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/arch/arm/boot/dts/exynos4412-odroidu3.dts b/arch/arm/boot/dts/exynos4412-odroidu3.dts >> index 31cdc036fda4..23e30e4609df 100644 >> --- a/arch/arm/boot/dts/exynos4412-odroidu3.dts >> +++ b/arch/arm/boot/dts/exynos4412-odroidu3.dts >> @@ -99,11 +99,15 @@ >> clock-names = "refclk"; >> clocks = <&pmu_system_controller 0>; >> refclk-frequency = <24000000>; >> + >> + power-sequence; >> + ext-supply = <&buck8_reg>; >> }; >> >> &ehci { >> port@1 { >> status = "okay"; >> + usb-pwrseq = <&usb3503>; >> }; >> port@2 { >> status = "okay"; >> -- >> 1.9.1 >> > > The hub is under the port1, you may need to describe it > under the port@1, see below: > Documentation/devicetree/bindings/usb/usb-device.txt My configuration is a little bit different than yours. In my case I have a USB hub (usb3503) which is also a a i2c device because it has to be configured through I2C. I can add the power-sequence properties to the I2C node or as you pointed under port using the vendor-product-id compatible. In the first option: not many USB changes are needed. It works for me, at least as a proof of concept. The second solution: currently it does not work because the USB device does not get enumerated before the power sequence begins. It would be great if you could implement this on USB side. > > If I get Rob's comments correctly, you may need to consider > below MMC and USB device tree description together, it seems > hard for USB to use pwrseq driver, sorry for confusing you. > > If rob can accept below USB device description, we have to > do it under USB. In future, if there is some suitable framework, > we can move it. > > 1. MMC device: > usdhc3_pwrseq: usdhc3_pwrseq { > compatible = "mmc-pwrseq-simple"; > reset-gpios = <&gpio4 5 GPIO_ACTIVE_LOW>, /* WL_REG_ON */ > <&gpio4 7 GPIO_ACTIVE_LOW>, /* WL_HOSTWAKE */ > <&gpio3 25 GPIO_ACTIVE_LOW>, /* BT_REG_ON */ > <&gpio3 27 GPIO_ACTIVE_LOW>, /* BT_HOSTWAKE */ > <&gpio4 4 GPIO_ACTIVE_LOW>, /* BT_WAKE */ > <&gpio4 6 GPIO_ACTIVE_LOW>; /* BT_RST_N */ > }; > > &usdhc3 { > pinctrl-names = "default", "state_100mhz", "state_200mhz"; > pinctrl-0 = <&pinctrl_usdhc3>; > pinctrl-1 = <&pinctrl_usdhc3_100mhz>; > pinctrl-2 = <&pinctrl_usdhc3_200mhz>; > bus-width = <4>; > non-removable; > keep-power-in-suspend; > wakeup-source; > mmc-pwrseq = <&usdhc3_pwrseq>; > status = "okay"; > }; > > 2. USB device > > &usbotg1 { > vbus-supply = <®_usb_otg1_vbus>; > pinctrl-names = "default"; > pinctrl-0 = <&pinctrl_usb_otg1_id>; > status = "okay"; > > #address-cells = <1>; > #size-cells = <0>; > hub: genesys@1 { > compatible = "usb5e3,608"; > reg = <1>; > reset-gpios = <&gpio4 5 GPIO_ACTIVE_LOW>; /* hub reset pin */ > reset-duration-us = <10>; > clocks = <&clks IMX6SX_CLK_CKO>; > }; Yes, that looks like what Rob wanted... Do you plan to work on it? The power sequence is needed before device is enumerated. BTW, if you would like to play with the patchset, it is here: repo: https://github.com/krzk/linux branch: for-next/odroid-u3-usb3503-lan-boot-fixes-v3 Best regards, Krzysztof