Re: [PATCH 02/03] arm64: dts: renesas: r8a77980: Add IPMMU devices nodes

2018-05-24 Thread Magnus Damm
Hi Geert,

On Thu, May 24, 2018 at 5:24 PM, Geert Uytterhoeven
 wrote:
> Hi Magnus,
>
> On Thu, May 24, 2018 at 10:18 AM, Magnus Damm  wrote:
>> On Thu, May 24, 2018 at 4:25 PM, Geert Uytterhoeven
>>  wrote:
>>> On Thu, May 24, 2018 at 4:23 AM, Magnus Damm  wrote:
 On Tue, May 22, 2018 at 10:10 PM, Simon Horman  wrote:
> On Mon, May 21, 2018 at 11:45:01PM +0900, Magnus Damm wrote:
>> From: Magnus Damm 
>>
>> Add IPMMU device nodes for the R-Car V3H SoC aka r8a77980.
>>
>> The r8a77980 IPMMU is quite similar to r8a77970 however VC0
>> has been added. The IMSSTR bit assignment has also been
>> reworked. Power domains are also quite different however the
>> the documentation is rather unclear about this topic.
>>
>> Until we know better VC0 gets assigned to R8A77980_PD_ALWAYS_ON.
>>
>> Signed-off-by: Magnus Damm 
>> ---
>>
>>  Developed on top of renesas-devel-20180518-v4.17-rc5
>>
>>  arch/arm64/boot/dts/renesas/r8a77980.dtsi |   49 
>> +
>>  1 file changed, 49 insertions(+)
>>
>> --- 0001/arch/arm64/boot/dts/renesas/r8a77980.dtsi
>> +++ work/arch/arm64/boot/dts/renesas/r8a77980.dtsi2018-05-21 
>> 22:31:52.460607110 +0900
>> @@ -387,6 +387,55 @@
>>   dma-channels = <16>;
>>   };
>>
>> + ipmmu_ds1: mmu@e774 {
>> + compatible = "renesas,ipmmu-r8a77980";
>> + reg = <0 0xe774 0 0x1000>;
>> + renesas,ipmmu-main = <&ipmmu_mm 0>;
>> + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
>> + #iommu-cells = <1>;
>> + };
>> +
>> + ipmmu_ir: mmu@ff8b {
>> + compatible = "renesas,ipmmu-r8a77980";
>> + reg = <0 0xff8b 0 0x1000>;
>> + renesas,ipmmu-main = <&ipmmu_mm 3>;
>> + power-domains = <&sysc R8A77980_PD_A3IR>;
>> + #iommu-cells = <1>;
>> + };
>> +
>> + ipmmu_mm: mmu@e67b {
>> + compatible = "renesas,ipmmu-r8a77980";
>> + reg = <0 0xe67b 0 0x1000>;
>> + interrupts = ,
>> +  ;
>> + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
>> + #iommu-cells = <1>;
>> + };
>> +
>> + ipmmu_rt: mmu@ffc8 {
>> + compatible = "renesas,ipmmu-r8a77980";
>> + reg = <0 0xffc8 0 0x1000>;
>> + renesas,ipmmu-main = <&ipmmu_mm 10>;
>> + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
>> + #iommu-cells = <1>;
>> + };
>> +
>> + ipmmu_vc0: mmu@fe6b {
>> + compatible = "renesas,ipmmu-r8a77980";
>> + reg = <0 0xfe6b 0 0x1000>;
>> + renesas,ipmmu-main = <&ipmmu_mm 12>;
>> + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
>> + #iommu-cells = <1>;
>> + };
>> +
>> + ipmmu_vi0: mmu@febd {
>> + compatible = "renesas,ipmmu-r8a77980";
>> + reg = <0 0xfebd 0 0x1000>;
>> + renesas,ipmmu-main = <&ipmmu_mm 14>;
>> + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
>> + #iommu-cells = <1>;
>> + };
>> +
>
> nit: I believe the IPMMU nodes should go above the AVB rather than the
> MMC node to preserve the current node sorting order of:
>
> 1) bus address
> 2) IP block
> 3) alphabetical

 Will reposition the IPMMU nodes in next version. Will also add vip0
 and vip1 IPMMU nodes as described in the 1.0 data sheet.
