summaryrefslogtreecommitdiffstats
path: root/drivers/usb/phy/phy-ab8500-usb.c
Commit message (Collapse)AuthorAgeFilesLines
* usb: phy: initialize the notifier when add a new phyNeil Zhang2013-12-121-2/+0
| | | | | | | | | | We need to initialize the notifer before use it. So lets initialize it when add a new phy device to reduce the code redundancy. Signed-off-by: Neil Zhang <zhangwm@marvell.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
* usb: phy: ab8500-usb: add ab9540 supportFabio Baltieri2013-05-281-0/+213
| | | | | | | | | | | Add support for the ab9540 variant of the ab8500 family. Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Maxime Coquelin <maxime.coquelin@st.com> Cc: Avinash Kumar <avinash.kumar@stericsson.com> Cc: Thirupathi Chippakurthy <thirupathi.chippakurthy@stericsson.com> Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org> Signed-off-by: Felipe Balbi <balbi@ti.com>
* usb: phy: ab8500-usb: add ab8540 supportFabio Baltieri2013-05-281-3/+294
| | | | | | | | | | Add support for the ab8540 variant of the ab8500 family. Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Maxime Coquelin <maxime.coquelin@st.com> Cc: Avinash Kumar <avinash.kumar@stericsson.com> Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org> Signed-off-by: Felipe Balbi <balbi@ti.com>
* usb: phy: ab8500-usb: add flag bits to control driver featuresFabio Baltieri2013-05-281-36/+73
| | | | | | | | | | | Introduce a "flags" field in "struct ab8500_usb" to allow controlling driver features and quirks depending on ab8500 chip variant and revision. Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Maxime Coquelin <maxime.coquelin@st.com> Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org> Signed-off-by: Felipe Balbi <balbi@ti.com>
* usb: phy: ab8500-usb: move phy tuning values on separate functionsFabio Baltieri2013-05-281-75/+86
| | | | | | | | | | Move each chip's PHY tuning value set code to a separate function to improve code readability. Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Maxime Coquelin <maxime.coquelin@st.com> Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org> Signed-off-by: Felipe Balbi <balbi@ti.com>
* usb: phy: ab8500-usb: add platform_device_id tableFabio Baltieri2013-05-281-2/+8
| | | | | | | | | | Add an initial platform_device_id table to the ab8500-usb driver to allow probing additional variants of the ab8500 family chips. Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Maxime Coquelin <maxime.coquelin@st.com> Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org> Signed-off-by: Felipe Balbi <balbi@ti.com>
* usb: phy: ab8500-usb: fix phy tuning value select logicFabio Baltieri2013-05-281-2/+2
| | | | | | | | | | | | | | | | | The driver supports both ab8500 and ab8505, but the actual phy tuning values logic sets ab8500 values: if (!is_ab8500_2p0_or_earlier(ab->ab8500)) which is supposed to set values for ab8500, but incorrectly results true for ab8505 too. Fix this by adding an additional is_ab8500(ab->ab8500) check. Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Maxime Coquelin <maxime.coquelin@st.com> Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org> Signed-off-by: Felipe Balbi <balbi@ti.com>
* usb: phy: ab8500-usb: restart phy during probeSakethram Bommisetti2013-05-281-0/+33
| | | | | | | | | | | | | | | Add an ab8500_usb_restart_phy() function called during probe to ensure that the AB8500 USB phy is initialized properly even when a cable is connected at probe time. Without this fix subsequent host reconnections are not detected properly. Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Maxime Coquelin <maxime.coquelin@st.com> Signed-off-by: Sakethram Bommisetti <sakethram.bommisetti@stericsson.com> Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org> Signed-off-by: Felipe Balbi <balbi@ti.com>
* usb: phy: ab8500-usb: add transceiver clock controlMian Yousaf Kaukab2013-05-281-0/+14
| | | | | | | | | | | Add common clock support code for the ab8500-usb phy driver. Acked-by: Ulf Hansson <ulf.hansson@linaro.org> Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Maxime Coquelin <maxime.coquelin@st.com> Signed-off-by: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org> Signed-off-by: Felipe Balbi <balbi@ti.com>
* usb: musb: various cosmetic fixes on ux500 filesFabio Baltieri2013-05-281-4/+5
| | | | | | | | | | Various non functional coding style fixes on ux500_dma.c and phy-ab8500-usb.c drivers. Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Maxime Coquelin <maxime.coquelin@st.com> Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org> Signed-off-by: Felipe Balbi <balbi@ti.com>
* usb: phy: ab8500-usb: Remove redundant platform_set_drvdata()Sachin Kamat2013-05-151-2/+0
| | | | | | | | | Commit 0998d06310 (device-core: Ensure drvdata = NULL when no driver is bound) removes the need to set driver data field to NULL. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Felipe Balbi <balbi@ti.com>
* usb: phy: ab8500-usb: check regulator_enable return valueFabio Baltieri2013-04-031-3/+9
| | | | | | | | | | Since regulator_enable() is going to be marked as __must_check in the next merge window, always check regulator_enable() return value and print a warning if it fails. Cc: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org> Signed-off-by: Felipe Balbi <balbi@ti.com>
* usb: phy: ab8500-usb: call phy_dis_work only when necessarySakethram Bommisetti2013-04-031-9/+8
| | | | | | | | | | | Modify ab8500_usb_set_peripheral() and ab8500_usb_set_host() code to schedule phy_dis_work only when necessary in order to prevent regulator count mismatch during reboot/shutdown. Signed-off-by: Sakethram Bommisetti <sakethram.bommisetti@stericsson.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org> Signed-off-by: Felipe Balbi <balbi@ti.com>
* usb: phy: ab8500-usb: drop link status delayed workSakethram Bommisetti2013-04-031-28/+2
| | | | | | | | | | | ab8500_usb_delayed_work was implemented as a workaroud for the internal only and now unsupported v1.0 version of AB850. This patch removes the delayed work and just leave a link status update call at probe time. Signed-off-by: Sakethram Bommisetti <sakethram.bommisetti@stericsson.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org> Signed-off-by: Felipe Balbi <balbi@ti.com>
* usb: phy: ab8500-usb: adopt pinctrl supportPatrice Chotard2013-04-031-0/+24
| | | | | | | | | | | | | | Amend the ab8500-usb driver to optionally take a pin control handle and set the state of the pins to "default" on ab8500_usb_phy_enable and to "sleep" on ab8500_usb_phy_disable. The pinctrl handle is released on ab8500_usb_phy_disable because USB pins are shared with ab8505_micro_usb_iddet driver. Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org> Signed-off-by: Felipe Balbi <balbi@ti.com>
* usb: phy: ab8500-usb: fix last notifier argumentsFabio Baltieri2013-04-031-7/+3
| | | | | | | | | | | | | Fix last ab->phy.notifier call to use vbus_draw as notifier argument, as that's used in ab8500_charger to control charging current. Also drop a related TODO comment, and the additional ux500_musb_set_vbus(musb, 0), as with this patch it was causing an erratic behaviour of gadget ep0 state machine. Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org> Signed-off-by: Felipe Balbi <balbi@ti.com>
* usb: phy: ab8500-usb: fix unbalanced clock and regulator disable warningsMian Yousaf Kaukab2013-04-031-2/+4
| | | | | | | | | | | To prevent clock and regulator frameworks from complaining, only disable the host or peripheral phy if they were enabled. Reported-by: Sakethram Bommisetti <sakethram.bommisetti@stericsson.com> Signed-off-by: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org> Signed-off-by: Felipe Balbi <balbi@ti.com>
* usb: phy: ab8500-usb: enable/disable regulator on phy eventsFabio Baltieri2013-04-031-2/+66
| | | | | | | | | | | | | | | Add ab8500_usb_regulator_{enable,disable} functions to control USB phy regulators on corresponding ab8500_usb_phy_{enable,disable} events. This contains some workaround and optimization for specific AB8500 versions. Signed-off-by: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> Signed-off-by: Sakethram Bommisetti <sakethram.bommisetti@stericsson.com> Signed-off-by: Praveena Nadahally <praveen.nadahally@stericsson.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org> Signed-off-by: Felipe Balbi <balbi@ti.com>
* usb: phy: ab8500-usb: split ab8500_usb_phy_ctrlFabio Baltieri2013-04-031-29/+26
| | | | | | | | | Split ab8500_usb_phy_ctrl into separate enable/disable functions to make the code more linear and readable. Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org> Signed-off-by: Felipe Balbi <balbi@ti.com>
* usb: phy: ab8500-usb: add regulator supportFabio Baltieri2013-04-031-0/+36
| | | | | | | | | Add initial regulator support to ab8500-usb by introducing necessary devm_regulator_get(). Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org> Signed-off-by: Felipe Balbi <balbi@ti.com>
* usb: phy: ab8500-usb: fix eye diagram for ab8500 v2.0Sakethram Bommisetti2013-04-031-0/+15
| | | | | | | | | | AB8500 v2.0 has eye diagram issues when drawing more than 100mA from VBUS. Force charging current to 100mA in case of standard host. Signed-off-by: Sakethram Bommisetti <sakethram.bommisetti@stericsson.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org> Signed-off-by: Felipe Balbi <balbi@ti.com>
* usb: phy: ab8500-usb: set phy tuning valuesSakethram Bommisetti2013-04-031-0/+87
| | | | | | | | | | Set phy tuning values proposed by the hardware teams for AB8500 and AB8505 to improve USB eye diagram performances. Signed-off-by: Sakethram Bommisetti <sakethram.bommisetti@stericsson.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org> Signed-off-by: Felipe Balbi <balbi@ti.com>
* usb: phy: ab8500-usb: convert to devm_kzallocFabio Baltieri2013-04-031-14/+5
| | | | | | | | | Convert local data allocation to devm_kzalloc and drop unnecessary fail path code. Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org> Signed-off-by: Felipe Balbi <balbi@ti.com>
* usb: phy: ab8500-usb: update irq handling codeFabio Baltieri2013-03-181-93/+347
| | | | | | | | | | | | | | Update irq handling code to notify all possible link status changes of AB8500 and AB8505 to the ux500-musb glue driver. The additional event codes will be used for pm-runtime implementation, and are defined in a separate ux500-specific header. This also modify the irq registration code to use devm_* helpers and drop all non necessary fail path code. Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org> Signed-off-by: Felipe Balbi <balbi@ti.com>
* usb: otg: ab8500-usb: drop support for ab8500 pre v2.0Fabio Baltieri2013-03-181-128/+11
| | | | | | | | | | AB8500 versions preceding 2.0 were only used internally by ST-Ericsson and are not supported anymore. This patch drops all v1.0 and v1.1 support code. Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org> Signed-off-by: Felipe Balbi <balbi@ti.com>
* usb: phy: rename all phy drivers to phy-$name-usb.cFelipe Balbi2013-03-181-0/+596
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: Felipe Balbi <balbi@ti.com>