linux-sh.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v8 01/07] arm64: renesas: r8a7795: Add Renesas R8A7795 SoC support
@ 2015-08-31  6:29 Magnus Damm
  2015-08-31  9:07 ` Geert Uytterhoeven
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: Magnus Damm @ 2015-08-31  6:29 UTC (permalink / raw)
  To: linux-sh

From: Gaku Inami <gaku.inami.xw@bp.renesas.com>

Initial version of Renesas R-Car H3 support (V8)

Signed-off-by: Gaku Inami <gaku.inami.xw@bp.renesas.com>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
---

 Changes since v7: (Magnus Damm <damm+renesas@opensource.se>)
  - Folded together the following patches from v7:
     [PATCH 6/25] arm64: renesas: Add new Renesas R-Car Gen3 SoC Kconfig
     [PATCH 7/25] arm64: renesas: r8a7795: Add Renesas R8A7795 SoC support
     [PATCH 8/25] arm64: renesas: r8a7795: Add initial SoC support
  - Updated Kconfig bits
     Changed to CONFIG_ARCH_R8A7795 and CONFIG_RENESAS
     CONFIG_ARCH_SHMOBILE is still set to be able to build various drivers
     CONFIG_ARCH_SHMOBILE_MULTI is gone
     select PM_GENERIC_DOMAINS if PM
  - Moved "s3d4_clk" to clock patch from geert
  - Replaced CPG clock-output-names with clock-indices
  - set #power-domain-cells to 0
  
 Documentation/devicetree/bindings/arm/shmobile.txt |    2 
 arch/arm64/Kconfig.platforms                       |   16 +++
 arch/arm64/boot/dts/Makefile                       |    1 
 arch/arm64/boot/dts/renesas/Makefile               |    3 
 arch/arm64/boot/dts/renesas/r8a7795.dtsi           |   87 ++++++++++++++++++++
 include/dt-bindings/clock/r8a7795-clock.h          |   38 ++++++++
 6 files changed, 147 insertions(+)

--- 0001/Documentation/devicetree/bindings/arm/shmobile.txt
+++ work/Documentation/devicetree/bindings/arm/shmobile.txt	2015-08-29 18:14:12.652366518 +0900
@@ -27,6 +27,8 @@ SoCs:
     compatible = "renesas,r8a7793"
   - R-Car E2 (R8A77940)
     compatible = "renesas,r8a7794"
+  - R-Car H3 (R8A77950)
+    compatible = "renesas,r8a7795"
 
 
 Boards:
--- 0001/arch/arm64/Kconfig.platforms
+++ work/arch/arm64/Kconfig.platforms	2015-08-29 18:20:52.022366518 +0900
@@ -66,6 +66,22 @@ config ARCH_SEATTLE
 	help
 	  This enables support for AMD Seattle SOC Family
 
+config ARCH_SHMOBILE
+	bool
+
+config ARCH_RENESAS
+	bool "Renesas SoC Platform"
+	select ARCH_SHMOBILE
+	select PM_GENERIC_DOMAINS if PM
+	help
+	  This enables support for the ARMv8 based Renesas SoCs.
+
+config ARCH_R8A7795
+	bool "Renesas R-Car H3 SoC Platform"
+	depends on ARCH_RENESAS
+	help
+	  This enables support for the Renesas R-Car H3 SoC.
+
 config ARCH_TEGRA
 	bool "NVIDIA Tegra SoC Family"
 	select ARCH_HAS_RESET_CONTROLLER
--- 0001/arch/arm64/boot/dts/Makefile
+++ work/arch/arm64/boot/dts/Makefile	2015-08-29 18:14:12.652366518 +0900
@@ -9,6 +9,7 @@ dts-dirs += hisilicon
 dts-dirs += marvell
 dts-dirs += mediatek
 dts-dirs += qcom
+dts-dirs += renesas
 dts-dirs += rockchip
 dts-dirs += sprd
 dts-dirs += xilinx
--- /dev/null
+++ work/arch/arm64/boot/dts/renesas/Makefile	2015-08-29 18:14:13.672366518 +0900
@@ -0,0 +1,3 @@
+always		:= $(dtb-y)
+subdir-y	:= $(dts-dirs)
+clean-files	:= *.dtb
--- /dev/null
+++ work/arch/arm64/boot/dts/renesas/r8a7795.dtsi	2015-08-29 18:16:38.452366518 +0900
@@ -0,0 +1,87 @@
+/*
+ * Device Tree Source for the r8a7795 SoC
+ *
+ * Copyright (C) 2015 Renesas Electronics Corp.
+ *
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2.  This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+
+#include <dt-bindings/clock/r8a7795-clock.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+	compatible = "renesas,r8a7795";
+	#address-cells = <2>;
+	#size-cells = <2>;
+
+	cpus {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		/* 1core only at this point */
+		a57_0: cpu@0 {
+			compatible = "arm,cortex-a57", "arm,armv8";
+			reg = <0x0>;
+			device_type = "cpu";
+		};
+	};
+
+	extal_clk: extal_clk {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <0>;
+	};
+
+	soc {
+		compatible = "simple-bus";
+		interrupt-parent = <&gic>;
+		#address-cells = <2>;
+		#size-cells = <2>;
+		ranges;
+
+		gic: interrupt-controller@0xf1010000 {
+			compatible = "arm,gic-400";
+			#interrupt-cells = <3>;
+			#address-cells = <0>;
+			interrupt-controller;
+			reg = <0x0 0xf1010000 0 0x1000>,
+			      <0x0 0xf1020000 0 0x2000>;
+			interrupts = <GIC_PPI 9
+					(GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
+		};
+
+		timer {
+			compatible = "arm,armv8-timer";
+			interrupts = <GIC_PPI 13
+					(GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
+				     <GIC_PPI 14
+					(GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
+				     <GIC_PPI 11
+					(GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
+				     <GIC_PPI 10
+					(GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
+		};
+
+		clock {
+			#address-cells = <2>;
+			#size-cells = <2>;
+			#clock-cells = <1>;
+			ranges;
+
+			cpg_clocks: cpg_clocks@e6150000 {
+				compatible = "renesas,r8a7795-cpg-clocks",
+					     "renesas,rcar-gen3-cpg-clocks";
+				reg = <0 0xe6150000 0 0x1000>;
+				clocks = <&extal_clk>;
+				clock-indices = <
+					R8A7795_CLK_MAIN R8A7795_CLK_PLL0
+					R8A7795_CLK_PLL1 R8A7795_CLK_PLL2
+					R8A7795_CLK_PLL3 R8A7795_CLK_PLL4
+				>;
+				#power-domain-cells = <0>;
+			};
+		};
+	};
+};
--- /dev/null
+++ work/include/dt-bindings/clock/r8a7795-clock.h	2015-08-29 18:14:13.682366518 +0900
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2015 Renesas Electronics Corp.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ */
+#ifndef __DT_BINDINGS_CLOCK_R8A7795_H__
+#define __DT_BINDINGS_CLOCK_R8A7795_H__
+
+/* CPG */
+#define R8A7795_CLK_MAIN		0
+#define R8A7795_CLK_PLL0		1
+#define R8A7795_CLK_PLL1		2
+#define R8A7795_CLK_PLL2		3
+#define R8A7795_CLK_PLL3		4
+#define R8A7795_CLK_PLL4		5
+
+/* MSTP0 */
+
+/* MSTP1 */
+
+/* MSTP2 */
+
+/* MSTP3 */
+
+/* MSTP5 */
+
+/* MSTP7 */
+
+/* MSTP8 */
+
+/* MSTP9 */
+
+/* MSTP10 */
+
+#endif /* __DT_BINDINGS_CLOCK_R8A7795_H__ */

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v8 01/07] arm64: renesas: r8a7795: Add Renesas R8A7795 SoC support
  2015-08-31  6:29 [PATCH v8 01/07] arm64: renesas: r8a7795: Add Renesas R8A7795 SoC support Magnus Damm
@ 2015-08-31  9:07 ` Geert Uytterhoeven
  2015-08-31 10:44 ` Laurent Pinchart
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Geert Uytterhoeven @ 2015-08-31  9:07 UTC (permalink / raw)
  To: linux-sh

Hi Magnus,

On Mon, Aug 31, 2015 at 8:29 AM, Magnus Damm <magnus.damm@gmail.com> wrote:
> From: Gaku Inami <gaku.inami.xw@bp.renesas.com>
>
> Initial version of Renesas R-Car H3 support (V8)
>
> Signed-off-by: Gaku Inami <gaku.inami.xw@bp.renesas.com>
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
> ---
>
>  Changes since v7: (Magnus Damm <damm+renesas@opensource.se>)
>   - Folded together the following patches from v7:
>      [PATCH 6/25] arm64: renesas: Add new Renesas R-Car Gen3 SoC Kconfig
>      [PATCH 7/25] arm64: renesas: r8a7795: Add Renesas R8A7795 SoC support
>      [PATCH 8/25] arm64: renesas: r8a7795: Add initial SoC support
>   - Updated Kconfig bits
>      Changed to CONFIG_ARCH_R8A7795 and CONFIG_RENESAS
>      CONFIG_ARCH_SHMOBILE is still set to be able to build various drivers
>      CONFIG_ARCH_SHMOBILE_MULTI is gone
>      select PM_GENERIC_DOMAINS if PM
>   - Moved "s3d4_clk" to clock patch from geert
>   - Replaced CPG clock-output-names with clock-indices
>   - set #power-domain-cells to 0

Thanks for the updates!

>  Documentation/devicetree/bindings/arm/shmobile.txt |    2
>  arch/arm64/Kconfig.platforms                       |   16 +++
>  arch/arm64/boot/dts/Makefile                       |    1
>  arch/arm64/boot/dts/renesas/Makefile               |    3
>  arch/arm64/boot/dts/renesas/r8a7795.dtsi           |   87 ++++++++++++++++++++
>  include/dt-bindings/clock/r8a7795-clock.h          |   38 ++++++++

I think this should be split in two patches:
  - Kconfig update
  - DT

> --- 0001/arch/arm64/Kconfig.platforms
> +++ work/arch/arm64/Kconfig.platforms   2015-08-29 18:20:52.022366518 +0900
> @@ -66,6 +66,22 @@ config ARCH_SEATTLE
>         help
>           This enables support for AMD Seattle SOC Family
>
> +config ARCH_SHMOBILE
> +       bool
> +
> +config ARCH_RENESAS
> +       bool "Renesas SoC Platform"
> +       select ARCH_SHMOBILE
> +       select PM_GENERIC_DOMAINS if PM
> +       help
> +         This enables support for the ARMv8 based Renesas SoCs.
> +
> +config ARCH_R8A7795
> +       bool "Renesas R-Car H3 SoC Platform"
> +       depends on ARCH_RENESAS
> +       help
> +         This enables support for the Renesas R-Car H3 SoC.

At some point in time (now sounds OK to me, else we need one more tiny
patch when the PFC bits are added to .dtsi?) PINCTRL should be selected
by either ARCH_RENESAS or ARCH_R8A7795.
Logically the latter, but the former is OK as I don't expect any new SoCs
lacking pinctrl to show up in the future.

In arm64_defconfig, PINCTRL is enabled due other platforms selecting in.
But currently an R-Car Gen3-only kernel does not have PINCTRL support.

> --- /dev/null
> +++ work/arch/arm64/boot/dts/renesas/r8a7795.dtsi       2015-08-29 18:16:38.452366518 +0900
> @@ -0,0 +1,87 @@

> +       extal_clk: extal_clk {

Please call the node "extal" instead. Without "clock-output-names", the node
name (incl. the "_clk" suffix) will be used as the clock's name.

> +               compatible = "fixed-clock";
> +               #clock-cells = <0>;

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v8 01/07] arm64: renesas: r8a7795: Add Renesas R8A7795 SoC support
  2015-08-31  6:29 [PATCH v8 01/07] arm64: renesas: r8a7795: Add Renesas R8A7795 SoC support Magnus Damm
  2015-08-31  9:07 ` Geert Uytterhoeven