>>>
>>> Note that the BSP has patches to move the ipmmu_mm nodes first, to
>>> work around probe order issues.
>>
>> That might have been appropriate for older IPMMU driver versions.
>>
>> I think what is in upstream should not depend on any ordering.
>
> I don't know, it's an -EPROBE_DEFER issue.
>
> https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas-bsp.git/commit/?id=903fa7776d24a095ecbbbc44c12cabcc096d88a6

Thanks, will have a look!

Cheers,

/ magnus


Re: [PATCH 02/03] arm64: dts: renesas: r8a77980: Add IPMMU devices nodes

2018-05-24 Thread Geert Uytterhoeven
Hi Magnus,

On Thu, May 24, 2018 at 10:18 AM, Magnus Damm  wrote:
> On Thu, May 24, 2018 at 4:25 PM, Geert Uytterhoeven
>  wrote:
>> On Thu, May 24, 2018 at 4:23 AM, Magnus Damm  wrote:
>>> On Tue, May 22, 2018 at 10:10 PM, Simon Horman  wrote:
 On Mon, May 21, 2018 at 11:45:01PM +0900, Magnus Damm wrote:
> From: Magnus Damm 
>
> Add IPMMU device nodes for the R-Car V3H SoC aka r8a77980.
>
> The r8a77980 IPMMU is quite similar to r8a77970 however VC0
> has been added. The IMSSTR bit assignment has also been
> reworked. Power domains are also quite different however the
> the documentation is rather unclear about this topic.
>
> Until we know better VC0 gets assigned to R8A77980_PD_ALWAYS_ON.
>
> Signed-off-by: Magnus Damm 
> ---
>
>  Developed on top of renesas-devel-20180518-v4.17-rc5
>
>  arch/arm64/boot/dts/renesas/r8a77980.dtsi |   49 
> +
>  1 file changed, 49 insertions(+)
>
> --- 0001/arch/arm64/boot/dts/renesas/r8a77980.dtsi
> +++ work/arch/arm64/boot/dts/renesas/r8a77980.dtsi2018-05-21 
> 22:31:52.460607110 +0900
> @@ -387,6 +387,55 @@
>   dma-channels = <16>;
>   };
>
> + ipmmu_ds1: mmu@e774 {
> + compatible = "renesas,ipmmu-r8a77980";
> + reg = <0 0xe774 0 0x1000>;
> + renesas,ipmmu-main = <&ipmmu_mm 0>;
> + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
> + #iommu-cells = <1>;
> + };
> +
> + ipmmu_ir: mmu@ff8b {
> + compatible = "renesas,ipmmu-r8a77980";
> + reg = <0 0xff8b 0 0x1000>;
> + renesas,ipmmu-main = <&ipmmu_mm 3>;
> + power-domains = <&sysc R8A77980_PD_A3IR>;
> + #iommu-cells = <1>;
> + };
> +
> + ipmmu_mm: mmu@e67b {
> + compatible = "renesas,ipmmu-r8a77980";
> + reg = <0 0xe67b 0 0x1000>;
> + interrupts = ,
> +  ;
> + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
> + #iommu-cells = <1>;
> + };
> +
> + ipmmu_rt: mmu@ffc8 {
> + compatible = "renesas,ipmmu-r8a77980";
> + reg = <0 0xffc8 0 0x1000>;
> + renesas,ipmmu-main = <&ipmmu_mm 10>;
> + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
> + #iommu-cells = <1>;
> + };
> +
> + ipmmu_vc0: mmu@fe6b {
> + compatible = "renesas,ipmmu-r8a77980";
> + reg = <0 0xfe6b 0 0x1000>;
> + renesas,ipmmu-main = <&ipmmu_mm 12>;
> + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
> + #iommu-cells = <1>;
> + };
> +
> + ipmmu_vi0: mmu@febd {
> + compatible = "renesas,ipmmu-r8a77980";
> + reg = <0 0xfebd 0 0x1000>;
> + renesas,ipmmu-main = <&ipmmu_mm 14>;
> + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
> + #iommu-cells = <1>;
> + };
> +

 nit: I believe the IPMMU nodes should go above the AVB rather than the
 MMC node to preserve the current node sorting order of:

 1) bus address
 2) IP block
 3) alphabetical
