Hi Heiko
Am Mittwoch, 3. Dezember 2014, 21:46:50 schrieb LiYunzhi:+ +}; + +static int rockchip_usb_phy_power(struct rockchip_usb_phy *phy, + bool siddq) +{ + return regmap_write(phy->reg_base, phy->reg_offset, + SIDDQ_MSK | (siddq ? SIDDQ_ON : SIDDQ_OFF));just for my understanding: You're using the SIDDQ bit, which supposedly "powers down all analog blocks" for IDDQ testing to control the phy power. What is the difference to usbotg_disable (bit 4 of uoc_con0) that is supposed to "power down the USB OTG/HOST block"? Similarly, where is the difference to usbotg_sleepm [uoc_con2 bit 10] combined with usbotg_common_on_n [uoc_con0 bit 0]?
SIDDQ: is used to power down the USB block analog function. usbotg_disable: is used to diable USB digital interface, and USB analog part is still alive. The power consuming is total different. Power(SIDDQ) < Power(usbotg_disable). usbotg_sleepm is defined in USB Low power mode - L1, this signal could be used for USB 2.0 Link Power Management (LPM) addendum to the USB 2.0 specification, but our controller doesn't support. So we do not use sleepm, this bit here just for debug force the transmitter enter the LPM specific sleep mode. usbotg_common_on_n: is used to control USB PHY internal PLL. When active Low, the PLL is still alive in suspend mode, which could output 480M clock for other IP use. -------- Roy Li @ Rockchip -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