@ 2015-08-31 10:44 ` Laurent Pinchart
  2015-08-31 13:38 ` Geert Uytterhoeven
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Laurent Pinchart @ 2015-08-31 10:44 UTC (permalink / raw)
  To: linux-sh

Hi Magnus,

Thank you for the patch.

On Monday 31 August 2015 15:29:18 Magnus Damm wrote:
> From: Gaku Inami <gaku.inami.xw@bp.renesas.com>
> 
> Initial version of Renesas R-Car H3 support (V8)
> 
> Signed-off-by: Gaku Inami <gaku.inami.xw@bp.renesas.com>
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
> ---
> 
>  Changes since v7: (Magnus Damm <damm+renesas@opensource.se>)
>   - Folded together the following patches from v7:
>      [PATCH 6/25] arm64: renesas: Add new Renesas R-Car Gen3 SoC Kconfig
>      [PATCH 7/25] arm64: renesas: r8a7795: Add Renesas R8A7795 SoC support
>      [PATCH 8/25] arm64: renesas: r8a7795: Add initial SoC support
>   - Updated Kconfig bits
>      Changed to CONFIG_ARCH_R8A7795 and CONFIG_RENESAS
>      CONFIG_ARCH_SHMOBILE is still set to be able to build various drivers
>      CONFIG_ARCH_SHMOBILE_MULTI is gone
>      select PM_GENERIC_DOMAINS if PM
>   - Moved "s3d4_clk" to clock patch from geert
>   - Replaced CPG clock-output-names with clock-indices
>   - set #power-domain-cells to 0
> 
>  Documentation/devicetree/bindings/arm/shmobile.txt |    2
>  arch/arm64/Kconfig.platforms                       |   16 +++
>  arch/arm64/boot/dts/Makefile                       |    1
>  arch/arm64/boot/dts/renesas/Makefile               |    3
>  arch/arm64/boot/dts/renesas/r8a7795.dtsi           |   87 +++++++++++++++++
>  include/dt-bindings/clock/r8a7795-clock.h          |   38 ++++++++
>  6 files changed, 147 insertions(+)
> 
> --- 0001/Documentation/devicetree/bindings/arm/shmobile.txt
> +++ work/Documentation/devicetree/bindings/arm/shmobile.txt	2015-08-29
> 18:14:12.652366518 +0900 @@ -27,6 +27,8 @@ SoCs:
>      compatible = "renesas,r8a7793"
>    - R-Car E2 (R8A77940)
>      compatible = "renesas,r8a7794"
> +  - R-Car H3 (R8A77950)
> +    compatible = "renesas,r8a7795"
> 
> 
>  Boards:
> --- 0001/arch/arm64/Kconfig.platforms
> +++ work/arch/arm64/Kconfig.platforms	2015-08-29 18:20:52.022366518 +0900
> @@ -66,6 +66,22 @@ config ARCH_SEATTLE
>  	help
>  	  This enables support for AMD Seattle SOC Family
> 
> +config ARCH_SHMOBILE
> +	bool