>>>
>>> Will reposition the IPMMU nodes in next version. Will also add vip0
>>> and vip1 IPMMU nodes as described in the 1.0 data sheet.
>>
>> Note that the BSP has patches to move the ipmmu_mm nodes first, to
>> work around probe order issues.
>
> That might have been appropriate for older IPMMU driver versions.
>
> I think what is in upstream should not depend on any ordering.

I don't know, it's an -EPROBE_DEFER issue.

https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas-bsp.git/commit/?id=903fa7776d24a095ecbbbc44c12cabcc096d88a6

Gr{oetje,eeting}s,

Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds


Re: [PATCH 02/03] arm64: dts: renesas: r8a77980: Add IPMMU devices nodes

2018-05-24 Thread Magnus Damm
Hi Geert,

On Thu, May 24, 2018 at 4:25 PM, Geert Uytterhoeven
 wrote:
> Hi Magnus,
>
> On Thu, May 24, 2018 at 4:23 AM, Magnus Damm  wrote:
>> On Tue, May 22, 2018 at 10:10 PM, Simon Horman  wrote:
>>> On Mon, May 21, 2018 at 11:45:01PM +0900, Magnus Damm wrote:
 From: Magnus Damm 

 Add IPMMU device nodes for the R-Car V3H SoC aka r8a77980.

 The r8a77980 IPMMU is quite similar to r8a77970 however VC0
 has been added. The IMSSTR bit assignment has also been
 reworked. Power domains are also quite different however the
 the documentation is rather unclear about this topic.

 Until we know better VC0 gets assigned to R8A77980_PD_ALWAYS_ON.

 Signed-off-by: Magnus Damm 
 ---

  Developed on top of renesas-devel-20180518-v4.17-rc5

  arch/arm64/boot/dts/renesas/r8a77980.dtsi |   49 
 +
  1 file changed, 49 insertions(+)

 --- 0001/arch/arm64/boot/dts/renesas/r8a77980.dtsi
 +++ work/arch/arm64/boot/dts/renesas/r8a77980.dtsi2018-05-21 
 22:31:52.460607110 +0900
 @@ -387,6 +387,55 @@
   dma-channels = <16>;
   };

 + ipmmu_ds1: mmu@e774 {
 + compatible = "renesas,ipmmu-r8a77980";
 + reg = <0 0xe774 0 0x1000>;
 + renesas,ipmmu-main = <&ipmmu_mm 0>;
 + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
 + #iommu-cells = <1>;
 + };
 +
 + ipmmu_ir: mmu@ff8b {
 + compatible = "renesas,ipmmu-r8a77980";
 + reg = <0 0xff8b 0 0x1000>;
 + renesas,ipmmu-main = <&ipmmu_mm 3>;
 + power-domains = <&sysc R8A77980_PD_A3IR>;
 + #iommu-cells = <1>;
 + };
 +
 + ipmmu_mm: mmu@e67b {
 + compatible = "renesas,ipmmu-r8a77980";
 + reg = <0 0xe67b 0 0x1000>;
 + interrupts = ,
 +  ;
 + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
 + #iommu-cells = <1>;
 + };
 +
 + ipmmu_rt: mmu@ffc8 {
 + compatible = "renesas,ipmmu-r8a77980";
 + reg = <0 0xffc8 0 0x1000>;
 + renesas,ipmmu-main = <&ipmmu_mm 10>;
 + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
 + #iommu-cells = <1>;
 + };
 +
 + ipmmu_vc0: mmu@fe6b {
 + compatible = "renesas,ipmmu-r8a77980";
 + reg = <0 0xfe6b 0 0x1000>;
 + renesas,ipmmu-main = <&ipmmu_mm 12>;
 + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
 + #iommu-cells = <1>;
 + };
 +
 + ipmmu_vi0: mmu@febd {
 + compatible = "renesas,ipmmu-r8a77980";
 + reg = <0 0xfebd 0 0x1000>;
 + renesas,ipmmu-main = <&ipmmu_mm 14>;
 + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
 + #iommu-cells = <1>;
 + };
 +
