Message ID | 1539081911-9020-1-git-send-email-yoshihiro.shimoda.uh@renesas.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Simon Horman |
Headers | show |
Series | arm64: dts: renesas: add/enable USB2.0 peripheral for R-Car [DE]3 | expand |
Hi Shimoda-San, Thanks for the patch. > -----Original Message----- > From: linux-renesas-soc-owner@vger.kernel.org <linux-renesas-soc- > owner@vger.kernel.org> On Behalf Of Yoshihiro Shimoda > Sent: 09 October 2018 11:45 > To: horms@verge.net.au; magnus.damm@gmail.com > Cc: linux-renesas-soc@vger.kernel.org; Yoshihiro Shimoda > <yoshihiro.shimoda.uh@renesas.com> > Subject: [PATCH] arm64: dts: renesas: add/enable USB2.0 peripheral for R- > Car [DE]3 > > arch/arm64/boot/dts/renesas/r8a77995-draak.dts | 8 +++++ > arch/arm64/boot/dts/renesas/r8a77995.dtsi | 45 > ++++++++++++++++++++++++++ > 4 files changed, 106 insertions(+) > > diff --git a/arch/arm64/boot/dts/renesas/r8a77990.dtsi > b/arch/arm64/boot/dts/renesas/r8a77990.dtsi > index 7278cd5..e3726307 100644 > --- a/arch/arm64/boot/dts/renesas/r8a77990.dtsi > +++ b/arch/arm64/boot/dts/renesas/r8a77990.dtsi > @@ -357,6 +357,51 @@ > resets = <&cpg 407>; > }; > > +hsusb: usb@e6590000 { > +compatible = "renesas,usbhs-r8a77990", > + "renesas,rcar-gen3-usbhs"; > +reg = <0 0xe6590000 0 0x100>; is it not 0x200? Renesas_usbhs driver("drivers/usb/renesas_usbhs/common.c ") maps the address up to 0x100 using "devm_ioremap_resource" function where as the "drivers/usb/renesas_usbhs/rcar3" access addresses beyond 0x100 (for eg:- 0x102,0x180,0x184,0x188) using iowrite32/16 calls. This issue is present in other R-Car Gen3 variant as well(for eg:- R-Car H3/M3-W,..... etc). > +interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; > +clocks = <&cpg CPG_MOD 704>, <&cpg CPG_MOD > 703>; > +dmas = <&usb_dmac0 0>, <&usb_dmac0 1>, > + <&usb_dmac1 0>, <&usb_dmac1 1>; > +dma-names = "ch0", "ch1", "ch2", "ch3"; > +renesas,buswait = <11>; > +phys = <&usb2_phy0>; > +phy-names = "usb"; > +power-domains = <&sysc > R8A77990_PD_ALWAYS_ON>; > +resets = <&cpg 704>, <&cpg 703>; > +status = "disabled"; > +}; > + > +usb_dmac0: dma-controller@e65a0000 { > +compatible = "renesas,r8a77990-usb-dmac", > + "renesas,usb-dmac"; > +reg = <0 0xe65a0000 0 0x100>; > +interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; > +interrupt-names = "ch0", "ch1"; > +clocks = <&cpg CPG_MOD 330>; > +power-domains = <&sysc > R8A77990_PD_ALWAYS_ON>; > +resets = <&cpg 330>; > +#dma-cells = <1>; > +dma-channels = <2>; > +}; > + > +usb_dmac1: dma-controller@e65b0000 { > +compatible = "renesas,r8a77990-usb-dmac", > + "renesas,usb-dmac"; > +reg = <0 0xe65b0000 0 0x100>; > +interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; > +interrupt-names = "ch0", "ch1"; > +clocks = <&cpg CPG_MOD 331>; > +power-domains = <&sysc > R8A77990_PD_ALWAYS_ON>; > +resets = <&cpg 331>; > +#dma-cells = <1>; > +dma-channels = <2>; > +}; > + > dmac0: dma-controller@e6700000 { > compatible = "renesas,dmac-r8a77990", > "renesas,rcar-dmac"; > diff --git a/arch/arm64/boot/dts/renesas/r8a77995-draak.dts > b/arch/arm64/boot/dts/renesas/r8a77995-draak.dts > index 2405eaa..48bb1d7 100644 > --- a/arch/arm64/boot/dts/renesas/r8a77995-draak.dts > +++ b/arch/arm64/boot/dts/renesas/r8a77995-draak.dts > @@ -179,6 +179,7 @@ > }; > > &ehci0 { > +dr_mode = "host"; > status = "okay"; > }; > > @@ -186,6 +187,11 @@ > clock-frequency = <48000000>; > }; > > +&hsusb { > +dr_mode = "host"; > +status = "okay"; > +}; > + > &i2c0 { > pinctrl-0 = <&i2c0_pins>; > pinctrl-names = "default"; > @@ -337,6 +343,7 @@ > }; > > &ohci0 { > +dr_mode = "host"; > status = "okay"; > }; > > @@ -445,6 +452,7 @@ > pinctrl-0 = <&usb0_pins>; > pinctrl-names = "default"; > > +renesas,no-otg-pins; > status = "okay"; > }; > > diff --git a/arch/arm64/boot/dts/renesas/r8a77995.dtsi > b/arch/arm64/boot/dts/renesas/r8a77995.dtsi > index 214f495..186f477 100644 > --- a/arch/arm64/boot/dts/renesas/r8a77995.dtsi > +++ b/arch/arm64/boot/dts/renesas/r8a77995.dtsi > @@ -344,6 +344,51 @@ > status = "disabled"; > }; > > +hsusb: usb@e6590000 { > +compatible = "renesas,usbhs-r8a77995", > + "renesas,rcar-gen3-usbhs"; > +reg = <0 0xe6590000 0 0x100>; Same as above. > +interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; > +clocks = <&cpg CPG_MOD 704>, <&cpg CPG_MOD > 703>; > +dmas = <&usb_dmac0 0>, <&usb_dmac0 1>, > + <&usb_dmac1 0>, <&usb_dmac1 1>; > +dma-names = "ch0", "ch1", "ch2", "ch3"; > +renesas,buswait = <11>; > +phys = <&usb2_phy0>; > +phy-names = "usb"; > +power-domains = <&sysc > R8A77995_PD_ALWAYS_ON>; > +resets = <&cpg 704>, <&cpg 703>; > +status = "disabled"; > +}; > + > +usb_dmac0: dma-controller@e65a0000 { > +compatible = "renesas,r8a77995-usb-dmac", > + "renesas,usb-dmac"; > +reg = <0 0xe65a0000 0 0x100>; > +interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; > +interrupt-names = "ch0", "ch1"; > +clocks = <&cpg CPG_MOD 330>; > +power-domains = <&sysc > R8A77995_PD_ALWAYS_ON>; > +resets = <&cpg 330>; > +#dma-cells = <1>; > +dma-channels = <2>; > +}; > + > +usb_dmac1: dma-controller@e65b0000 { > +compatible = "renesas,r8a77995-usb-dmac", > + "renesas,usb-dmac"; > +reg = <0 0xe65b0000 0 0x100>; > +interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; > +interrupt-names = "ch0", "ch1"; > +clocks = <&cpg CPG_MOD 331>; > +power-domains = <&sysc > R8A77995_PD_ALWAYS_ON>; > +resets = <&cpg 331>; > +#dma-cells = <1>; > +dma-channels = <2>; > +}; > + > canfd: can@e66c0000 { > compatible = "renesas,r8a77995-canfd", > "renesas,rcar-gen3-canfd"; > -- > 1.9.1 Renesas Electronics Europe Ltd, Dukes Meadow, Millboard Road, Bourne End, Buckinghamshire, SL8 5FH, UK. Registered in England & Wales under Registered No. 04586709.
Hi Biju-san, > From: Biju Das, Sent: Friday, October 12, 2018 5:32 PM > > Hi Shimoda-San, > > Thanks for the patch. > > > -----Original Message----- > > From: linux-renesas-soc-owner@vger.kernel.org <linux-renesas-soc- > > owner@vger.kernel.org> On Behalf Of Yoshihiro Shimoda > > Sent: 09 October 2018 11:45 <snip> > > diff --git a/arch/arm64/boot/dts/renesas/r8a77990.dtsi > > b/arch/arm64/boot/dts/renesas/r8a77990.dtsi > > index 7278cd5..e3726307 100644 > > --- a/arch/arm64/boot/dts/renesas/r8a77990.dtsi > > +++ b/arch/arm64/boot/dts/renesas/r8a77990.dtsi > > @@ -357,6 +357,51 @@ > > resets = <&cpg 407>; > > }; > > > > + hsusb: usb@e6590000 { > > + compatible = "renesas,usbhs-r8a77990", > > + "renesas,rcar-gen3-usbhs"; > > + reg = <0 0xe6590000 0 0x100>; > > is it not 0x200? > > Renesas_usbhs driver("drivers/usb/renesas_usbhs/common.c ") maps the address up to 0x100 using "devm_ioremap_resource" > function > > where as the "drivers/usb/renesas_usbhs/rcar3" access addresses beyond 0x100 (for eg:- 0x102,0x180,0x184,0x188) using > iowrite32/16 calls. > > This issue is present in other R-Car Gen3 variant as well(for eg:- R-Car H3/M3-W,..... etc). Thank you very much for your report! You're collect. So, I'll submit a patch to resolve it for all R-Car Gen3 SoCs. Best regards, Yoshihiro Shimoda
diff --git a/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts b/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts index f342dd8..f85655d 100644 --- a/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts +++ b/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts @@ -188,6 +188,7 @@ }; &ehci0 { + dr_mode = "peripheral"; status = "okay"; }; @@ -195,6 +196,11 @@ clock-frequency = <48000000>; }; +&hsusb { + dr_mode = "peripheral"; + status = "okay"; +}; + &i2c0 { status = "okay"; @@ -295,6 +301,7 @@ }; &ohci0 { + dr_mode = "peripheral"; status = "okay"; }; @@ -359,6 +366,7 @@ pinctrl-0 = <&usb0_pins>; pinctrl-names = "default"; + renesas,no-otg-pins; status = "okay"; }; diff --git a/arch/arm64/boot/dts/renesas/r8a77990.dtsi b/arch/arm64/boot/dts/renesas/r8a77990.dtsi index 7278cd5..e3726307 100644 --- a/arch/arm64/boot/dts/renesas/r8a77990.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a77990.dtsi @@ -357,6 +357,51 @@ resets = <&cpg 407>; }; + hsusb: usb@e6590000 { + compatible = "renesas,usbhs-r8a77990", + "renesas,rcar-gen3-usbhs"; + reg = <0 0xe6590000 0 0x100>; + interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&cpg CPG_MOD 704>, <&cpg CPG_MOD 703>; + dmas = <&usb_dmac0 0>, <&usb_dmac0 1>, + <&usb_dmac1 0>, <&usb_dmac1 1>; + dma-names = "ch0", "ch1", "ch2", "ch3"; + renesas,buswait = <11>; + phys = <&usb2_phy0>; + phy-names = "usb"; + power-domains = <&sysc R8A77990_PD_ALWAYS_ON>; + resets = <&cpg 704>, <&cpg 703>; + status = "disabled"; + }; + + usb_dmac0: dma-controller@e65a0000 { + compatible = "renesas,r8a77990-usb-dmac", + "renesas,usb-dmac"; + reg = <0 0xe65a0000 0 0x100>; + interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "ch0", "ch1"; + clocks = <&cpg CPG_MOD 330>; + power-domains = <&sysc R8A77990_PD_ALWAYS_ON>; + resets = <&cpg 330>; + #dma-cells = <1>; + dma-channels = <2>; + }; + + usb_dmac1: dma-controller@e65b0000 { + compatible = "renesas,r8a77990-usb-dmac", + "renesas,usb-dmac"; + reg = <0 0xe65b0000 0 0x100>; + interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "ch0", "ch1"; + clocks = <&cpg CPG_MOD 331>; + power-domains = <&sysc R8A77990_PD_ALWAYS_ON>; + resets = <&cpg 331>; + #dma-cells = <1>; + dma-channels = <2>; + }; + dmac0: dma-controller@e6700000 { compatible = "renesas,dmac-r8a77990", "renesas,rcar-dmac"; diff --git a/arch/arm64/boot/dts/renesas/r8a77995-draak.dts b/arch/arm64/boot/dts/renesas/r8a77995-draak.dts index 2405eaa..48bb1d7 100644 --- a/arch/arm64/boot/dts/renesas/r8a77995-draak.dts +++ b/arch/arm64/boot/dts/renesas/r8a77995-draak.dts @@ -179,6 +179,7 @@ }; &ehci0 { + dr_mode = "host"; status = "okay"; }; @@ -186,6 +187,11 @@ clock-frequency = <48000000>; }; +&hsusb { + dr_mode = "host"; + status = "okay"; +}; + &i2c0 { pinctrl-0 = <&i2c0_pins>; pinctrl-names = "default"; @@ -337,6 +343,7 @@ }; &ohci0 { + dr_mode = "host"; status = "okay"; }; @@ -445,6 +452,7 @@ pinctrl-0 = <&usb0_pins>; pinctrl-names = "default"; + renesas,no-otg-pins; status = "okay"; }; diff --git a/arch/arm64/boot/dts/renesas/r8a77995.dtsi b/arch/arm64/boot/dts/renesas/r8a77995.dtsi index 214f495..186f477 100644 --- a/arch/arm64/boot/dts/renesas/r8a77995.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a77995.dtsi @@ -344,6 +344,51 @@ status = "disabled"; }; + hsusb: usb@e6590000 { + compatible = "renesas,usbhs-r8a77995", + "renesas,rcar-gen3-usbhs"; + reg = <0 0xe6590000 0 0x100>; + interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&cpg CPG_MOD 704>, <&cpg CPG_MOD 703>; + dmas = <&usb_dmac0 0>, <&usb_dmac0 1>, + <&usb_dmac1 0>, <&usb_dmac1 1>; + dma-names = "ch0", "ch1", "ch2", "ch3"; + renesas,buswait = <11>; + phys = <&usb2_phy0>; + phy-names = "usb"; + power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; + resets = <&cpg 704>, <&cpg 703>; + status = "disabled"; + }; + + usb_dmac0: dma-controller@e65a0000 { + compatible = "renesas,r8a77995-usb-dmac", + "renesas,usb-dmac"; + reg = <0 0xe65a0000 0 0x100>; + interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "ch0", "ch1"; + clocks = <&cpg CPG_MOD 330>; + power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; + resets = <&cpg 330>; + #dma-cells = <1>; + dma-channels = <2>; + }; + + usb_dmac1: dma-controller@e65b0000 { + compatible = "renesas,r8a77995-usb-dmac", + "renesas,usb-dmac"; + reg = <0 0xe65b0000 0 0x100>; + interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "ch0", "ch1"; + clocks = <&cpg CPG_MOD 331>; + power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; + resets = <&cpg 331>; + #dma-cells = <1>; + dma-channels = <2>; + }; + canfd: can@e66c0000 { compatible = "renesas,r8a77995-canfd", "renesas,rcar-gen3-canfd";
This patch adds/enables USB2.0 peripheral for R-Car [DE]3 boards. So, the default mode on each board is: - R-Car D3 Draak board (has a type-A connector) = host. - R-Car E3 Ebisu board (has a type-B micro connector) = peripheral. Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> --- arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts | 8 +++++ arch/arm64/boot/dts/renesas/r8a77990.dtsi | 45 ++++++++++++++++++++++++++ arch/arm64/boot/dts/renesas/r8a77995-draak.dts | 8 +++++ arch/arm64/boot/dts/renesas/r8a77995.dtsi | 45 ++++++++++++++++++++++++++ 4 files changed, 106 insertions(+)