It's tempting to get rid of ARCH_SHMOBILE going forward and define 
ARCH_RENESAS on ARM32 instead. I'm not sure whether that's worth it, even 
though the change would just be a search & replace.

> +config ARCH_RENESAS
> +	bool "Renesas SoC Platform"

s/Platform/Platforms/ ?

> +	select ARCH_SHMOBILE
> +	select PM_GENERIC_DOMAINS if PM
> +	help
> +	  This enables support for the ARMv8 based Renesas SoCs.
> +
> +config ARCH_R8A7795
> +	bool "Renesas R-Car H3 SoC Platform"
> +	depends on ARCH_RENESAS
> +	help
> +	  This enables support for the Renesas R-Car H3 SoC.
> +
>  config ARCH_TEGRA
>  	bool "NVIDIA Tegra SoC Family"
>  	select ARCH_HAS_RESET_CONTROLLER
> --- 0001/arch/arm64/boot/dts/Makefile
> +++ work/arch/arm64/boot/dts/Makefile	2015-08-29 18:14:12.652366518 +0900
> @@ -9,6 +9,7 @@ dts-dirs += hisilicon
>  dts-dirs += marvell
>  dts-dirs += mediatek
>  dts-dirs += qcom
> +dts-dirs += renesas
>  dts-dirs += rockchip
>  dts-dirs += sprd
>  dts-dirs += xilinx
> --- /dev/null
> +++ work/arch/arm64/boot/dts/renesas/Makefile	2015-08-29 
18:14:13.672366518
> +0900 @@ -0,0 +1,3 @@
> +always		:= $(dtb-y)
> +subdir-y	:= $(dts-dirs)

Is this a case of cargo-cult programming, or is subdir-y really needed ? :-)

