Hi Shimoda-San, Thanks for the patch. > -----Original Message----- > From: linux-renesas-soc-owner@xxxxxxxxxxxxxxx <linux-renesas-soc- > owner@xxxxxxxxxxxxxxx> On Behalf Of Yoshihiro Shimoda > Sent: 09 October 2018 11:45 > To: horms@xxxxxxxxxxxx; magnus.damm@xxxxxxxxx > Cc: linux-renesas-soc@xxxxxxxxxxxxxxx; Yoshihiro Shimoda > <yoshihiro.shimoda.uh@xxxxxxxxxxx> > 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.