mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 19:08:57 +09:00
phy: rockchip: inno-usb2: select bvalid of phy for otg port
Since RK356x, the USB PHY GRF adds new registers to select bvalid from USB PHY or GRF. And in RK356x Maskrom USB driver, it selects the bvalid from GRF and sets the bvalid value to 1, it aims to improve the compatibility of various USB circuits for Maskrom USB. However, the charger detection and USB PHY power consumption control depends on the bvalid of USB PHY. So this patch selects bvalid from USB PHY for otg port. Change-Id: I3fc9faf06f30e0a3390bc4fd40c732fb856131f8 Signed-off-by: William Wu <william.wu@rock-chips.com> Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
This commit is contained in:
@@ -122,6 +122,7 @@ struct rockchip_chg_det_reg {
|
||||
* @bvalid_det_en: vbus valid rise detection enable register.
|
||||
* @bvalid_det_st: vbus valid rise detection status register.
|
||||
* @bvalid_det_clr: vbus valid rise detection clear register.
|
||||
* @bvalid_set: bvalid select and set to usb controller.
|
||||
* @bypass_dm_en: usb bypass uart DM enable register.
|
||||
* @bypass_sel: usb bypass uart select register.
|
||||
* @bypass_iomux: usb bypass uart GRF iomux register.
|
||||
@@ -152,6 +153,7 @@ struct rockchip_usb2phy_port_cfg {
|
||||
struct usb2phy_reg bvalid_det_en;
|
||||
struct usb2phy_reg bvalid_det_st;
|
||||
struct usb2phy_reg bvalid_det_clr;
|
||||
struct usb2phy_reg bvalid_set;
|
||||
struct usb2phy_reg bypass_dm_en;
|
||||
struct usb2phy_reg bypass_sel;
|
||||
struct usb2phy_reg bypass_iomux;
|
||||
@@ -1730,6 +1732,10 @@ static int rockchip_usb2phy_otg_port_init(struct rockchip_usb2phy *rphy,
|
||||
rport->mode == USB_DR_MODE_UNKNOWN)
|
||||
goto out;
|
||||
|
||||
/* Select bvalid of usb phy as bvalid of usb controller */
|
||||
if (rport->port_cfg->bvalid_set.enable != 0)
|
||||
property_enable(base, &rport->port_cfg->bvalid_set, false);
|
||||
|
||||
wake_lock_init(&rport->wakelock, WAKE_LOCK_SUSPEND, "rockchip_otg");
|
||||
INIT_DELAYED_WORK(&rport->bypass_uart_work,
|
||||
rockchip_usb_bypass_uart_work);
|
||||
|
||||
Reference in New Issue
Block a user