> +clean-files	:= *.dtb
> --- /dev/null
> +++ work/arch/arm64/boot/dts/renesas/r8a7795.dtsi	2015-08-29
> 18:16:38.452366518 +0900 @@ -0,0 +1,87 @@
> +/*
> + * Device Tree Source for the r8a7795 SoC
> + *
> + * Copyright (C) 2015 Renesas Electronics Corp.
> + *
> + * This file is licensed under the terms of the GNU General Public License
> + * version 2.  This program is licensed "as is" without any warranty of any
> + * kind, whether express or implied.
> + */
> +
> +#include <dt-bindings/clock/r8a7795-clock.h>
> +#include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> +/ {
> +	compatible = "renesas,r8a7795";
> +	#address-cells = <2>;
> +	#size-cells = <2>;
> +
> +	cpus {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		/* 1core only at this point */
> +		a57_0: cpu@0 {
> +			compatible = "arm,cortex-a57", "arm,armv8";
> +			reg = <0x0>;
> +			device_type = "cpu";
> +		};
> +	};
> +
> +	extal_clk: extal_clk {
> +		compatible = "fixed-clock";
> +		#clock-cells = <0>;
> +		clock-frequency = <0>;
> +	};
> +
> +	soc {
> +		compatible = "simple-bus";
> +		interrupt-parent = <&gic>;
> +		#address-cells = <2>;
> +		#size-cells = <2>;
> +		ranges;
> +
> +		gic: interrupt-controller@0xf1010000 {
> +			compatible = "arm,gic-400";
> +			#interrupt-cells = <3>;
> +			#address-cells = <0>;
> +			interrupt-controller;
> +			reg = <0x0 0xf1010000 0 0x1000>,
> +			      <0x0 0xf1020000 0 0x2000>;
> +			interrupts = <GIC_PPI 9
> +					(GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
> +		};
> +
> +		timer {
> +			compatible = "arm,armv8-timer";
> +			interrupts = <GIC_PPI 13
> +					(GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
> +				     <GIC_PPI 14
> +					(GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
> +				     <GIC_PPI 11
> +					(GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
> +				     <GIC_PPI 10
> +					(GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
> +		};
> +
> +		clock {
> +			#address-cells = <2>;
> +			#size-cells = <2>;
> +			#clock-cells = <1>;
> +			ranges;
> +
> +			cpg_clocks: cpg_clocks@e6150000 {
> +				compatible = "renesas,r8a7795-cpg-clocks",
> +					     "renesas,rcar-gen3-cpg-clocks";
> +				reg = <0 0xe6150000 0 0x1000>;
> +				clocks = <&extal_clk>;
> +				clock-indices = <
> +					R8A7795_CLK_MAIN R8A7795_CLK_PLL0
> +					R8A7795_CLK_PLL1 R8A7795_CLK_PLL2
> +					R8A7795_CLK_PLL3 R8A7795_CLK_PLL4
> +				>;
> +				#power-domain-cells = <0>;
> +			};
> +		};
> +	};
> +};
> --- /dev/null
> +++ work/include/dt-bindings/clock/r8a7795-clock.h	2015-08-29
> 18:14:13.682366518 +0900 @@ -0,0 +1,38 @@
> +/*
> + * Copyright (C) 2015 Renesas Electronics Corp.
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + */
> +#ifndef __DT_BINDINGS_CLOCK_R8A7795_H__
> +#define __DT_BINDINGS_CLOCK_R8A7795_H__
> +
> +/* CPG */
> +#define R8A7795_CLK_MAIN		0
> +#define R8A7795_CLK_PLL0		1
> +#define R8A7795_CLK_PLL1		2
> +#define R8A7795_CLK_PLL2		3
> +#define R8A7795_CLK_PLL3		4
> +#define R8A7795_CLK_PLL4		5
> +
> +/* MSTP0 */
> +
> +/* MSTP1 */
> +
> +/* MSTP2 */
> +
> +/* MSTP3 */
> +
> +/* MSTP5 */
> +
> +/* MSTP7 */
> +
> +/* MSTP8 */
> +
> +/* MSTP9 */
> +
> +/* MSTP10 */
> +
> +#endif /* __DT_BINDINGS_CLOCK_R8A7795_H__ */

Shouldn't this be moved to the CPG patch series ?

-- 
Regards,

Laurent Pinchart


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v8 01/07] arm64: renesas: r8a7795: Add Renesas R8A7795 SoC support
  2015-08-31  6:29 [PATCH v8 01/07] arm64: renesas: r8a7795: Add Renesas R8A7795 SoC support Magnus Damm
  2015-08-31  9:07 ` Geert Uytterhoeven
  2015-08-31 10:44 ` Laurent Pinchart
@ 2015-08-31 13:38 ` Geert Uytterhoeven
  2015-09-03  7:04 ` Laurent Pinchart
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Geert Uytterhoeven @ 2015-08-31 13:38 UTC (permalink / raw)
  To: linux-sh

Hi Laurent,

On Mon, Aug 31, 2015 at 12:44 PM, Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
> On Monday 31 August 2015 15:29:18 Magnus Damm wrote:
>> --- 0001/arch/arm64/Kconfig.platforms
>> +++ work/arch/arm64/Kconfig.platforms 2015-08-29 18:20:52.022366518 +0900
>> @@ -66,6 +66,22 @@ config ARCH_SEATTLE
>>       help
>>         This enables support for AMD Seattle SOC Family
>>
>> +config ARCH_SHMOBILE
>> +     bool
>
> It's tempting to get rid of ARCH_SHMOBILE going forward and define
> ARCH_RENESAS on ARM32 instead. I'm not sure whether that's worth it, even
> though the change would just be a search & replace.

What's the meaning of "ARCH_RENESAS"?
Does that include H8/300, m32r, and SuperH, too?

I know "SH Mobile" has been used for both SuperH and ARM32, but it's
still closer ;-)

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v8 01/07] arm64: renesas: r8a7795: Add Renesas R8A7795 SoC support
  2015-08-31  6:29 [PATCH v8 01/07] arm64: renesas: r8a7795: Add Renesas R8A7795 SoC support Magnus Damm
                   ` (2 preceding siblings ...)
  2015-08-31 13:38 ` Geert Uytterhoeven
@ 2015-09-03  7:04 ` Laurent Pinchart
  2015-09-03  7:13 ` Dirk Behme
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Laurent Pinchart @ 2015-09-03  7:04 UTC (permalink / raw)
  To: linux-sh

Hi Geert,

On Monday 31 August 2015 15:38:40 Geert Uytterhoeven wrote:
> On Mon, Aug 31, 2015 at 12:44 PM, Laurent Pinchart wrote:
> > On Monday 31 August 2015 15:29:18 Magnus Damm wrote:
> >> --- 0001/arch/arm64/Kconfig.platforms
> >> +++ work/arch/arm64/Kconfig.platforms 2015-08-29 18:20:52.022366518 +0900
> >> @@ -66,6 +66,22 @@ config ARCH_SEATTLE
> >>       help
> >>         This enables support for AMD Seattle SOC Family
> >> 
> >> +config ARCH_SHMOBILE
> >> +     bool
> > 
> > It's tempting to get rid of ARCH_SHMOBILE going forward and define
> > ARCH_RENESAS on ARM32 instead. I'm not sure whether that's worth it, even
> > though the change would just be a search & replace.
> 
> What's the meaning of "ARCH_RENESAS"?
> Does that include H8/300, m32r, and SuperH, too?
> 
> I know "SH Mobile" has been used for both SuperH and ARM32, but it's
> still closer ;-)

Let's postpone that until arch/h8300 and arch/m32r become deprecated then ;-)

It's still a bit annoying not to have a proper name to describe SuperH, ARM32 
and ARM64 SoCs that share the same Renesas IP cores.

-- 
Regards,

Laurent Pinchart


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v8 01/07] arm64: renesas: r8a7795: Add Renesas R8A7795 SoC support
  2015-08-31  6:29 [PATCH v8 01/07] arm64: renesas: r8a7795: Add Renesas R8A7795 SoC support Magnus Damm
                   ` (3 preceding siblings ...)
  2015-09-03  7:04 ` Laurent Pinchart
@ 2015-09-03  7:13 ` Dirk Behme
  2015-09-03  7:24 ` Magnus Damm
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Dirk Behme @ 2015-09-03  7:13 UTC (permalink / raw)
  To: linux-sh

