Hi Martin, On Mon, 4 Feb 2019 at 19:36, Martin Blumenstingl <martin.blumenstingl@xxxxxxxxxxxxxx> wrote: > > Hi Anand, > > On Tue, Jan 29, 2019 at 11:25 AM Anand Moon <linux.amoon@xxxxxxxxx> wrote: > > > > Override the dr_mode from "host" to "otg" for USB_HOST controller (usb0) > > changes help usb_phy0->usb0 initialization of OTG bus port. > > > > Changes fix the below warning. > > > > [ 1.183681] dwc2 c9000000.usb: c9000000.usb supply vusb_d not found, using dummy regulator > > [ 1.190627] dwc2 c9000000.usb: Linked as a consumer to regulator.0 > > [ 1.196696] dwc2 c9000000.usb: c9000000.usb supply vusb_a not found, using dummy regulator > > [ 1.206094] phy phy-c0000000.phy.0: USB ID detect failed! > > [ 1.210243] phy phy-c0000000.phy.0: phy poweron failed --> -22 > I wonder if the warning below are a side-effect of "phy poweron failed"... As pointed by you we need the fix this issue earlier email. unless we enable the phy and set the correct dr_mode to tune the phy we cannot the tune and power on phy bus properly. After this patch we get phy and power correctly registered. # cat /sys/kernel/debug/regulator/regulator_summary regulator use open bypass opmode voltage current min max --------------------------------------------------------------------------------------- regulator-dummy 5 4 0 unknown 0mV 0mA 0mV 0mV c9100000.usb 1 0mA 0mV 0mV c9100000.usb 1 0mA 0mV 0mV c9000000.usb 1 0mA 0mV 0mV c9000000.usb 1 0mA 0mV 0mV P5V0 1 1 0 unknown 5000mV 0mA 5000mV 5000mV USB_OTG_PWR 4 2 0 unknown 5000mV 0mA 5000mV 5000mV phy-c0000020.phy.1 2 0mA 0mV 0mV phy-c0000000.phy.0 2 0mA 0mV 0mV > > > [ 1.216072] WARNING: CPU: 0 PID: 78 at drivers/regulator/core.c:2054 _regulator_put.part.11+0xf0/0xf8 > > [ 1.225147] Modules linked in: > > [ 1.228169] CPU: 0 PID: 78 Comm: kworker/0:1 Not tainted 5.0.0-rc4-xc2ml #1 > > [ 1.235066] Hardware name: Hardkernel ODROID-C2 (DT) > > [ 1.239987] Workqueue: events deferred_probe_work_func > > [ 1.245072] pstate: 80000005 (Nzcv daif -PAN -UAO) > > [ 1.249816] pc : _regulator_put.part.11+0xf0/0xf8 > > [ 1.254473] lr : regulator_put+0x34/0x48 > > [ 1.258353] sp : ffff0000117b3b00 > > [ 1.261630] x29: ffff0000117b3b00 x28: 0000000000000000 > > [ 1.266891] x27: ffff80007ec1a7b8 x26: ffff000010eec280 > > [ 1.272153] x25: 0000000000000000 x24: 0000000000000009 > > [ 1.277414] x23: ffff0000117b3bc8 x22: ffff80007ecd3c00 > > [ 1.282675] x21: ffff0000111ad6c8 x20: ffff80007ecd3e00 > > [ 1.287936] x19: ffff80007ecd3e00 x18: 0000000000000124 > > [ 1.293198] x17: 0000000000000000 x16: 0000000000000000 > > [ 1.298459] x15: 0000000000000400 x14: 0000000000000400 > > [ 1.303720] x13: ff00000000000000 x12: ffffffffffffffff > > [ 1.308981] x11: 0000000000000038 x10: 0000000000000040 > > [ 1.314243] x9 : ffff0000111c58b0 x8 : ffff0000111c58a8 > > [ 1.319504] x7 : ffff80006b055200 x6 : ffff80007edd2880 > > [ 1.324765] x5 : ffff80007f400248 x4 : ffff80007fb92b00 > > [ 1.330026] x3 : ffff0000112c9d58 x2 : ffff80007edd2880 > > [ 1.335288] x1 : 0000000000000000 x0 : 0000000000000001 > > [ 1.340549] Call trace: > > [ 1.342966] _regulator_put.part.11+0xf0/0xf8 > > [ 1.347278] regulator_put+0x34/0x48 > > [ 1.350814] regulator_bulk_free+0x30/0x50 > > [ 1.354868] devm_regulator_bulk_release+0x18/0x20 > > [ 1.359612] release_nodes+0x1b0/0x220 > > [ 1.363320] devres_release_all+0x34/0x50 > > [ 1.367288] really_probe+0xec/0x290 > > [ 1.370824] driver_probe_device+0x54/0xe8 > > [ 1.374878] __device_attach_driver+0xb8/0xe8 > > [ 1.379190] bus_for_each_drv+0x78/0xc8 > > [ 1.382985] __device_attach+0xd4/0x130 > > [ 1.386780] device_initial_probe+0x10/0x18 > > [ 1.390920] bus_probe_device+0x90/0x98 > > [ 1.394715] deferred_probe_work_func+0x6c/0xa0 > > [ 1.399203] process_one_work+0x1e0/0x318 > > [ 1.403168] worker_thread+0x228/0x428 > > [ 1.406877] kthread+0x124/0x128 > > [ 1.410070] ret_from_fork+0x10/0x18 > > [ 1.413603] ---[ end trace 498aca4cb07e5377 ]--- > phy_power_on fails above with -EINVAL and then something else breaks > (it seems like you're hitting the WARN_ON in drivers/regulator/core.c > below the comment which states: "Docs say you must disable before > calling regulator_put()") Ok will look into this later. > so this looks like a bug in either the dwc2 driver or the PHY > framework. can you please report that to the dwc2 and PHY maintainers > so it can be fixed independently? > > > Regards > Martin Best Regards -Anand