* [PATCH 0/5] Add RZ/G2M SYSC/RST/Clock support @ 2018-07-30 7:48 Biju Das 2018-07-30 7:48 ` [PATCH 1/5] dt-bindings: power: Add r8a774a1 SYSC power domain definitions Biju Das ` (4 more replies) 0 siblings, 5 replies; 15+ messages in thread From: Biju Das @ 2018-07-30 7:48 UTC (permalink / raw) To: Rob Herring, Mark Rutland Cc: Biju Das, Simon Horman, Magnus Damm, linux-renesas-soc, devicetree, Geert Uytterhoeven, Chris Paterson, Fabrizio Castro This patch series aims to add SYSC/RST/Clock support for for RZ/G2M SoC. RZ/G2M SoC is similar to R-Car Gen3 M3-W SoC. Biju Das (5): dt-bindings: power: Add r8a774a1 SYSC power domain definitions soc: renesas: rcar-sysc: Add r8a774a1 support soc: renesas: rcar-rst: Add support for RZ/G2M clk: renesas: Add r8a774a1 CPG Core Clock Definitions clk: renesas: cpg-mssr: Add r8a774a1 support .../devicetree/bindings/clock/renesas,cpg-mssr.txt | 9 +- .../bindings/power/renesas,rcar-sysc.txt | 1 + .../devicetree/bindings/reset/renesas,rst.txt | 1 + drivers/clk/renesas/Kconfig | 5 + drivers/clk/renesas/Makefile | 1 + drivers/clk/renesas/r8a774a1-cpg-mssr.c | 322 +++++++++++++++++++++ drivers/clk/renesas/renesas-cpg-mssr.c | 6 + drivers/clk/renesas/renesas-cpg-mssr.h | 1 + drivers/soc/renesas/Kconfig | 11 +- drivers/soc/renesas/Makefile | 1 + drivers/soc/renesas/r8a774a1-sysc.c | 45 +++ drivers/soc/renesas/rcar-rst.c | 4 +- drivers/soc/renesas/rcar-sysc.c | 3 + drivers/soc/renesas/rcar-sysc.h | 1 + include/dt-bindings/clock/r8a774a1-cpg-mssr.h | 59 ++++ include/dt-bindings/power/r8a774a1-sysc.h | 31 ++ 16 files changed, 493 insertions(+), 8 deletions(-) create mode 100644 drivers/clk/renesas/r8a774a1-cpg-mssr.c create mode 100644 drivers/soc/renesas/r8a774a1-sysc.c create mode 100644 include/dt-bindings/clock/r8a774a1-cpg-mssr.h create mode 100644 include/dt-bindings/power/r8a774a1-sysc.h -- 2.7.4 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 1/5] dt-bindings: power: Add r8a774a1 SYSC power domain definitions 2018-07-30 7:48 [PATCH 0/5] Add RZ/G2M SYSC/RST/Clock support Biju Das @ 2018-07-30 7:48 ` Biju Das 2018-08-01 8:01 ` Geert Uytterhoeven 2018-07-30 7:48 ` [PATCH 2/5] soc: renesas: rcar-sysc: Add r8a774a1 support Biju Das ` (3 subsequent siblings) 4 siblings, 1 reply; 15+ messages in thread From: Biju Das @ 2018-07-30 7:48 UTC (permalink / raw) To: Rob Herring, Mark Rutland Cc: Biju Das, devicetree, Simon Horman, Geert Uytterhoeven, Chris Paterson, Fabrizio Castro, linux-renesas-soc This patch adds power domain indices for RZ/G2M. Signed-off-by: Biju Das <biju.das@bp.renesas.com> Reviewed-by: Chris Paterson <chris.paterson2@renesas.com> --- include/dt-bindings/power/r8a774a1-sysc.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 include/dt-bindings/power/r8a774a1-sysc.h diff --git a/include/dt-bindings/power/r8a774a1-sysc.h b/include/dt-bindings/power/r8a774a1-sysc.h new file mode 100644 index 0000000..580f431 --- /dev/null +++ b/include/dt-bindings/power/r8a774a1-sysc.h @@ -0,0 +1,31 @@ +/* SPDX-License-Identifier: GPL-2.0 + * + * Copyright (C) 2018 Renesas Electronics Corp. + */ +#ifndef __DT_BINDINGS_POWER_R8A774A1_SYSC_H__ +#define __DT_BINDINGS_POWER_R8A774A1_SYSC_H__ + +/* + * These power domain indices match the numbers of the interrupt bits + * representing the power areas in the various Interrupt Registers + * (e.g. SYSCISR, Interrupt Status Register) + */ + +#define R8A774A1_PD_CA57_CPU0 0 +#define R8A774A1_PD_CA57_CPU1 1 +#define R8A774A1_PD_CA53_CPU0 5 +#define R8A774A1_PD_CA53_CPU1 6 +#define R8A774A1_PD_CA53_CPU2 7 +#define R8A774A1_PD_CA53_CPU3 8 +#define R8A774A1_PD_CA57_SCU 12 +#define R8A774A1_PD_A3VC 14 +#define R8A774A1_PD_3DG_A 17 +#define R8A774A1_PD_3DG_B 18 +#define R8A774A1_PD_CA53_SCU 21 +#define R8A774A1_PD_A2VC0 25 +#define R8A774A1_PD_A2VC1 26 + +/* Always-on power area */ +#define R8A774A1_PD_ALWAYS_ON 32 + +#endif /* __DT_BINDINGS_POWER_R8A774A1_SYSC_H__ */ -- 2.7.4 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH 1/5] dt-bindings: power: Add r8a774a1 SYSC power domain definitions 2018-07-30 7:48 ` [PATCH 1/5] dt-bindings: power: Add r8a774a1 SYSC power domain definitions Biju Das @ 2018-08-01 8:01 ` Geert Uytterhoeven 0 siblings, 0 replies; 15+ messages in thread From: Geert Uytterhoeven @ 2018-08-01 8:01 UTC (permalink / raw) To: Biju Das Cc: Rob Herring, Mark Rutland, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Simon Horman, Geert Uytterhoeven, Chris Paterson, Fabrizio Castro, Linux-Renesas On Mon, Jul 30, 2018 at 9:54 AM Biju Das <biju.das@bp.renesas.com> wrote: > This patch adds power domain indices for RZ/G2M. > > Signed-off-by: Biju Das <biju.das@bp.renesas.com> > Reviewed-by: Chris Paterson <chris.paterson2@renesas.com> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> 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] 15+ messages in thread
* [PATCH 2/5] soc: renesas: rcar-sysc: Add r8a774a1 support 2018-07-30 7:48 [PATCH 0/5] Add RZ/G2M SYSC/RST/Clock support Biju Das 2018-07-30 7:48 ` [PATCH 1/5] dt-bindings: power: Add r8a774a1 SYSC power domain definitions Biju Das @ 2018-07-30 7:48 ` Biju Das 2018-08-01 8:05 ` Geert Uytterhoeven 2018-07-30 7:48 ` [PATCH 3/5] soc: renesas: rcar-rst: Add support for RZ/G2M Biju Das ` (2 subsequent siblings) 4 siblings, 1 reply; 15+ messages in thread From: Biju Das @ 2018-07-30 7:48 UTC (permalink / raw) To: Rob Herring, Mark Rutland Cc: Biju Das, Simon Horman, Magnus Damm, Geert Uytterhoeven, Vladimir Barinov, Sergei Shtylyov, Takeshi Kihara, Jacopo Mondi, devicetree, linux-renesas-soc, Chris Paterson, Fabrizio Castro Add support for RZ/G2M (R8A774A1) SoC power areas to the R-Car SYSC driver. Signed-off-by: Biju Das <biju.das@bp.renesas.com> Reviewed-by: Chris Paterson <chris.paterson2@renesas.com> --- .../bindings/power/renesas,rcar-sysc.txt | 1 + drivers/soc/renesas/Kconfig | 5 +++ drivers/soc/renesas/Makefile | 1 + drivers/soc/renesas/r8a774a1-sysc.c | 45 ++++++++++++++++++++++ drivers/soc/renesas/rcar-sysc.c | 3 ++ drivers/soc/renesas/rcar-sysc.h | 1 + 6 files changed, 56 insertions(+) create mode 100644 drivers/soc/renesas/r8a774a1-sysc.c diff --git a/Documentation/devicetree/bindings/power/renesas,rcar-sysc.txt b/Documentation/devicetree/bindings/power/renesas,rcar-sysc.txt index 180ae65..4e3ec6a 100644 --- a/Documentation/devicetree/bindings/power/renesas,rcar-sysc.txt +++ b/Documentation/devicetree/bindings/power/renesas,rcar-sysc.txt @@ -10,6 +10,7 @@ Required properties: - "renesas,r8a7743-sysc" (RZ/G1M) - "renesas,r8a7745-sysc" (RZ/G1E) - "renesas,r8a77470-sysc" (RZ/G1C) + - "renesas,r8a774a1-sysc" (RZ/G2M) - "renesas,r8a7779-sysc" (R-Car H1) - "renesas,r8a7790-sysc" (R-Car H2) - "renesas,r8a7791-sysc" (R-Car M2-W) diff --git a/drivers/soc/renesas/Kconfig b/drivers/soc/renesas/Kconfig index 1d824cb..d769330 100644 --- a/drivers/soc/renesas/Kconfig +++ b/drivers/soc/renesas/Kconfig @@ -9,6 +9,7 @@ config SOC_RENESAS select SYSC_R8A7743 if ARCH_R8A7743 select SYSC_R8A7745 if ARCH_R8A7745 select SYSC_R8A77470 if ARCH_R8A77470 + select SYSC_R8A774A1 if ARCH_R8A774A1 select SYSC_R8A7779 if ARCH_R8A7779 select SYSC_R8A7790 if ARCH_R8A7790 select SYSC_R8A7791 if ARCH_R8A7791 || ARCH_R8A7793 @@ -37,6 +38,10 @@ config SYSC_R8A77470 bool "RZ/G1C System Controller support" if COMPILE_TEST select SYSC_RCAR +config SYSC_R8A774A1 + bool "RZ/G2M System Controller support" if COMPILE_TEST + select SYSC_RCAR + config SYSC_R8A7779 bool "R-Car H1 System Controller support" if COMPILE_TEST select SYSC_RCAR diff --git a/drivers/soc/renesas/Makefile b/drivers/soc/renesas/Makefile index c37b080..6adb9d6 100644 --- a/drivers/soc/renesas/Makefile +++ b/drivers/soc/renesas/Makefile @@ -6,6 +6,7 @@ obj-$(CONFIG_SOC_RENESAS) += renesas-soc.o obj-$(CONFIG_SYSC_R8A7743) += r8a7743-sysc.o obj-$(CONFIG_SYSC_R8A7745) += r8a7745-sysc.o obj-$(CONFIG_SYSC_R8A77470) += r8a77470-sysc.o +obj-$(CONFIG_SYSC_R8A774A1) += r8a774a1-sysc.o obj-$(CONFIG_SYSC_R8A7779) += r8a7779-sysc.o obj-$(CONFIG_SYSC_R8A7790) += r8a7790-sysc.o obj-$(CONFIG_SYSC_R8A7791) += r8a7791-sysc.o diff --git a/drivers/soc/renesas/r8a774a1-sysc.c b/drivers/soc/renesas/r8a774a1-sysc.c new file mode 100644 index 0000000..9db51ff --- /dev/null +++ b/drivers/soc/renesas/r8a774a1-sysc.c @@ -0,0 +1,45 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Renesas RZ/G2M System Controller + * Copyright (C) 2018 Renesas Electronics Corp. + * + * Based on Renesas R-Car M3-W System Controller + * Copyright (C) 2016 Glider bvba + */ + +#include <linux/bug.h> +#include <linux/kernel.h> + +#include <dt-bindings/power/r8a774a1-sysc.h> + +#include "rcar-sysc.h" + +static const struct rcar_sysc_area r8a774a1_areas[] __initconst = { + { "always-on", 0, 0, R8A774A1_PD_ALWAYS_ON, -1, PD_ALWAYS_ON }, + { "ca57-scu", 0x1c0, 0, R8A774A1_PD_CA57_SCU, R8A774A1_PD_ALWAYS_ON, + PD_SCU }, + { "ca57-cpu0", 0x80, 0, R8A774A1_PD_CA57_CPU0, R8A774A1_PD_CA57_SCU, + PD_CPU_NOCR }, + { "ca57-cpu1", 0x80, 1, R8A774A1_PD_CA57_CPU1, R8A774A1_PD_CA57_SCU, + PD_CPU_NOCR }, + { "ca53-scu", 0x140, 0, R8A774A1_PD_CA53_SCU, R8A774A1_PD_ALWAYS_ON, + PD_SCU }, + { "ca53-cpu0", 0x200, 0, R8A774A1_PD_CA53_CPU0, R8A774A1_PD_CA53_SCU, + PD_CPU_NOCR }, + { "ca53-cpu1", 0x200, 1, R8A774A1_PD_CA53_CPU1, R8A774A1_PD_CA53_SCU, + PD_CPU_NOCR }, + { "ca53-cpu2", 0x200, 2, R8A774A1_PD_CA53_CPU2, R8A774A1_PD_CA53_SCU, + PD_CPU_NOCR }, + { "ca53-cpu3", 0x200, 3, R8A774A1_PD_CA53_CPU3, R8A774A1_PD_CA53_SCU, + PD_CPU_NOCR }, + { "a3vc", 0x380, 0, R8A774A1_PD_A3VC, R8A774A1_PD_ALWAYS_ON }, + { "a2vc0", 0x3c0, 0, R8A774A1_PD_A2VC0, R8A774A1_PD_A3VC }, + { "a2vc1", 0x3c0, 1, R8A774A1_PD_A2VC1, R8A774A1_PD_A3VC }, + { "3dg-a", 0x100, 0, R8A774A1_PD_3DG_A, R8A774A1_PD_ALWAYS_ON }, + { "3dg-b", 0x100, 1, R8A774A1_PD_3DG_B, R8A774A1_PD_3DG_A }, +}; + +const struct rcar_sysc_info r8a774a1_sysc_info __initconst = { + .areas = r8a774a1_areas, + .num_areas = ARRAY_SIZE(r8a774a1_areas), +}; diff --git a/drivers/soc/renesas/rcar-sysc.c b/drivers/soc/renesas/rcar-sysc.c index 029188e..fe32f7a 100644 --- a/drivers/soc/renesas/rcar-sysc.c +++ b/drivers/soc/renesas/rcar-sysc.c @@ -275,6 +275,9 @@ static const struct of_device_id rcar_sysc_matches[] __initconst = { #ifdef CONFIG_SYSC_R8A77470 { .compatible = "renesas,r8a77470-sysc", .data = &r8a77470_sysc_info }, #endif +#ifdef CONFIG_SYSC_R8A774A1 + { .compatible = "renesas,r8a774a1-sysc", .data = &r8a774a1_sysc_info }, +#endif #ifdef CONFIG_SYSC_R8A7779 { .compatible = "renesas,r8a7779-sysc", .data = &r8a7779_sysc_info }, #endif diff --git a/drivers/soc/renesas/rcar-sysc.h b/drivers/soc/renesas/rcar-sysc.h index a22e7cf..33defe6 100644 --- a/drivers/soc/renesas/rcar-sysc.h +++ b/drivers/soc/renesas/rcar-sysc.h @@ -52,6 +52,7 @@ struct rcar_sysc_info { extern const struct rcar_sysc_info r8a7743_sysc_info; extern const struct rcar_sysc_info r8a7745_sysc_info; extern const struct rcar_sysc_info r8a77470_sysc_info; +extern const struct rcar_sysc_info r8a774a1_sysc_info; extern const struct rcar_sysc_info r8a7779_sysc_info; extern const struct rcar_sysc_info r8a7790_sysc_info; extern const struct rcar_sysc_info r8a7791_sysc_info; -- 2.7.4 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH 2/5] soc: renesas: rcar-sysc: Add r8a774a1 support 2018-07-30 7:48 ` [PATCH 2/5] soc: renesas: rcar-sysc: Add r8a774a1 support Biju Das @ 2018-08-01 8:05 ` Geert Uytterhoeven 0 siblings, 0 replies; 15+ messages in thread From: Geert Uytterhoeven @ 2018-08-01 8:05 UTC (permalink / raw) To: Biju Das Cc: Rob Herring, Mark Rutland, Simon Horman, Magnus Damm, Geert Uytterhoeven, Vladimir Barinov, Sergei Shtylyov, Takeshi Kihara, Jacopo Mondi, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Linux-Renesas, Chris Paterson, Fabrizio Castro On Mon, Jul 30, 2018 at 9:54 AM Biju Das <biju.das@bp.renesas.com> wrote: > Add support for RZ/G2M (R8A774A1) SoC power areas to the R-Car SYSC > driver. > > Signed-off-by: Biju Das <biju.das@bp.renesas.com> > Reviewed-by: Chris Paterson <chris.paterson2@renesas.com> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> 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] 15+ messages in thread
* [PATCH 3/5] soc: renesas: rcar-rst: Add support for RZ/G2M 2018-07-30 7:48 [PATCH 0/5] Add RZ/G2M SYSC/RST/Clock support Biju Das 2018-07-30 7:48 ` [PATCH 1/5] dt-bindings: power: Add r8a774a1 SYSC power domain definitions Biju Das 2018-07-30 7:48 ` [PATCH 2/5] soc: renesas: rcar-sysc: Add r8a774a1 support Biju Das @ 2018-07-30 7:48 ` Biju Das 2018-08-01 8:46 ` Geert Uytterhoeven 2018-07-30 7:48 ` [PATCH 4/5] clk: renesas: Add r8a774a1 CPG Core Clock Definitions Biju Das 2018-07-30 7:48 ` [PATCH 5/5] clk: renesas: cpg-mssr: Add r8a774a1 support Biju Das 4 siblings, 1 reply; 15+ messages in thread From: Biju Das @ 2018-07-30 7:48 UTC (permalink / raw) To: Philipp Zabel, Rob Herring, Mark Rutland Cc: Biju Das, Simon Horman, Magnus Damm, devicetree, linux-renesas-soc, Geert Uytterhoeven, Chris Paterson, Fabrizio Castro Signed-off-by: Biju Das <biju.das@bp.renesas.com> Reviewed-by: Chris Paterson <chris.paterson2@renesas.com> --- Documentation/devicetree/bindings/reset/renesas,rst.txt | 1 + drivers/soc/renesas/Kconfig | 6 +++--- drivers/soc/renesas/rcar-rst.c | 4 +++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Documentation/devicetree/bindings/reset/renesas,rst.txt b/Documentation/devicetree/bindings/reset/renesas,rst.txt index 67e83b0..e4fe0ab 100644 --- a/Documentation/devicetree/bindings/reset/renesas,rst.txt +++ b/Documentation/devicetree/bindings/reset/renesas,rst.txt @@ -18,6 +18,7 @@ Required properties: - "renesas,r8a7743-rst" (RZ/G1M) - "renesas,r8a7745-rst" (RZ/G1E) - "renesas,r8a77470-rst" (RZ/G1C) + - "renesas,r8a774a1-rst" (RZ/G2M) - "renesas,r8a7778-reset-wdt" (R-Car M1A) - "renesas,r8a7779-reset-wdt" (R-Car H1) - "renesas,r8a7790-rst" (R-Car H2) diff --git a/drivers/soc/renesas/Kconfig b/drivers/soc/renesas/Kconfig index d769330..00d4c9d 100644 --- a/drivers/soc/renesas/Kconfig +++ b/drivers/soc/renesas/Kconfig @@ -3,9 +3,9 @@ config SOC_RENESAS default y if ARCH_RENESAS select SOC_BUS select RST_RCAR if ARCH_RCAR_GEN1 || ARCH_RCAR_GEN2 || \ - ARCH_R8A7795 || ARCH_R8A7796 || ARCH_R8A77965 || \ - ARCH_R8A77970 || ARCH_R8A77980 || ARCH_R8A77990 || \ - ARCH_R8A77995 + ARCH_R8A774A1 || ARCH_R8A7795 || ARCH_R8A7796 || \ + ARCH_R8A77965 || ARCH_R8A77970 || ARCH_R8A77980 || \ + ARCH_R8A77990 || ARCH_R8A77995 select SYSC_R8A7743 if ARCH_R8A7743 select SYSC_R8A7745 if ARCH_R8A7745 select SYSC_R8A77470 if ARCH_R8A77470 diff --git a/drivers/soc/renesas/rcar-rst.c b/drivers/soc/renesas/rcar-rst.c index d9c1034..a447873 100644 --- a/drivers/soc/renesas/rcar-rst.c +++ b/drivers/soc/renesas/rcar-rst.c @@ -41,10 +41,12 @@ static const struct rst_config rcar_rst_gen3 __initconst = { }; static const struct of_device_id rcar_rst_matches[] __initconst = { - /* RZ/G is handled like R-Car Gen2 */ + /* RZ/G1 is handled like R-Car Gen2 */ { .compatible = "renesas,r8a7743-rst", .data = &rcar_rst_gen2 }, { .compatible = "renesas,r8a7745-rst", .data = &rcar_rst_gen2 }, { .compatible = "renesas,r8a77470-rst", .data = &rcar_rst_gen2 }, + /* RZ/G2 is handled like R-Car Gen3 */ + { .compatible = "renesas,r8a774a1-rst", .data = &rcar_rst_gen3 }, /* R-Car Gen1 */ { .compatible = "renesas,r8a7778-reset-wdt", .data = &rcar_rst_gen1 }, { .compatible = "renesas,r8a7779-reset-wdt", .data = &rcar_rst_gen1 }, -- 2.7.4 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH 3/5] soc: renesas: rcar-rst: Add support for RZ/G2M 2018-07-30 7:48 ` [PATCH 3/5] soc: renesas: rcar-rst: Add support for RZ/G2M Biju Das @ 2018-08-01 8:46 ` Geert Uytterhoeven 0 siblings, 0 replies; 15+ messages in thread From: Geert Uytterhoeven @ 2018-08-01 8:46 UTC (permalink / raw) To: Biju Das Cc: Philipp Zabel, Rob Herring, Mark Rutland, Simon Horman, Magnus Damm, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Linux-Renesas, Geert Uytterhoeven, Chris Paterson, Fabrizio Castro On Mon, Jul 30, 2018 at 9:54 AM Biju Das <biju.das@bp.renesas.com> wrote: > Signed-off-by: Biju Das <biju.das@bp.renesas.com> > Reviewed-by: Chris Paterson <chris.paterson2@renesas.com> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> 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] 15+ messages in thread
* [PATCH 4/5] clk: renesas: Add r8a774a1 CPG Core Clock Definitions 2018-07-30 7:48 [PATCH 0/5] Add RZ/G2M SYSC/RST/Clock support Biju Das ` (2 preceding siblings ...) 2018-07-30 7:48 ` [PATCH 3/5] soc: renesas: rcar-rst: Add support for RZ/G2M Biju Das @ 2018-07-30 7:48 ` Biju Das 2018-08-01 8:46 ` Geert Uytterhoeven 2018-07-30 7:48 ` [PATCH 5/5] clk: renesas: cpg-mssr: Add r8a774a1 support Biju Das 4 siblings, 1 reply; 15+ messages in thread From: Biju Das @ 2018-07-30 7:48 UTC (permalink / raw) To: Rob Herring, Mark Rutland Cc: Biju Das, devicetree, Simon Horman, Geert Uytterhoeven, Chris Paterson, Fabrizio Castro, linux-renesas-soc Add all RZ/G2M Clock Pulse Generator Core Clock Outputs, as listed in Table 8.2b ("List of Clocks [RZ/G2M]") of the RZ/G2M Hardware User's Manual. Signed-off-by: Biju Das <biju.das@bp.renesas.com> Reviewed-by: Fabrizio Castro <fabrizio.castro@bp.renesas.com> --- include/dt-bindings/clock/r8a774a1-cpg-mssr.h | 59 +++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 include/dt-bindings/clock/r8a774a1-cpg-mssr.h diff --git a/include/dt-bindings/clock/r8a774a1-cpg-mssr.h b/include/dt-bindings/clock/r8a774a1-cpg-mssr.h new file mode 100644 index 0000000..144c341 --- /dev/null +++ b/include/dt-bindings/clock/r8a774a1-cpg-mssr.h @@ -0,0 +1,59 @@ +/* SPDX-License-Identifier: GPL-2.0 + * + * Copyright (C) 2018 Renesas Electronics Corp. + */ +#ifndef __DT_BINDINGS_CLOCK_R8A774A1_CPG_MSSR_H__ +#define __DT_BINDINGS_CLOCK_R8A774A1_CPG_MSSR_H__ + +#include <dt-bindings/clock/renesas-cpg-mssr.h> + +/* r8a774a1 CPG Core Clocks */ +#define R8A774A1_CLK_Z 0 +#define R8A774A1_CLK_Z2 1 +#define R8A774A1_CLK_ZG 2 +#define R8A774A1_CLK_ZTR 3 +#define R8A774A1_CLK_ZTRD2 4 +#define R8A774A1_CLK_ZT 5 +#define R8A774A1_CLK_ZX 6 +#define R8A774A1_CLK_S0D1 7 +#define R8A774A1_CLK_S0D2 8 +#define R8A774A1_CLK_S0D3 9 +#define R8A774A1_CLK_S0D4 10 +#define R8A774A1_CLK_S0D6 11 +#define R8A774A1_CLK_S0D8 12 +#define R8A774A1_CLK_S0D12 13 +#define R8A774A1_CLK_S1D2 14 +#define R8A774A1_CLK_S1D4 15 +#define R8A774A1_CLK_S2D1 16 +#define R8A774A1_CLK_S2D2 17 +#define R8A774A1_CLK_S2D4 18 +#define R8A774A1_CLK_S3D1 19 +#define R8A774A1_CLK_S3D2 20 +#define R8A774A1_CLK_S3D4 21 +#define R8A774A1_CLK_LB 22 +#define R8A774A1_CLK_CL 23 +#define R8A774A1_CLK_ZB3 24 +#define R8A774A1_CLK_ZB3D2 25 +#define R8A774A1_CLK_ZB3D4 26 +#define R8A774A1_CLK_CR 27 +#define R8A774A1_CLK_CRD2 28 +#define R8A774A1_CLK_SD0H 29 +#define R8A774A1_CLK_SD0 30 +#define R8A774A1_CLK_SD1H 31 +#define R8A774A1_CLK_SD1 32 +#define R8A774A1_CLK_SD2H 33 +#define R8A774A1_CLK_SD2 34 +#define R8A774A1_CLK_SD3H 35 +#define R8A774A1_CLK_SD3 36 +#define R8A774A1_CLK_RPC 37 +#define R8A774A1_CLK_RPCD2 38 +#define R8A774A1_CLK_MSO 39 +#define R8A774A1_CLK_HDMI 40 +#define R8A774A1_CLK_CSI0 41 +#define R8A774A1_CLK_CP 42 +#define R8A774A1_CLK_POST2 43 +#define R8A774A1_CLK_CPEX 44 +#define R8A774A1_CLK_R 45 +#define R8A774A1_CLK_OSC 46 + +#endif /* __DT_BINDINGS_CLOCK_R8A774A1_CPG_MSSR_H__ */ -- 2.7.4 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH 4/5] clk: renesas: Add r8a774a1 CPG Core Clock Definitions 2018-07-30 7:48 ` [PATCH 4/5] clk: renesas: Add r8a774a1 CPG Core Clock Definitions Biju Das @ 2018-08-01 8:46 ` Geert Uytterhoeven 2018-08-01 9:33 ` Biju Das 0 siblings, 1 reply; 15+ messages in thread From: Geert Uytterhoeven @ 2018-08-01 8:46 UTC (permalink / raw) To: Biju Das Cc: Rob Herring, Mark Rutland, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Simon Horman, Geert Uytterhoeven, Chris Paterson, Fabrizio Castro, Linux-Renesas Hi Biju, On Mon, Jul 30, 2018 at 9:54 AM Biju Das <biju.das@bp.renesas.com> wrote: > Add all RZ/G2M Clock Pulse Generator Core Clock Outputs, as listed in > Table 8.2b ("List of Clocks [RZ/G2M]") of the RZ/G2M Hardware User's > Manual. > > Signed-off-by: Biju Das <biju.das@bp.renesas.com> > Reviewed-by: Fabrizio Castro <fabrizio.castro@bp.renesas.com> Thanks for your patch! > --- /dev/null > +++ b/include/dt-bindings/clock/r8a774a1-cpg-mssr.h > @@ -0,0 +1,59 @@ > +/* SPDX-License-Identifier: GPL-2.0 > + * > + * Copyright (C) 2018 Renesas Electronics Corp. > + */ > +#ifndef __DT_BINDINGS_CLOCK_R8A774A1_CPG_MSSR_H__ > +#define __DT_BINDINGS_CLOCK_R8A774A1_CPG_MSSR_H__ > + > +#include <dt-bindings/clock/renesas-cpg-mssr.h> > + > +/* r8a774a1 CPG Core Clocks */ > +#define R8A774A1_CLK_Z 0 > +#define R8A774A1_CLK_Z2 1 > +#define R8A774A1_CLK_ZG 2 > +#define R8A774A1_CLK_ZTR 3 > +#define R8A774A1_CLK_ZTRD2 4 > +#define R8A774A1_CLK_ZT 5 > +#define R8A774A1_CLK_ZX 6 > +#define R8A774A1_CLK_S0D1 7 > +#define R8A774A1_CLK_S0D2 8 > +#define R8A774A1_CLK_S0D3 9 > +#define R8A774A1_CLK_S0D4 10 > +#define R8A774A1_CLK_S0D6 11 > +#define R8A774A1_CLK_S0D8 12 > +#define R8A774A1_CLK_S0D12 13 > +#define R8A774A1_CLK_S1D2 14 > +#define R8A774A1_CLK_S1D4 15 > +#define R8A774A1_CLK_S2D1 16 > +#define R8A774A1_CLK_S2D2 17 > +#define R8A774A1_CLK_S2D4 18 > +#define R8A774A1_CLK_S3D1 19 > +#define R8A774A1_CLK_S3D2 20 > +#define R8A774A1_CLK_S3D4 21 > +#define R8A774A1_CLK_LB 22 > +#define R8A774A1_CLK_CL 23 > +#define R8A774A1_CLK_ZB3 24 > +#define R8A774A1_CLK_ZB3D2 25 > +#define R8A774A1_CLK_ZB3D4 26 > +#define R8A774A1_CLK_CR 27 > +#define R8A774A1_CLK_CRD2 28 > +#define R8A774A1_CLK_SD0H 29 > +#define R8A774A1_CLK_SD0 30 > +#define R8A774A1_CLK_SD1H 31 > +#define R8A774A1_CLK_SD1 32 > +#define R8A774A1_CLK_SD2H 33 > +#define R8A774A1_CLK_SD2 34 > +#define R8A774A1_CLK_SD3H 35 > +#define R8A774A1_CLK_SD3 36 > +#define R8A774A1_CLK_RPC 37 > +#define R8A774A1_CLK_RPCD2 38 > +#define R8A774A1_CLK_MSO 39 > +#define R8A774A1_CLK_HDMI 40 > +#define R8A774A1_CLK_CSI0 41 > +#define R8A774A1_CLK_CP 42 > +#define R8A774A1_CLK_POST2 43 POST2 is an internal clock, which doesn't need to be referred to from DT. So please drop it from the bindings. > +#define R8A774A1_CLK_CPEX 44 > +#define R8A774A1_CLK_R 45 > +#define R8A774A1_CLK_OSC 46 With the above fixed: Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> 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] 15+ messages in thread
* RE: [PATCH 4/5] clk: renesas: Add r8a774a1 CPG Core Clock Definitions 2018-08-01 8:46 ` Geert Uytterhoeven @ 2018-08-01 9:33 ` Biju Das 0 siblings, 0 replies; 15+ messages in thread From: Biju Das @ 2018-08-01 9:33 UTC (permalink / raw) To: Geert Uytterhoeven Cc: Rob Herring, Mark Rutland, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Simon Horman, Geert Uytterhoeven, Chris Paterson, Fabrizio Castro, Linux-Renesas Hi Geert, Thanks for the feedback. > Subject: Re: [PATCH 4/5] clk: renesas: Add r8a774a1 CPG Core Clock > Definitions > > Hi Biju, > > On Mon, Jul 30, 2018 at 9:54 AM Biju Das <biju.das@bp.renesas.com> wrote: > > Add all RZ/G2M Clock Pulse Generator Core Clock Outputs, as listed in > > Table 8.2b ("List of Clocks [RZ/G2M]") of the RZ/G2M Hardware User's > > Manual. > > > > Signed-off-by: Biju Das <biju.das@bp.renesas.com> > > Reviewed-by: Fabrizio Castro <fabrizio.castro@bp.renesas.com> > > Thanks for your patch! > > > --- /dev/null > > +++ b/include/dt-bindings/clock/r8a774a1-cpg-mssr.h > > @@ -0,0 +1,59 @@ > > +/* SPDX-License-Identifier: GPL-2.0 > > + * > > + * Copyright (C) 2018 Renesas Electronics Corp. > > + */ > > +#ifndef __DT_BINDINGS_CLOCK_R8A774A1_CPG_MSSR_H__ > > +#define __DT_BINDINGS_CLOCK_R8A774A1_CPG_MSSR_H__ > > + > > +#include <dt-bindings/clock/renesas-cpg-mssr.h> > > + > > +/* r8a774a1 CPG Core Clocks */ > > +#define R8A774A1_CLK_Z 0 > > +#define R8A774A1_CLK_Z2 1 > > +#define R8A774A1_CLK_ZG 2 > > +#define R8A774A1_CLK_ZTR 3 > > +#define R8A774A1_CLK_ZTRD2 4 > > +#define R8A774A1_CLK_ZT 5 > > +#define R8A774A1_CLK_ZX 6 > > +#define R8A774A1_CLK_S0D1 7 > > +#define R8A774A1_CLK_S0D2 8 > > +#define R8A774A1_CLK_S0D3 9 > > +#define R8A774A1_CLK_S0D4 10 > > +#define R8A774A1_CLK_S0D6 11 > > +#define R8A774A1_CLK_S0D8 12 > > +#define R8A774A1_CLK_S0D12 13 > > +#define R8A774A1_CLK_S1D2 14 > > +#define R8A774A1_CLK_S1D4 15 > > +#define R8A774A1_CLK_S2D1 16 > > +#define R8A774A1_CLK_S2D2 17 > > +#define R8A774A1_CLK_S2D4 18 > > +#define R8A774A1_CLK_S3D1 19 > > +#define R8A774A1_CLK_S3D2 20 > > +#define R8A774A1_CLK_S3D4 21 > > +#define R8A774A1_CLK_LB 22 > > +#define R8A774A1_CLK_CL 23 > > +#define R8A774A1_CLK_ZB3 24 > > +#define R8A774A1_CLK_ZB3D2 25 > > +#define R8A774A1_CLK_ZB3D4 26 > > +#define R8A774A1_CLK_CR 27 > > +#define R8A774A1_CLK_CRD2 28 > > +#define R8A774A1_CLK_SD0H 29 > > +#define R8A774A1_CLK_SD0 30 > > +#define R8A774A1_CLK_SD1H 31 > > +#define R8A774A1_CLK_SD1 32 > > +#define R8A774A1_CLK_SD2H 33 > > +#define R8A774A1_CLK_SD2 34 > > +#define R8A774A1_CLK_SD3H 35 > > +#define R8A774A1_CLK_SD3 36 > > +#define R8A774A1_CLK_RPC 37 > > +#define R8A774A1_CLK_RPCD2 38 > > +#define R8A774A1_CLK_MSO 39 > > +#define R8A774A1_CLK_HDMI 40 > > +#define R8A774A1_CLK_CSI0 41 > > +#define R8A774A1_CLK_CP 42 > > +#define R8A774A1_CLK_POST2 43 > > POST2 is an internal clock, which doesn't need to be referred to from DT. > So please drop it from the bindings. Will send V2 with the above fix. > > +#define R8A774A1_CLK_CPEX 44 > > +#define R8A774A1_CLK_R 45 > > +#define R8A774A1_CLK_OSC 46 > > With the above fixed: > Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Regards, Biju Renesas Electronics Europe Ltd, Dukes Meadow, Millboard Road, Bourne End, Buckinghamshire, SL8 5FH, UK. Registered in England & Wales under Registered No. 04586709. ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 5/5] clk: renesas: cpg-mssr: Add r8a774a1 support 2018-07-30 7:48 [PATCH 0/5] Add RZ/G2M SYSC/RST/Clock support Biju Das ` (3 preceding siblings ...) 2018-07-30 7:48 ` [PATCH 4/5] clk: renesas: Add r8a774a1 CPG Core Clock Definitions Biju Das @ 2018-07-30 7:48 ` Biju Das 2018-08-01 9:26 ` Geert Uytterhoeven 4 siblings, 1 reply; 15+ messages in thread From: Biju Das @ 2018-07-30 7:48 UTC (permalink / raw) To: Michael Turquette, Stephen Boyd, Rob Herring, Mark Rutland Cc: Biju Das, Geert Uytterhoeven, linux-clk, devicetree, linux-renesas-soc, Simon Horman, Chris Paterson, Fabrizio Castro Add RZ/G2M (R8A774A1) Clock Pulse Generator / Module Standby and Software Reset support. Based on the Table 8.2b of "RZ/G Series, 2nd Generation User's Manual: Hardware ((Rev. 0.61, June 12, 2018)". Signed-off-by: Biju Das <biju.das@bp.renesas.com> Reviewed-by: Fabrizio Castro <fabrizio.castro@bp.renesas.com> --- .../devicetree/bindings/clock/renesas,cpg-mssr.txt | 9 +- drivers/clk/renesas/Kconfig | 5 + drivers/clk/renesas/Makefile | 1 + drivers/clk/renesas/r8a774a1-cpg-mssr.c | 322 +++++++++++++++++++++ drivers/clk/renesas/renesas-cpg-mssr.c | 6 + drivers/clk/renesas/renesas-cpg-mssr.h | 1 + 6 files changed, 340 insertions(+), 4 deletions(-) create mode 100644 drivers/clk/renesas/r8a774a1-cpg-mssr.c diff --git a/Documentation/devicetree/bindings/clock/renesas,cpg-mssr.txt b/Documentation/devicetree/bindings/clock/renesas,cpg-mssr.txt index db542ab..42d0f83 100644 --- a/Documentation/devicetree/bindings/clock/renesas,cpg-mssr.txt +++ b/Documentation/devicetree/bindings/clock/renesas,cpg-mssr.txt @@ -16,6 +16,7 @@ Required Properties: - "renesas,r8a7743-cpg-mssr" for the r8a7743 SoC (RZ/G1M) - "renesas,r8a7745-cpg-mssr" for the r8a7745 SoC (RZ/G1E) - "renesas,r8a77470-cpg-mssr" for the r8a77470 SoC (RZ/G1C) + - "renesas,r8a774a1-cpg-mssr" for the r8a774a1 SoC (RZ/G2M) - "renesas,r8a7790-cpg-mssr" for the r8a7790 SoC (R-Car H2) - "renesas,r8a7791-cpg-mssr" for the r8a7791 SoC (R-Car M2-W) - "renesas,r8a7792-cpg-mssr" for the r8a7792 SoC (R-Car V2H) @@ -35,10 +36,10 @@ Required Properties: - clocks: References to external parent clocks, one entry for each entry in clock-names - clock-names: List of external parent clock names. Valid names are: - - "extal" (r8a7743, r8a7745, r8a77470, r8a7790, r8a7791, r8a7792, - r8a7793, r8a7794, r8a7795, r8a7796, r8a77965, r8a77970, - r8a77980, r8a77990, r8a77995) - - "extalr" (r8a7795, r8a7796, r8a77965, r8a77970, r8a77980) + - "extal" (r8a7743, r8a7745, r8a77470, r8a774a1, r8a7790, r8a7791, + r8a7792, r8a7793, r8a7794, r8a7795, r8a7796, r8a77965, + r8a77970, r8a77980, r8a77990, r8a77995) + - "extalr" (r8a774a1, r8a7795, r8a7796, r8a77965, r8a77970, r8a77980) - "usb_extal" (r8a7743, r8a7745, r8a77470, r8a7790, r8a7791, r8a7793, r8a7794) diff --git a/drivers/clk/renesas/Kconfig b/drivers/clk/renesas/Kconfig index f9ba71311..fd36f18 100644 --- a/drivers/clk/renesas/Kconfig +++ b/drivers/clk/renesas/Kconfig @@ -8,6 +8,7 @@ config CLK_RENESAS select CLK_R8A7743 if ARCH_R8A7743 select CLK_R8A7745 if ARCH_R8A7745 select CLK_R8A77470 if ARCH_R8A77470 + select CLK_R8A774A1 if ARCH_R8A774A1 select CLK_R8A7778 if ARCH_R8A7778 select CLK_R8A7779 if ARCH_R8A7779 select CLK_R8A7790 if ARCH_R8A7790 @@ -66,6 +67,10 @@ config CLK_R8A77470 bool "RZ/G1C clock support" if COMPILE_TEST select CLK_RCAR_GEN2_CPG +config CLK_R8A774A1 + bool "RZ/G2M clock support" if COMPILE_TEST + select CLK_RCAR_GEN3_CPG + config CLK_R8A7778 bool "R-Car M1A clock support" if COMPILE_TEST select CLK_RENESAS_CPG_MSTP diff --git a/drivers/clk/renesas/Makefile b/drivers/clk/renesas/Makefile index fe5bac9..0eb56bc 100644 --- a/drivers/clk/renesas/Makefile +++ b/drivers/clk/renesas/Makefile @@ -7,6 +7,7 @@ obj-$(CONFIG_CLK_R8A7740) += clk-r8a7740.o obj-$(CONFIG_CLK_R8A7743) += r8a7743-cpg-mssr.o obj-$(CONFIG_CLK_R8A7745) += r8a7745-cpg-mssr.o obj-$(CONFIG_CLK_R8A77470) += r8a77470-cpg-mssr.o +obj-$(CONFIG_CLK_R8A774A1) += r8a774a1-cpg-mssr.o obj-$(CONFIG_CLK_R8A7778) += clk-r8a7778.o obj-$(CONFIG_CLK_R8A7779) += clk-r8a7779.o obj-$(CONFIG_CLK_R8A7790) += r8a7790-cpg-mssr.o diff --git a/drivers/clk/renesas/r8a774a1-cpg-mssr.c b/drivers/clk/renesas/r8a774a1-cpg-mssr.c new file mode 100644 index 0000000..0993513 --- /dev/null +++ b/drivers/clk/renesas/r8a774a1-cpg-mssr.c @@ -0,0 +1,322 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * r8a774a1 Clock Pulse Generator / Module Standby and Software Reset + * + * Copyright (C) 2018 Renesas Electronics Corp. + * + * Based on r8a7796-cpg-mssr.c + * + * Copyright (C) 2016 Glider bvba + */ + +#include <linux/device.h> +#include <linux/init.h> +#include <linux/kernel.h> +#include <linux/soc/renesas/rcar-rst.h> + +#include <dt-bindings/clock/r8a774a1-cpg-mssr.h> + +#include "renesas-cpg-mssr.h" +#include "rcar-gen3-cpg.h" + +enum clk_ids { + /* Core Clock Outputs exported to DT */ + LAST_DT_CORE_CLK = R8A774A1_CLK_OSC, + + /* External Input Clocks */ + CLK_EXTAL, + CLK_EXTALR, + + /* Internal Core Clocks */ + CLK_MAIN, + CLK_PLL0, + CLK_PLL1, + CLK_PLL2, + CLK_PLL3, + CLK_PLL4, + CLK_PLL1_DIV2, + CLK_PLL1_DIV4, + CLK_S0, + CLK_S1, + CLK_S2, + CLK_S3, + CLK_SDSRC, + CLK_RINT, + + /* Module Clocks */ + MOD_CLK_BASE +}; + +static const struct cpg_core_clk r8a774a1_core_clks[] __initconst = { + /* External Clock Inputs */ + DEF_INPUT("extal", CLK_EXTAL), + DEF_INPUT("extalr", CLK_EXTALR), + + /* Internal Core Clocks */ + DEF_BASE(".main", CLK_MAIN, CLK_TYPE_GEN3_MAIN, CLK_EXTAL), + DEF_BASE(".pll0", CLK_PLL0, CLK_TYPE_GEN3_PLL0, CLK_MAIN), + DEF_BASE(".pll1", CLK_PLL1, CLK_TYPE_GEN3_PLL1, CLK_MAIN), + DEF_BASE(".pll2", CLK_PLL2, CLK_TYPE_GEN3_PLL2, CLK_MAIN), + DEF_BASE(".pll3", CLK_PLL3, CLK_TYPE_GEN3_PLL3, CLK_MAIN), + DEF_BASE(".pll4", CLK_PLL4, CLK_TYPE_GEN3_PLL4, CLK_MAIN), + + DEF_FIXED(".pll1_div2", CLK_PLL1_DIV2, CLK_PLL1, 2, 1), + DEF_FIXED(".pll1_div4", CLK_PLL1_DIV4, CLK_PLL1_DIV2, 2, 1), + DEF_FIXED(".s0", CLK_S0, CLK_PLL1_DIV2, 2, 1), + DEF_FIXED(".s1", CLK_S1, CLK_PLL1_DIV2, 3, 1), + DEF_FIXED(".s2", CLK_S2, CLK_PLL1_DIV2, 4, 1), + DEF_FIXED(".s3", CLK_S3, CLK_PLL1_DIV2, 6, 1), + DEF_FIXED(".sdsrc", CLK_SDSRC, CLK_PLL1_DIV2, 2, 1), + + /* Core Clock Outputs */ + DEF_BASE("z", R8A774A1_CLK_Z, CLK_TYPE_GEN3_Z, CLK_PLL0), + DEF_BASE("z2", R8A774A1_CLK_Z2, CLK_TYPE_GEN3_Z2, CLK_PLL2), + DEF_FIXED("ztr", R8A774A1_CLK_ZTR, CLK_PLL1_DIV2, 6, 1), + DEF_FIXED("ztrd2", R8A774A1_CLK_ZTRD2, CLK_PLL1_DIV2, 12, 1), + DEF_FIXED("zt", R8A774A1_CLK_ZT, CLK_PLL1_DIV2, 4, 1), + DEF_FIXED("zx", R8A774A1_CLK_ZX, CLK_PLL1_DIV2, 2, 1), + DEF_FIXED("s0d1", R8A774A1_CLK_S0D1, CLK_S0, 1, 1), + DEF_FIXED("s0d2", R8A774A1_CLK_S0D2, CLK_S0, 2, 1), + DEF_FIXED("s0d3", R8A774A1_CLK_S0D3, CLK_S0, 3, 1), + DEF_FIXED("s0d4", R8A774A1_CLK_S0D4, CLK_S0, 4, 1), + DEF_FIXED("s0d6", R8A774A1_CLK_S0D6, CLK_S0, 6, 1), + DEF_FIXED("s0d8", R8A774A1_CLK_S0D8, CLK_S0, 8, 1), + DEF_FIXED("s0d12", R8A774A1_CLK_S0D12, CLK_S0, 12, 1), + DEF_FIXED("s1d2", R8A774A1_CLK_S1D2, CLK_S1, 2, 1), + DEF_FIXED("s1d4", R8A774A1_CLK_S1D4, CLK_S1, 4, 1), + DEF_FIXED("s2d1", R8A774A1_CLK_S2D1, CLK_S2, 1, 1), + DEF_FIXED("s2d2", R8A774A1_CLK_S2D2, CLK_S2, 2, 1), + DEF_FIXED("s2d4", R8A774A1_CLK_S2D4, CLK_S2, 4, 1), + DEF_FIXED("s3d1", R8A774A1_CLK_S3D1, CLK_S3, 1, 1), + DEF_FIXED("s3d2", R8A774A1_CLK_S3D2, CLK_S3, 2, 1), + DEF_FIXED("s3d4", R8A774A1_CLK_S3D4, CLK_S3, 4, 1), + + DEF_GEN3_SD("sd0", R8A774A1_CLK_SD0, CLK_SDSRC, 0x074), + DEF_GEN3_SD("sd1", R8A774A1_CLK_SD1, CLK_SDSRC, 0x078), + DEF_GEN3_SD("sd2", R8A774A1_CLK_SD2, CLK_SDSRC, 0x268), + DEF_GEN3_SD("sd3", R8A774A1_CLK_SD3, CLK_SDSRC, 0x26c), + + DEF_FIXED("cl", R8A774A1_CLK_CL, CLK_PLL1_DIV2, 48, 1), + DEF_FIXED("cp", R8A774A1_CLK_CP, CLK_EXTAL, 2, 1), + + DEF_DIV6P1("csi0", R8A774A1_CLK_CSI0, CLK_PLL1_DIV4, 0x00c), + DEF_DIV6P1("mso", R8A774A1_CLK_MSO, CLK_PLL1_DIV4, 0x014), + DEF_DIV6P1("hdmi", R8A774A1_CLK_HDMI, CLK_PLL1_DIV4, 0x250), + + DEF_DIV6_RO("osc", R8A774A1_CLK_OSC, CLK_EXTAL, CPG_RCKCR, 8), + DEF_DIV6_RO("r_int", CLK_RINT, CLK_EXTAL, CPG_RCKCR, 32), + + DEF_BASE("r", R8A774A1_CLK_R, CLK_TYPE_GEN3_R, CLK_RINT), +}; + +static const struct mssr_mod_clk r8a774a1_mod_clks[] __initconst = { + DEF_MOD("fdp1-0", 119, R8A774A1_CLK_S0D1), + DEF_MOD("scif5", 202, R8A774A1_CLK_S3D4), + DEF_MOD("scif4", 203, R8A774A1_CLK_S3D4), + DEF_MOD("scif3", 204, R8A774A1_CLK_S3D4), + DEF_MOD("scif1", 206, R8A774A1_CLK_S3D4), + DEF_MOD("scif0", 207, R8A774A1_CLK_S3D4), + DEF_MOD("msiof3", 208, R8A774A1_CLK_MSO), + DEF_MOD("msiof2", 209, R8A774A1_CLK_MSO), + DEF_MOD("msiof1", 210, R8A774A1_CLK_MSO), + DEF_MOD("msiof0", 211, R8A774A1_CLK_MSO), + DEF_MOD("sys-dmac2", 217, R8A774A1_CLK_S0D3), + DEF_MOD("sys-dmac1", 218, R8A774A1_CLK_S0D3), + DEF_MOD("sys-dmac0", 219, R8A774A1_CLK_S0D3), + DEF_MOD("cmt3", 300, R8A774A1_CLK_R), + DEF_MOD("cmt2", 301, R8A774A1_CLK_R), + DEF_MOD("cmt1", 302, R8A774A1_CLK_R), + DEF_MOD("cmt0", 303, R8A774A1_CLK_R), + DEF_MOD("scif2", 310, R8A774A1_CLK_S3D4), + DEF_MOD("sdif3", 311, R8A774A1_CLK_SD3), + DEF_MOD("sdif2", 312, R8A774A1_CLK_SD2), + DEF_MOD("sdif1", 313, R8A774A1_CLK_SD1), + DEF_MOD("sdif0", 314, R8A774A1_CLK_SD0), + DEF_MOD("pcie1", 318, R8A774A1_CLK_S3D1), + DEF_MOD("pcie0", 319, R8A774A1_CLK_S3D1), + DEF_MOD("usb3-if0", 328, R8A774A1_CLK_S3D1), + DEF_MOD("usb-dmac0", 330, R8A774A1_CLK_S3D1), + DEF_MOD("usb-dmac1", 331, R8A774A1_CLK_S3D1), + DEF_MOD("rwdt", 402, R8A774A1_CLK_R), + DEF_MOD("intc-ex", 407, R8A774A1_CLK_CP), + DEF_MOD("intc-ap", 408, R8A774A1_CLK_S0D3), + DEF_MOD("audmac1", 501, R8A774A1_CLK_S0D3), + DEF_MOD("audmac0", 502, R8A774A1_CLK_S0D3), + DEF_MOD("hscif4", 516, R8A774A1_CLK_S3D1), + DEF_MOD("hscif3", 517, R8A774A1_CLK_S3D1), + DEF_MOD("hscif2", 518, R8A774A1_CLK_S3D1), + DEF_MOD("hscif1", 519, R8A774A1_CLK_S3D1), + DEF_MOD("hscif0", 520, R8A774A1_CLK_S3D1), + DEF_MOD("thermal", 522, R8A774A1_CLK_CP), + DEF_MOD("pwm", 523, R8A774A1_CLK_S0D12), + DEF_MOD("fcpvd2", 601, R8A774A1_CLK_S0D2), + DEF_MOD("fcpvd1", 602, R8A774A1_CLK_S0D2), + DEF_MOD("fcpvd0", 603, R8A774A1_CLK_S0D2), + DEF_MOD("fcpvb0", 607, R8A774A1_CLK_S0D1), + DEF_MOD("fcpvi0", 611, R8A774A1_CLK_S0D1), + DEF_MOD("fcpf0", 615, R8A774A1_CLK_S0D1), + DEF_MOD("fcpci0", 617, R8A774A1_CLK_S0D2), + DEF_MOD("fcpcs", 619, R8A774A1_CLK_S0D2), + DEF_MOD("vspd2", 621, R8A774A1_CLK_S0D2), + DEF_MOD("vspd1", 622, R8A774A1_CLK_S0D2), + DEF_MOD("vspd0", 623, R8A774A1_CLK_S0D2), + DEF_MOD("vspb", 626, R8A774A1_CLK_S0D1), + DEF_MOD("vspi0", 631, R8A774A1_CLK_S0D1), + DEF_MOD("ehci1", 702, R8A774A1_CLK_S3D4), + DEF_MOD("ehci0", 703, R8A774A1_CLK_S3D4), + DEF_MOD("hsusb", 704, R8A774A1_CLK_S3D4), + DEF_MOD("csi20", 714, R8A774A1_CLK_CSI0), + DEF_MOD("csi40", 716, R8A774A1_CLK_CSI0), + DEF_MOD("du2", 722, R8A774A1_CLK_S2D1), + DEF_MOD("du1", 723, R8A774A1_CLK_S2D1), + DEF_MOD("du0", 724, R8A774A1_CLK_S2D1), + DEF_MOD("lvds", 727, R8A774A1_CLK_S2D1), + DEF_MOD("hdmi0", 729, R8A774A1_CLK_HDMI), + DEF_MOD("vin7", 804, R8A774A1_CLK_S0D2), + DEF_MOD("vin6", 805, R8A774A1_CLK_S0D2), + DEF_MOD("vin5", 806, R8A774A1_CLK_S0D2), + DEF_MOD("vin4", 807, R8A774A1_CLK_S0D2), + DEF_MOD("vin3", 808, R8A774A1_CLK_S0D2), + DEF_MOD("vin2", 809, R8A774A1_CLK_S0D2), + DEF_MOD("vin1", 810, R8A774A1_CLK_S0D2), + DEF_MOD("vin0", 811, R8A774A1_CLK_S0D2), + DEF_MOD("etheravb", 812, R8A774A1_CLK_S0D6), + DEF_MOD("gpio7", 905, R8A774A1_CLK_S3D4), + DEF_MOD("gpio6", 906, R8A774A1_CLK_S3D4), + DEF_MOD("gpio5", 907, R8A774A1_CLK_S3D4), + DEF_MOD("gpio4", 908, R8A774A1_CLK_S3D4), + DEF_MOD("gpio3", 909, R8A774A1_CLK_S3D4), + DEF_MOD("gpio2", 910, R8A774A1_CLK_S3D4), + DEF_MOD("gpio1", 911, R8A774A1_CLK_S3D4), + DEF_MOD("gpio0", 912, R8A774A1_CLK_S3D4), + DEF_MOD("can-if1", 915, R8A774A1_CLK_S3D4), + DEF_MOD("can-if0", 916, R8A774A1_CLK_S3D4), + DEF_MOD("i2c6", 918, R8A774A1_CLK_S0D6), + DEF_MOD("i2c5", 919, R8A774A1_CLK_S0D6), + DEF_MOD("i2c-dvfs", 926, R8A774A1_CLK_CP), + DEF_MOD("i2c4", 927, R8A774A1_CLK_S0D6), + DEF_MOD("i2c3", 928, R8A774A1_CLK_S0D6), + DEF_MOD("i2c2", 929, R8A774A1_CLK_S3D2), + DEF_MOD("i2c1", 930, R8A774A1_CLK_S3D2), + DEF_MOD("i2c0", 931, R8A774A1_CLK_S3D2), + DEF_MOD("ssi-all", 1005, R8A774A1_CLK_S3D4), + DEF_MOD("ssi9", 1006, MOD_CLK_ID(1005)), + DEF_MOD("ssi8", 1007, MOD_CLK_ID(1005)), + DEF_MOD("ssi7", 1008, MOD_CLK_ID(1005)), + DEF_MOD("ssi6", 1009, MOD_CLK_ID(1005)), + DEF_MOD("ssi5", 1010, MOD_CLK_ID(1005)), + DEF_MOD("ssi4", 1011, MOD_CLK_ID(1005)), + DEF_MOD("ssi3", 1012, MOD_CLK_ID(1005)), + DEF_MOD("ssi2", 1013, MOD_CLK_ID(1005)), + DEF_MOD("ssi1", 1014, MOD_CLK_ID(1005)), + DEF_MOD("ssi0", 1015, MOD_CLK_ID(1005)), + DEF_MOD("scu-all", 1017, R8A774A1_CLK_S3D4), + DEF_MOD("scu-dvc1", 1018, MOD_CLK_ID(1017)), + DEF_MOD("scu-dvc0", 1019, MOD_CLK_ID(1017)), + DEF_MOD("scu-ctu1-mix1", 1020, MOD_CLK_ID(1017)), + DEF_MOD("scu-ctu0-mix0", 1021, MOD_CLK_ID(1017)), + DEF_MOD("scu-src9", 1022, MOD_CLK_ID(1017)), + DEF_MOD("scu-src8", 1023, MOD_CLK_ID(1017)), + DEF_MOD("scu-src7", 1024, MOD_CLK_ID(1017)), + DEF_MOD("scu-src6", 1025, MOD_CLK_ID(1017)), + DEF_MOD("scu-src5", 1026, MOD_CLK_ID(1017)), + DEF_MOD("scu-src4", 1027, MOD_CLK_ID(1017)), + DEF_MOD("scu-src3", 1028, MOD_CLK_ID(1017)), + DEF_MOD("scu-src2", 1029, MOD_CLK_ID(1017)), + DEF_MOD("scu-src1", 1030, MOD_CLK_ID(1017)), + DEF_MOD("scu-src0", 1031, MOD_CLK_ID(1017)), +}; + +static const unsigned int r8a774a1_crit_mod_clks[] __initconst = { + MOD_CLK_ID(408), /* INTC-AP (GIC) */ +}; + +/* + * CPG Clock Data + */ + +/* + * MD EXTAL PLL0 PLL1 PLL2 PLL3 PLL4 + * 14 13 19 17 (MHz) + *------------------------------------------------------------------- + * 0 0 0 0 16.66 x 1 x180 x192 x144 x192 x144 + * 0 0 0 1 16.66 x 1 x180 x192 x144 x128 x144 + * 0 0 1 0 Prohibited setting + * 0 0 1 1 16.66 x 1 x180 x192 x144 x192 x144 + * 0 1 0 0 20 x 1 x150 x160 x120 x160 x120 + * 0 1 0 1 20 x 1 x150 x160 x120 x106 x120 + * 0 1 1 0 Prohibited setting + * 0 1 1 1 20 x 1 x150 x160 x120 x160 x120 + * 1 0 0 0 25 x 1 x120 x128 x96 x128 x96 + * 1 0 0 1 25 x 1 x120 x128 x96 x84 x96 + * 1 0 1 0 Prohibited setting + * 1 0 1 1 25 x 1 x120 x128 x96 x128 x96 + * 1 1 0 0 33.33 / 2 x180 x192 x144 x192 x144 + * 1 1 0 1 33.33 / 2 x180 x192 x144 x128 x144 + * 1 1 1 0 Prohibited setting + * 1 1 1 1 33.33 / 2 x180 x192 x144 x192 x144 + */ +#define CPG_PLL_CONFIG_INDEX(md) ((((md) & BIT(14)) >> 11) | \ + (((md) & BIT(13)) >> 11) | \ + (((md) & BIT(19)) >> 18) | \ + (((md) & BIT(17)) >> 17)) + +static const struct rcar_gen3_cpg_pll_config cpg_pll_configs[16] __initconst = { + /* EXTAL div PLL1 mult/div PLL3 mult/div */ + { 1, 192, 1, 192, 1, }, + { 1, 192, 1, 128, 1, }, + { 0, /* Prohibited setting */ }, + { 1, 192, 1, 192, 1, }, + { 1, 160, 1, 160, 1, }, + { 1, 160, 1, 106, 1, }, + { 0, /* Prohibited setting */ }, + { 1, 160, 1, 160, 1, }, + { 1, 128, 1, 128, 1, }, + { 1, 128, 1, 84, 1, }, + { 0, /* Prohibited setting */ }, + { 1, 128, 1, 128, 1, }, + { 2, 192, 1, 192, 1, }, + { 2, 192, 1, 128, 1, }, + { 0, /* Prohibited setting */ }, + { 2, 192, 1, 192, 1, }, +}; + +static int __init r8a774a1_cpg_mssr_init(struct device *dev) +{ + const struct rcar_gen3_cpg_pll_config *cpg_pll_config; + u32 cpg_mode; + int error; + + error = rcar_rst_read_mode_pins(&cpg_mode); + if (error) + return error; + + cpg_pll_config = &cpg_pll_configs[CPG_PLL_CONFIG_INDEX(cpg_mode)]; + if (!cpg_pll_config->extal_div) { + dev_err(dev, "Prohibited setting (cpg_mode=0x%x)\n", cpg_mode); + return -EINVAL; + } + + return rcar_gen3_cpg_init(cpg_pll_config, CLK_EXTALR, cpg_mode); +} + +const struct cpg_mssr_info r8a774a1_cpg_mssr_info __initconst = { + /* Core Clocks */ + .core_clks = r8a774a1_core_clks, + .num_core_clks = ARRAY_SIZE(r8a774a1_core_clks), + .last_dt_core_clk = LAST_DT_CORE_CLK, + .num_total_core_clks = MOD_CLK_BASE, + + /* Module Clocks */ + .mod_clks = r8a774a1_mod_clks, + .num_mod_clks = ARRAY_SIZE(r8a774a1_mod_clks), + .num_hw_mod_clks = 12 * 32, + + /* Critical Module Clocks */ + .crit_mod_clks = r8a774a1_crit_mod_clks, + .num_crit_mod_clks = ARRAY_SIZE(r8a774a1_crit_mod_clks), + + /* Callbacks */ + .init = r8a774a1_cpg_mssr_init, + .cpg_clk_register = rcar_gen3_cpg_clk_register, +}; diff --git a/drivers/clk/renesas/renesas-cpg-mssr.c b/drivers/clk/renesas/renesas-cpg-mssr.c index f4b013e..0e4938a 100644 --- a/drivers/clk/renesas/renesas-cpg-mssr.c +++ b/drivers/clk/renesas/renesas-cpg-mssr.c @@ -659,6 +659,12 @@ static const struct of_device_id cpg_mssr_match[] = { .data = &r8a77470_cpg_mssr_info, }, #endif +#ifdef CONFIG_CLK_R8A774A1 + { + .compatible = "renesas,r8a774a1-cpg-mssr", + .data = &r8a774a1_cpg_mssr_info, + }, +#endif #ifdef CONFIG_CLK_R8A7790 { .compatible = "renesas,r8a7790-cpg-mssr", diff --git a/drivers/clk/renesas/renesas-cpg-mssr.h b/drivers/clk/renesas/renesas-cpg-mssr.h index 642f720..14e5a19 100644 --- a/drivers/clk/renesas/renesas-cpg-mssr.h +++ b/drivers/clk/renesas/renesas-cpg-mssr.h @@ -134,6 +134,7 @@ struct cpg_mssr_info { extern const struct cpg_mssr_info r8a7743_cpg_mssr_info; extern const struct cpg_mssr_info r8a7745_cpg_mssr_info; extern const struct cpg_mssr_info r8a77470_cpg_mssr_info; +extern const struct cpg_mssr_info r8a774a1_cpg_mssr_info; extern const struct cpg_mssr_info r8a7790_cpg_mssr_info; extern const struct cpg_mssr_info r8a7791_cpg_mssr_info; extern const struct cpg_mssr_info r8a7792_cpg_mssr_info; -- 2.7.4 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH 5/5] clk: renesas: cpg-mssr: Add r8a774a1 support 2018-07-30 7:48 ` [PATCH 5/5] clk: renesas: cpg-mssr: Add r8a774a1 support Biju Das @ 2018-08-01 9:26 ` Geert Uytterhoeven 2018-08-01 9:31 ` Biju Das 0 siblings, 1 reply; 15+ messages in thread From: Geert Uytterhoeven @ 2018-08-01 9:26 UTC (permalink / raw) To: Biju Das Cc: Michael Turquette, Stephen Boyd, Rob Herring, Mark Rutland, Geert Uytterhoeven, linux-clk, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Linux-Renesas, Simon Horman, Chris Paterson, Fabrizio Castro Hi Biju, On Mon, Jul 30, 2018 at 9:54 AM Biju Das <biju.das@bp.renesas.com> wrote: > Add RZ/G2M (R8A774A1) Clock Pulse Generator / Module Standby and Software > Reset support. > > Based on the Table 8.2b of "RZ/G Series, 2nd Generation User's Manual: > Hardware ((Rev. 0.61, June 12, 2018)". > > Signed-off-by: Biju Das <biju.das@bp.renesas.com> > Reviewed-by: Fabrizio Castro <fabrizio.castro@bp.renesas.com> Thanks for your patch! > --- /dev/null > +++ b/drivers/clk/renesas/r8a774a1-cpg-mssr.c > +static const struct cpg_core_clk r8a774a1_core_clks[] __initconst = { > + DEF_DIV6_RO("osc", R8A774A1_CLK_OSC, CLK_EXTAL, CPG_RCKCR, 8), > + DEF_DIV6_RO("r_int", CLK_RINT, CLK_EXTAL, CPG_RCKCR, 32), RZ/G2M does not have the CPG_RCKCR register. The internal R CLK is an internal clock, hence please name it ".r". Please have a look at "clk: renesas: rcar-gen3: OSC and RCLK improvements" (https://patchwork.kernel.org/project/linux-renesas-soc/list/?series=2063) > +/* > + * CPG Clock Data > + */ > + > +/* > + * MD EXTAL PLL0 PLL1 PLL2 PLL3 PLL4 > + * 14 13 19 17 (MHz) > + *------------------------------------------------------------------- > + * 0 0 0 0 16.66 x 1 x180 x192 x144 x192 x144 > + * 0 0 0 1 16.66 x 1 x180 x192 x144 x128 x144 > + * 0 0 1 0 Prohibited setting > + * 0 0 1 1 16.66 x 1 x180 x192 x144 x192 x144 > + * 0 1 0 0 20 x 1 x150 x160 x120 x160 x120 > + * 0 1 0 1 20 x 1 x150 x160 x120 x106 x120 > + * 0 1 1 0 Prohibited setting > + * 0 1 1 1 20 x 1 x150 x160 x120 x160 x120 > + * 1 0 0 0 25 x 1 x120 x128 x96 x128 x96 > + * 1 0 0 1 25 x 1 x120 x128 x96 x84 x96 > + * 1 0 1 0 Prohibited setting > + * 1 0 1 1 25 x 1 x120 x128 x96 x128 x96 > + * 1 1 0 0 33.33 / 2 x180 x192 x144 x192 x144 > + * 1 1 0 1 33.33 / 2 x180 x192 x144 x128 x144 > + * 1 1 1 0 Prohibited setting > + * 1 1 1 1 33.33 / 2 x180 x192 x144 x192 x144 > + */ > +#define CPG_PLL_CONFIG_INDEX(md) ((((md) & BIT(14)) >> 11) | \ > + (((md) & BIT(13)) >> 11) | \ > + (((md) & BIT(19)) >> 18) | \ > + (((md) & BIT(17)) >> 17)) > + > +static const struct rcar_gen3_cpg_pll_config cpg_pll_configs[16] __initconst = { > + /* EXTAL div PLL1 mult/div PLL3 mult/div */ > + { 1, 192, 1, 192, 1, }, > + { 1, 192, 1, 128, 1, }, > + { 0, /* Prohibited setting */ }, > + { 1, 192, 1, 192, 1, }, > + { 1, 160, 1, 160, 1, }, > + { 1, 160, 1, 106, 1, }, > + { 0, /* Prohibited setting */ }, > + { 1, 160, 1, 160, 1, }, > + { 1, 128, 1, 128, 1, }, > + { 1, 128, 1, 84, 1, }, > + { 0, /* Prohibited setting */ }, > + { 1, 128, 1, 128, 1, }, > + { 2, 192, 1, 192, 1, }, > + { 2, 192, 1, 128, 1, }, > + { 0, /* Prohibited setting */ }, > + { 2, 192, 1, 192, 1, }, > +}; Please add the new OSC predividers. You're gonna need them for the corrected OSC clock. 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] 15+ messages in thread
* RE: [PATCH 5/5] clk: renesas: cpg-mssr: Add r8a774a1 support 2018-08-01 9:26 ` Geert Uytterhoeven 2018-08-01 9:31 ` Biju Das @ 2018-08-01 9:31 ` Biju Das 0 siblings, 0 replies; 15+ messages in thread From: Biju Das @ 2018-08-01 9:31 UTC (permalink / raw) To: Geert Uytterhoeven Cc: Michael Turquette, Stephen Boyd, Rob Herring, Mark Rutland, Geert Uytterhoeven, linux-clk, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS <devicetree@vger.kernel.org>, Linux-Renesas, Simon Horman, Chris Paterson, Fabrizio Castro Hi Geert, Thanks for the feedback. > Subject: Re: [PATCH 5/5] clk: renesas: cpg-mssr: Add r8a774a1 support > > Hi Biju, > > On Mon, Jul 30, 2018 at 9:54 AM Biju Das <biju.das@bp.renesas.com> wrote: > > Add RZ/G2M (R8A774A1) Clock Pulse Generator / Module Standby and > > Software Reset support. > > > > Based on the Table 8.2b of "RZ/G Series, 2nd Generation User's Manual: > > Hardware ((Rev. 0.61, June 12, 2018)". > > > > Signed-off-by: Biju Das <biju.das@bp.renesas.com> > > Reviewed-by: Fabrizio Castro <fabrizio.castro@bp.renesas.com> > > Thanks for your patch! > > > --- /dev/null > > +++ b/drivers/clk/renesas/r8a774a1-cpg-mssr.c > > > +static const struct cpg_core_clk r8a774a1_core_clks[] __initconst = { > > > + DEF_DIV6_RO("osc", R8A774A1_CLK_OSC, CLK_EXTAL, > CPG_RCKCR, 8), > > + DEF_DIV6_RO("r_int", CLK_RINT, CLK_EXTAL, CPG_RCKCR, 32), > > RZ/G2M does not have the CPG_RCKCR register. > The internal R CLK is an internal clock, hence please name it ".r". > > Please have a look at "clk: renesas: rcar-gen3: OSC and RCLK improvements" > (https://patchwork.kernel.org/project/linux-renesas-soc/list/?series=2063) Will send V2 incorporating this changes. > > +/* > > + * CPG Clock Data > > + */ > > + > > +/* > > + * MD EXTAL PLL0 PLL1 PLL2 PLL3 PLL4 > > + * 14 13 19 17 (MHz) > > + *------------------------------------------------------------------- > > + * 0 0 0 0 16.66 x 1 x180 x192 x144 x192 x144 > > + * 0 0 0 1 16.66 x 1 x180 x192 x144 x128 x144 > > + * 0 0 1 0 Prohibited setting > > + * 0 0 1 1 16.66 x 1 x180 x192 x144 x192 x144 > > + * 0 1 0 0 20 x 1 x150 x160 x120 x160 x120 > > + * 0 1 0 1 20 x 1 x150 x160 x120 x106 x120 > > + * 0 1 1 0 Prohibited setting > > + * 0 1 1 1 20 x 1 x150 x160 x120 x160 x120 > > + * 1 0 0 0 25 x 1 x120 x128 x96 x128 x96 > > + * 1 0 0 1 25 x 1 x120 x128 x96 x84 x96 > > + * 1 0 1 0 Prohibited setting > > + * 1 0 1 1 25 x 1 x120 x128 x96 x128 x96 > > + * 1 1 0 0 33.33 / 2 x180 x192 x144 x192 x144 > > + * 1 1 0 1 33.33 / 2 x180 x192 x144 x128 x144 > > + * 1 1 1 0 Prohibited setting > > + * 1 1 1 1 33.33 / 2 x180 x192 x144 x192 x144 > > + */ > > +#define CPG_PLL_CONFIG_INDEX(md) ((((md) & BIT(14)) >> 11) | \ > > + (((md) & BIT(13)) >> 11) | \ > > + (((md) & BIT(19)) >> 18) | \ > > + (((md) & BIT(17)) >> 17)) > > + > > +static const struct rcar_gen3_cpg_pll_config cpg_pll_configs[16] > __initconst = { > > + /* EXTAL div PLL1 mult/div PLL3 mult/div */ > > + { 1, 192, 1, 192, 1, }, > > + { 1, 192, 1, 128, 1, }, > > + { 0, /* Prohibited setting */ }, > > + { 1, 192, 1, 192, 1, }, > > + { 1, 160, 1, 160, 1, }, > > + { 1, 160, 1, 106, 1, }, > > + { 0, /* Prohibited setting */ }, > > + { 1, 160, 1, 160, 1, }, > > + { 1, 128, 1, 128, 1, }, > > + { 1, 128, 1, 84, 1, }, > > + { 0, /* Prohibited setting */ }, > > + { 1, 128, 1, 128, 1, }, > > + { 2, 192, 1, 192, 1, }, > > + { 2, 192, 1, 128, 1, }, > > + { 0, /* Prohibited setting */ }, > > + { 2, 192, 1, 192, 1, }, > > +}; > > Please add the new OSC predividers. You're gonna need them for the > corrected OSC clock. Will send V2 incorporating this changes. Renesas Electronics Europe Ltd, Dukes Meadow, Millboard Road, Bourne End, Buckinghamshire, SL8 5FH, UK. Registered in England & Wales under Registered No. 04586709. ^ permalink raw reply [flat|nested] 15+ messages in thread
* RE: [PATCH 5/5] clk: renesas: cpg-mssr: Add r8a774a1 support @ 2018-08-01 9:31 ` Biju Das 0 siblings, 0 replies; 15+ messages in thread From: Biju Das @ 2018-08-01 9:31 UTC (permalink / raw) To: Geert Uytterhoeven Cc: Michael Turquette, Stephen Boyd, Rob Herring, Mark Rutland, Geert Uytterhoeven, linux-clk, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Linux-Renesas, Simon Horman, Chris Paterson, Fabrizio Castro SGkgR2VlcnQsDQoNClRoYW5rcyBmb3IgdGhlIGZlZWRiYWNrLg0KDQo+IFN1YmplY3Q6IFJlOiBb UEFUQ0ggNS81XSBjbGs6IHJlbmVzYXM6IGNwZy1tc3NyOiBBZGQgcjhhNzc0YTEgc3VwcG9ydA0K Pg0KPiBIaSBCaWp1LA0KPg0KPiBPbiBNb24sIEp1bCAzMCwgMjAxOCBhdCA5OjU0IEFNIEJpanUg RGFzIDxiaWp1LmRhc0BicC5yZW5lc2FzLmNvbT4gd3JvdGU6DQo+ID4gQWRkIFJaL0cyTSAoUjhB Nzc0QTEpIENsb2NrIFB1bHNlIEdlbmVyYXRvciAvIE1vZHVsZSBTdGFuZGJ5IGFuZA0KPiA+IFNv ZnR3YXJlIFJlc2V0IHN1cHBvcnQuDQo+ID4NCj4gPiBCYXNlZCBvbiB0aGUgVGFibGUgOC4yYiBv ZiAiUlovRyBTZXJpZXMsIDJuZCBHZW5lcmF0aW9uIFVzZXIncyBNYW51YWw6DQo+ID4gSGFyZHdh cmUgKChSZXYuIDAuNjEsIEp1bmUgMTIsIDIwMTgpIi4NCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6 IEJpanUgRGFzIDxiaWp1LmRhc0BicC5yZW5lc2FzLmNvbT4NCj4gPiBSZXZpZXdlZC1ieTogRmFi cml6aW8gQ2FzdHJvIDxmYWJyaXppby5jYXN0cm9AYnAucmVuZXNhcy5jb20+DQo+DQo+IFRoYW5r cyBmb3IgeW91ciBwYXRjaCENCj4NCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvZHJpdmVy cy9jbGsvcmVuZXNhcy9yOGE3NzRhMS1jcGctbXNzci5jDQo+DQo+ID4gK3N0YXRpYyBjb25zdCBz dHJ1Y3QgY3BnX2NvcmVfY2xrIHI4YTc3NGExX2NvcmVfY2xrc1tdIF9faW5pdGNvbnN0ID0gew0K Pg0KPiA+ICsgICAgICAgREVGX0RJVjZfUk8oIm9zYyIsICAgICAgUjhBNzc0QTFfQ0xLX09TQywg ICBDTEtfRVhUQUwsDQo+IENQR19SQ0tDUiwgIDgpLA0KPiA+ICsgICAgICAgREVGX0RJVjZfUk8o InJfaW50IiwgICAgQ0xLX1JJTlQsICAgICAgICAgIENMS19FWFRBTCwgQ1BHX1JDS0NSLCAzMiks DQo+DQo+IFJaL0cyTSBkb2VzIG5vdCBoYXZlIHRoZSBDUEdfUkNLQ1IgcmVnaXN0ZXIuDQo+IFRo ZSBpbnRlcm5hbCBSIENMSyBpcyBhbiBpbnRlcm5hbCBjbG9jaywgaGVuY2UgcGxlYXNlIG5hbWUg aXQgIi5yIi4NCj4NCj4gUGxlYXNlIGhhdmUgYSBsb29rIGF0ICJjbGs6IHJlbmVzYXM6IHJjYXIt Z2VuMzogT1NDIGFuZCBSQ0xLIGltcHJvdmVtZW50cyINCj4gKGh0dHBzOi8vcGF0Y2h3b3JrLmtl cm5lbC5vcmcvcHJvamVjdC9saW51eC1yZW5lc2FzLXNvYy9saXN0Lz9zZXJpZXM9MjA2MykNCg0K V2lsbCBzZW5kIFYyIGluY29ycG9yYXRpbmcgdGhpcyBjaGFuZ2VzLg0KDQo+ID4gKy8qDQo+ID4g KyAqIENQRyBDbG9jayBEYXRhDQo+ID4gKyAqLw0KPiA+ICsNCj4gPiArLyoNCj4gPiArICogICBN RCAgICAgICAgICAgICAgICBFWFRBTCAgICAgICAgICAgUExMMCAgICBQTEwxICAgIFBMTDIgICAg UExMMyAgICBQTEw0DQo+ID4gKyAqIDE0IDEzIDE5IDE3IChNSHopDQo+ID4gKyAqLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiA+ICsgKiAwICAwICAwICAwICAxNi42NiB4IDEgICAgICAgeDE4MCAgICB4MTkyICAgIHgx NDQgICAgeDE5MiAgICB4MTQ0DQo+ID4gKyAqIDAgIDAgIDAgIDEgIDE2LjY2IHggMSAgICAgICB4 MTgwICAgIHgxOTIgICAgeDE0NCAgICB4MTI4ICAgIHgxNDQNCj4gPiArICogMCAgMCAgMSAgMCAg UHJvaGliaXRlZCBzZXR0aW5nDQo+ID4gKyAqIDAgIDAgIDEgIDEgIDE2LjY2IHggMSAgICAgICB4 MTgwICAgIHgxOTIgICAgeDE0NCAgICB4MTkyICAgIHgxNDQNCj4gPiArICogMCAgMSAgMCAgMCAg MjAgICAgeCAxICAgICAgIHgxNTAgICAgeDE2MCAgICB4MTIwICAgIHgxNjAgICAgeDEyMA0KPiA+ ICsgKiAwICAxICAwICAxICAyMCAgICB4IDEgICAgICAgeDE1MCAgICB4MTYwICAgIHgxMjAgICAg eDEwNiAgICB4MTIwDQo+ID4gKyAqIDAgIDEgIDEgIDAgIFByb2hpYml0ZWQgc2V0dGluZw0KPiA+ ICsgKiAwICAxICAxICAxICAyMCAgICB4IDEgICAgICAgeDE1MCAgICB4MTYwICAgIHgxMjAgICAg eDE2MCAgICB4MTIwDQo+ID4gKyAqIDEgIDAgIDAgIDAgIDI1ICAgIHggMSAgICAgICB4MTIwICAg IHgxMjggICAgeDk2ICAgICB4MTI4ICAgIHg5Ng0KPiA+ICsgKiAxICAwICAwICAxICAyNSAgICB4 IDEgICAgICAgeDEyMCAgICB4MTI4ICAgIHg5NiAgICAgeDg0ICAgICB4OTYNCj4gPiArICogMSAg MCAgMSAgMCAgUHJvaGliaXRlZCBzZXR0aW5nDQo+ID4gKyAqIDEgIDAgIDEgIDEgIDI1ICAgIHgg MSAgICAgICB4MTIwICAgIHgxMjggICAgeDk2ICAgICB4MTI4ICAgIHg5Ng0KPiA+ICsgKiAxICAx ICAwICAwICAzMy4zMyAvIDIgICAgICAgeDE4MCAgICB4MTkyICAgIHgxNDQgICAgeDE5MiAgICB4 MTQ0DQo+ID4gKyAqIDEgIDEgIDAgIDEgIDMzLjMzIC8gMiAgICAgICB4MTgwICAgIHgxOTIgICAg eDE0NCAgICB4MTI4ICAgIHgxNDQNCj4gPiArICogMSAgMSAgMSAgMCAgUHJvaGliaXRlZCBzZXR0 aW5nDQo+ID4gKyAqIDEgIDEgIDEgIDEgIDMzLjMzIC8gMiAgICAgICB4MTgwICAgIHgxOTIgICAg eDE0NCAgICB4MTkyICAgIHgxNDQNCj4gPiArICovDQo+ID4gKyNkZWZpbmUgQ1BHX1BMTF9DT05G SUdfSU5ERVgobWQpICAgICAgICgoKChtZCkgJiBCSVQoMTQpKSA+PiAxMSkgfCBcDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKChtZCkgJiBCSVQoMTMpKSA+ PiAxMSkgfCBcDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo KChtZCkgJiBCSVQoMTkpKSA+PiAxOCkgfCBcDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoKChtZCkgJiBCSVQoMTcpKSA+PiAxNykpDQo+ID4gKw0KPiA+ICtz dGF0aWMgY29uc3Qgc3RydWN0IHJjYXJfZ2VuM19jcGdfcGxsX2NvbmZpZyBjcGdfcGxsX2NvbmZp Z3NbMTZdDQo+IF9faW5pdGNvbnN0ID0gew0KPiA+ICsgICAgICAgLyogRVhUQUwgZGl2ICAgIFBM TDEgbXVsdC9kaXYgICBQTEwzIG11bHQvZGl2ICovDQo+ID4gKyAgICAgICB7IDEsICAgICAgICAg ICAgMTkyLCAgICAxLCAgICAgIDE5MiwgICAgMSwgICAgICB9LA0KPiA+ICsgICAgICAgeyAxLCAg ICAgICAgICAgIDE5MiwgICAgMSwgICAgICAxMjgsICAgIDEsICAgICAgfSwNCj4gPiArICAgICAg IHsgMCwgLyogUHJvaGliaXRlZCBzZXR0aW5nICovICAgICAgICAgICAgICAgICAgIH0sDQo+ID4g KyAgICAgICB7IDEsICAgICAgICAgICAgMTkyLCAgICAxLCAgICAgIDE5MiwgICAgMSwgICAgICB9 LA0KPiA+ICsgICAgICAgeyAxLCAgICAgICAgICAgIDE2MCwgICAgMSwgICAgICAxNjAsICAgIDEs ICAgICAgfSwNCj4gPiArICAgICAgIHsgMSwgICAgICAgICAgICAxNjAsICAgIDEsICAgICAgMTA2 LCAgICAxLCAgICAgIH0sDQo+ID4gKyAgICAgICB7IDAsIC8qIFByb2hpYml0ZWQgc2V0dGluZyAq LyAgICAgICAgICAgICAgICAgICB9LA0KPiA+ICsgICAgICAgeyAxLCAgICAgICAgICAgIDE2MCwg ICAgMSwgICAgICAxNjAsICAgIDEsICAgICAgfSwNCj4gPiArICAgICAgIHsgMSwgICAgICAgICAg ICAxMjgsICAgIDEsICAgICAgMTI4LCAgICAxLCAgICAgIH0sDQo+ID4gKyAgICAgICB7IDEsICAg ICAgICAgICAgMTI4LCAgICAxLCAgICAgIDg0LCAgICAgMSwgICAgICB9LA0KPiA+ICsgICAgICAg eyAwLCAvKiBQcm9oaWJpdGVkIHNldHRpbmcgKi8gICAgICAgICAgICAgICAgICAgfSwNCj4gPiAr ICAgICAgIHsgMSwgICAgICAgICAgICAxMjgsICAgIDEsICAgICAgMTI4LCAgICAxLCAgICAgIH0s DQo+ID4gKyAgICAgICB7IDIsICAgICAgICAgICAgMTkyLCAgICAxLCAgICAgIDE5MiwgICAgMSwg ICAgICB9LA0KPiA+ICsgICAgICAgeyAyLCAgICAgICAgICAgIDE5MiwgICAgMSwgICAgICAxMjgs ICAgIDEsICAgICAgfSwNCj4gPiArICAgICAgIHsgMCwgLyogUHJvaGliaXRlZCBzZXR0aW5nICov ICAgICAgICAgICAgICAgICAgIH0sDQo+ID4gKyAgICAgICB7IDIsICAgICAgICAgICAgMTkyLCAg ICAxLCAgICAgIDE5MiwgICAgMSwgICAgICB9LA0KPiA+ICt9Ow0KPg0KPiBQbGVhc2UgYWRkIHRo ZSBuZXcgT1NDIHByZWRpdmlkZXJzLiBZb3UncmUgZ29ubmEgbmVlZCB0aGVtIGZvciB0aGUNCj4g Y29ycmVjdGVkIE9TQyBjbG9jay4NCg0KV2lsbCBzZW5kIFYyIGluY29ycG9yYXRpbmcgdGhpcyBj aGFuZ2VzLg0KDQoNCg0KUmVuZXNhcyBFbGVjdHJvbmljcyBFdXJvcGUgTHRkLCBEdWtlcyBNZWFk b3csIE1pbGxib2FyZCBSb2FkLCBCb3VybmUgRW5kLCBCdWNraW5naGFtc2hpcmUsIFNMOCA1Rkgs IFVLLiBSZWdpc3RlcmVkIGluIEVuZ2xhbmQgJiBXYWxlcyB1bmRlciBSZWdpc3RlcmVkIE5vLiAw NDU4NjcwOS4NCg== ^ permalink raw reply [flat|nested] 15+ messages in thread
* RE: [PATCH 5/5] clk: renesas: cpg-mssr: Add r8a774a1 support @ 2018-08-01 9:31 ` Biju Das 0 siblings, 0 replies; 15+ messages in thread From: Biju Das @ 2018-08-01 9:31 UTC (permalink / raw) To: Geert Uytterhoeven Cc: Michael Turquette, Stephen Boyd, Rob Herring, Mark Rutland, Geert Uytterhoeven, linux-clk, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Linux-Renesas, Simon Horman, Chris Paterson, Fabrizio Castro Hi Geert, Thanks for the feedback. > Subject: Re: [PATCH 5/5] clk: renesas: cpg-mssr: Add r8a774a1 support > > Hi Biju, > > On Mon, Jul 30, 2018 at 9:54 AM Biju Das <biju.das@bp.renesas.com> wrote: > > Add RZ/G2M (R8A774A1) Clock Pulse Generator / Module Standby and > > Software Reset support. > > > > Based on the Table 8.2b of "RZ/G Series, 2nd Generation User's Manual: > > Hardware ((Rev. 0.61, June 12, 2018)". > > > > Signed-off-by: Biju Das <biju.das@bp.renesas.com> > > Reviewed-by: Fabrizio Castro <fabrizio.castro@bp.renesas.com> > > Thanks for your patch! > > > --- /dev/null > > +++ b/drivers/clk/renesas/r8a774a1-cpg-mssr.c > > > +static const struct cpg_core_clk r8a774a1_core_clks[] __initconst = { > > > + DEF_DIV6_RO("osc", R8A774A1_CLK_OSC, CLK_EXTAL, > CPG_RCKCR, 8), > > + DEF_DIV6_RO("r_int", CLK_RINT, CLK_EXTAL, CPG_RCKCR, 32), > > RZ/G2M does not have the CPG_RCKCR register. > The internal R CLK is an internal clock, hence please name it ".r". > > Please have a look at "clk: renesas: rcar-gen3: OSC and RCLK improvements" > (https://patchwork.kernel.org/project/linux-renesas-soc/list/?series=2063) Will send V2 incorporating this changes. > > +/* > > + * CPG Clock Data > > + */ > > + > > +/* > > + * MD EXTAL PLL0 PLL1 PLL2 PLL3 PLL4 > > + * 14 13 19 17 (MHz) > > + *------------------------------------------------------------------- > > + * 0 0 0 0 16.66 x 1 x180 x192 x144 x192 x144 > > + * 0 0 0 1 16.66 x 1 x180 x192 x144 x128 x144 > > + * 0 0 1 0 Prohibited setting > > + * 0 0 1 1 16.66 x 1 x180 x192 x144 x192 x144 > > + * 0 1 0 0 20 x 1 x150 x160 x120 x160 x120 > > + * 0 1 0 1 20 x 1 x150 x160 x120 x106 x120 > > + * 0 1 1 0 Prohibited setting > > + * 0 1 1 1 20 x 1 x150 x160 x120 x160 x120 > > + * 1 0 0 0 25 x 1 x120 x128 x96 x128 x96 > > + * 1 0 0 1 25 x 1 x120 x128 x96 x84 x96 > > + * 1 0 1 0 Prohibited setting > > + * 1 0 1 1 25 x 1 x120 x128 x96 x128 x96 > > + * 1 1 0 0 33.33 / 2 x180 x192 x144 x192 x144 > > + * 1 1 0 1 33.33 / 2 x180 x192 x144 x128 x144 > > + * 1 1 1 0 Prohibited setting > > + * 1 1 1 1 33.33 / 2 x180 x192 x144 x192 x144 > > + */ > > +#define CPG_PLL_CONFIG_INDEX(md) ((((md) & BIT(14)) >> 11) | \ > > + (((md) & BIT(13)) >> 11) | \ > > + (((md) & BIT(19)) >> 18) | \ > > + (((md) & BIT(17)) >> 17)) > > + > > +static const struct rcar_gen3_cpg_pll_config cpg_pll_configs[16] > __initconst = { > > + /* EXTAL div PLL1 mult/div PLL3 mult/div */ > > + { 1, 192, 1, 192, 1, }, > > + { 1, 192, 1, 128, 1, }, > > + { 0, /* Prohibited setting */ }, > > + { 1, 192, 1, 192, 1, }, > > + { 1, 160, 1, 160, 1, }, > > + { 1, 160, 1, 106, 1, }, > > + { 0, /* Prohibited setting */ }, > > + { 1, 160, 1, 160, 1, }, > > + { 1, 128, 1, 128, 1, }, > > + { 1, 128, 1, 84, 1, }, > > + { 0, /* Prohibited setting */ }, > > + { 1, 128, 1, 128, 1, }, > > + { 2, 192, 1, 192, 1, }, > > + { 2, 192, 1, 128, 1, }, > > + { 0, /* Prohibited setting */ }, > > + { 2, 192, 1, 192, 1, }, > > +}; > > Please add the new OSC predividers. You're gonna need them for the > corrected OSC clock. Will send V2 incorporating this changes. Renesas Electronics Europe Ltd, Dukes Meadow, Millboard Road, Bourne End, Buckinghamshire, SL8 5FH, UK. Registered in England & Wales under Registered No. 04586709. ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2018-08-01 11:16 UTC | newest] Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2018-07-30 7:48 [PATCH 0/5] Add RZ/G2M SYSC/RST/Clock support Biju Das 2018-07-30 7:48 ` [PATCH 1/5] dt-bindings: power: Add r8a774a1 SYSC power domain definitions Biju Das 2018-08-01 8:01 ` Geert Uytterhoeven 2018-07-30 7:48 ` [PATCH 2/5] soc: renesas: rcar-sysc: Add r8a774a1 support Biju Das 2018-08-01 8:05 ` Geert Uytterhoeven 2018-07-30 7:48 ` [PATCH 3/5] soc: renesas: rcar-rst: Add support for RZ/G2M Biju Das 2018-08-01 8:46 ` Geert Uytterhoeven 2018-07-30 7:48 ` [PATCH 4/5] clk: renesas: Add r8a774a1 CPG Core Clock Definitions Biju Das 2018-08-01 8:46 ` Geert Uytterhoeven 2018-08-01 9:33 ` Biju Das 2018-07-30 7:48 ` [PATCH 5/5] clk: renesas: cpg-mssr: Add r8a774a1 support Biju Das 2018-08-01 9:26 ` Geert Uytterhoeven 2018-08-01 9:31 ` Biju Das 2018-08-01 9:31 ` Biju Das 2018-08-01 9:31 ` Biju Das
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.