On 03.09.2015 09:04, Laurent Pinchart wrote:
> Hi Geert,
>
> On Monday 31 August 2015 15:38:40 Geert Uytterhoeven wrote:
>> On Mon, Aug 31, 2015 at 12:44 PM, Laurent Pinchart wrote:
>>> On Monday 31 August 2015 15:29:18 Magnus Damm wrote:
>>>> --- 0001/arch/arm64/Kconfig.platforms
>>>> +++ work/arch/arm64/Kconfig.platforms 2015-08-29 18:20:52.022366518 +0900
>>>> @@ -66,6 +66,22 @@ config ARCH_SEATTLE
>>>>        help
>>>>          This enables support for AMD Seattle SOC Family
>>>>
>>>> +config ARCH_SHMOBILE
>>>> +     bool
>>>
>>> It's tempting to get rid of ARCH_SHMOBILE going forward and define
>>> ARCH_RENESAS on ARM32 instead. I'm not sure whether that's worth it, even
>>> though the change would just be a search & replace.
>>
>> What's the meaning of "ARCH_RENESAS"?
>> Does that include H8/300, m32r, and SuperH, too?
>>
>> I know "SH Mobile" has been used for both SuperH and ARM32, but it's
>> still closer ;-)
>
> Let's postpone that until arch/h8300 and arch/m32r become deprecated then ;-)
>
> It's still a bit annoying not to have a proper name to describe SuperH, ARM32
> and ARM64 SoCs that share the same Renesas IP cores.


Btw, for patches starting with the subject "arm64: ..." wouldn't it make 
sense to at least CC linux-arm-kernel?


Best regards

Dirk





^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v8 01/07] arm64: renesas: r8a7795: Add Renesas R8A7795 SoC support
  2015-08-31  6:29 [PATCH v8 01/07] arm64: renesas: r8a7795: Add Renesas R8A7795 SoC support Magnus Damm
                   ` (4 preceding siblings ...)
  2015-09-03  7:13 ` Dirk Behme
