pinctrl: sh-pfc: r8a7794: Add R8A7745 support
authorSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Fri, 28 Apr 2017 18:52:35 +0000 (21:52 +0300)
committerGeert Uytterhoeven <geert+renesas@glider.be>
Tue, 16 May 2017 11:53:15 +0000 (13:53 +0200)
Renesas RZ/G1E (R8A7745) is pin compatible with R-Car E2 (R8A7794),
however it doesn't have several automotive specific peripherals.
Annotate all the items that only exist on the R-Car SoCs...

Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Acked-by: Rob Herring <robh@kernel.org>
[geert: Drop annotations, as they are implied by pin groups/functions]
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt
drivers/pinctrl/sh-pfc/Kconfig
drivers/pinctrl/sh-pfc/Makefile
drivers/pinctrl/sh-pfc/core.c
drivers/pinctrl/sh-pfc/pfc-r8a7794.c
drivers/pinctrl/sh-pfc/sh_pfc.h

index fbd9245e543a6a34d6bae8d0aaa15e03941b128e..645082f032592997b8c46a63ac99cc43ecf7e921 100644 (file)
@@ -14,6 +14,7 @@ Required Properties:
     - "renesas,pfc-r8a73a4": for R8A73A4 (R-Mobile APE6) compatible pin-controller.
     - "renesas,pfc-r8a7740": for R8A7740 (R-Mobile A1) compatible pin-controller.
     - "renesas,pfc-r8a7743": for R8A7743 (RZ/G1M) compatible pin-controller.
+    - "renesas,pfc-r8a7745": for R8A7745 (RZ/G1E) compatible pin-controller.
     - "renesas,pfc-r8a7778": for R8A7778 (R-Mobile M1) compatible pin-controller.
     - "renesas,pfc-r8a7779": for R8A7779 (R-Car H1) compatible pin-controller.
     - "renesas,pfc-r8a7790": for R8A7790 (R-Car H2) compatible pin-controller.
index 4ee3b973870986f49f4481acad61d3b14b2852e2..24f76a05a5a9383f9f8c6b30baedd9bbc2bbe32d 100644 (file)
@@ -39,6 +39,11 @@ config PINCTRL_PFC_R8A7743
        depends on ARCH_R8A7743
        select PINCTRL_SH_PFC
 
+config PINCTRL_PFC_R8A7745
+        def_bool y
+        depends on ARCH_R8A7745
+        select PINCTRL_SH_PFC
+
 config PINCTRL_PFC_R8A7778
        def_bool y
        depends on ARCH_R8A7778
index 02ebb90cdcf5fd04905cb751c66a2787f362c0d8..33d28eed9ba33ac3c7b733a46c55c83fe4bf47f1 100644 (file)
@@ -4,6 +4,7 @@ obj-$(CONFIG_PINCTRL_PFC_EMEV2) += pfc-emev2.o
 obj-$(CONFIG_PINCTRL_PFC_R8A73A4)      += pfc-r8a73a4.o
 obj-$(CONFIG_PINCTRL_PFC_R8A7740)      += pfc-r8a7740.o
 obj-$(CONFIG_PINCTRL_PFC_R8A7743)      += pfc-r8a7791.o
+obj-$(CONFIG_PINCTRL_PFC_R8A7745)      += pfc-r8a7794.o
 obj-$(CONFIG_PINCTRL_PFC_R8A7778)      += pfc-r8a7778.o
 obj-$(CONFIG_PINCTRL_PFC_R8A7779)      += pfc-r8a7779.o
 obj-$(CONFIG_PINCTRL_PFC_R8A7790)      += pfc-r8a7790.o
index fd1fec61cdff56d8a9275b4c201f566049872635..e72391d5e57d0324e29e56522ae17c7522116868 100644 (file)
@@ -491,6 +491,12 @@ static const struct of_device_id sh_pfc_of_table[] = {
                .data = &r8a7743_pinmux_info,
        },
 #endif
+#ifdef CONFIG_PINCTRL_PFC_R8A7745
+       {
+               .compatible = "renesas,pfc-r8a7745",
+               .data = &r8a7745_pinmux_info,
+       },
+#endif
 #ifdef CONFIG_PINCTRL_PFC_R8A7778
        {
                .compatible = "renesas,pfc-r8a7778",
index 7e3ece7e97dffffcaaa1d457e754126505d313d3..a0ed220071f5faf496c12967d45ab9faa15a10e6 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * r8a7794 processor support - PFC hardware block.
+ * r8a7794/r8a7745 processor support - PFC hardware block.
  *
  * Copyright (C) 2014-2015 Renesas Electronics Corporation
  * Copyright (C) 2015 Renesas Solutions Corp.
- * Copyright (C) 2015-2016 Cogent Embedded, Inc., <source@cogentembedded.com>
+ * Copyright (C) 2015-2017 Cogent Embedded, Inc. <source@cogentembedded.com>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2
@@ -5094,6 +5094,28 @@ static const struct sh_pfc_soc_operations r8a7794_pinmux_ops = {
        .pin_to_pocctrl = r8a7794_pin_to_pocctrl,
 };
 
+#ifdef CONFIG_PINCTRL_PFC_R8A7745
+const struct sh_pfc_soc_info r8a7745_pinmux_info = {
+       .name = "r8a77450_pfc",
+       .unlock_reg = 0xe6060000, /* PMMR */
+
+       .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
+
+       .pins = pinmux_pins,
+       .nr_pins = ARRAY_SIZE(pinmux_pins),
+       .groups = pinmux_groups,
+       .nr_groups = ARRAY_SIZE(pinmux_groups),
+       .functions = pinmux_functions,
+       .nr_functions = ARRAY_SIZE(pinmux_functions),
+
+       .cfg_regs = pinmux_config_regs,
+
+       .pinmux_data = pinmux_data,
+       .pinmux_data_size = ARRAY_SIZE(pinmux_data),
+};
+#endif
+
+#ifdef CONFIG_PINCTRL_PFC_R8A7794
 const struct sh_pfc_soc_info r8a7794_pinmux_info = {
        .name = "r8a77940_pfc",
        .ops = &r8a7794_pinmux_ops,
@@ -5113,3 +5135,4 @@ const struct sh_pfc_soc_info r8a7794_pinmux_info = {
        .pinmux_data = pinmux_data,
        .pinmux_data_size = ARRAY_SIZE(pinmux_data),
 };
+#endif
index ae9fc0b46b735cec83abbf77303cfb7a557cd78e..4376397123de8a4832f01bfd3b5e2ecf417c03aa 100644 (file)
@@ -260,6 +260,7 @@ extern const struct sh_pfc_soc_info emev2_pinmux_info;
 extern const struct sh_pfc_soc_info r8a73a4_pinmux_info;
 extern const struct sh_pfc_soc_info r8a7740_pinmux_info;
 extern const struct sh_pfc_soc_info r8a7743_pinmux_info;
+extern const struct sh_pfc_soc_info r8a7745_pinmux_info;
 extern const struct sh_pfc_soc_info r8a7778_pinmux_info;
 extern const struct sh_pfc_soc_info r8a7779_pinmux_info;
 extern const struct sh_pfc_soc_info r8a7790_pinmux_info;