[PATCHv3 2/2] ARM64: dts: meson-gxbb-odroidc2: Fix usb phy regulator power failed warning

From: Anand Moon
Date: Tue Jan 29 2019 - 05:25:49 EST


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
[ 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 ]---
[ 1.418251] WARNING: CPU: 0 PID: 78 at drivers/regulator/core.c:2054 _regulator_put.part.11+0xf0/0xf8
[ 1.427316] Modules linked in:
[ 1.430338] CPU: 0 PID: 78 Comm: kworker/0:1 Tainted: G W 5.0.0-rc4-xc2ml #1
[ 1.438615] Hardware name: Hardkernel ODROID-C2 (DT)
[ 1.443534] Workqueue: events deferred_probe_work_func
[ 1.448621] pstate: 80000005 (Nzcv daif -PAN -UAO)
[ 1.453366] pc : _regulator_put.part.11+0xf0/0xf8
[ 1.458023] lr : regulator_put+0x34/0x48
[ 1.461903] sp : ffff0000117b3b00
[ 1.465180] x29: ffff0000117b3b00 x28: 0000000000000000
[ 1.470441] x27: ffff80007ec1a7b8 x26: ffff000010eec280
[ 1.475703] x25: 0000000000000000 x24: 0000000000000009
[ 1.480964] x23: ffff0000117b3bc8 x22: ffff80007ecd3c00
[ 1.486225] x21: ffff0000111ad6c8 x20: ffff80007ecd3f00
[ 1.491486] x19: ffff80007ecd3f00 x18: 0000000000000007
[ 1.496748] x17: 0000000000000000 x16: 0000000000000000
[ 1.502009] x15: 0000000000000400 x14: ffff80000531da90
[ 1.507270] x13: ffff80007f4ae050 x12: 0000000000000000
[ 1.512531] x11: ffff80007f4adff0 x10: 0000000000000040
[ 1.517793] x9 : ffff80000531da98 x8 : 0000000040000000
[ 1.523054] x7 : ffff80006b054700 x6 : 0000000000000001
[ 1.528315] x5 : ffff0000105a868c x4 : ffff80007edd2880
[ 1.533576] x3 : ffff0000112c9d58 x2 : ffff80007edd2880
[ 1.538838] x1 : 0000000000000000 x0 : 0000000000000001
[ 1.544098] Call trace:
[ 1.546516] _regulator_put.part.11+0xf0/0xf8
[ 1.550828] regulator_put+0x34/0x48
[ 1.554364] regulator_bulk_free+0x30/0x50
[ 1.558417] devm_regulator_bulk_release+0x18/0x20
[ 1.563161] release_nodes+0x1b0/0x220
[ 1.566870] devres_release_all+0x34/0x50
[ 1.570838] really_probe+0xec/0x290
[ 1.574374] driver_probe_device+0x54/0xe8
[ 1.578428] __device_attach_driver+0xb8/0xe8
[ 1.582740] bus_for_each_drv+0x78/0xc8
[ 1.586535] __device_attach+0xd4/0x130
[ 1.590330] device_initial_probe+0x10/0x18
[ 1.594470] bus_probe_device+0x90/0x98
[ 1.598265] deferred_probe_work_func+0x6c/0xa0
[ 1.602751] process_one_work+0x1e0/0x318
[ 1.606718] worker_thread+0x228/0x428
[ 1.610427] kthread+0x124/0x128
[ 1.613618] ret_from_fork+0x10/0x18
[ 1.617153] ---[ end trace 498aca4cb07e5378 ]---
[ 1.621778] dwc2: probe of c9000000.usb failed with error -22

Fixes: 5a0803bd5ae (ARM64: dts: meson-gxbb-odroidc2: Enable USB Nodes)
Cc: Martin Blumenstingl <martin.blumenstingl@xxxxxxxxxxxxxx>
Cc: Jerome Brunet <jbrunet@xxxxxxxxxxxx>
Cc: Neil Armstrong <narmstrong@xxxxxxxxxxxx>
Signed-off-by: Anand Moon <linux.amoon@xxxxxxxxx>
---
Changes from previous patch
change dr_mode from "peripheral" to "otg"
Since usb_phy0 is otg port as per the shematic
Fixed the commit messages with latest warning

This patch depend on this below patch
[0] https://patchwork.kernel.org/patch/10777359/

/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=dwc2/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 4, If 0, Class=Mass Storage, Driver=usb-storage, 480M
|__ Port 3: Dev 3, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 3: Dev 3, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 3: Dev 3, If 2, Class=Audio, Driver=, 480M
|__ Port 3: Dev 3, If 3, Class=Audio, Driver=, 480M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc2/1p, 480M

drop tested but from Kevin
---
arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts | 1 +
1 file changed, 1 insertion(+)

diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
index da729ed00408..5d81ad02483b 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
@@ -312,6 +312,7 @@

&usb0 {
status = "okay";
+ dr_mode = "otg";
};

&usb1 {
--
2.20.1