Message ID | 20190111092235.28161-1-linux.amoon@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ARM64: dts: meson-gxbb-odroidc2: Fix usb phy regulator warning | expand |
Hi Anand, On 11/01/2019 10:22, Anand Moon wrote: > Add missing vin-supply 5V regulator node on usb_phy nodes needed > to power usb bus ports. Override the dr_mode from "host" to "peripheral" > for initialization of dwc2 usb0 phy node,changes fix the below > warning for usb initialization. I would have switch the dr_mode to peripheral in another patch, fix the regulator issue in this patch only. Neil > > [ 1.203900] phy phy-c0000000.phy.0: USB ID detect failed! > [ 1.208048] phy phy-c0000000.phy.0: phy poweron failed --> -22 > [ 1.213877] WARNING: CPU: 1 PID: 44 at drivers/regulator/core.c:2054 _regulator_put.part.11+0xf0/0xf8 > [ 1.222953] Modules linked in: > [ 1.225976] CPU: 1 PID: 44 Comm: kworker/1:1 Not tainted 5.0.0-rc1-xc2ml #3 > [ 1.232872] Hardware name: Hardkernel ODROID-C2 (DT) > [ 1.237794] Workqueue: events deferred_probe_work_func > [ 1.242878] pstate: 80000005 (Nzcv daif -PAN -UAO) > [ 1.247623] pc : _regulator_put.part.11+0xf0/0xf8 > [ 1.252280] lr : regulator_put+0x34/0x48 > [ 1.256159] sp : ffff00001176bb00 > [ 1.259437] x29: ffff00001176bb00 x28: 0000000000000000 > [ 1.264698] x27: ffff80007f31beb8 x26: ffff000010eeb7e0 > [ 1.269959] x25: 0000000000000000 x24: 0000000000000009 > [ 1.275220] x23: ffff00001176bbc8 x22: ffff80007ed9d500 > [ 1.280482] x21: ffff0000111bd6c8 x20: ffff80007ed9d700 > [ 1.285743] x19: ffff80007ed9d700 x18: 000000000000006f > [ 1.291004] x17: 0000000000000000 x16: 0000000000000000 > [ 1.296265] x15: 0000000000000400 x14: 0000000000000400 > [ 1.301527] x13: ff00000000000000 x12: ffffffffffffffff > [ 1.306788] x11: 0000000000000038 x10: 0000000000000040 > [ 1.312049] x9 : ffff0000111d58b0 x8 : ffff0000111d58a8 > [ 1.317310] x7 : ffff80007ed9db00 x6 : ffff80007ec21b00 > [ 1.322571] x5 : ffff80007f400248 x4 : ffff80007fba9b00 > [ 1.327833] x3 : ffff0000112d9eb8 x2 : ffff80007ec21b00 > [ 1.333094] x1 : 0000000000000000 x0 : 0000000000000001 > [ 1.338356] Call trace: > [ 1.340773] _regulator_put.part.11+0xf0/0xf8 > [ 1.345085] regulator_put+0x34/0x48 > [ 1.348621] regulator_bulk_free+0x30/0x50 > [ 1.352675] devm_regulator_bulk_release+0x18/0x20 > [ 1.357421] release_nodes+0x1b0/0x220 > [ 1.361127] devres_release_all+0x34/0x50 > [ 1.365094] really_probe+0xec/0x290 > [ 1.368630] driver_probe_device+0x54/0xe8 > [ 1.372684] __device_attach_driver+0xb8/0xe8 > [ 1.376997] bus_for_each_drv+0x78/0xc8 > [ 1.380792] __device_attach+0xd4/0x130 > [ 1.384587] device_initial_probe+0x10/0x18 > [ 1.388727] bus_probe_device+0x90/0x98 > [ 1.392522] deferred_probe_work_func+0x6c/0xa0 > [ 1.397010] process_one_work+0x1e0/0x318 > [ 1.400975] worker_thread+0x228/0x428 > [ 1.404684] kthread+0x124/0x128 > [ 1.407876] ret_from_fork+0x10/0x18 > [ 1.411410] ---[ end trace de5fd1b262c1f56a ]--- > [ 1.416055] WARNING: CPU: 1 PID: 44 at drivers/regulator/core.c:2054 _regulator_put.part.11+0xf0/0xf8 > [ 1.425123] Modules linked in: > [ 1.428144] CPU: 1 PID: 44 Comm: kworker/1:1 Tainted: G W 5.0.0-rc1-xc2ml #3 > [ 1.436422] Hardware name: Hardkernel ODROID-C2 (DT) > [ 1.441340] Workqueue: events deferred_probe_work_func > > Fixes: 5a0803bd5ae (ARM64: dts: meson-gxbb-odroidc2: Enable USB Nodes) > Cc: Martin Blumenstingl <martin.blumenstingl@googlemail.com> > Cc: Jerome Brunet <jbrunet@baylibre.com> > Cc: Neil Armstrong <narmstrong@baylibre.com> > Signed-off-by: Anand Moon <linux.amoon@gmail.com> > --- > Fix the following power issue with usb device > > [ 795.380156] usb 1-1.2: reset high-speed USB device number 3 using dwc2 > [ 798.356073] usb 1-1.2: reset high-speed USB device number 3 using dwc2 > [ 801.331999] usb 1-1.2: reset high-speed USB device number 3 using dwc2 > [ 804.307919] usb 1-1.2: reset high-speed USB device number 3 using dwc2 > [ 807.283844] usb 1-1.2: reset high-speed USB device number 3 using dwc2 > > [alarm@archl-c2m ~]$ lsusb -t > /: Bus 01.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 2: Dev 5, If 3, Class=Audio, Driver=, 480M > |__ Port 2: Dev 5, If 1, Class=Video, Driver=uvcvideo, 480M > |__ Port 2: Dev 5, If 2, Class=Audio, Driver=, 480M > |__ Port 2: Dev 5, If 0, Class=Video, Driver=uvcvideo, 480M > |__ Port 3: Dev 3, If 0, Class=Vendor Specific Class, Driver=, 480M > > Similar Fix is need for Odroid C1+ to power on the phy nodes > --- > arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts > index 2e1cd5e3a246..b4e14ff614c4 100644 > --- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts > +++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts > @@ -28,6 +28,13 @@ > reg = <0x0 0x0 0x0 0x80000000>; > }; > > + p5v0: regulator-p5v0 { > + compatible = "regulator-fixed"; > + regulator-name = "P5V0"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + }; > + > usb_otg_pwr: regulator-usb-pwrs { > compatible = "regulator-fixed"; > > @@ -36,6 +43,8 @@ > regulator-min-microvolt = <5000000>; > regulator-max-microvolt = <5000000>; > > + vin-supply = <&p5v0>; > + > gpio = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>; > enable-active-high; > }; > @@ -303,6 +312,7 @@ > > &usb0 { > status = "okay"; > + dr_mode = "peripheral"; > }; > > &usb1 { >
Hi Neil, On Fri, 11 Jan 2019 at 19:10, Neil Armstrong <narmstrong@baylibre.com> wrote: > > Hi Anand, > > On 11/01/2019 10:22, Anand Moon wrote: > > Add missing vin-supply 5V regulator node on usb_phy nodes needed > > to power usb bus ports. Override the dr_mode from "host" to "peripheral" > > for initialization of dwc2 usb0 phy node,changes fix the below > > warning for usb initialization. > > I would have switch the dr_mode to peripheral in another patch, > fix the regulator issue in this patch only. > > Neil > [snip] Ok will split this into two patches and send after next dts updates. Best Regards -Anand
Anand Moon <linux.amoon@gmail.com> writes: > Hi Neil, > > On Fri, 11 Jan 2019 at 19:10, Neil Armstrong <narmstrong@baylibre.com> wrote: >> >> Hi Anand, >> >> On 11/01/2019 10:22, Anand Moon wrote: >> > Add missing vin-supply 5V regulator node on usb_phy nodes needed >> > to power usb bus ports. Override the dr_mode from "host" to "peripheral" >> > for initialization of dwc2 usb0 phy node,changes fix the below >> > warning for usb initialization. >> >> I would have switch the dr_mode to peripheral in another patch, >> fix the regulator issue in this patch only. >> >> Neil >> > [snip] > > Ok will split this into two patches and send after next dts updates. > When you split, please be specific about which part fixes which problem. e.g. it appears the dr_mode fixes the WARNING from the regulator core by itself, and the vin-supply fixes the usb resets, correct? It wasn't obvious upon reading the changelog. In either case, feel free to add: Tested-by: Kevin Hilman <khilman@baylibre.com> I tested on meson-gxbb-odroidc2 and it looks good. Thanks for fixing this, Kevin
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts index 2e1cd5e3a246..b4e14ff614c4 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts +++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts @@ -28,6 +28,13 @@ reg = <0x0 0x0 0x0 0x80000000>; }; + p5v0: regulator-p5v0 { + compatible = "regulator-fixed"; + regulator-name = "P5V0"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + }; + usb_otg_pwr: regulator-usb-pwrs { compatible = "regulator-fixed"; @@ -36,6 +43,8 @@ regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; + vin-supply = <&p5v0>; + gpio = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>; enable-active-high; }; @@ -303,6 +312,7 @@ &usb0 { status = "okay"; + dr_mode = "peripheral"; }; &usb1 {
Add missing vin-supply 5V regulator node on usb_phy nodes needed to power usb bus ports. Override the dr_mode from "host" to "peripheral" for initialization of dwc2 usb0 phy node,changes fix the below warning for usb initialization. [ 1.203900] phy phy-c0000000.phy.0: USB ID detect failed! [ 1.208048] phy phy-c0000000.phy.0: phy poweron failed --> -22 [ 1.213877] WARNING: CPU: 1 PID: 44 at drivers/regulator/core.c:2054 _regulator_put.part.11+0xf0/0xf8 [ 1.222953] Modules linked in: [ 1.225976] CPU: 1 PID: 44 Comm: kworker/1:1 Not tainted 5.0.0-rc1-xc2ml #3 [ 1.232872] Hardware name: Hardkernel ODROID-C2 (DT) [ 1.237794] Workqueue: events deferred_probe_work_func [ 1.242878] pstate: 80000005 (Nzcv daif -PAN -UAO) [ 1.247623] pc : _regulator_put.part.11+0xf0/0xf8 [ 1.252280] lr : regulator_put+0x34/0x48 [ 1.256159] sp : ffff00001176bb00 [ 1.259437] x29: ffff00001176bb00 x28: 0000000000000000 [ 1.264698] x27: ffff80007f31beb8 x26: ffff000010eeb7e0 [ 1.269959] x25: 0000000000000000 x24: 0000000000000009 [ 1.275220] x23: ffff00001176bbc8 x22: ffff80007ed9d500 [ 1.280482] x21: ffff0000111bd6c8 x20: ffff80007ed9d700 [ 1.285743] x19: ffff80007ed9d700 x18: 000000000000006f [ 1.291004] x17: 0000000000000000 x16: 0000000000000000 [ 1.296265] x15: 0000000000000400 x14: 0000000000000400 [ 1.301527] x13: ff00000000000000 x12: ffffffffffffffff [ 1.306788] x11: 0000000000000038 x10: 0000000000000040 [ 1.312049] x9 : ffff0000111d58b0 x8 : ffff0000111d58a8 [ 1.317310] x7 : ffff80007ed9db00 x6 : ffff80007ec21b00 [ 1.322571] x5 : ffff80007f400248 x4 : ffff80007fba9b00 [ 1.327833] x3 : ffff0000112d9eb8 x2 : ffff80007ec21b00 [ 1.333094] x1 : 0000000000000000 x0 : 0000000000000001 [ 1.338356] Call trace: [ 1.340773] _regulator_put.part.11+0xf0/0xf8 [ 1.345085] regulator_put+0x34/0x48 [ 1.348621] regulator_bulk_free+0x30/0x50 [ 1.352675] devm_regulator_bulk_release+0x18/0x20 [ 1.357421] release_nodes+0x1b0/0x220 [ 1.361127] devres_release_all+0x34/0x50 [ 1.365094] really_probe+0xec/0x290 [ 1.368630] driver_probe_device+0x54/0xe8 [ 1.372684] __device_attach_driver+0xb8/0xe8 [ 1.376997] bus_for_each_drv+0x78/0xc8 [ 1.380792] __device_attach+0xd4/0x130 [ 1.384587] device_initial_probe+0x10/0x18 [ 1.388727] bus_probe_device+0x90/0x98 [ 1.392522] deferred_probe_work_func+0x6c/0xa0 [ 1.397010] process_one_work+0x1e0/0x318 [ 1.400975] worker_thread+0x228/0x428 [ 1.404684] kthread+0x124/0x128 [ 1.407876] ret_from_fork+0x10/0x18 [ 1.411410] ---[ end trace de5fd1b262c1f56a ]--- [ 1.416055] WARNING: CPU: 1 PID: 44 at drivers/regulator/core.c:2054 _regulator_put.part.11+0xf0/0xf8 [ 1.425123] Modules linked in: [ 1.428144] CPU: 1 PID: 44 Comm: kworker/1:1 Tainted: G W 5.0.0-rc1-xc2ml #3 [ 1.436422] Hardware name: Hardkernel ODROID-C2 (DT) [ 1.441340] Workqueue: events deferred_probe_work_func Fixes: 5a0803bd5ae (ARM64: dts: meson-gxbb-odroidc2: Enable USB Nodes) Cc: Martin Blumenstingl <martin.blumenstingl@googlemail.com> Cc: Jerome Brunet <jbrunet@baylibre.com> Cc: Neil Armstrong <narmstrong@baylibre.com> Signed-off-by: Anand Moon <linux.amoon@gmail.com> --- Fix the following power issue with usb device [ 795.380156] usb 1-1.2: reset high-speed USB device number 3 using dwc2 [ 798.356073] usb 1-1.2: reset high-speed USB device number 3 using dwc2 [ 801.331999] usb 1-1.2: reset high-speed USB device number 3 using dwc2 [ 804.307919] usb 1-1.2: reset high-speed USB device number 3 using dwc2 [ 807.283844] usb 1-1.2: reset high-speed USB device number 3 using dwc2 [alarm@archl-c2m ~]$ lsusb -t /: Bus 01.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 2: Dev 5, If 3, Class=Audio, Driver=, 480M |__ Port 2: Dev 5, If 1, Class=Video, Driver=uvcvideo, 480M |__ Port 2: Dev 5, If 2, Class=Audio, Driver=, 480M |__ Port 2: Dev 5, If 0, Class=Video, Driver=uvcvideo, 480M |__ Port 3: Dev 3, If 0, Class=Vendor Specific Class, Driver=, 480M Similar Fix is need for Odroid C1+ to power on the phy nodes --- arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts | 10 ++++++++++ 1 file changed, 10 insertions(+)