summaryrefslogtreecommitdiff
path: root/drivers/phy (follow)
Commit message (Collapse)AuthorAge
...
* | phy: qcom-ufs-qmp-14nm: update PHY power up sequenceGilad Broner2016-03-22
| | | | | | | | | | | | | | | | | | Hardware programming guide has updated the PHY power up sequence, this change adds the relevant changes. Change-Id: I320e38f501cdafc053d47bf2b21ba7f69b1b12a7 Signed-off-by: Gilad Broner <gbroner@codeaurora.org> Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
* | phy: qcom-ufs: add ufs phy type selectionGilad Broner2016-03-22
| | | | | | | | | | | | | | | | | | | | | | | | Currently both 14nm phy and 20nm phy are compiled and built into the kernel, while only one type is actually present and used. Add a choice selection to the kernel configuration to specify which phy type shall be used. Change-Id: I5608d32fb4815db15e91a970e53099762eabbddd Signed-off-by: Gilad Broner <gbroner@codeaurora.org> [venkatg@codeaurora.org: resolved trivial merge conflicts] Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
* | phy: qcom-ufs: export phy functionsGilad Broner2016-03-22
| | | | | | | | | | | | | | | | | | | | | | In order to allow UFS PHY and UFS driver to be built as kernel modules, the driver must export its functions so they can be used by external code. Change-Id: Ic617daf1038b5727dcd4b24a4c12a1f1bb8d730e Signed-off-by: Gilad Broner <gbroner@codeaurora.org> [venkatg@codeaurora.org: keep upstream version of EXPORT_SYMBOL_GPL] Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
* | phy: qcom-ufs-qmp-14nm: add workaround to program tuned VCO codeSubhash Jadavani2016-03-22
| | | | | | | | | | | | | | | | | | | | | | | | On some UFS PHY HW revisions, UFS PHY power up calibration sequence requires manual VCO tuning code and its better to rely on the VCO tuning code programmed by boot loader. This change enables the quirk to program the manually tuned VCO code. Change-Id: Id1bb2b28816b8de6df7ca22cda5788288b11328a Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org> [venkatg@codeaurora.org: resolved trivial merge conflicts] Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
* | phy: qcom-ufs-qmp-14nm: update PHY power up sequenceSubhash Jadavani2016-03-22
| | | | | | | | | | | | | | | | Hardware programming guide recommends one more PHY setting as part of UFS PHY power up sequence hence this change adds it. Change-Id: I92f77faa6ca28d6f72d7601344b439ef7596d572 Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
* | phy: qcom-ufs-qmp-14nm: add PHY initialization workaroundSubhash Jadavani2016-03-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | UFS PHY auto calibration is not working currently hence add workaround to have manual calibrated configuration as part of power up sequence itself. We had another workaround for hibern8 enter/exit to work and it had required us to save the auto calibrated VCO codes after PHY power up sequence and then set the PHY PLL in VCO bypass mode. As the auto calibration is not working and we are already having manually calibrated VCO codes as part of PHY power up sequence itself, this change removes the old workaround. Change-Id: I570ea4f7f8c2f79a06321fb43c8cb01575bf0df0 Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
* | phy: qcom-ufs-qmp-14nm: fix analog power collapse handlingSubhash Jadavani2016-03-22
| | | | | | | | | | | | | | | | | | To power collapse UFS PHY, we need to write 0 to UFS_PHY_POWER_DOWN_CONTROL register but instead we are writing 1 to it. This change fixes this issue. Change-Id: Ib12226bd3adefb2d5848aa6e7c20ae0263865148 Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
* | phy: qcom-ufs-qmp-14nm: add UFS_PHY_RX_PWM_GEAR_BAND to power up sequenceSubhash Jadavani2016-03-22
| | | | | | | | | | | | | | | | | | | | | | UFS_PHY_RX_PWM_GEAR_BAND configuration is changed after the power up sequence so make sure that this register gets set to power on reset value during power up sequence. This is required in case power up sequence is initiated after this register value got changed to value other than power on reset value. Change-Id: Ied8ebf6dc181da9e877427420e1ee4476f1c442f Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
* | phy: qcom-ufs-qmp-14nm: add hibern8 workaroundSubhash Jadavani2016-03-22
| | | | | | | | | | | | | | | | | | | | | | | | Due to missing reset in the UFS PHY logic, the pll may not lock following analog power collapse. As a result the common block of the PHY must be put into reset during hibernate entry and taken out of reset during hibernate exit. SW needs to save ave the calibrated VCO codes after the PHY power up sequence is completed, saving these codes will save substantial time on hibernate exit (<50us vs. 1.7ms). Change-Id: Id5f5eab04f1a1f93179cf9e5cdd3c7c8be4b17af Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
* | phy: qcom-ufs-qmp-14nm: add svs mode workaroundSubhash Jadavani2016-03-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | UFS PHY power up calibration sequence on UFS controller revision 2.0.0 can't have SVS mode configuration otherwise calibration result cannot be used in HS-G3. So there are additional register writes must be done after the PHY is initialized but before the controller requests hibernate exit. Also as this issue is not present on UFS controller revision 2.1.0, SVS mode configuration registers are written as part of the power up calibration sequence itself. This change takes care of these issues related to SVS mode. Change-Id: Ib431d98345224db13f1d68197e948bb077c95080 Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org> [venkatg@codeaurora.org: resolved trivial merge conflicts, drop include/linux/phy/phy-qcom-ufs.h] Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
* | phy: qcom-ufs: remove support for 28nm phyYaniv Gardi2016-03-22
| | | | | | | | | | | | | | | | | | | | | | As there is no support for UFS in APQ8084 under kernel 3.14, we also can remove the support for 28nm ufs phy (since APQ8084 is the only platform that uses this phy). Change-Id: Iae76f98424842cc29e9397c0050a37a010509bcc Signed-off-by: Yaniv Gardi <ygardi@codeaurora.org> [subhashj@codeaurora.org: resolved trivial merge conflicts] Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
* | phy: qcom-ufs-qmp-20nm: fix DIF-Z thresholdMaya Erez2016-03-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In some cases link startup fails due to unexpected termination caused by DIF-N to DIF-Z transition. This patch will make PHY look only for DIF-N -> DIF-P transition and not respond to DIF-N to DIF-Z transition. Hence prevents a case where DIF-Z is identified as DIF-P, which may result in unexpected LCC interpretation and PHY switch to HS. Change-Id: Ia79fceb245516b96f84d8511e983187e09db254a Signed-off-by: Maya Erez <merez@codeaurora.org> [venkatg@codeaurora.org: resolved trivial merge conflict] Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
* | phy: qcom-ufs-qmp-20nm: keep analog bias onMaya Erez2016-03-22
| | | | | | | | | | | | | | | | | | | | | | Link startup or hibern8 may fail sometimes if analog bias is not on. To ensure the stability of link startup and hibern8 enter/exit, this change adds the UFS phy configuration change to keep the analog bias on. Change-Id: I22202ee018cb222facbfda87110b83a328d71288 Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org> Signed-off-by: Maya Erez <merez@codeaurora.org>
* | scsi: ufs-qcom: add device ref_clk pad regulator voting supportSubhash Jadavani2016-03-22
| | | | | | | | | | | | | | | | | | | | | | | | UFS device's phy ref_clk is sourced via MSM's ref_clk pad. This pad is having its own power domain which is powered by 1.2v rail. This change adds the voting support for this pad rail. Change-Id: I179b2b9bb7ef2e7938ba0aaa87faed09cdad6139 Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org> [venkatg@codeaurora.org: dropped ufs-qcom.h and include/linux/phy/phy-qcom-ufs.h changes] Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
* | drivers: phy: qcom: make "ref_clk_parent" clock as optionalSubhash Jadavani2016-03-22
| | | | | | | | | | | | | | | | | | | | | | | | On some chipsets, "ref_clk_parent" clock is not required for the UFS PHY ref_clk activation hence change this property as optional. Change-Id: I487fa7c4da7e64e3fb4d0321cc8296dca5091eb3 Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org> [gbroner@codeaurora.org: fix minor conflicts] Signed-off-by: Gilad Broner <gbroner@codeaurora.org> [venkatg@codeaurora.org: resolved trivial merge conflict] Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
* | phy: ufs: Add calibration for new version of UFS 20nm PHYDolev Raviv2016-03-22
| | | | | | | | | | | | | | | | | | | | | | | | Different UFS PHY versions may have different calibration values to some of the registers. This change introduces the new calibration values necessary for new version of UFS 20nm PHY Change-Id: Ie0522c7293944e3f434fdfe56c82b98d8f5e7994 Signed-off-by: Dolev Raviv <draviv@codeaurora.org> [venkatg@codeaurora.org: resolved trivial merge conflict] Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
* | phy: ufs: Remove redundant rate B calibration valuesDolev Raviv2016-03-22
| | | | | | | | | | | | | | | | | | | | Since PHY calibration values for Rate B override those of rate A, it's unnecessary to have duplicate values. This patch removes all the redundant values to optimize calibration sequence Change-Id: I60638e02292255e3308ea82aa75baa9abde86614 Signed-off-by: Dolev Raviv <draviv@codeaurora.org>
* | scsi/phy: Remove orphaned files after renamingVenkat Gopalakrishnan2016-03-22
| | | | | | | | | | | | | | | | Delete renamed orphan files after rebasing 3.18 ufs driver changes onto 4.4 ufs driver. Change-Id: Id241ad01bbb0fa74e209c66f8a2d97c05088e33b Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
* | phy: qcom-ufs: move decision of rate B calibration to ufs driverYaniv Gardi2016-03-22
| | | | | | | | | | | | | | | | | | | | | | | | | | Until now, the decision if phy calibration is according to rate A or rate B values, was done in the phy driver. It made the phy dependent on the ufs unipro which is unnecessary binding. This change moves the decision into the ufs driver, and pass it through a function parameter to the calibration routine in the phy driver. Change-Id: I7a51d84142c31da57ba5de6ec98526e5c7d1b544 Signed-off-by: Yaniv Gardi <ygardi@codeaurora.org> [venkatg@codeaurora.org: resolved trivial merge conflicts] Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
* | phy: ufs-qcom: disable RX LineCfgSubhash Jadavani2016-03-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Some UFS devices send incorrect LineCfg data as part of power mode change sequence which may cause host PHY to go into bad state. Currently we workaround this issue by disabling the device's TX LCC but disabling TX LCC is much more complicated if both host and device supports UniPro 1.6 specification. To simplify the workaround, this change disables the host PHY's RX LineCfg to skip processing incorrect LineCfg from device. Change-Id: I1eac56c11dd001eb0c53ba8e16aa512a656ab9ea Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org> [venkatg@codeaurora.org: resolved trivial merge conflicts] Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
* | scsi: ufs-qcom: set device ref. clk bitGilad Broner2016-03-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As of HW major version 2, a new bit 'UFS_DEV_REF_CLK_EN' was added to UFS_CFG1 register which needs to be set as part of hibernate enter/exit sequences during suspend/resume. Change-Id: I66a6a75dc5a1cf130b1cee90ae20f9f950edfb3a Signed-off-by: Gilad Broner <gbroner@codeaurora.org> [imaund@codeaurora.org: Resolved context conflicts and updated a conditional in ufs_qcom_advertise_quirks to use the ufs_qcom_host struct when querying major hw versions] Signed-off-by: Ian Maund <imaund@codeaurora.org> [subhashj@codeaurora.org: resolved trivial merge conflicts] Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org> [venkatg@codeaurora.org: resolved trivial merge conflicts, drop changes to include/linux/phy/phy-qcom-ufs.h] Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
* | scsi: ufs-qcom: remove support for save/restore phy configurationYaniv Gardi2016-03-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Since support for 28nm phy removed in kernel 3.14, all related code that is specific to phy 28nm is also removed. Specifically the quirk that enables save/restore phy configuration is removed (and all its relevant callbacks) as it's unique to 28nm ufs phy. Change-Id: Ie723885bacb52548573fc1140d09b0ea5f067382 Signed-off-by: Yaniv Gardi <ygardi@codeaurora.org> [venkatg@codeaurora.org: drop changes to include/linux/phy/phy-qcom-ufs.h] Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
* | scsi: ufs-qcom: add support to control the device ref_clkSubhash Jadavani2016-03-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Qualcomm platforms, there will be many consumers of the source clock which also supply ref_clk to UFS Device. So even if generic UFS driver (ufshcd) vote to turn off the source ref_clk, it's very likely that device ref_clk is still running. Hence some of the qualcomm chipsets have separate control bit to gate & ungate the UFS ref_clk to device. This control bit is part of the TLMM register adddress space so it can't be simulated at clock control bit which means UFS qcom driver has to manually control this bit to gate or ungate the device ref_clk. This change adds support for the same. Change-Id: I3ee1187292eaadfdb552d33c2bb6f58922c9e501 [subhashj@codeaurora.org: resolved merge conflicts, dropped changes to msm8994.dtsi] Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org> [venkatg@codeaurora.org: resolved trivial merge conflicts, drop changes to include/linux/phy/phy-qcom-ufs.h] Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
* | phy: relocate and rename phy ufs filesYaniv Gardi2016-03-22
|/ | | | | | | | | | | | | | | | | | | | | | | | | This change contains: 1. Relocating the phy ufs files to reside under the phy driver since this is the location of any file that implements the APIs presented in the generic phy framework 2. Renaming ufs-msm-phy*.* files to be phy-qcom-ufs*.* files. Since UFS is not used strictly in a specific set of targets but rather its code is applicable to MSM, APQ, IPQ etc, any mentioning of "msm" in the file name should be changed to "qcom". Also, prefix of "phy-" is the naming convention of platform driver files that reside in the phy driver. 3. As a result of the relocation of files into the phy driver, a new path is created (include/linux/scsi/ufs) and there we expose ufs header files that are being used also from the drivers/scsi/ufs and from drivers/phy as well. Change-Id: Ie5cb47718911ff711d9401a389f56fa508fcddf3 Signed-off-by: Yaniv Gardi <ygardi@codeaurora.org> [gbroner@codeaurora.org: fix merge conflicts] Signed-off-by: Gilad Broner <gbroner@codeaurora.org> [venkatg@codeaurora.org: resolved merge conflicts by keeping upstream version] Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
* phy: core: Get a refcount to phy in devm_of_phy_get_by_index()Chunfeng Yun2015-12-07
| | | | | | | | On driver detach, devm_phy_release() will put a refcount to the phy, so gets a refconut to it before return. Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
* phy: cygnus: pcie: add missing of_node_putJulia Lawall2015-12-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | for_each_available_child_of_node performs an of_node_get on each iteration, so a return from the middle of the loop requires an of_node_put. A simplified version of the semantic patch that finds this problem is as follows (http://coccinelle.lip6.fr): // <smpl> @@ expression root,e; local idexpression child; @@ for_each_available_child_of_node(root, child) { ... when != of_node_put(child) when != e = child ( return child; | * return ...; ) ... } // </smpl> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
* phy: miphy365x: add missing of_node_putJulia Lawall2015-12-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | for_each_child_of_node performs an of_node_get on each iteration, so a return from the middle of the loop requires an of_node_put. A simplified version of the semantic patch that finds this problem is as follows (http://coccinelle.lip6.fr): // <smpl> @@ expression root,e; local idexpression child; @@ for_each_child_of_node(root, child) { ... when != of_node_put(child) when != e = child ( return child; | * return ...; ) ... } // </smpl> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
* phy: miphy28lp: add missing of_node_putJulia Lawall2015-12-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | for_each_child_of_node performs an of_node_get on each iteration, so a return from the middle of the loop requires an of_node_put. A simplified version of the semantic patch that finds this problem is as follows (http://coccinelle.lip6.fr): // <smpl> @@ expression root,e; local idexpression child; @@ for_each_child_of_node(root, child) { ... when != of_node_put(child) when != e = child ( return child; | * return ...; ) ... } // </smpl> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
* phy: rockchip-usb: add missing of_node_putJulia Lawall2015-12-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for_each_available_child_of_node performs an of_node_get on each iteration, so a return from the middle of the loop requires an of_node_put. A simplified version of the semantic patch that finds this problem is as follows (http://coccinelle.lip6.fr): // <smpl> @@ expression root,e; local idexpression child; @@ for_each_available_child_of_node(root, child) { ... when != of_node_put(child) when != e = child ( return child; | * return ...; ) ... } // </smpl> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Reviewed-by: Heiko Stuebner <heiko@sntech.de> Tested-by: Heiko Stuebner <heiko@sntech.de> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
* phy: berlin-sata: add missing of_node_putJulia Lawall2015-12-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for_each_available_child_of_node performs an of_node_get on each iteration, so a return from the middle of the loop requires an of_node_put. A simplified version of the semantic patch that finds this problem is as follows (http://coccinelle.lip6.fr): // <smpl> @@ expression root,e; local idexpression child; @@ for_each_available_child_of_node(root, child) { ... when != of_node_put(child) when != e = child ( return child; | * return ...; ) ... } // </smpl> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
* phy: mt65xx-usb3: add missing of_node_putJulia Lawall2015-12-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | for_each_child_of_node performs an of_node_get on each iteration, so a return from the middle of the loop requires an of_node_put. A simplified version of the semantic patch that finds this problem is as follows (http://coccinelle.lip6.fr): // <smpl> @@ expression root,e; local idexpression child; @@ for_each_child_of_node(root, child) { ... when != of_node_put(child) when != e = child ( return child; | * return ...; ) ... } // </smpl> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
* phy: brcmstb-sata: add missing of_node_putJulia Lawall2015-12-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for_each_available_child_of_node performs an of_node_get on each iteration, so a return from the middle of the loop requires an of_node_put. A simplified version of the semantic patch that finds this problem is as follows (http://coccinelle.lip6.fr): // <smpl> @@ expression root,e; local idexpression child; @@ for_each_available_child_of_node(root, child) { ... when != of_node_put(child) when != e = child ( return child; | * return ...; ) ... } // </smpl> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Acked-by: Brian Norris <computersforpeace@gmail.com> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
* phy: sun9i-usb: add USB dependencyArnd Bergmann2015-12-03
| | | | | | | | | | | | | | | The sun9i usb phy driver calls of_usb_get_phy_mode(), which is not available if USB is disabled: drivers/built-in.o: In function `sun9i_usb_phy_probe': :(.text+0x7fb0): undefined reference to `of_usb_get_phy_mode' This adds a dependency to avoid the randconfig build errors. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Fixes: 9c3b44302636 ("phy: Add driver to support individual USB PHYs on sun9i") Acked-by: Chen-Yu Tsai <wens@csie.org> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
* Merge tag 'usb-4.4-rc1' of ↵Linus Torvalds2015-11-04
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb Pull USB updates from Greg KH: "Here is the big USB patchset for 4.4-rc1. As usual, most of the changes are in the gadget subsystem, and we removed a host controller for a device that is no longer in existance, and probably never was even made public. There is also other minor driver updates and new device ids, full details in the changelog. All of these have been in linux-next for a while" * tag 'usb-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (233 commits) USB: core: Codestyle fix in urb.c usb: misc: usb3503: Use i2c_add_driver helper macro usb: host: lpc32xx: don't unregister phy device usb: host: lpc32xx: balance clk enable/disable on removal usb: host: lpc32xx: fix warnings caused by enabling unprepared clock uwb: drp: Use setup_timer uwb: neh: Use setup_timer uwb: rsv: Use setup_timer USB: qcserial: add Sierra Wireless MC74xx/EM74xx usb: chipidea: otg: don't wait vbus drops below BSV when starts host chipidea: ci_hdrc_pci: use PCI_VDEVICE() instead of PCI_DEVICE() doc: dt-binding: ci-hdrc-usb2: split vendor specific properties usb: chipidea: imx: add imx6ul usb support doc: dt-binding: ci-hdrc-usb2: improve property description usb: chipidea: imx: add usb support for imx7d Doc: usb: ci-hdrc-usb2: Add phy-clkgate-delay-us entry usb: chipidea: Add support for 'phy-clkgate-delay-us' property usb: chipidea: Use extcon framework for VBUS and ID detect usb: gadget: net2280: restore ep_cfg after defect7374 workaround usb: dwc2: host: Fix use after free w/ simultaneous irqs ...
| * Merge tag 'phy-for-4.4' of ↵Greg Kroah-Hartman2015-10-17
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy into usb-next Kishon writes: phy: for 4.4 *) Add new PHY driver for Broadcom's cygnus PCIe PHY *) Add USB3 PHY driver for mediatek's SoCs *) Add VBUS regulator support for Samsung's exynos PHY *) Misc cleanup Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
| | * phy: cygnus: pcie: Add Cygnus PCIe PHY supportRay Jui2015-10-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds the PCIe PHY support for the Broadcom PCIe RC interface on Cygnus Signed-off-by: Ray Jui <rjui@broadcom.com> Reviewed-by: Arun Parameswaran <aparames@broadcom.com> Reviewed-by: JD (Jiandong) Zheng <jdzheng@broadcom.com> Reviewed-by: Scott Branden <sbranden@broadcom.com> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
| | * phy: sun4i-usb: Use devm_gpiod_get_optional for optional GPIOsAxel Lin2015-10-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | Both data->id_det_gpio and data->vbus_det_gpio are optional, so use devm_gpiod_get_optional for them. Signed-off-by: Axel Lin <axel.lin@ingics.com> Reviewed-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
| | * phy: add usb3.0 phy driver for mt65xx SoCsChunfeng Yun2015-10-06
| | | | | | | | | | | | | | | | | | | | | support usb3.0 phy of mt65xx SoCs Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
| | * phy: exynos-usb2: add vbus regulator supportMarek Szyprowski2015-10-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Exynos USB2 PHY has separate power supply, which is usually provided by VBUS regulator. This patch adds support for it. VBUS regulator is optional, to keep compatibility with boards, which have VBUS provided from some always-on power source. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Tested-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
* | | Merge tag 'v4.3-rc6' into locking/core, to pick up fixes before applying new ↵Ingo Molnar2015-10-20
|\| | | | | | | | | | | | | | | | | changes Signed-off-by: Ingo Molnar <mingo@kernel.org>
| * | phy: berlin-sata: Fix module autoload for OF platform driverLuis de Bethencourt2015-09-25
| | | | | | | | | | | | | | | | | | | | | | | | This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt <luisbg@osg.samsung.com> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
| * | phy: rockchip-usb: power down phy when rockchip phy probehuang lin2015-09-25
| | | | | | | | | | | | | | | | | | | | | | | | rockchip phy are enable when soc reset, to save power consumption, we disable it when probe, and enable each phy when it use Signed-off-by: huang lin <hl@rock-chips.com> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
| * | phy: qcom-ufs: fix build error when the component is built as a moduleYaniv Gardi2015-09-25
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Export the following functions in order to avoid build errors when the component PHY_QCOM_UFS is compiled as a module: ERROR: "ufs_qcom_phy_disable_ref_clk" [drivers/scsi/ufs/ufs-qcom.ko] undefined! ERROR: "ufs_qcom_phy_enable_ref_clk" [drivers/scsi/ufs/ufs-qcom.ko] undefined! ERROR: "ufs_qcom_phy_is_pcs_ready" [drivers/scsi/ufs/ufs-qcom.ko] undefined! ERROR: "ufs_qcom_phy_disable_iface_clk" [drivers/scsi/ufs/ufs-qcom.ko] undefined! ERROR: "ufs_qcom_phy_start_serdes" [drivers/scsi/ufs/ufs-qcom.ko] undefined! ERROR: "ufs_qcom_phy_calibrate_phy" [drivers/scsi/ufs/ufs-qcom.ko] undefined! ERROR: "ufs_qcom_phy_enable_dev_ref_clk" [drivers/scsi/ufs/ufs-qcom.ko] undefined! ERROR: "ufs_qcom_phy_set_tx_lane_enable" [drivers/scsi/ufs/ufs-qcom.ko] undefined! ERROR: "ufs_qcom_phy_disable_dev_ref_clk" [drivers/scsi/ufs/ufs-qcom.ko] undefined! ERROR: "ufs_qcom_phy_save_controller_version" [drivers/scsi/ufs/ufs-qcom.ko] undefined! ERROR: "ufs_qcom_phy_enable_iface_clk" [drivers/scsi/ufs/ufs-qcom.ko] undefined! make[1]: *** [__modpost] Error 1 Signed-off-by: Yaniv Gardi <ygardi@codeaurora.org> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
* / locking/atomics, cmpxchg: Privatize the inclusion of asm/cmpxchg.hBoqun Feng2015-09-13
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After commit: 654672d4ba1a ("locking/atomics: Add _{acquire|release|relaxed}() variants of some atomic operations") Architectures may only provide {cmp,}xchg_relaxed definitions in asm/cmpxchg.h. Other variants, such as {cmp,}xchg, may be built in linux/atomic.h, which means simply including asm/cmpxchg.h may not get the definitions of all the{cmp,}xchg variants. Therefore, we should privatize the inclusions of asm/cmpxchg.h to keep it only included in arch/* and replace the inclusions outside with linux/atomic.h Signed-off-by: Boqun Feng <boqun.feng@gmail.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Acked-by: Will Deacon <will.deacon@arm.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Aybuke Ozdemir <aybuke.147@gmail.com> Cc: Chris Brannon <chris@the-brannons.com> Cc: Davidlohr Bueso <dave@stgolabs.net> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Kirk Reiser <kirk@reisers.ca> Cc: Kishon Vijay Abraham I <kishon@ti.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Samuel Thibault <samuel.thibault@ens-lyon.org> Cc: Shradha Shah <sshah@solarflare.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: William Hubbs <w.d.hubbs@gmail.com> Cc: devel@driverdev.osuosl.org Cc: linux-net-drivers@solarflare.com Cc: speakup@linux-speakup.org Link: http://lkml.kernel.org/r/1440589966-26280-1-git-send-email-boqun.feng@gmail.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
* Merge tag 'gpio-v4.3-1' of ↵Linus Torvalds2015-09-04
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio Pull GPIO updates from Linus Walleij: "This is the bulk of GPIO changes for the v4.3 kernel cycle. There is quite a lot going on in the GPIO subsystem this merge window, so the main matter is decribed below. The hits in other subsystems when making the GPIO flags optional are all ACKed by their respective subsystem maintainers. Core changes: - Root out the wrapper devm_gpiod_get() and gpiod_get() etc versions of the descriptor calls that did not use the flags argument on the end. This was around for too long and eventually Uwe Kleine-König took the time to clean it out and the last users are removed along with the macros in this tag. In several cases the use of flags simplifies the code. For this reason we have (ACKed) patches hitting in DRM, IIO, media, NFC, USB+PHY up until we hammer in the nail with removing the macros. - Add a fat document describing how much ready-made GPIO stuff we have i the kernel to discourage people from reinventing a square wheel in userspace, as so often happens. - Create a separate lockdep class for each instance of a GPIO IRQ chip instead of using one class for all chips, as the current code will not work with systems with several GPIO chips doing lockdep debugging. - Protect against driver unloading also when a GPIO line is only used as IRQ for the GPIOLIB_IRQCHIP helpers. - If the GPIO chip has no designated owner, assign the parent device driver owner as owner. - Consolidation of chained IRQ handler install/remove replacing all call sites where irq_set_handler_data() and irq_set_chained_handler() were done in succession with a combined call to irq_set_chained_handler_and_data(). This series was created by Thomas Gleixner after the problem was observed by Russell King. - Tglx also made another series of patches switching __irq_set_handler_locked() for irq_set_handler_locked() which is way cleaner. - Tglx and Jiang Liu wrote a good bunch of patches to make use of irq_desc_get_xxx() accessors and avoid looking up irq_descs from IRQ numbers. The goal is to get rid of the irq number from the handlers in the IRQ flow which is nice. - Rob Herring killed off the set_irq_flags() for all GPIO drivers. This was an ARM specific function that is replaced with the generic irq_modify_status() where special flags are actually needed. - When an OF node has a pin range for its GPIOs, return -EPROBE_DEFER if the pin controller isn't available. Pretty logical, yet needed to be fixed. - If a driver using GPIOLIB_IRQCHIP has its own irq_*_resources call back, then call these instead of the defaults provided by the GPIOLIB. - Fix an undocumented ABI hole: named GPIOs were not properly documented. Driver improvements: - Add get_direction() support to the generic GPIO driver, it's strange that we didn't have that before. - Make it possible to have input-only GPIO chips using the generic GPIO driver. - Clean out platform data support from the Emma Mobile (EM) driver - Finegrained runtime PM support for the RCAR driver. - Support r8a7795 (R-car H3) in the RCAR driver. - Support interrupts on GPIOs 16 thru 31 in the DaVinci driver. - Some consolidation and new support in the MPC8xxx driver, we now support MPC5125. - Preempt-RT-friendly patches: the OMAP, MPC8xxx, drivers uses raw spinlocks making it work better with the realime patches. - Interrupt support for the EXTRAXFS GPIO driver. - Make the ETRAXFS GPIO driver support also ARTPEC-3. - Interrupt and wakeup support for the BRCMSTB driver, also for wakeup from S5 cold boot. - Mask MXC IRQs during suspend. - Improve OMAP2 GPIO set_debounce() to work according to spec. - The VF610 driver handles IRQs properly. New drivers: - ZTE ZX GPIO driver" * tag 'gpio-v4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (87 commits) Revert "gpio: extraxfs: fix returnvar.cocci warnings" gpio: tc3589x: use static container helper gpio: xlp: fix error return code gpio: vf610: handle level IRQ's properly gpio: max732x: Fix error handling in probe() gpio: omap: fix clk_prepare/unprepare usage gpio: omap: protect regs access in omap_gpio_irq_handler gpio: omap: fix omap2_set_gpio_debounce gpio: omap: switch to use platform_get_irq gpio: omap: remove wrong irq_domain_remove usage in probe gpiolib: add description for gpio irqchip fields in struct gpio_chip gpio: extraxfs: fix returnvar.cocci warnings gpiolib: irqchip: use different lockdep class for each gpio irqchip gpio/grgpio: fix deadlock in grgpio_irq_unmap() Documentation: gpio: consumer: describe active low property gpio: mxc: fix section mismatch warning gpio/mxc: mask gpio interrupts in suspend gpio: omap: Fix missing raw locks conversion gpio: brcmstb: support wakeup from S5 cold boot gpio: brcmstb: Add interrupt and wakeup source support ...
| * Merge tag 'v4.2-rc4' into develLinus Walleij2015-08-13
| |\ | | | | | | | | | Linux 4.2-rc4
| * | phy: tusb1210: make better use of gpiod APIUwe Kleine-König2015-07-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Furthermore there is devm_gpiod_get_optional which is designed to get optional gpios. Simplify driver accordingly. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
* | | Merge tag 'phy-for-4.3' of ↵Greg Kroah-Hartman2015-08-14
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy into usb-next Kishon writes: phy: for 4.3 *) Add new NXP USB OTG PHY driver *) Add vbus/id detection, extcon support and fixes in phy-sun4i-usb driver *) Add support to use phy-sun4i-usb driver for sun8i-a23 and sun8i-a33 SoCs *) Other trivial code cleanups, dropping .owner assignment and constify phy_ops Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
| * | | phy: lpc18xx-usb-otg: fix clock order in phy initJoachim Eastwood2015-08-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changing the frequency of the USB clock must be done before the PLL is powered on (prepared). This matters when the USB clock is not setup by either boot ROM or boot loader. Reorder the function calls to adhere to the order noted in the user manual. Signed-off-by: Joachim Eastwood <manabian@gmail.com> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
| * | | phy: Constify struct phy_ops variablesAxel Lin2015-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The phy_ops variables are never modified after initialized in these drivers, so make them const. Signed-off-by: Axel Lin <axel.lin@ingics.com> Acked-by: Patrice Chotard <patrice.chotard@st.com> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>