- 03 6月, 2016 1 次提交
-
-
由 Roger Quadros 提交于
If bootloader has set a wrong DPLL then we must trash those values and re-program it anyways. This fixes USB3 devices not being enumerated on beagle-x15 if usb was started in u-boot. We don't re-program SATA DPLL if it is locked as it was causing SATA failures if device was hotpluged after boot. Reported-by: NRobert Nelson <robertcnelson@gmail.com> Signed-off-by: NRoger Quadros <rogerq@ti.com> Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com>
-
- 21 12月, 2015 7 次提交
-
-
由 Kishon Vijay Abraham I 提交于
Deprecate using phy-omap-control driver to set PCS value of the PHY and start using *syscon* API to do the same. Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com> Acked-by: NRoger Quadros <rogerq@ti.com> Acked-by: NRob Herring <robh@kernel.org>
-
由 Kishon Vijay Abraham I 提交于
Deprecate using phy-omap-control driver to power on/off the PHY and use *syscon* framework to do the same. Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com> Acked-by: NRob Herring <robh@kernel.org>
-
由 Kishon Vijay Abraham I 提交于
No functional change. Previously omap_control_phy_power() was used to power off the PHY during probe. But once PIPE3 driver is adapted to use syscon, omap_control_phy_power() cannot be used. Hence used ti_pipe3_power_off to power off the PHY. Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com> Acked-by: NRoger Quadros <rogerq@ti.com>
-
由 Kishon Vijay Abraham I 提交于
No functional change. Moved mem resource initialization done in probe to a separate function as part of cleaning up ti_pipe3_probe. Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com> -
由 Kishon Vijay Abraham I 提交于
No functional change. Moved sysctrl initialization done in probe to a separate function as part of cleaning up ti_pipe3_probe. Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com> -
由 Kishon Vijay Abraham I 提交于
No functional change. Moved clock initialization done in probe to a separate function as part of cleaning up ti_pipe3_probe. Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com> -
由 Kishon Vijay Abraham I 提交于
No functional change. Introduce local struct device pointer in probe and replace using &pdev->dev/phy->dev with the local device pointer. This is in preparation to split ti_pipe3_probe and add separate functions for getting mem resource, getting sysctrl and getting clocks. Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com>
-
- 03 8月, 2015 1 次提交
-
-
由 Axel Lin 提交于
The phy_ops variables are never modified after initialized in these drivers, so make them const. Signed-off-by: NAxel Lin <axel.lin@ingics.com> Acked-by: NPatrice Chotard <patrice.chotard@st.com> Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com>
-
- 01 8月, 2015 1 次提交
-
-
由 Roger Quadros 提交于
SATA_PLL_SOFT_RESET bit of CTRL_CORE_SMA_SW_0 must be toggled between a SATA DPLL unlock and re-lock to prevent SATA lockup. Introduce a new DT parameter 'syscon-pllreset' to provide the syscon regmap access to this register which sits in the control module. If the register is not provided we fallback to the old behaviour i.e. SATA DPLL refclk will not be disabled and we prevent SoC low power states. Signed-off-by: NRoger Quadros <rogerq@ti.com> Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com>
-
- 15 7月, 2015 1 次提交
-
-
由 Roger Quadros 提交于
Relying on PM-ops for shutting down PHY clocks was a bad idea since the users (e.g. PCIe/SATA) might not have been suspended by then. The main culprit for not shutting down the clocks was the stray pm_runtime_get() call in probe. Fix the whole thing in the right way by getting rid of that pm_runtime_get() call from probe and removing all PM-ops. It is the sole responsibility of the PHY user to properly turn OFF and de-initialize the PHY as part of its suspend routine. As PHY core serializes init/exit we don't need to use a spinlock in this driver. So get rid of it. Signed-off-by: NRoger Quadros <rogerq@ti.com> Signed-off-by: NSekhar Nori <nsekhar@ti.com> Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com>
-
- 13 3月, 2015 1 次提交
-
-
由 Axel Lin 提交于
Remove extra space in MODULE_ALIAS. Signed-off-by: NAxel Lin <axel.lin@ingics.com> Acked-by: NRoger Quadros <rogerq@ti.com> Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com>
-
- 12 3月, 2015 1 次提交
-
-
由 Axel Lin 提交于
Code simplification. No functional change. Signed-off-by: NAxel Lin <axel.lin@ingics.com> Acked-by: NRoger Quadros <rogerq@ti.com> Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com>
-
- 10 3月, 2015 1 次提交
-
-
由 Axel Lin 提交于
if !CONFIG_OF, the probe fails. This is a dt-only driver, so the ifdef CONFIG_OF guard and of_match_ptr are not needed. Signed-off-by: NAxel Lin <axel.lin@ingics.com> Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com>
-
- 21 1月, 2015 2 次提交
-
-
由 Roger Quadros 提交于
Failed test case: Boot without SATA drive connected. Suspend/resume the board and then connect SATA drive. It fails to enumerate. Due to Errata i783 "SATA Lockup After SATA DPLL Unlock/Relock" we can't allow SATA DPLL to be in the unlocked state. The SATA refclk (sata_ref_clk) is the source of the SATA_DPLL. This clock is being controlled only by the AHCI SATA driver and is shut off during system suspend (if the SATA drive was not already attached) causing the SATA DPLL to be unlocked and so causing errata i783. To prevent sata_ref_clk from being disabled, we add the control of this clock to the SATA PHY driver and prevent it from being disabled. This also fixes the issue of SATA not working on OMAP5/DRA7 when AHCI platform driver is built as a module. NOTE: Device tree changes also required for OMAP5 & DRA7. Signed-off-by: NRoger Quadros <rogerq@ti.com> Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com>
-
由 Roger Quadros 提交于
On system suspend, the runtime_suspend() driver hook doesn't get called for USB phy and so the clocks are not disabled in the driver. This causes the L3INIT_960M_GFCLK and L3INIT_480M_GFCLK to remain active on the DRA7 platform while in system suspend. In case of pcie-phy, the runtime_suspend hook gets called after the suspend hook so we introduce a flag phy->enabled to keep track if our clocks are enabled or not to prevent multiple enable/disables. Add suspend/resume hooks to the driver. Move enabling/disabling clock code into helper functions. Reported-by: NNishant Menon <nm@ti.com> Signed-off-by: NRoger Quadros <rogerq@ti.com> Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com>
-
- 23 12月, 2014 1 次提交
-
-
由 Vignesh R 提交于
Prior to DRA74x silicon rev 1.1, pcie_pcs register bits 8-15 and bits 16-23 were used to configure RC delay count for phy1 and phy2 respectively. phyid was used as index to distinguish the phys and to configure the delay values appropriately. As of DRA74x silicon rev 1.1, pcie_pcs register definition has changed. Bits 16-23 are used to configure delay values for *both* phy1 and phy2. Hence phyid is no longer required. So, drop id field from ti_pipe3 structure and its subsequent references for configuring pcie_pcs register. Also, pcie_pcs register now needs to be configured with delay value of 0x96 at bit positions 16-23. See register description of CTRL_CORE_PCIE_PCS in ARM572x TRM, SPRUHZ6, October 2014, section 18.5.2.2, table 18-1804. This is needed to ensure Gen2 cards are enumerated consistently. DRA72x silicon behaves same way as DRA74x rev 1.1 as far as this functionality is considered. Test results on DRA74x and DRA72x EVMs: Before patch ------------ DRA74x ES 1.0: Gen1 cards work, Gen2 cards do not work (expected result due to silicon errata) DRA74x ES 1.1: Gen1 cards work, Gen2 cards do not work sometimes due to incorrect programming of register DRA72x: Gen1 cards work, Gen2 cards do not work sometimes due to incorrect programming of register After patch ----------- DRA74x ES 1.0: Gen1 cards work, Gen2 cards do not work (expected result due to silicon errata) DRA74x ES 1.1: Gen1 cards work, Gen2 cards work consistently. DRA72x: Gen1 and Gen2 cards enumerate consistently. Signed-off-by: NVignesh R <vigneshr@ti.com> Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com>
-
- 13 12月, 2014 1 次提交
-
-
由 Rafael J. Wysocki 提交于
After commit b2b49ccb (PM: Kconfig: Set PM_RUNTIME if PM_SLEEP is selected) PM_RUNTIME is always set if PM is set, so #ifdef blocks depending on CONFIG_PM_RUNTIME may now be changed to depend on CONFIG_PM. Replace CONFIG_PM_RUNTIME with CONFIG_PM everywhere under drivers/phy/. Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com> Acked-by: NKishon Vijay Abraham I <kishon@ti.com>
-
- 22 11月, 2014 1 次提交
-
-
由 Heikki Krogerus 提交于
The users of the old method are now converted to the new one. Signed-off-by: NHeikki Krogerus <heikki.krogerus@linux.intel.com> [ kishon@ti.com : made phy-berlin-usb.c and phy-miphy28lp.c to use the updated devm_phy_create API.] Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com>
-
- 24 9月, 2014 2 次提交
-
-
由 Peter Griffin 提交于
This patch removes the superflous .owner field for drivers which use the module_platform_driver or platform_driver_register api, as this is overriden in __platform_driver_register. Signed-off-by: NPeter Griffin <peter.griffin@linaro.org> Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com>
-
由 Peter Griffin 提交于
The site specific OOM messages are unncessary, because they duplicate messages from the memory subsystem which include dump_stack(). Removing these superflous messages makes the kernel smaller. A discussion here http://patchwork.ozlabs.org/patch/324158/ found that all error paths from kzalloc will print a error message, and that any error path which maybe found which doesn't would be considered a bug in kzalloc. Signed-off-by: NPeter Griffin <peter.griffin@linaro.org> Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com>
-
- 22 7月, 2014 3 次提交
-
-
由 Kishon Vijay Abraham I 提交于
In case of multi-phy PHY providers, each PHY should be modeled as a sub node of the PHY provider. Then each PHY will have a different node pointer (node pointer of sub node) than that of PHY provider. Added this provision in the PHY core. Also fixed all drivers to use the updated API. Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com> Acked-by: NLee Jones <lee.jones@linaro.org>
-
由 Kishon Vijay Abraham I 提交于
8-bit delay value (0xF1) is required for GEN2 devices to be enumerated consistently. Added an API to be called from PHY drivers to set this delay value and called it from PIPE3 driver to set the delay value. Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com> Reviewed-by: NRoger Quadros <rogerq@ti.com>
-
由 Kishon Vijay Abraham I 提交于
PCIe PHY uses an external pll instead of the internal pll used by SATA and USB3. So added support in pipe3 PHY to use external pll. Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com> Reviewed-by: NRoger Quadros <rogerq@ti.com>
-
- 09 3月, 2014 6 次提交
-
-
由 Roger Quadros 提交于
Due to Errata i783, SATA breaks if its DPLL is idled. The recommeded workaround to issue a softreset to the SATA controller doesn't seem to work. Here we just prevent SATA DPLL from Idling and hence avoid the issue altogether. Signed-off-by: NRoger Quadros <rogerq@ti.com> Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com>
-
由 Roger Quadros 提交于
Limit .power_on() and .power_off() to just control the PHY power and not the DPLL. The DPLL will be enabled in .init() and idled in .exit(). Don't reprogram the DPLL if it has been already locked by the bootloader. This fixes a problem with SATA, where it fails if SATA was used by the bootloader. Signed-off-by: NRoger Quadros <rogerq@ti.com> Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com>
-
由 Roger Quadros 提交于
SATA PHY doesn't need 'wkupclk; and 'refclk' so don't try to get them for SATA PHY. Signed-off-by: NRoger Quadros <rogerq@ti.com> Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com>
-
由 Roger Quadros 提交于
USB and SATA DPLLs need different settings. Provide the SATA DPLL settings and use the proper DPLL settings based on device tree node's compatible_id. Signed-off-by: NRoger Quadros <rogerq@ti.com> Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com>
-
由 Roger Quadros 提交于
As this driver is no longer USB specific, use generic clock names. - Fix PLL_SD_SHIFT from 9 to 10 - Don't separate prepare/unprepare clock from enable/disable. This ensures optimal power savings. Signed-off-by: NRoger Quadros <rogerq@ti.com> Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com>
-
由 Kishon Vijay Abraham I 提交于
Rename struct omap_control_usb to struct omap_control_phy since it can be used to control PHY of USB, SATA and PCIE. Also move the driver and include files under *phy* and made the corresponding changes in the users of phy-omap-control. Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com> Signed-off-by: NRoger Quadros <rogerq@ti.com> Acked-by: NFelipe Balbi <balbi@ti.com>
-
- 06 3月, 2014 1 次提交
-
-
由 Kishon Vijay Abraham I 提交于
Adapted omap-usb3 PHY driver to Generic PHY Framework and moved phy-omap-usb3 driver in drivers/usb/phy to drivers/phy and also renamed the file to phy-ti-pipe3 since this same driver will be used for SATA PHY and PCIE PHY. Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com>
-
- 04 10月, 2013 2 次提交
-
-
由 Roger Quadros 提交于
omap_get_control_dev() is being deprecated as it doesn't support multiple instances. As control device is present only from OMAP4 onwards which supports DT only, we use phandles to get the reference to the control device. As we don't support non-DT boot, we just bail out on probe if device node is not present. Signed-off-by: NRoger Quadros <rogerq@ti.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Roger Quadros 提交于
Add support for new device types and in the process rid of "ti,type" device tree property. The correct type of device will be determined from the compatible string instead. Introduce a compatible string for each device type. At the moment we support 4 types OTGHS, USB2, PIPE3 (e.g. USB3) and DRA7USB2. Update DT binding information to reflect these changes. Also get rid of omap_control_usb3_phy_power(). Just one function i.e. omap_control_usb_phy_power() will now take care of all PHY types. Signed-off-by: NRoger Quadros <rogerq@ti.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 18 9月, 2013 1 次提交
-
-
由 Sachin Kamat 提交于
The function returns a pointer. Hence return NULL instead of 0. Signed-off-by: NSachin Kamat <sachin.kamat@linaro.org> Signed-off-by: NFelipe Balbi <balbi@ti.com>
-
- 29 7月, 2013 1 次提交
-
-
由 Roger Quadros 提交于
Use a mapping table (dpll_map) to match the possible system clock rates to the appropriate DPLL parameters. Introduce a function "omap_usb3_get_dpll_params()" that will return the matching DPLL parameters for the given clock rate. Also, bail out on phy init if DPLL locking fails. Signed-off-by: NRoger Quadros <rogerq@ti.com> Signed-off-by: NFelipe Balbi <balbi@ti.com>
-
- 15 7月, 2013 1 次提交
-
-
由 Ruchika Kharwar 提交于
Correction of the omap_usb3_dpll_params array when the sys_clk_rate is 20MHz. Signed-off-by: NNikhil Devshatwar <nikhil.nd@ti.com> Signed-off-by: NRuchika Kharwar <ruchika@ti.com> Signed-off-by: NFelipe Balbi <balbi@ti.com>
-
- 01 6月, 2013 1 次提交
-
-
由 Ruchika Kharwar 提交于
Addition of the M and N recommended values for the USB3 PHY DPLL. Sysclk for DRA7xx is 20MHz. This yields: Clk = 20MHz * M/(N+1) = 20MHz * 1000 /(7+1) = 2.5 Ghz Signed-off-by: NRuchika Kharwar <ruchika@ti.com> Signed-off-by: NFelipe Balbi <balbi@ti.com>
-
- 18 3月, 2013 1 次提交
-
-
由 Felipe Balbi 提交于
this will make sure that we have sensible names for all phy drivers. Current situation was already quite bad with too generic names being used. Signed-off-by: NFelipe Balbi <balbi@ti.com>
-
- 04 3月, 2013 1 次提交
-
-
由 Sachin Kamat 提交于
Use the newly introduced devm_ioremap_resource() instead of devm_request_and_ioremap() which provides more consistent error handling. devm_ioremap_resource() provides its own error messages; so all explicit error messages can be removed from the failure code paths. Reviewed-by: NThierry Reding <thierry.reding@avionic-design.de> Signed-off-by: NSachin Kamat <sachin.kamat@linaro.org> Cc: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: NFelipe Balbi <balbi@ti.com>
-
- 25 1月, 2013 1 次提交
-
-
由 Kishon Vijay Abraham I 提交于
Added a driver for usb3 phy that handles the interaction between usb phy device and dwc3 controller. This also includes device tree support for usb3 phy driver and the documentation with device tree binding information is updated. Currently writing to control module register is taken care in this driver which will be removed once the control module driver is in place. Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com> Signed-off-by: NFelipe Balbi <balbi@ti.com> Signed-off-by: NMoiz Sonasath <m-sonasath@ti.com> Signed-off-by: NFelipe Balbi <balbi@ti.com>
-