summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/tegra3_usb_phy.c
AgeCommit message (Collapse)Author
2015-10-23colibri_t30: fix usb host device detection with colibri otg driverMarcel Ziswiler
Turns out the Tegra 3 USB PHY driver had some hard coded dependency on the Tegra OTG driver but we usually just use our own OTG driver purely relying on a cable detect GPIO to determine USB device vs. host role.
2015-09-26apalis/colibri_t30: usb: fix performance regressionMarcel Ziswiler
Unfortunately that utmi_phy_remotewake_detected() function gets called one too many times even quite continuously during data transfers and putting an mdelay() in there has a rather adverse effect on the overall system performance including of course degrading USB transfer speeds. Moving the system lock-up avoidance hack further down into the if clause improves the performance again as this typically is only ever evaluated once upon actually plugging something in behind a hub. This fixes a performance regression introduced by the following commit: apalis/colibri_t30: usb: fix low-speed issue hack 629b91fa046df5213ed3312d2e2b8683e6bdd70c
2014-12-18apalis/colibri_t30: usb: fix low-speed issue hackMarcel Ziswiler
Certain low-speed USB devices were not detected correctly when plugged into a running system.
2012-09-05arm: tegra: phy: enable wakeup event for usb phyRakesh Bodla
If usb device already connected, should disable WKCN in USB2D_PORTSC1, and enable WKDS in USB2D_PORTSC1, during utmi phy power off. All the wakeup resource should be cleared after the event happened. Bug 1020021 Bug 1028429 Change-Id: I807ca76d4392318adf6adb808cb2bf290cd0d60c Signed-off-by: Rakesh Bodla <rbodla@nvidia.com> Reviewed-on: http://git-master/r/128547 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
2012-08-21ARM: tegra: usb_phy: Fix HSIC resume codeVinod Atyam
1) During remote wakeup resume, no need to keep 25 msec delay after resume bit is cleared. Updated the code now. 2) PSPD bit in HOSTPC register is read only, but bymistake it is getting set in our code. Corrected the code now. 3) During AP resume, no need to set RUN bit 2 times. Corrected the code to do it once. Bug 1028940 Bug 1024592 Change-Id: I872886f4cef6058d3de9d488321aa5b0925fd62a Signed-off-by: Vinod Atyam <vatyam@nvidia.com> Reviewed-on: http://git-master/r/124051 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
2012-08-16ARM: tegra: usb: handle device connect in lp0Krishna Yarlagadda
When a otg cable is connected along with device during lp0 system will wakeup but might not complete device enumeration before going back to lp0. In this case we have to handle pmc disable. Bug 1024456 Change-Id: I9acbf434e58776c3d58de1b28d442d6b20b256d0 Signed-off-by: Krishna Yarlagadda <kyarlagadda@nvidia.com> Reviewed-on: http://git-master/r/123383 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
2012-08-10arm: tegra: usb_phy: remote-wake for LS devicesSuresh Mangipudi
Remote wakeup was not working for low speed devices. Remote wakeup interrupt is now handled properly for low speed devices. Bug 1029608 Change-Id: If224f30ccc6275b97d50120fe04d9aa53d495e2e Signed-off-by: Suresh Mangipudi <smangipudi@nvidia.com> Reviewed-on: http://git-master/r/122367 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
2012-08-10arm: tegra: usbphy: disable PLLU clockSuresh Mangipudi
Disable the MASTER_BLASTER clock for the null phy interface when usb_bus is suspended. Bug 992861 Change-Id: I86ff559148f9a128ee48bbea2564493f4286b420 Signed-off-by: Suresh Mangipudi <smangipudi@nvidia.com> Reviewed-on: http://git-master/r/120006 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
2012-08-09arm: tegra: usb_phy: remove duplicate codeRakesh Bodla
Remove duplicate code. Change-Id: I9c9979f489d93c458f5e494fbb69008b89578b8d Signed-off-by: Rakesh Bodla <rbodla@nvidia.com> Reviewed-on: http://git-master/r/121988 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
2012-08-02arm: tegra: usb_phy: Hard code HSIC phy paramsVenu Byravarasu
As HSIC does not have any customizable phy params, hard coding them in the phy driver. bug 1024260 Change-Id: I64d5c7f91b077134b54b0aadaf44f129ceaa99e5 Signed-off-by: Venu Byravarasu <vbyravarasu@nvidia.com> Reviewed-on: http://git-master/r/119299 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
2012-08-01ARM: tegra: usb: Clear pmc wake alarmKrishna Yarlagadda
After a pmc wake, walk pointer and wake alarm should be cleared. Currently wake alarm is cleared only in case of remote wakeup. Clearing wake alarm for all cases of pmc wake. Bug 1024496 Change-Id: I5374d792fe1564fd4a04a48d9fa9de2c93cc94dd Signed-off-by: Krishna Yarlagadda <kyarlagadda@nvidia.com> Reviewed-on: http://git-master/r/119619 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
2012-08-01ARM: tegra: usb_phy: Fix fake remote wakeupAbhishek Shukla
1. Move hsic line value detectors power on config to the beginning of the sequence before enabling interrupt on hsic line wake event. This avoids any fake event caused by any glitches introduced by this switching. 2. Clear any prior interrupts for the line wake event before enabling interrupt for the line wake event. This also clears any fake events generated because of any glitches. 3. Fix wake event type to NONE in the disable routine during resume interrupt. Bug 1019619 Bug 1018416 Signed-off-by: Abhishek Shukla <abhisheks@nvidia.com> Change-Id: I934fa2514897c4c23bc62ff8365f6fffe7915bd0 Reviewed-on: http://git-master/r/116699 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
2012-07-31arm: tegra: usb_phy: add close operation for hsicVinayak Pane
hsic phy_power_off keeps hsic bus in suspend state through PMC interface. The bus should go in reset state at phy_close otherwise the connected device will not enumerate after ehci-remove. Bug 1003141 Change-Id: Ifa91d06a3c10221e74de67c68ea1f930d843d19f Signed-off-by: Vinayak Pane <vpane@nvidia.com>
2012-07-31ARM: tegra: usb_phy: Fix remotewakeup resume codeVinod Atyam
1) After remote wakeup resume code is not waiting until RESUME and SUSPEND bit cleared. Instead it is waiting for RESUME bit to get set. This is updated properly now. 2) During resume, no need to depend on port speed to take HSIC in high speed. Bug 1019619 Change-Id: I3d06255da65045bdf5c6a4deb10a3c6f96aef661 Signed-off-by: Vinod Atyam <vatyam@nvidia.com> Reviewed-on: http://git-master/r/118582 Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com> Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
2012-07-30arm: tegra3: usb_phy: Add support for HSIC wakeupVenu Byravarasu
As part of this patch following changes are made: 1. HSIC regulator enable/disable is added 2. HSIC phy close is added. bug 1010916 Change-Id: I4607a3ac13417a201b62708c6fef5d1117dfdcc5 Signed-off-by: Venu Byravarasu <vbyravarasu@nvidia.com> Reviewed-on: http://git-master/r/116984 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
2012-07-24arm: tegra: usb: Fix First SOF corruption.Suresh Mangipudi
In ULPI phy first SOF after Reset may be corrupt. Fixing this issue. Bug 1012500 Change-Id: I45ee1b4c8e0a29298c94813030d22291b79e417b Signed-off-by: Suresh Mangipudi <smangipudi@nvidia.com> Reviewed-on: http://git-master/r/117635 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
2012-07-23ARM: tegra: phy: avoid illegal access to registersRakesh Bodla
Adding the conditions to prevent illegal register access. Bug 993380 Bug 1006579 Reviewed-on: http://git-master/r/113138 (cherry picked from commit a3c026a229bbce614d7f40319bada1d7bf42942d) Change-Id: I0d8e6c20aab04aa43ae484dc8ceb6fcb2c27d151 Reviewed-on: http://git-master/r/117256 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Rakesh Bodla <rbodla@nvidia.com> Tested-by: Rakesh Bodla <rbodla@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
2012-07-19arm: tegra3: usb_phy: HSIC rail consumes 4mA in suspendsrinivas
In auto-suspend, removed power downs for HSIC from PADS_CFG1 register. Bug 1011912 Change-Id: I646c196ef9b822ae8d9e12a0f918507fcdd16f0b Signed-off-by: srinivas <sthaduvai@nvidia.com> Reviewed-on: http://git-master/r/116044 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
2012-07-16arm: tegra: usb_phy: fix hsic suspend issue on xmmVinayak Pane
XMM modem fails at auto-suspend on hsic. Fixing this issue by enabling PMC sleepwalk code conditionally and only at phy-on and phy-off routines. Bug 991709 Signed-off-by: Vinayak Pane <vpane@nvidia.com> Reviewed-on: http://git-master/r/109324 (cherry picked from commit 100f818a16ce97411a98ddb0e2c5c9e73a9e654a) Change-Id: If6f92b8b36f856fa633cb411ac20dbe6e862890c Reviewed-on: http://git-master/r/115612 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
2012-07-16arm: tegra: usb_phy: utmip remote wakeup issueVenu Byravarasu
Do not clear sleep walk pointer for utmip port after remote wakeup is detected. This should be cleared after control is given to USB master from PMC. Bug 999208 Change-Id: I9f498521989c6421f0043dc1b4364591d4907423 Signed-off-by: Venu Byravarasu <vbyravarasu@nvidia.com> (cherry picked from commit e4dbecfe031cbacd4f22bbbcdf971ab11ad81ee8) Reviewed-on: http://git-master/r/112938 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
2012-07-09arm: tegra3: usb_phy: Fix warning message for lp1 resumePreetham Chandru
When the system resumes from lp1 for usb wake event we are seeing the below warning message: usb_phy_bringup_host_controller: timeout waiting for PORT_SUSPEND The above warning message are seen only for lp1 resume and not for lp0 resume. This is happening only for lp1 resume because in usb_phy_bringup_host_controller(), the port is suspended only if we are not resuming from remote wakeup, in case of lp0 remote_wake flag is set to true but not in case of lp1. This is because in lp1, pmc is not responsible for waking the system but it's the flow controller and hence UTMIP_WALK_PTR_VAL(inst) will return 0 due to this remote wakeup flag was getting reset to false. Bug 985396 Signed-off-by: Preetham Chandru R <pchandru@nvidia.com> Change-Id: I67fcf21d77cbc627315164b6e1c4f27b0b9ae2c3 Reviewed-on: http://git-master/r/110064 Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com>
2012-07-05arm: tegra: usb: remove unnecessary codeVenu Byravarasu
As Wake alarm and Walk PTR are being set in two places for UTMI, removing it from one place. Change-Id: Ic9c1998f83cb214af52dd0a161f16470386c816e Signed-off-by: Venu Byravarasu <vbyravarasu@nvidia.com> Reviewed-on: http://git-master/r/112967 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
2012-06-27ARM: tegra: usb_phy: Fix for glitch on STROBE lineVinod Atyam
Observed glitch on STROBE line during HSIC resume. This is because after removing the TX circuit power down, HSIC controller is keeping in reset to program phy parameters. TX circuit is driving low on STROBE line until controller removed out of reset. Now corrected the code to remove power down after setting phy parameters and removed the reset on HSIC controller. Bug 991709 Change-Id: I4966ea92752d2e5c6ea7042a6c5fb8707cf6bb35 Signed-off-by: Vinod Atyam <vatyam@nvidia.com> Reviewed-on: http://git-master/r/110112 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
2012-06-22arm: tegra: usb: restore the AP/modem handshakingSteve Lin
Restore the AP/modem handshaking functions and clean up the null phy driver. Bug 996035 Signed-off-by: Steve Lin <stlin@nvidia.com> Reviewed-on: http://git-master/r/109044 (cherry picked from commit ff27e8a48a53fe70949d95915f62dd2e03c73df7) Change-Id: I12a2401a7fcc540a657ab15378d440ef85561001 Reviewed-on: http://git-master/r/110145 Reviewed-by: Automatic_Commit_Validation_User Tested-by: Steve Lin <stlin@nvidia.com> Reviewed-by: Steve Lin <stlin@nvidia.com>
2012-06-15arm: tegra: usb_phy: disable all interrupt for 2lsBH Hsieh
Disable all interrupts on current CPU while doing 2ls to make sure the 3 us delay being executed precisely bug 944998 Change-Id: I645709ffdd2481a63223272e1b3f7f1f78466236 Reviewed-on: http://git-master/r/108536 Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com>
2012-06-14ARM: tegra: usb_phy: Fixing HSIC port power codeVinod Atyam
Fixing the port power code for HSIC. During USB driver re-designing, port power code was incorrectly merged. Fixing the code now. Bug 889618 Bug 951061 Change-Id: I1b65662ed864343911abaffb58439ca2996543e7 Signed-off-by: Vinod Atyam <vatyam@nvidia.com> Reviewed-on: http://git-master/r/108302 Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com> Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
2012-06-14ARM: tegra: usb_phy: PMC changes for HSIC remote wakeupVinod Atyam
These are the changes for supporting HSIC remote wakeup and phy-off in auto-suspend. Bug 889618 Bug 951061 Change-Id: Ifd8144739c5dea49d8019b42b1a608dd13cc29be Signed-off-by: Vinod Atyam <vatyam@nvidia.com> Reviewed-on: http://git-master/r/107606 Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com> Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
2012-06-14ARM: tegra: resolve compilation time warningsSanjay Singh Rawat
- Adding flag to treat warning as error. - Handling warnings of unused variable, structures and functions, wrong return type, wrong type comparision. Bug 949219 Change-Id: I9d02387ce1073c4e46f69d01669285aa3754f1d9 Signed-off-by: Sanjay Singh Rawat <srawat@nvidia.com> Reviewed-on: http://git-master/r/104968 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
2012-06-07ARM: tegra3: usb: USB1_UTMIP_XCVR_CFG0_0 value changedRakesh Bodla
Changed USB1_UTMIP_XCVR_CFG0_0 register value with values provided by sys-eng * Implemented algo as described on Bug 974236 * Added variable 'usb_calib_mask' in 'usb platform data' to make distinction on how many bits to mask in usb_calib_0 fuse Bug 978870 Bug 972436 Change-Id: I71f27b0cf5ffe33a9896238b01c52650ca632352 Signed-off-by: Rakesh Bodla <rbodla@nvidia.com> Reviewed-on: http://git-master/r/103308 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
2012-06-07Revert "usb: ehci: tegra: fix hsic enum failure"Rakesh Bodla
This is not merged properly reverting the change. This reverts commit 3b080222a7b37c31fe73be90c3e681096f8b82dd. Change-Id: Icb07c67bdff69a41685f7f8b038cf38306566789 Reviewed-on: http://git-master/r/107001 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
2012-06-06usb: ehci: tegra: fix hsic enum failureVinayak Pane
HSIC device enumeration is broken after usb common phy changes. Setting correct hsic config in port_power and repairing wIndex in hub_control. Bug 991485 Change-Id: Ic2873879070cba8a06fb2cadc40d6c46158f71e9 Signed-off-by: Vinayak Pane <vpane@nvidia.com> Reviewed-on: http://git-master/r/105513 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
2012-06-04arm: tegra: resolve compilation time warningsSanjay Singh Rawat
Bug 949219 Change-Id: I91a67d30869e9800c483f112d58b9f76e2dbe361 Signed-off-by: Sanjay Singh Rawat <srawat@nvidia.com> Reviewed-on: http://git-master/r/103534 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
2012-06-03ARM: tegra: usb_phy: turn off clocks during suspendRakesh Bodla
To save power turning off/on clocks (controller, emc, sclk) appropriately depending upon the features supported on particular controller. Bug 991262 Bug 993380 Change-Id: I15fd5641c73f6a170a33515b5e9fe0a62c8430cc Signed-off-by: Rakesh Bodla <rbodla@nvidia.com> Reviewed-on: http://git-master/r/105887 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
2012-06-01arm: tegra: usb: fix UTMIP auto suspend issuesRakesh Bodla
Fixing the UTMIP auto suspend issues. Bug 992463 Bug 989400 Change-Id: Ia0d536cd66081b263f7f2bde5debcc600dcef22a Signed-off-by: Rakesh Bodla <rbodla@nvidia.com> Reviewed-on: http://git-master/r/105692 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
2012-05-31arm: tegra: usb: fix suspend resume issues of ULPI phyVenu Byravarasu
Fixing suspend resume issues observed with ULPI phy during entering/exiting LP0 on enterprise. bug 989510 Change-Id: Iaf5da7597281b5e1a78df7bdf32c46422cb5c6ef Signed-off-by: Venu Byravarasu <vbyravarasu@nvidia.com> Reviewed-on: http://git-master/r/104959 Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com> Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
2012-05-29arm: tegra: usb_phy: fix remote wakeup issuesRakesh Bodla
This change fixes remote wakeup issues when usb line is in suspend state. Bug 989441 Bug 989400 Change-Id: I90a417c1d0a5e273c87a079133bb0ca1b4d18041 Signed-off-by: Rakesh Bodla <rbodla@nvidia.com> Reviewed-on: http://git-master/r/104747 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
2012-05-24arm: tegra: usb_phy: add common phy interfaceRakesh Bodla
Refactored the phy interface to scale multiple usb phy hardware versions and for ease of maintenance. Bug 887361 Change-Id: I08ea9e728f760ca123af7777d3ffabbd71a1aa99 Signed-off-by: Rakesh Bodla <rbodla@nvidia.com> Reviewed-on: http://git-master/r/103598 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>