@ 2015-09-03  7:24 ` Magnus Damm
  2015-09-03  7:59 ` Magnus Damm
  2015-09-08 20:36 ` Laurent Pinchart
  7 siblings, 0 replies; 9+ messages in thread
From: Magnus Damm @ 2015-09-03  7:24 UTC (permalink / raw)
  To: linux-sh

Hi Dirk,

On Thu, Sep 3, 2015 at 4:13 PM, Dirk Behme <dirk.behme@de.bosch.com> wrote:
> On 03.09.2015 09:04, Laurent Pinchart wrote:
>>
>> Hi Geert,
>>
>> On Monday 31 August 2015 15:38:40 Geert Uytterhoeven wrote:
>>>
>>> On Mon, Aug 31, 2015 at 12:44 PM, Laurent Pinchart wrote:
>>>>
>>>> On Monday 31 August 2015 15:29:18 Magnus Damm wrote:
>>>>>
>>>>> --- 0001/arch/arm64/Kconfig.platforms
>>>>> +++ work/arch/arm64/Kconfig.platforms 2015-08-29 18:20:52.022366518
>>>>> +0900
>>>>> @@ -66,6 +66,22 @@ config ARCH_SEATTLE
>>>>>        help
>>>>>          This enables support for AMD Seattle SOC Family
>>>>>
>>>>> +config ARCH_SHMOBILE
>>>>> +     bool
>>>>
>>>>
>>>> It's tempting to get rid of ARCH_SHMOBILE going forward and define
>>>> ARCH_RENESAS on ARM32 instead. I'm not sure whether that's worth it,
>>>> even
>>>> though the change would just be a search & replace.
>>>
>>>
>>> What's the meaning of "ARCH_RENESAS"?
>>> Does that include H8/300, m32r, and SuperH, too?
>>>
>>> I know "SH Mobile" has been used for both SuperH and ARM32, but it's
>>> still closer ;-)
>>
>>
>> Let's postpone that until arch/h8300 and arch/m32r become deprecated then
>> ;-)
>>
>> It's still a bit annoying not to have a proper name to describe SuperH,
>> ARM32
>> and ARM64 SoCs that share the same Renesas IP cores.
>
>
>
> Btw, for patches starting with the subject "arm64: ..." wouldn't it make
> sense to at least CC linux-arm-kernel?

Right, the plan is to expand the broadcast domain once the
dependencies settle a bit more. Right now driver bits for PFC and CPG
are not yet stable enough (so this series may change quite a bit
still), but once that happens we should include linux-arm-kernel for
sure.

Thanks,

/ magnus

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v8 01/07] arm64: renesas: r8a7795: Add Renesas R8A7795 SoC support
  2015-08-31  6:29 [PATCH v8 01/07] arm64: renesas: r8a7795: Add Renesas R8A7795 SoC support Magnus Damm
                   ` (5 preceding siblings ...)
  2015-09-03  7:24 ` Magnus Damm
@ 2015-09-03  7:59 ` Magnus Damm
  2015-09-08 20:36 ` Laurent Pinchart
  7 siblings, 0 replies; 9+ messages in thread
From: Magnus Damm @ 2015-09-03  7:59 UTC (permalink / raw)
  To: linux-sh

Hi Laurent,

On Mon, Aug 31, 2015 at 7:44 PM, Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
> Hi Magnus,
>
> Thank you for the patch.
>
> On Monday 31 August 2015 15:29:18 Magnus Damm wrote:
>> From: Gaku Inami <gaku.inami.xw@bp.renesas.com>
>>
>> Initial version of Renesas R-Car H3 support (V8)
>>
>> Signed-off-by: Gaku Inami <gaku.inami.xw@bp.renesas.com>
>> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
>> Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
>> ---
>>
>>  Changes since v7: (Magnus Damm <damm+renesas@opensource.se>)
>>   - Folded together the following patches from v7:
>>      [PATCH 6/25] arm64: renesas: Add new Renesas R-Car Gen3 SoC Kconfig
>>      [PATCH 7/25] arm64: renesas: r8a7795: Add Renesas R8A7795 SoC support
>>      [PATCH 8/25] arm64: renesas: r8a7795: Add initial SoC support
>>   - Updated Kconfig bits
>>      Changed to CONFIG_ARCH_R8A7795 and CONFIG_RENESAS
>>      CONFIG_ARCH_SHMOBILE is still set to be able to build various drivers
>>      CONFIG_ARCH_SHMOBILE_MULTI is gone
>>      select PM_GENERIC_DOMAINS if PM
>>   - Moved "s3d4_clk" to clock patch from geert
>>   - Replaced CPG clock-output-names with clock-indices
>>   - set #power-domain-cells to 0
>>
>>  Documentation/devicetree/bindings/arm/shmobile.txt |    2
>>  arch/arm64/Kconfig.platforms                       |   16 +++
>>  arch/arm64/boot/dts/Makefile                       |    1
>>  arch/arm64/boot/dts/renesas/Makefile               |    3
>>  arch/arm64/boot/dts/renesas/r8a7795.dtsi           |   87 +++++++++++++++++
>>  include/dt-bindings/clock/r8a7795-clock.h          |   38 ++++++++
>>  6 files changed, 147 insertions(+)
>>
>> --- 0001/Documentation/devicetree/bindings/arm/shmobile.txt
>> +++ work/Documentation/devicetree/bindings/arm/shmobile.txt   2015-08-29
>> 18:14:12.652366518 +0900 @@ -27,6 +27,8 @@ SoCs:
>>      compatible = "renesas,r8a7793"
>>    - R-Car E2 (R8A77940)
>>      compatible = "renesas,r8a7794"
>> +  - R-Car H3 (R8A77950)
>> +    compatible = "renesas,r8a7795"
>>
>>
>>  Boards:
>> --- 0001/arch/arm64/Kconfig.platforms
>> +++ work/arch/arm64/Kconfig.platforms 2015-08-29 18:20:52.022366518 +0900
>> @@ -66,6 +66,22 @@ config ARCH_SEATTLE
>>       help
>>         This enables support for AMD Seattle SOC Family
>>
>> +config ARCH_SHMOBILE
>> +     bool
>
> It's tempting to get rid of ARCH_SHMOBILE going forward and define
> ARCH_RENESAS on ARM32 instead. I'm not sure whether that's worth it, even
> though the change would just be a search & replace.

I think slowly moving towards ARCH_RENESAS makes sense on ARM32 as
well. For more short term driver enablement I think having a
workaround that defines ARCH_SHMOBILE like above is simple and
efficient.

>> +config ARCH_RENESAS
>> +     bool "Renesas SoC Platform"
>
> s/Platform/Platforms/ ?

Will fix, thanks!

>> +     select ARCH_SHMOBILE
>> +     select PM_GENERIC_DOMAINS if PM
>> +     help
>> +       This enables support for the ARMv8 based Renesas SoCs.
>> +
>> +config ARCH_R8A7795
>> +     bool "Renesas R-Car H3 SoC Platform"
>> +     depends on ARCH_RENESAS
>> +     help
>> +       This enables support for the Renesas R-Car H3 SoC.
>> +
>>  config ARCH_TEGRA
>>       bool "NVIDIA Tegra SoC Family"
>>       select ARCH_HAS_RESET_CONTROLLER
>> --- 0001/arch/arm64/boot/dts/Makefile
>> +++ work/arch/arm64/boot/dts/Makefile 2015-08-29 18:14:12.652366518 +0900
>> @@ -9,6 +9,7 @@ dts-dirs += hisilicon
>>  dts-dirs += marvell
>>  dts-dirs += mediatek
>>  dts-dirs += qcom
>> +dts-dirs += renesas
>>  dts-dirs += rockchip
>>  dts-dirs += sprd
>>  dts-dirs += xilinx
>> --- /dev/null
>> +++ work/arch/arm64/boot/dts/renesas/Makefile 2015-08-29
> 18:14:13.672366518
>> +0900 @@ -0,0 +1,3 @@
>> +always               := $(dtb-y)
>> +subdir-y     := $(dts-dirs)
>
> Is this a case of cargo-cult programming, or is subdir-y really needed ? :-)

Most likely no, will look into that. Thanks!

>> +clean-files  := *.dtb
>> --- /dev/null
>> +++ work/arch/arm64/boot/dts/renesas/r8a7795.dtsi     2015-08-29
>> 18:16:38.452366518 +0900 @@ -0,0 +1,87 @@
>> +/*
>> + * Device Tree Source for the r8a7795 SoC
>> + *
>> + * Copyright (C) 2015 Renesas Electronics Corp.
>> + *
>> + * This file is licensed under the terms of the GNU General Public License
>> + * version 2.  This program is licensed "as is" without any warranty of any
>> + * kind, whether express or implied.
>> + */
>> +
>> +#include <dt-bindings/clock/r8a7795-clock.h>
>> +#include <dt-bindings/interrupt-controller/arm-gic.h>
>> +
>> +/ {
>> +     compatible = "renesas,r8a7795";
>> +     #address-cells = <2>;
>> +     #size-cells = <2>;
>> +
>> +     cpus {
>> +             #address-cells = <1>;
>> +             #size-cells = <0>;
>> +
>> +             /* 1core only at this point */
>> +             a57_0: cpu@0 {
>> +                     compatible = "arm,cortex-a57", "arm,armv8";
>> +                     reg = <0x0>;
>> +                     device_type = "cpu";
>> +             };
>> +     };
>> +
>> +     extal_clk: extal_clk {
>> +             compatible = "fixed-clock";
>> +             #clock-cells = <0>;
>> +             clock-frequency = <0>;
>> +     };
>> +
>> +     soc {
>> +             compatible = "simple-bus";
>> +             interrupt-parent = <&gic>;
>> +             #address-cells = <2>;
>> +             #size-cells = <2>;
>> +             ranges;
>> +
>> +             gic: interrupt-controller@0xf1010000 {
>> +                     compatible = "arm,gic-400";
>> +                     #interrupt-cells = <3>;
>> +                     #address-cells = <0>;
>> +                     interrupt-controller;
>> +                     reg = <0x0 0xf1010000 0 0x1000>,
>> +                           <0x0 0xf1020000 0 0x2000>;
>> +                     interrupts = <GIC_PPI 9
>> +                                     (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
>> +             };
>> +
>> +             timer {
>> +                     compatible = "arm,armv8-timer";
>> +                     interrupts = <GIC_PPI 13
>> +                                     (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
>> +                                  <GIC_PPI 14
>> +                                     (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
>> +                                  <GIC_PPI 11
>> +                                     (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
>> +                                  <GIC_PPI 10
>> +                                     (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
>> +             };
>> +
>> +             clock {
>> +                     #address-cells = <2>;
>> +                     #size-cells = <2>;
>> +                     #clock-cells = <1>;
>> +                     ranges;
>> +
>> +                     cpg_clocks: cpg_clocks@e6150000 {
>> +                             compatible = "renesas,r8a7795-cpg-clocks",
>> +                                          "renesas,rcar-gen3-cpg-clocks";
>> +                             reg = <0 0xe6150000 0 0x1000>;
>> +                             clocks = <&extal_clk>;
>> +                             clock-indices = <
>> +                                     R8A7795_CLK_MAIN R8A7795_CLK_PLL0
>> +                                     R8A7795_CLK_PLL1 R8A7795_CLK_PLL2
>> +                                     R8A7795_CLK_PLL3 R8A7795_CLK_PLL4
>> +                             >;
>> +                             #power-domain-cells = <0>;
>> +                     };
>> +             };
>> +     };
>> +};
>> --- /dev/null
>> +++ work/include/dt-bindings/clock/r8a7795-clock.h    2015-08-29
>> 18:14:13.682366518 +0900 @@ -0,0 +1,38 @@
>> +/*
>> + * Copyright (C) 2015 Renesas Electronics Corp.
>> + *
>> + * This program is free software; you can redistribute it and/or modify
>> + * it under the terms of the GNU General Public License as published by
>> + * the Free Software Foundation; either version 2 of the License, or
>> + * (at your option) any later version.
>> + */
>> +#ifndef __DT_BINDINGS_CLOCK_R8A7795_H__
>> +#define __DT_BINDINGS_CLOCK_R8A7795_H__
>> +
>> +/* CPG */
>> +#define R8A7795_CLK_MAIN             0
>> +#define R8A7795_CLK_PLL0             1
>> +#define R8A7795_CLK_PLL1             2
>> +#define R8A7795_CLK_PLL2             3
>> +#define R8A7795_CLK_PLL3             4
>> +#define R8A7795_CLK_PLL4             5
>> +
>> +/* MSTP0 */
>> +
>> +/* MSTP1 */
>> +
>> +/* MSTP2 */
>> +
>> +/* MSTP3 */
>> +
>> +/* MSTP5 */
>> +
>> +/* MSTP7 */
>> +
>> +/* MSTP8 */
>> +
>> +/* MSTP9 */
>> +
>> +/* MSTP10 */
>> +
>> +#endif /* __DT_BINDINGS_CLOCK_R8A7795_H__ */
>
> Shouldn't this be moved to the CPG patch series ?

That would introduce a build time dependency between the different
series. I think letting each series stay as self-contained as possible
makes early development smooth. Geert and I have been talking about
sharing clock #defines like the ones above as an incremental step once
the code has been merged.

Thanks,

/ magnus

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v8 01/07] arm64: renesas: r8a7795: Add Renesas R8A7795 SoC support
  2015-08-31  6:29 [PATCH v8 01/07] arm64: renesas: r8a7795: Add Renesas R8A7795 SoC support Magnus Damm
                   ` (6 preceding siblings ...)
  2015-09-03  7:59 ` Magnus Damm
@ 2015-09-08 20:36 ` Laurent Pinchart
  7 siblings, 0 replies; 9+ messages in thread