>>>
>>> nit: I believe the IPMMU nodes should go above the AVB rather than the
>>> MMC node to preserve the current node sorting order of:
>>>
>>> 1) bus address
>>> 2) IP block
>>> 3) alphabetical
>>
>> Will reposition the IPMMU nodes in next version. Will also add vip0
>> and vip1 IPMMU nodes as described in the 1.0 data sheet.
>
> Note that the BSP has patches to move the ipmmu_mm nodes first, to
> work around probe order issues.

That might have been appropriate for older IPMMU driver versions.

I think what is in upstream should not depend on any ordering.

Cheers,

/ magnus


Re: [PATCH 02/03] arm64: dts: renesas: r8a77980: Add IPMMU devices nodes

2018-05-24 Thread Geert Uytterhoeven
Hi Magnus,

On Thu, May 24, 2018 at 4:23 AM, Magnus Damm  wrote:
> On Tue, May 22, 2018 at 10:10 PM, Simon Horman  wrote:
>> On Mon, May 21, 2018 at 11:45:01PM +0900, Magnus Damm wrote:
>>> From: Magnus Damm 
>>>
>>> Add IPMMU device nodes for the R-Car V3H SoC aka r8a77980.
>>>
>>> The r8a77980 IPMMU is quite similar to r8a77970 however VC0
>>> has been added. The IMSSTR bit assignment has also been
>>> reworked. Power domains are also quite different however the
>>> the documentation is rather unclear about this topic.
>>>
>>> Until we know better VC0 gets assigned to R8A77980_PD_ALWAYS_ON.
>>>
>>> Signed-off-by: Magnus Damm 
>>> ---
>>>
>>>  Developed on top of renesas-devel-20180518-v4.17-rc5
>>>
>>>  arch/arm64/boot/dts/renesas/r8a77980.dtsi |   49 
>>> +
>>>  1 file changed, 49 insertions(+)
>>>
>>> --- 0001/arch/arm64/boot/dts/renesas/r8a77980.dtsi
>>> +++ work/arch/arm64/boot/dts/renesas/r8a77980.dtsi2018-05-21 
>>> 22:31:52.460607110 +0900
>>> @@ -387,6 +387,55 @@
>>>   dma-channels = <16>;
>>>   };
>>>
>>> + ipmmu_ds1: mmu@e774 {
>>> + compatible = "renesas,ipmmu-r8a77980";
>>> + reg = <0 0xe774 0 0x1000>;
>>> + renesas,ipmmu-main = <&ipmmu_mm 0>;
>>> + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
>>> + #iommu-cells = <1>;
>>> + };
>>> +
>>> + ipmmu_ir: mmu@ff8b {
>>> + compatible = "renesas,ipmmu-r8a77980";
>>> + reg = <0 0xff8b 0 0x1000>;
>>> + renesas,ipmmu-main = <&ipmmu_mm 3>;
>>> + power-domains = <&sysc R8A77980_PD_A3IR>;
>>> + #iommu-cells = <1>;
>>> + };
>>> +
>>> + ipmmu_mm: mmu@e67b {
>>> + compatible = "renesas,ipmmu-r8a77980";
>>> + reg = <0 0xe67b 0 0x1000>;
>>> + interrupts = ,
>>> +  ;
>>> + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
>>> + #iommu-cells = <1>;
>>> + };
>>> +
>>> + ipmmu_rt: mmu@ffc8 {
>>> + compatible = "renesas,ipmmu-r8a77980";
>>> + reg = <0 0xffc8 0 0x1000>;
>>> + renesas,ipmmu-main = <&ipmmu_mm 10>;
>>> + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
>>> + #iommu-cells = <1>;
>>> + };
>>> +
>>> + ipmmu_vc0: mmu@fe6b {
>>> + compatible = "renesas,ipmmu-r8a77980";
>>> + reg = <0 0xfe6b 0 0x1000>;
>>> + renesas,ipmmu-main = <&ipmmu_mm 12>;
>>> + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
>>> + #iommu-cells = <1>;
>>> + };
>>> +
>>> + ipmmu_vi0: mmu@febd {
>>> + compatible = "renesas,ipmmu-r8a77980";
>>> + reg = <0 0xfebd 0 0x1000>;
>>> + renesas,ipmmu-main = <&ipmmu_mm 14>;
>>> + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
>>> + #iommu-cells = <1>;
>>> + };
>>> +
>>
>> nit: I believe the IPMMU nodes should go above the AVB rather than the
>> MMC node to preserve the current node sorting order of:
>>
>> 1) bus address
>> 2) IP block
>> 3) alphabetical
>
> Will reposition the IPMMU nodes in next version. Will also add vip0
> and vip1 IPMMU nodes as described in the 1.0 data sheet.

