* [PATCH v2 00/11] Add USB support for Hikey 970
@ 2020-09-07 15:59 Mauro Carvalho Chehab
2020-09-07 15:59 ` [PATCH v2 10/11] dwc3-of-simple: add " Mauro Carvalho Chehab
0 siblings, 1 reply; 5+ messages in thread
From: Mauro Carvalho Chehab @ 2020-09-07 15:59 UTC (permalink / raw)
Cc: linuxarm, mauro.chehab, Mauro Carvalho Chehab, John Stultz,
Manivannan Sadhasivam, Greg Kroah-Hartman, linux-kernel,
Felipe Balbi, David S. Miller, Kishon Vijay Abraham I, linux-usb,
linux-arm-kernel, Vinod Koul, Rob Herring, devicetree,
Rob Herring, Dragan Cvetic, Arnd Bergmann, Krzysztof Kozlowski,
Derek Kiernan, Philipp Zabel, Wei Xu, Yu Chen
Add the PHY layer for Hikey 970 and a misc driver that it is
required for the USB hub to work. The same USB hub is needed
by Hikey 960.
That's the second version, addressing the points raised by
Mark on the RFC version and adding an extra patch in order for
it to use the dwc3-of-simple driver. Such binding is required,
as using dwc3 directly causes an Serror on ARM.
-
PS.: I'll be sending the dts bindings later on. We need first to
add a small quirk to dwc3:
https://patchwork.kernel.org/patch/10909965/
I'll be sending a newer version of this specific patch probably
tomorrow.
Mauro Carvalho Chehab (8):
phy: hisilicon: phy-hi3670-usb3: use a consistent namespace
phy: hisilicon: phy-hi3670-usb3: fix coding style
phy: hisilicon: phy-hi3670-usb3: change some DT properties
dt-bindings: phy: convert phy-kirin970-usb3.txt to yaml
MAINTAINERS: add myself as maintainer for Kirin 970 USB PHY
misc: hisi_hikey_usb: add support for Hikey 970
dwc3-of-simple: add support for Hikey 970
dts: hisilicon: add support for USB3 on Hikey 970
Yu Chen (3):
phy: hisilicon: add USB physical layer for Kirin 3670
phy: hisilicon: phy-hi3670-usb3: fix some issues at the init code
misc: hisi_hikey_usb: Driver to support onboard USB gpio hub on
Hikey960
.../bindings/phy/hisilicon,hi3670-usb3.yaml | 72 ++
MAINTAINERS | 16 +-
.../boot/dts/hisilicon/hi3670-hikey970.dts | 102 +++
arch/arm64/boot/dts/hisilicon/hi3670.dtsi | 58 ++
drivers/misc/Kconfig | 9 +
drivers/misc/Makefile | 1 +
drivers/misc/hisi_hikey_usb.c | 274 +++++++
drivers/phy/hisilicon/Kconfig | 10 +
drivers/phy/hisilicon/Makefile | 1 +
drivers/phy/hisilicon/phy-hi3670-usb3.c | 671 ++++++++++++++++++
drivers/usb/dwc3/dwc3-of-simple.c | 4 +-
11 files changed, 1216 insertions(+), 2 deletions(-)
create mode 100644 Documentation/devicetree/bindings/phy/hisilicon,hi3670-usb3.yaml
create mode 100644 drivers/misc/hisi_hikey_usb.c
create mode 100644 drivers/phy/hisilicon/phy-hi3670-usb3.c
--
2.26.2
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2 10/11] dwc3-of-simple: add support for Hikey 970
2020-09-07 15:59 [PATCH v2 00/11] Add USB support for Hikey 970 Mauro Carvalho Chehab
@ 2020-09-07 15:59 ` Mauro Carvalho Chehab
2020-09-08 6:02 ` Felipe Balbi
2020-09-08 6:53 ` Mauro Carvalho Chehab
0 siblings, 2 replies; 5+ messages in thread
From: Mauro Carvalho Chehab @ 2020-09-07 15:59 UTC (permalink / raw)
Cc: linuxarm, mauro.chehab, Mauro Carvalho Chehab, John Stultz,
Manivannan Sadhasivam, Felipe Balbi, Greg Kroah-Hartman,
Philipp Zabel, linux-usb, linux-kernel
This binding driver is needed for Hikey 970 to work,
as otherwise a Serror is produced:
[ 1.837458] SError Interrupt on CPU0, code 0xbf000002 -- SError
[ 1.837462] CPU: 0 PID: 74 Comm: kworker/0:1 Not tainted 5.8.0+ #205
[ 1.837463] Hardware name: HiKey970 (DT)
[ 1.837465] Workqueue: events deferred_probe_work_func
[ 1.837467] pstate: 20000005 (nzCv daif -PAN -UAO BTYPE=--)
[ 1.837468] pc : _raw_spin_unlock_irqrestore+0x18/0x50
[ 1.837469] lr : regmap_unlock_spinlock+0x14/0x20
[ 1.837470] sp : ffff8000124dba60
[ 1.837471] x29: ffff8000124dba60 x28: 0000000000000000
[ 1.837474] x27: ffff0001b7e854c8 x26: ffff80001204ea18
[ 1.837476] x25: 0000000000000005 x24: ffff800011f918f8
[ 1.837479] x23: ffff800011fbb588 x22: ffff0001b7e40e00
[ 1.837481] x21: 0000000000000100 x20: 0000000000000000
[ 1.837483] x19: ffff0001b767ec00 x18: 00000000ff10c000
[ 1.837485] x17: 0000000000000002 x16: 0000b0740fdb9950
[ 1.837488] x15: ffff8000116c1198 x14: ffffffffffffffff
[ 1.837490] x13: 0000000000000030 x12: 0101010101010101
[ 1.837493] x11: 0000000000000020 x10: ffff0001bf17d130
[ 1.837495] x9 : 0000000000000000 x8 : ffff0001b6938080
[ 1.837497] x7 : 0000000000000000 x6 : 000000000000003f
[ 1.837500] x5 : 0000000000000000 x4 : 0000000000000000
[ 1.837502] x3 : ffff80001096a880 x2 : 0000000000000000
[ 1.837505] x1 : ffff0001b7e40e00 x0 : 0000000100000001
[ 1.837507] Kernel panic - not syncing: Asynchronous SError Interrupt
[ 1.837509] CPU: 0 PID: 74 Comm: kworker/0:1 Not tainted 5.8.0+ #205
[ 1.837510] Hardware name: HiKey970 (DT)
[ 1.837511] Workqueue: events deferred_probe_work_func
[ 1.837513] Call trace:
[ 1.837514] dump_backtrace+0x0/0x1e0
[ 1.837515] show_stack+0x18/0x24
[ 1.837516] dump_stack+0xc0/0x11c
[ 1.837517] panic+0x15c/0x324
[ 1.837518] nmi_panic+0x8c/0x90
[ 1.837519] arm64_serror_panic+0x78/0x84
[ 1.837520] do_serror+0x158/0x15c
[ 1.837521] el1_error+0x84/0x100
[ 1.837522] _raw_spin_unlock_irqrestore+0x18/0x50
[ 1.837523] regmap_write+0x58/0x80
[ 1.837524] hi3660_reset_deassert+0x28/0x34
[ 1.837526] reset_control_deassert+0x50/0x260
[ 1.837527] reset_control_deassert+0xf4/0x260
[ 1.837528] dwc3_probe+0x5dc/0xe6c
[ 1.837529] platform_drv_probe+0x54/0xb0
[ 1.837530] really_probe+0xe0/0x490
[ 1.837531] driver_probe_device+0xf4/0x160
[ 1.837532] __device_attach_driver+0x8c/0x114
[ 1.837533] bus_for_each_drv+0x78/0xcc
[ 1.837534] __device_attach+0x108/0x1a0
[ 1.837535] device_initial_probe+0x14/0x20
[ 1.837537] bus_probe_device+0x98/0xa0
[ 1.837538] deferred_probe_work_func+0x88/0xe0
[ 1.837539] process_one_work+0x1cc/0x350
[ 1.837540] worker_thread+0x2c0/0x470
[ 1.837541] kthread+0x154/0x160
[ 1.837542] ret_from_fork+0x10/0x30
[ 1.837569] SMP: stopping secondary CPUs
[ 1.837570] Kernel Offset: 0x1d0000 from 0xffff800010000000
[ 1.837571] PHYS_OFFSET: 0x0
[ 1.837572] CPU features: 0x240002,20882004
[ 1.837573] Memory Limit: none
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
---
drivers/usb/dwc3/dwc3-of-simple.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/dwc3/dwc3-of-simple.c b/drivers/usb/dwc3/dwc3-of-simple.c
index 8852fbfdead4..2d497165efe2 100644
--- a/drivers/usb/dwc3/dwc3-of-simple.c
+++ b/drivers/usb/dwc3/dwc3-of-simple.c
@@ -49,7 +49,8 @@ static int dwc3_of_simple_probe(struct platform_device *pdev)
* Some controllers need to toggle the usb3-otg reset before trying to
* initialize the PHY, otherwise the PHY times out.
*/
- if (of_device_is_compatible(np, "rockchip,rk3399-dwc3"))
+ if (of_device_is_compatible(np, "rockchip,rk3399-dwc3") ||
+ of_device_is_compatible(np, "hisilicon,hi3670-dwc3"))
simple->need_reset = true;
simple->resets = of_reset_control_array_get(np, false, true,
@@ -176,6 +177,7 @@ static const struct of_device_id of_dwc3_simple_match[] = {
{ .compatible = "cavium,octeon-7130-usb-uctl" },
{ .compatible = "sprd,sc9860-dwc3" },
{ .compatible = "allwinner,sun50i-h6-dwc3" },
+ { .compatible = "hisilicon,hi3670-dwc3" },
{ /* Sentinel */ }
};
MODULE_DEVICE_TABLE(of, of_dwc3_simple_match);
--
2.26.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2 10/11] dwc3-of-simple: add support for Hikey 970
2020-09-07 15:59 ` [PATCH v2 10/11] dwc3-of-simple: add " Mauro Carvalho Chehab
@ 2020-09-08 6:02 ` Felipe Balbi
2020-09-08 6:53 ` Mauro Carvalho Chehab
1 sibling, 0 replies; 5+ messages in thread
From: Felipe Balbi @ 2020-09-08 6:02 UTC (permalink / raw)
To: Mauro Carvalho Chehab
Cc: linuxarm, mauro.chehab, Mauro Carvalho Chehab, John Stultz,
Manivannan Sadhasivam, Greg Kroah-Hartman, Philipp Zabel,
linux-usb, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 3683 bytes --]
Hi,
Mauro Carvalho Chehab <mchehab+huawei@kernel.org> writes:
> This binding driver is needed for Hikey 970 to work,
> as otherwise a Serror is produced:
>
> [ 1.837458] SError Interrupt on CPU0, code 0xbf000002 -- SError
> [ 1.837462] CPU: 0 PID: 74 Comm: kworker/0:1 Not tainted 5.8.0+ #205
> [ 1.837463] Hardware name: HiKey970 (DT)
> [ 1.837465] Workqueue: events deferred_probe_work_func
> [ 1.837467] pstate: 20000005 (nzCv daif -PAN -UAO BTYPE=--)
> [ 1.837468] pc : _raw_spin_unlock_irqrestore+0x18/0x50
> [ 1.837469] lr : regmap_unlock_spinlock+0x14/0x20
> [ 1.837470] sp : ffff8000124dba60
> [ 1.837471] x29: ffff8000124dba60 x28: 0000000000000000
> [ 1.837474] x27: ffff0001b7e854c8 x26: ffff80001204ea18
> [ 1.837476] x25: 0000000000000005 x24: ffff800011f918f8
> [ 1.837479] x23: ffff800011fbb588 x22: ffff0001b7e40e00
> [ 1.837481] x21: 0000000000000100 x20: 0000000000000000
> [ 1.837483] x19: ffff0001b767ec00 x18: 00000000ff10c000
> [ 1.837485] x17: 0000000000000002 x16: 0000b0740fdb9950
> [ 1.837488] x15: ffff8000116c1198 x14: ffffffffffffffff
> [ 1.837490] x13: 0000000000000030 x12: 0101010101010101
> [ 1.837493] x11: 0000000000000020 x10: ffff0001bf17d130
> [ 1.837495] x9 : 0000000000000000 x8 : ffff0001b6938080
> [ 1.837497] x7 : 0000000000000000 x6 : 000000000000003f
> [ 1.837500] x5 : 0000000000000000 x4 : 0000000000000000
> [ 1.837502] x3 : ffff80001096a880 x2 : 0000000000000000
> [ 1.837505] x1 : ffff0001b7e40e00 x0 : 0000000100000001
> [ 1.837507] Kernel panic - not syncing: Asynchronous SError Interrupt
> [ 1.837509] CPU: 0 PID: 74 Comm: kworker/0:1 Not tainted 5.8.0+ #205
> [ 1.837510] Hardware name: HiKey970 (DT)
> [ 1.837511] Workqueue: events deferred_probe_work_func
> [ 1.837513] Call trace:
> [ 1.837514] dump_backtrace+0x0/0x1e0
> [ 1.837515] show_stack+0x18/0x24
> [ 1.837516] dump_stack+0xc0/0x11c
> [ 1.837517] panic+0x15c/0x324
> [ 1.837518] nmi_panic+0x8c/0x90
> [ 1.837519] arm64_serror_panic+0x78/0x84
> [ 1.837520] do_serror+0x158/0x15c
> [ 1.837521] el1_error+0x84/0x100
> [ 1.837522] _raw_spin_unlock_irqrestore+0x18/0x50
> [ 1.837523] regmap_write+0x58/0x80
> [ 1.837524] hi3660_reset_deassert+0x28/0x34
> [ 1.837526] reset_control_deassert+0x50/0x260
> [ 1.837527] reset_control_deassert+0xf4/0x260
> [ 1.837528] dwc3_probe+0x5dc/0xe6c
> [ 1.837529] platform_drv_probe+0x54/0xb0
> [ 1.837530] really_probe+0xe0/0x490
> [ 1.837531] driver_probe_device+0xf4/0x160
> [ 1.837532] __device_attach_driver+0x8c/0x114
> [ 1.837533] bus_for_each_drv+0x78/0xcc
> [ 1.837534] __device_attach+0x108/0x1a0
> [ 1.837535] device_initial_probe+0x14/0x20
> [ 1.837537] bus_probe_device+0x98/0xa0
> [ 1.837538] deferred_probe_work_func+0x88/0xe0
> [ 1.837539] process_one_work+0x1cc/0x350
> [ 1.837540] worker_thread+0x2c0/0x470
> [ 1.837541] kthread+0x154/0x160
> [ 1.837542] ret_from_fork+0x10/0x30
> [ 1.837569] SMP: stopping secondary CPUs
> [ 1.837570] Kernel Offset: 0x1d0000 from 0xffff800010000000
> [ 1.837571] PHYS_OFFSET: 0x0
> [ 1.837572] CPU features: 0x240002,20882004
> [ 1.837573] Memory Limit: none
>
> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
applied for v5.9-rc
--
balbi
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 857 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2 10/11] dwc3-of-simple: add support for Hikey 970
2020-09-07 15:59 ` [PATCH v2 10/11] dwc3-of-simple: add " Mauro Carvalho Chehab
2020-09-08 6:02 ` Felipe Balbi
@ 2020-09-08 6:53 ` Mauro Carvalho Chehab
2020-09-08 7:45 ` Felipe Balbi
1 sibling, 1 reply; 5+ messages in thread
From: Mauro Carvalho Chehab @ 2020-09-08 6:53 UTC (permalink / raw)
Cc: linuxarm, mauro.chehab, John Stultz, Manivannan Sadhasivam,
Felipe Balbi, Greg Kroah-Hartman, Philipp Zabel, linux-usb,
linux-kernel
Em Mon, 7 Sep 2020 17:59:34 +0200
Mauro Carvalho Chehab <mchehab+huawei@kernel.org> escreveu:
> diff --git a/drivers/usb/dwc3/dwc3-of-simple.c b/drivers/usb/dwc3/dwc3-of-simple.c
> index 8852fbfdead4..2d497165efe2 100644
> --- a/drivers/usb/dwc3/dwc3-of-simple.c
> +++ b/drivers/usb/dwc3/dwc3-of-simple.c
> @@ -49,7 +49,8 @@ static int dwc3_of_simple_probe(struct platform_device *pdev)
> * Some controllers need to toggle the usb3-otg reset before trying to
> * initialize the PHY, otherwise the PHY times out.
> */
> - if (of_device_is_compatible(np, "rockchip,rk3399-dwc3"))
> + if (of_device_is_compatible(np, "rockchip,rk3399-dwc3") ||
> + of_device_is_compatible(np, "hisilicon,hi3670-dwc3"))
> simple->need_reset = true;
It turns that this hunk caused Serror during my suspend/resume tests.
Without this one, the driver works just fine.
As you already applied this patch, do you prefer a patch dropping it,
or should I send a version 2 without it?
Thanks,
Mauro
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2 10/11] dwc3-of-simple: add support for Hikey 970
2020-09-08 6:53 ` Mauro Carvalho Chehab
@ 2020-09-08 7:45 ` Felipe Balbi
0 siblings, 0 replies; 5+ messages in thread
From: Felipe Balbi @ 2020-09-08 7:45 UTC (permalink / raw)
To: Mauro Carvalho Chehab
Cc: linuxarm, mauro.chehab, John Stultz, Manivannan Sadhasivam,
Greg Kroah-Hartman, Philipp Zabel, linux-usb, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 1146 bytes --]
Mauro Carvalho Chehab <mchehab+huawei@kernel.org> writes:
> Em Mon, 7 Sep 2020 17:59:34 +0200
> Mauro Carvalho Chehab <mchehab+huawei@kernel.org> escreveu:
>
>> diff --git a/drivers/usb/dwc3/dwc3-of-simple.c b/drivers/usb/dwc3/dwc3-of-simple.c
>> index 8852fbfdead4..2d497165efe2 100644
>> --- a/drivers/usb/dwc3/dwc3-of-simple.c
>> +++ b/drivers/usb/dwc3/dwc3-of-simple.c
>> @@ -49,7 +49,8 @@ static int dwc3_of_simple_probe(struct platform_device *pdev)
>> * Some controllers need to toggle the usb3-otg reset before trying to
>> * initialize the PHY, otherwise the PHY times out.
>> */
>> - if (of_device_is_compatible(np, "rockchip,rk3399-dwc3"))
>> + if (of_device_is_compatible(np, "rockchip,rk3399-dwc3") ||
>> + of_device_is_compatible(np, "hisilicon,hi3670-dwc3"))
>> simple->need_reset = true;
>
> It turns that this hunk caused Serror during my suspend/resume tests.
>
> Without this one, the driver works just fine.
>
> As you already applied this patch, do you prefer a patch dropping it,
> or should I send a version 2 without it?
Send me a new one, I'll remove the patch.
--
balbi
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 857 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2020-09-08 7:45 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-09-07 15:59 [PATCH v2 00/11] Add USB support for Hikey 970 Mauro Carvalho Chehab
2020-09-07 15:59 ` [PATCH v2 10/11] dwc3-of-simple: add " Mauro Carvalho Chehab
2020-09-08 6:02 ` Felipe Balbi
2020-09-08 6:53 ` Mauro Carvalho Chehab
2020-09-08 7:45 ` Felipe Balbi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).