[v13 PATCH 2/5] phy: Add USB Type-C PHY driver for rk3399
From: Guenter Roeck <hidden>
Date: 2016-08-22 12:07:03
Also in:
linux-rockchip, lkml
Hi Chris, On Sun, Aug 21, 2016 at 9:52 PM, Chris [off-list ref] wrote:
Hi Guenter
[ ... ]
quoted
quoted
+static int rockchip_usb3_phy_power_on(struct phy *phy) +{ + struct rockchip_typec_phy *tcphy = phy_get_drvdata(phy); + struct rockchip_usb3phy_port_cfg *cfg = &tcphy->port_cfgs; + const struct usb3phy_reg *reg = &cfg->pipe_status; + int timeout, new_mode, ret = 0; + u32 val; + + mutex_lock(&tcphy->lock); + + new_mode = tcphy_get_mode(tcphy); + if (new_mode < 0) { + ret = new_mode; + goto unlock_ret; + } + + /* DP-only mode; fall back to USB2 */ + if (!(new_mode & (MODE_DFP_USB | MODE_UFP_USB))) + goto unlock_ret; +The rest of the code (calling tcphy_phy_init(), waiting for pipe ready) is not needed in this case ?If there is only DP, the tcphy_phy_init will be called by DP controller, and the pipe is for USB3, so do not need do anything, just return a "fake" success here. And the usb phy power off do nothing. Just make USB controller happier.
Yes, you are right. It is a bit confusing (and I had overlooked) that MODE_DFP_USB is set for both USB2 and USB3 if DP isn't active, but if DP is active it is only set for USB3. Guenter