Note that the BSP has patches to move the ipmmu_mm nodes first, to
work around probe order issues.

Gr{oetje,eeting}s,

Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds


Re: [PATCH 02/03] arm64: dts: renesas: r8a77980: Add IPMMU devices nodes

2018-05-23 Thread Magnus Damm
Hi Simon,

On Tue, May 22, 2018 at 10:10 PM, Simon Horman  wrote:
> On Mon, May 21, 2018 at 11:45:01PM +0900, Magnus Damm wrote:
>> From: Magnus Damm 
>>
>> Add IPMMU device nodes for the R-Car V3H SoC aka r8a77980.
>>
>> The r8a77980 IPMMU is quite similar to r8a77970 however VC0
>> has been added. The IMSSTR bit assignment has also been
>> reworked. Power domains are also quite different however the
>> the documentation is rather unclear about this topic.
>>
>> Until we know better VC0 gets assigned to R8A77980_PD_ALWAYS_ON.
>>
>> Signed-off-by: Magnus Damm 
>> ---
>>
>>  Developed on top of renesas-devel-20180518-v4.17-rc5
>>
>>  arch/arm64/boot/dts/renesas/r8a77980.dtsi |   49 
>> +
>>  1 file changed, 49 insertions(+)
>>
>> --- 0001/arch/arm64/boot/dts/renesas/r8a77980.dtsi
>> +++ work/arch/arm64/boot/dts/renesas/r8a77980.dtsi2018-05-21 
>> 22:31:52.460607110 +0900
>> @@ -387,6 +387,55 @@
>>   dma-channels = <16>;
>>   };
>>
>> + ipmmu_ds1: mmu@e774 {
>> + compatible = "renesas,ipmmu-r8a77980";
>> + reg = <0 0xe774 0 0x1000>;
>> + renesas,ipmmu-main = <&ipmmu_mm 0>;
>> + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
>> + #iommu-cells = <1>;
>> + };
>> +
>> + ipmmu_ir: mmu@ff8b {
>> + compatible = "renesas,ipmmu-r8a77980";
>> + reg = <0 0xff8b 0 0x1000>;
>> + renesas,ipmmu-main = <&ipmmu_mm 3>;
>> + power-domains = <&sysc R8A77980_PD_A3IR>;
>> + #iommu-cells = <1>;
>> + };
>> +
>> + ipmmu_mm: mmu@e67b {
>> + compatible = "renesas,ipmmu-r8a77980";
>> + reg = <0 0xe67b 0 0x1000>;
>> + interrupts = ,
>> +  ;
>> + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
>> + #iommu-cells = <1>;
>> + };
>> +
>> + ipmmu_rt: mmu@ffc8 {
>> + compatible = "renesas,ipmmu-r8a77980";
>> + reg = <0 0xffc8 0 0x1000>;
>> + renesas,ipmmu-main = <&ipmmu_mm 10>;
>> + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
>> + #iommu-cells = <1>;
>> + };
>> +
>> + ipmmu_vc0: mmu@fe6b {
>> + compatible = "renesas,ipmmu-r8a77980";
>> + reg = <0 0xfe6b 0 0x1000>;
>> + renesas,ipmmu-main = <&ipmmu_mm 12>;
>> + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
>> + #iommu-cells = <1>;
>> + };
>> +
>> + ipmmu_vi0: mmu@febd {
>> + compatible = "renesas,ipmmu-r8a77980";
>> + reg = <0 0xfebd 0 0x1000>;
>> + renesas,ipmmu-main = <&ipmmu_mm 14>;
>> + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
>> + #iommu-cells = <1>;
>> + };
>> +
>
> nit: I believe the IPMMU nodes should go above the AVB rather than the
> MMC node to preserve the current node sorting order of:
>
> 1) bus address
> 2) IP block
> 3) alphabetical