From: Laurent Pinchart @ 2015-09-08 20:36 UTC (permalink / raw)
  To: linux-sh

Hi Magnus,

On Monday 31 August 2015 15:29:18 Magnus Damm wrote:
> From: Gaku Inami <gaku.inami.xw@bp.renesas.com>
> 
> Initial version of Renesas R-Car H3 support (V8)
> 
> Signed-off-by: Gaku Inami <gaku.inami.xw@bp.renesas.com>
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
> ---
> 
>  Changes since v7: (Magnus Damm <damm+renesas@opensource.se>)
>   - Folded together the following patches from v7:
>      [PATCH 6/25] arm64: renesas: Add new Renesas R-Car Gen3 SoC Kconfig
>      [PATCH 7/25] arm64: renesas: r8a7795: Add Renesas R8A7795 SoC support
>      [PATCH 8/25] arm64: renesas: r8a7795: Add initial SoC support
>   - Updated Kconfig bits
>      Changed to CONFIG_ARCH_R8A7795 and CONFIG_RENESAS
>      CONFIG_ARCH_SHMOBILE is still set to be able to build various drivers
>      CONFIG_ARCH_SHMOBILE_MULTI is gone
>      select PM_GENERIC_DOMAINS if PM
>   - Moved "s3d4_clk" to clock patch from geert
>   - Replaced CPG clock-output-names with clock-indices
>   - set #power-domain-cells to 0
> 
>  Documentation/devicetree/bindings/arm/shmobile.txt |    2
>  arch/arm64/Kconfig.platforms                       |   16 +++
>  arch/arm64/boot/dts/Makefile                       |    1
>  arch/arm64/boot/dts/renesas/Makefile               |    3
>  arch/arm64/boot/dts/renesas/r8a7795.dtsi           |   87 +++++++++++++++++
>  include/dt-bindings/clock/r8a7795-clock.h          |   38 ++++++++
>  6 files changed, 147 insertions(+)
> 
> --- 0001/Documentation/devicetree/bindings/arm/shmobile.txt
> +++ work/Documentation/devicetree/bindings/arm/shmobile.txt	2015-08-29
> 18:14:12.652366518 +0900 @@ -27,6 +27,8 @@ SoCs:
>      compatible = "renesas,r8a7793"
>    - R-Car E2 (R8A77940)
>      compatible = "renesas,r8a7794"
> +  - R-Car H3 (R8A77950)
> +    compatible = "renesas,r8a7795"
> 
> 
>  Boards:
> --- 0001/arch/arm64/Kconfig.platforms
> +++ work/arch/arm64/Kconfig.platforms	2015-08-29 18:20:52.022366518 +0900
> @@ -66,6 +66,22 @@ config ARCH_SEATTLE
>  	help
>  	  This enables support for AMD Seattle SOC Family
> 
> +config ARCH_SHMOBILE
> +	bool
> +
> +config ARCH_RENESAS
> +	bool "Renesas SoC Platform"
> +	select ARCH_SHMOBILE
> +	select PM_GENERIC_DOMAINS if PM
> +	help
> +	  This enables support for the ARMv8 based Renesas SoCs.
> +
> +config ARCH_R8A7795
> +	bool "Renesas R-Car H3 SoC Platform"
> +	depends on ARCH_RENESAS
> +	help
> +	  This enables support for the Renesas R-Car H3 SoC.
> +
>  config ARCH_TEGRA
>  	bool "NVIDIA Tegra SoC Family"
>  	select ARCH_HAS_RESET_CONTROLLER
> --- 0001/arch/arm64/boot/dts/Makefile
> +++ work/arch/arm64/boot/dts/Makefile	2015-08-29 18:14:12.652366518 +0900
> @@ -9,6 +9,7 @@ dts-dirs += hisilicon
>  dts-dirs += marvell
>  dts-dirs += mediatek
>  dts-dirs += qcom
> +dts-dirs += renesas
>  dts-dirs += rockchip
>  dts-dirs += sprd
>  dts-dirs += xilinx
> --- /dev/null
> +++ work/arch/arm64/boot/dts/renesas/Makefile	2015-08-29 
18:14:13.672366518
> +0900 @@ -0,0 +1,3 @@
> +always		:= $(dtb-y)
> +subdir-y	:= $(dts-dirs)
> +clean-files	:= *.dtb
> --- /dev/null
> +++ work/arch/arm64/boot/dts/renesas/r8a7795.dtsi	2015-08-29
> 18:16:38.452366518 +0900 @@ -0,0 +1,87 @@
> +/*
> + * Device Tree Source for the r8a7795 SoC
> + *
> + * Copyright (C) 2015 Renesas Electronics Corp.
> + *
> + * This file is licensed under the terms of the GNU General Public License
> + * version 2.  This program is licensed "as is" without any warranty of any
> + * kind, whether express or implied.
> + */
> +
> +#include <dt-bindings/clock/r8a7795-clock.h>
> +#include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> +/ {
> +	compatible = "renesas,r8a7795";
> +	#address-cells = <2>;
> +	#size-cells = <2>;
> +
> +	cpus {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		/* 1core only at this point */
> +		a57_0: cpu@0 {
> +			compatible = "arm,cortex-a57", "arm,armv8";
> +			reg = <0x0>;
> +			device_type = "cpu";
> +		};
> +	};
> +
> +	extal_clk: extal_clk {
> +		compatible = "fixed-clock";
> +		#clock-cells = <0>;
> +		clock-frequency = <0>;
> +	};
> +
> +	soc {
> +		compatible = "simple-bus";
> +		interrupt-parent = <&gic>;
> +		#address-cells = <2>;
> +		#size-cells = <2>;
> +		ranges;
> +
> +		gic: interrupt-controller@0xf1010000 {
> +			compatible = "arm,gic-400";
> +			#interrupt-cells = <3>;
> +			#address-cells = <0>;
> +			interrupt-controller;
> +			reg = <0x0 0xf1010000 0 0x1000>,
> +			      <0x0 0xf1020000 0 0x2000>;
> +			interrupts = <GIC_PPI 9
> +					(GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
> +		};
> +
> +		timer {
> +			compatible = "arm,armv8-timer";
> +			interrupts = <GIC_PPI 13
> +					(GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
> +				     <GIC_PPI 14
> +					(GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
> +				     <GIC_PPI 11
> +					(GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
> +				     <GIC_PPI 10
> +					(GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
> +		};
> +
> +		clock {
> +			#address-cells = <2>;
> +			#size-cells = <2>;
> +			#clock-cells = <1>;
> +			ranges;

I've missed this in my initial review, why do we need a clock node ? Can't we 
move the CPG node one level up as a direct child of the soc node, and list all 
clocks as children of the CPG node ?

> +			cpg_clocks: cpg_clocks@e6150000 {
> +				compatible = "renesas,r8a7795-cpg-clocks",
> +					     "renesas,rcar-gen3-cpg-clocks";
> +				reg = <0 0xe6150000 0 0x1000>;
> +				clocks = <&extal_clk>;
> +				clock-indices = <
> +					R8A7795_CLK_MAIN R8A7795_CLK_PLL0
> +					R8A7795_CLK_PLL1 R8A7795_CLK_PLL2
> +					R8A7795_CLK_PLL3 R8A7795_CLK_PLL4
> +				>;
> +				#power-domain-cells = <0>;
> +			};
> +		};
> +	};
> +};
> --- /dev/null
> +++ work/include/dt-bindings/clock/r8a7795-clock.h	2015-08-29
> 18:14:13.682366518 +0900 @@ -0,0 +1,38 @@
> +/*
> + * Copyright (C) 2015 Renesas Electronics Corp.
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + */
> +#ifndef __DT_BINDINGS_CLOCK_R8A7795_H__
> +#define __DT_BINDINGS_CLOCK_R8A7795_H__
> +
> +/* CPG */
> +#define R8A7795_CLK_MAIN		0
> +#define R8A7795_CLK_PLL0		1
> +#define R8A7795_CLK_PLL1		2
> +#define R8A7795_CLK_PLL2		3
> +#define R8A7795_CLK_PLL3		4
> +#define R8A7795_CLK_PLL4		5
> +
> +/* MSTP0 */
> +
> +/* MSTP1 */
> +
> +/* MSTP2 */
> +
> +/* MSTP3 */
> +
> +/* MSTP5 */
> +
> +/* MSTP7 */
> +
> +/* MSTP8 */
> +
> +/* MSTP9 */
> +
> +/* MSTP10 */
> +
> +#endif /* __DT_BINDINGS_CLOCK_R8A7795_H__ */

-- 
Regards,

Laurent Pinchart


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2015-09-08 20:36 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-31  6:29 [PATCH v8 01/07] arm64: renesas: r8a7795: Add Renesas R8A7795 SoC support Magnus Damm
2015-08-31  9:07 ` Geert Uytterhoeven
2015-08-31 10:44 ` Laurent Pinchart
2015-08-31 13:38 ` Geert Uytterhoeven
2015-09-03  7:04 ` Laurent Pinchart
2015-09-03  7:13 ` Dirk Behme
2015-09-03  7:24 ` Magnus Damm
2015-09-03  7:59 ` Magnus Damm
2015-09-08 20:36 ` Laurent Pinchart

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).