Will reposition the IPMMU nodes in next version. Will also add vip0
and vip1 IPMMU nodes as described in the 1.0 data sheet.

Thanks,

/ magnus


Re: [PATCH 02/03] arm64: dts: renesas: r8a77980: Add IPMMU devices nodes

2018-05-22 Thread Simon Horman
On Mon, May 21, 2018 at 11:45:01PM +0900, Magnus Damm wrote:
> From: Magnus Damm 
> 
> Add IPMMU device nodes for the R-Car V3H SoC aka r8a77980.
> 
> The r8a77980 IPMMU is quite similar to r8a77970 however VC0
> has been added. The IMSSTR bit assignment has also been
> reworked. Power domains are also quite different however the
> the documentation is rather unclear about this topic.
> 
> Until we know better VC0 gets assigned to R8A77980_PD_ALWAYS_ON.
> 
> Signed-off-by: Magnus Damm 
> ---
> 
>  Developed on top of renesas-devel-20180518-v4.17-rc5
> 
>  arch/arm64/boot/dts/renesas/r8a77980.dtsi |   49 
> +
>  1 file changed, 49 insertions(+)
> 
> --- 0001/arch/arm64/boot/dts/renesas/r8a77980.dtsi
> +++ work/arch/arm64/boot/dts/renesas/r8a77980.dtsi2018-05-21 
> 22:31:52.460607110 +0900
> @@ -387,6 +387,55 @@
>   dma-channels = <16>;
>   };
>  
> + ipmmu_ds1: mmu@e774 {
> + compatible = "renesas,ipmmu-r8a77980";
> + reg = <0 0xe774 0 0x1000>;
> + renesas,ipmmu-main = <&ipmmu_mm 0>;
> + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
> + #iommu-cells = <1>;
> + };
> +
> + ipmmu_ir: mmu@ff8b {
> + compatible = "renesas,ipmmu-r8a77980";
> + reg = <0 0xff8b 0 0x1000>;
> + renesas,ipmmu-main = <&ipmmu_mm 3>;
> + power-domains = <&sysc R8A77980_PD_A3IR>;
> + #iommu-cells = <1>;
> + };
> +
> + ipmmu_mm: mmu@e67b {
> + compatible = "renesas,ipmmu-r8a77980";
> + reg = <0 0xe67b 0 0x1000>;
> + interrupts = ,
> +  ;
> + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
> + #iommu-cells = <1>;
> + };
> +
> + ipmmu_rt: mmu@ffc8 {
> + compatible = "renesas,ipmmu-r8a77980";
> + reg = <0 0xffc8 0 0x1000>;
> + renesas,ipmmu-main = <&ipmmu_mm 10>;
> + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
> + #iommu-cells = <1>;
> + };
> +
> + ipmmu_vc0: mmu@fe6b {
> + compatible = "renesas,ipmmu-r8a77980";
> + reg = <0 0xfe6b 0 0x1000>;
> + renesas,ipmmu-main = <&ipmmu_mm 12>;
> + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
> + #iommu-cells = <1>;
> + };
> +
> + ipmmu_vi0: mmu@febd {
> + compatible = "renesas,ipmmu-r8a77980";
> + reg = <0 0xfebd 0 0x1000>;
> + renesas,ipmmu-main = <&ipmmu_mm 14>;
> + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
> + #iommu-cells = <1>;
> + };
> +

nit: I believe the IPMMU nodes should go above the AVB rather than the
MMC node to preserve the current node sorting order of:

1) bus address
2) IP block
3) alphabetical

>   mmc0: mmc@ee14 {
>   compatible = "renesas,sdhi-r8a77980",
>"renesas,rcar-gen3-sdhi";
> 


[PATCH 02/03] arm64: dts: renesas: r8a77980: Add IPMMU devices nodes

2018-05-21 Thread Magnus Damm
From: Magnus Damm 

Add IPMMU device nodes for the R-Car V3H SoC aka r8a77980.

The r8a77980 IPMMU is quite similar to r8a77970 however VC0
has been added. The IMSSTR bit assignment has also been
reworked. Power domains are also quite different however the
the documentation is rather unclear about this topic.

Until we know better VC0 gets assigned to R8A77980_PD_ALWAYS_ON.

Signed-off-by: Magnus Damm 
---

 Developed on top of renesas-devel-20180518-v4.17-rc5

 arch/arm64/boot/dts/renesas/r8a77980.dtsi |   49 +
 1 file changed, 49 insertions(+)

--- 0001/arch/arm64/boot/dts/renesas/r8a77980.dtsi
+++ work/arch/arm64/boot/dts/renesas/r8a77980.dtsi  2018-05-21 
22:31:52.460607110 +0900
@@ -387,6 +387,55 @@
dma-channels = <16>;
};
 
+   ipmmu_ds1: mmu@e774 {
+   compatible = "renesas,ipmmu-r8a77980";
+   reg = <0 0xe774 0 0x1000>;
+   renesas,ipmmu-main = <&ipmmu_mm 0>;
+   power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
+   #iommu-cells = <1>;
+   };
+
+   ipmmu_ir: mmu@ff8b {
+   compatible = "renesas,ipmmu-r8a77980";
+   reg = <0 0xff8b 0 0x1000>;
+   renesas,ipmmu-main = <&ipmmu_mm 3>;
+   power-domains = <&sysc R8A77980_PD_A3IR>;
+   #iommu-cells = <1>;
+   };
+
+   ipmmu_mm: mmu@e67b {
+   compatible = "renesas,ipmmu-r8a77980";
+   reg = <0 0xe67b 0 0x1000>;
+   interrupts = ,
+;
+   power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
+   #iommu-cells = <1>;
+   };
+
+   ipmmu_rt: mmu@ffc8 {
+   compatible = "renesas,ipmmu-r8a77980";
+   reg = <0 0xffc8 0 0x1000>;
+   renesas,ipmmu-main = <&ipmmu_mm 10>;
+   power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
+   #iommu-cells = <1>;
+   };
+
+   ipmmu_vc0: mmu@fe6b {
+   compatible = "renesas,ipmmu-r8a77980";
+   reg = <0 0xfe6b 0 0x1000>;
+   renesas,ipmmu-main = <&ipmmu_mm 12>;
+   power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
+   #iommu-cells = <1>;
+   };
+
+   ipmmu_vi0: mmu@febd {
+   compatible = "renesas,ipmmu-r8a77980";
+   reg = <0 0xfebd 0 0x1000>;
+   renesas,ipmmu-main = <&ipmmu_mm 14>;
+   power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
+   #iommu-cells = <1>;
+   };
+
mmc0: mmc@ee14 {
compatible = "renesas,sdhi-r8a77980",
 "renesas,rcar-gen3-sdhi";