* [PATCH v3 00/11] soc: renesas: Identify SoC and register with the SoC bus
@ 2016-11-14 18:37 Geert Uytterhoeven
2016-11-14 18:37 ` [PATCH v3 01/11] ARM: shmobile: Document DT bindings for Product Register Geert Uytterhoeven
` (7 more replies)
0 siblings, 8 replies; 13+ messages in thread
From: Geert Uytterhoeven @ 2016-11-14 18:37 UTC (permalink / raw)
To: Simon Horman, Magnus Damm
Cc: Arnd Bergmann, Rob Herring, Mark Rutland, Dirk Behme,
linux-renesas-soc, devicetree, linux-arm-kernel,
Geert Uytterhoeven
Hi Simon, Magnus,
Some Renesas SoCs may exist in different revisions, providing slightly
different functionalities (e.g. R-Car H3 ES1.x and ES2.0), and behavior
(errate and quirks). This needs to be catered for by drivers and/or
platform code. The recently proposed soc_device_match() API is a good
fit to handle this.
This patch series implements the core infrastructure to provide SoC and
revision information through the SoC bus for Renesas ARM SoCs.
Changes compared to v2 (more details in the individual patches):
- Add Acked-by,
- Drop soc_device_match() core infrastructure, as this now exists in
its own immutable branch,
- Re-add SoC families and family names,
- Re-add RZ/A1H and R-Car M1A support, without revision info,
- Drop "renesas,cccr" bindings and patches added CCCR devices nodeas,
as the CCCR is not a lone register, but part of the HPB/APB register
block. DT support for obtaining the CCCR register address from DT is
thus postponed, pending DT bindings for HPB/APB,
- Include patches to add PRR device nodes for all relevant SoCs.
Changes compared to v1:
- Add Acked-by,
- New patches:
- "[4/7] base: soc: Provide a dummy implementation of
soc_device_match()",
- "[5/7] ARM: shmobile: Document DT bindings for CCCR and PRR",
- "[6/7] arm64: dts: r8a7795: Add device node for PRR"
(more similar patches available, I'm not yet spamming you all
with them),
- Drop SoC families and family names; use fixed "Renesas" instead,
- Drop EMEV2, which doesn't have a chip ID register, and doesn't share
devices with other SoCs,
- Drop RZ/A1H and R-CAR M1A, which don't have chip ID registers (for
M1A: not accessible from the ARM core?),
- On arm, move "select SOC_BUS" from ARCH_RENESAS to Kconfig symbols
for SoCs that provide a chip ID register,
- Build renesas-soc only if SOC_BUS is enabled,
- Use "renesas,prr" and "renesas,cccr" device nodes in DT if
available, else fall back to hardcoded addresses for compatibility
with existing DTBs,
- Remove verification of product IDs; just print the ID instead,
- Don't register the SoC bus if the chip ID register is missing,
- Change R-Mobile APE6 fallback to use PRR instead of CCCR (it has
both).
Dependencies:
- Core soc_device_match() infrastructure, available from signed tag
soc-device-match-tag1 in
git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git,
- Tag renesas-devel-20161114-v4.9-rc5 in Simon's renesas repository.
Tested on (machine, family, soc_id, optional revision):
Genmai, RZ/A, r7s72100
APE6EVM, R-Mobile, r8a73a4, ES1.0
armadillo 800 eva, R-Mobile, r8a7740, ES2.0
bockw, R-Car Gen1, r8a7778
marzen, R-Car Gen1, r8a7779, ES1.0
Lager, R-Car Gen2, r8a7790, ES1.0
Koelsch, R-Car Gen2, r8a7791, ES1.0
Porter, R-Car Gen2, r8a7791, ES3.0
Blanche, R-Car Gen2, r8a7792, ES1.1
Gose, R-Car Gen2, r8a7793, ES1.0
Alt, R-Car Gen2, r8a7794, ES1.0
Renesas Salvator-X board based on r8a7795, R-Car Gen3, r8a7795, ES1.0
Renesas Salvator-X board based on r8a7795, R-Car Gen3, r8a7795, ES1.1
Renesas Salvator-X board based on r8a7796, R-Car Gen3, r8a7796, ES1.0
KZM-A9-GT, SH-Mobile, sh73a0, ES2.0
For your convenience, this series is also available in the
topic/renesas-soc-id-v3 branch of my renesas-drivers git repository at
git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git
As this is a dependency for driver updates for R-Car H3 ES2.0 (HDMI,
Ethernet, clock, pinctrl, ...), it would be good if this would be in
v4.10.
Thanks for merging soc-device-match-tag1, and applying this series on
top!
Geert Uytterhoeven (11):
ARM: shmobile: Document DT bindings for Product Register
soc: renesas: Identify SoC and register with the SoC bus
ARM: dts: r8a73a4: Add device node for PRR
ARM: dts: r8a7779: Add device node for PRR
ARM: dts: r8a7790: Add device node for PRR
ARM: dts: r8a7791: Add device node for PRR
ARM: dts: r8a7792: Add device node for PRR
ARM: dts: r8a7793: Add device node for PRR
ARM: dts: r8a7794: Add device node for PRR
arm64: dts: r8a7795: Add device node for PRR
arm64: dts: r8a7796: Add device node for PRR
Documentation/devicetree/bindings/arm/shmobile.txt | 18 ++
arch/arm/boot/dts/r8a73a4.dtsi | 5 +
arch/arm/boot/dts/r8a7779.dtsi | 5 +
arch/arm/boot/dts/r8a7790.dtsi | 5 +
arch/arm/boot/dts/r8a7791.dtsi | 5 +
arch/arm/boot/dts/r8a7792.dtsi | 5 +
arch/arm/boot/dts/r8a7793.dtsi | 5 +
arch/arm/boot/dts/r8a7794.dtsi | 5 +
arch/arm/mach-shmobile/Kconfig | 1 +
arch/arm64/Kconfig.platforms | 1 +
arch/arm64/boot/dts/renesas/r8a7795.dtsi | 5 +
arch/arm64/boot/dts/renesas/r8a7796.dtsi | 5 +
drivers/soc/renesas/Makefile | 2 +
drivers/soc/renesas/renesas-soc.c | 257 +++++++++++++++++++++
14 files changed, 324 insertions(+)
create mode 100644 drivers/soc/renesas/renesas-soc.c
--
1.9.1
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] 13+ messages in thread
* [PATCH v3 01/11] ARM: shmobile: Document DT bindings for Product Register
2016-11-14 18:37 [PATCH v3 00/11] soc: renesas: Identify SoC and register with the SoC bus Geert Uytterhoeven
@ 2016-11-14 18:37 ` Geert Uytterhoeven
2016-11-14 18:37 ` [PATCH v3 02/11] soc: renesas: Identify SoC and register with the SoC bus Geert Uytterhoeven
` (6 subsequent siblings)
7 siblings, 0 replies; 13+ messages in thread
From: Geert Uytterhoeven @ 2016-11-14 18:37 UTC (permalink / raw)
To: Simon Horman, Magnus Damm
Cc: Arnd Bergmann, Rob Herring, Mark Rutland, Dirk Behme,
linux-renesas-soc, devicetree, linux-arm-kernel,
Geert Uytterhoeven
Add device tree binding documentation for the Product Register (PRR),
which provides product and revision information on most Renesas ARM
SoCs.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Rob Herring <robh@kernel.org>
---
v3:
- Add Acked-by,
- Drop "renesas,cccr", as the CCCR is not a lone register, but part of
the HPB/APB block, which will need its own set of bindings,
v2:
- New.
---
Documentation/devicetree/bindings/arm/shmobile.txt | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/Documentation/devicetree/bindings/arm/shmobile.txt b/Documentation/devicetree/bindings/arm/shmobile.txt
index a1e94da0e322c8f4..1be9e8a7e2c43dfc 100644
--- a/Documentation/devicetree/bindings/arm/shmobile.txt
+++ b/Documentation/devicetree/bindings/arm/shmobile.txt
@@ -81,3 +81,21 @@ Boards:
compatible = "renesas,sk-rzg1m", "renesas,r8a7743"
- Wheat
compatible = "renesas,wheat", "renesas,r8a7792"
+
+
+Most Renesas ARM SoCs have a Product Register that allows to retrieve SoC
+product and revision information. If present, a device node for this register
+should be added.
+
+Required properties:
+ - compatible: Must be "renesas,prr".
+ - reg: Base address and length of the register block.
+
+
+Examples
+--------
+
+ prr: chipid@ff000044 {
+ compatible = "renesas,prr";
+ reg = <0 0xff000044 0 4>;
+ };
--
1.9.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v3 02/11] soc: renesas: Identify SoC and register with the SoC bus
2016-11-14 18:37 [PATCH v3 00/11] soc: renesas: Identify SoC and register with the SoC bus Geert Uytterhoeven
2016-11-14 18:37 ` [PATCH v3 01/11] ARM: shmobile: Document DT bindings for Product Register Geert Uytterhoeven
@ 2016-11-14 18:37 ` Geert Uytterhoeven
2016-11-14 18:37 ` [PATCH v3 04/11] ARM: dts: r8a7779: Add device node for PRR Geert Uytterhoeven
` (5 subsequent siblings)
7 siblings, 0 replies; 13+ messages in thread
From: Geert Uytterhoeven @ 2016-11-14 18:37 UTC (permalink / raw)
To: Simon Horman, Magnus Damm
Cc: Arnd Bergmann, Rob Herring, Mark Rutland, Dirk Behme,
linux-renesas-soc, devicetree, linux-arm-kernel,
Geert Uytterhoeven
Identify the SoC type and revision, and register this information with
the SoC bus, so it is available under /sys/devices/soc0/, and can be
checked where needed using soc_device_match().
Identification is done using the Product Register or Common Chip Code
Register, as declared in DT (PRR only for now), or using a hardcoded
fallback if missing.
Example:
Detected Renesas R-Car Gen2 r8a7791 ES1.0
...
# cat /sys/devices/soc0/{machine,family,soc_id,revision}
Koelsch
R-Car Gen2
r8a7791
ES1.0
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
v3:
- Re-add SoC families and family names,
- Re-add RZ/A1H and R-Car M1A, not providing a revision,
- On arm, move "select SOC_BUS" to ARCH_RENESAS again,
- Drop "renesas,cccr" DT support, as the CCCR is not a lone register,
but part of the HPB/APB block, pending full DT bindings for HPB/APB,
- Re-add verification of product IDs,
- Re-add registering the SoC bus if the chip ID register is missing,
- Revert APE6 fallback to CCCR (it has both), as it's a member of the
R-Mobile family,
- Use of_match_node(..., of_root) instead of
of_find_matching_node_and_match(),
- Mark structures __maybe_unused to avoid compiler warnings,
v2:
- Drop SoC families and family names; use fixed "Renesas" instead,
- Drop EMEV2, which doesn't have a chip ID register, and doesn't share
devices with other SoCs,
- Drop RZ/A1H and R-CAR M1A, which don't have chip ID registers (for
M1A: not accessible from the ARM core?),
- On arm, move "select SOC_BUS" from ARCH_RENESAS to Kconfig symbols
for SoCs that provide a chip ID register,
- Build renesas-soc only if SOC_BUS is enabled,
- Use "renesas,prr" and "renesas,cccr" device nodes in DT if
available, else fall back to hardcoded addresses for compatibility
with existing DTBs,
- Remove verification of product IDs; just print the ID instead,
- Don't register the SoC bus if the chip ID register is missing,
- Change R-Mobile APE6 fallback to use PRR instead of CCCR (it has
both).
---
arch/arm/mach-shmobile/Kconfig | 1 +
arch/arm64/Kconfig.platforms | 1 +
drivers/soc/renesas/Makefile | 2 +
drivers/soc/renesas/renesas-soc.c | 257 ++++++++++++++++++++++++++++++++++++++
4 files changed, 261 insertions(+)
create mode 100644 drivers/soc/renesas/renesas-soc.c
diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig
index 6fbd9b7d2d67a18f..5e7b0503921e221f 100644
--- a/arch/arm/mach-shmobile/Kconfig
+++ b/arch/arm/mach-shmobile/Kconfig
@@ -41,6 +41,7 @@ menuconfig ARCH_RENESAS
select HAVE_ARM_TWD if SMP
select NO_IOPORT_MAP
select PINCTRL
+ select SOC_BUS
select ZONE_DMA if ARM_LPAE
if ARCH_RENESAS
diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms
index 101794f5ce1008b7..b751c6891c6a51ed 100644
--- a/arch/arm64/Kconfig.platforms
+++ b/arch/arm64/Kconfig.platforms
@@ -143,6 +143,7 @@ config ARCH_RENESAS
select PM
select PM_GENERIC_DOMAINS
select RENESAS_IRQC
+ select SOC_BUS
help
This enables support for the ARMv8 based Renesas SoCs.
diff --git a/drivers/soc/renesas/Makefile b/drivers/soc/renesas/Makefile
index 9e0bb329594c4fca..1652df037955e0e6 100644
--- a/drivers/soc/renesas/Makefile
+++ b/drivers/soc/renesas/Makefile
@@ -1,3 +1,5 @@
+obj-$(CONFIG_SOC_BUS) += renesas-soc.o
+
obj-$(CONFIG_ARCH_R8A7743) += rcar-sysc.o r8a7743-sysc.o
obj-$(CONFIG_ARCH_R8A7779) += rcar-sysc.o r8a7779-sysc.o
obj-$(CONFIG_ARCH_R8A7790) += rcar-sysc.o r8a7790-sysc.o
diff --git a/drivers/soc/renesas/renesas-soc.c b/drivers/soc/renesas/renesas-soc.c
new file mode 100644
index 0000000000000000..330960312296f603
--- /dev/null
+++ b/drivers/soc/renesas/renesas-soc.c
@@ -0,0 +1,257 @@
+/*
+ * Renesas SoC Identification
+ *
+ * Copyright (C) 2014-2016 Glider bvba
+ *
+ * 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; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#include <linux/io.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
+#include <linux/slab.h>
+#include <linux/string.h>
+#include <linux/sys_soc.h>
+
+
+struct renesas_family {
+ const char name[16];
+ u32 reg; /* CCCR or PRR, if not in DT */
+};
+
+static const struct renesas_family fam_rcar_gen1 __initconst __maybe_unused = {
+ .name = "R-Car Gen1",
+ .reg = 0xff000044, /* PRR (Product Register) */
+};
+
+static const struct renesas_family fam_rcar_gen2 __initconst __maybe_unused = {
+ .name = "R-Car Gen2",
+ .reg = 0xff000044, /* PRR (Product Register) */
+};
+
+static const struct renesas_family fam_rcar_gen3 __initconst __maybe_unused = {
+ .name = "R-Car Gen3",
+ .reg = 0xfff00044, /* PRR (Product Register) */
+};
+
+static const struct renesas_family fam_rmobile __initconst __maybe_unused = {
+ .name = "R-Mobile",
+ .reg = 0xe600101c, /* CCCR (Common Chip Code Register) */
+};
+
+static const struct renesas_family fam_rza __initconst __maybe_unused = {
+ .name = "RZ/A",
+};
+
+static const struct renesas_family fam_rzg __initconst __maybe_unused = {
+ .name = "RZ/G",
+ .reg = 0xff000044, /* PRR (Product Register) */
+};
+
+static const struct renesas_family fam_shmobile __initconst __maybe_unused = {
+ .name = "SH-Mobile",
+ .reg = 0xe600101c, /* CCCR (Common Chip Code Register) */
+};
+
+
+struct renesas_soc {
+ const struct renesas_family *family;
+ u8 id;
+};
+
+static const struct renesas_soc soc_rz_a1h __initconst __maybe_unused = {
+ .family = &fam_rza,
+};
+
+static const struct renesas_soc soc_rmobile_ape6 __initconst __maybe_unused = {
+ .family = &fam_rmobile,
+ .id = 0x3f,
+};
+
+static const struct renesas_soc soc_rmobile_a1 __initconst __maybe_unused = {
+ .family = &fam_rmobile,
+ .id = 0x40,
+};
+
+static const struct renesas_soc soc_rz_g1m __initconst __maybe_unused = {
+ .family = &fam_rzg,
+ .id = 0x47,
+};
+
+static const struct renesas_soc soc_rz_g1e __initconst __maybe_unused = {
+ .family = &fam_rzg,
+ .id = 0x4c,
+};
+
+static const struct renesas_soc soc_rcar_m1a __initconst __maybe_unused = {
+ .family = &fam_rcar_gen1,
+};
+
+static const struct renesas_soc soc_rcar_h1 __initconst __maybe_unused = {
+ .family = &fam_rcar_gen1,
+ .id = 0x3b,
+};
+
+static const struct renesas_soc soc_rcar_h2 __initconst __maybe_unused = {
+ .family = &fam_rcar_gen2,
+ .id = 0x45,
+};
+
+static const struct renesas_soc soc_rcar_m2_w __initconst __maybe_unused = {
+ .family = &fam_rcar_gen2,
+ .id = 0x47,
+};
+
+static const struct renesas_soc soc_rcar_v2h __initconst __maybe_unused = {
+ .family = &fam_rcar_gen2,
+ .id = 0x4a,
+};
+
+static const struct renesas_soc soc_rcar_m2_n __initconst __maybe_unused = {
+ .family = &fam_rcar_gen2,
+ .id = 0x4b,
+};
+
+static const struct renesas_soc soc_rcar_e2 __initconst __maybe_unused = {
+ .family = &fam_rcar_gen2,
+ .id = 0x4c,
+};
+
+static const struct renesas_soc soc_rcar_h3 __initconst __maybe_unused = {
+ .family = &fam_rcar_gen3,
+ .id = 0x4f,
+};
+
+static const struct renesas_soc soc_rcar_m3_w __initconst __maybe_unused = {
+ .family = &fam_rcar_gen3,
+ .id = 0x52,
+};
+
+static const struct renesas_soc soc_shmobile_ag5 __initconst __maybe_unused = {
+ .family = &fam_shmobile,
+ .id = 0x37,
+};
+
+
+static const struct of_device_id renesas_socs[] __initconst = {
+#ifdef CONFIG_ARCH_R7S72100
+ { .compatible = "renesas,r7s72100", .data = &soc_rz_a1h },
+#endif
+#ifdef CONFIG_ARCH_R8A73A4
+ { .compatible = "renesas,r8a73a4", .data = &soc_rmobile_ape6 },
+#endif
+#ifdef CONFIG_ARCH_R8A7740
+ { .compatible = "renesas,r8a7740", .data = &soc_rmobile_a1 },
+#endif
+#ifdef CONFIG_ARCH_R8A7743
+ { .compatible = "renesas,r8a7743", .data = &soc_rz_g1m },
+#endif
+#ifdef CONFIG_ARCH_R8A7745
+ { .compatible = "renesas,r8a7745", .data = &soc_rz_g1e },
+#endif
+#ifdef CONFIG_ARCH_R8A7778
+ { .compatible = "renesas,r8a7778", .data = &soc_rcar_m1a },
+#endif
+#ifdef CONFIG_ARCH_R8A7779
+ { .compatible = "renesas,r8a7779", .data = &soc_rcar_h1 },
+#endif
+#ifdef CONFIG_ARCH_R8A7790
+ { .compatible = "renesas,r8a7790", .data = &soc_rcar_h2 },
+#endif
+#ifdef CONFIG_ARCH_R8A7791
+ { .compatible = "renesas,r8a7791", .data = &soc_rcar_m2_w },
+#endif
+#ifdef CONFIG_ARCH_R8A7792
+ { .compatible = "renesas,r8a7792", .data = &soc_rcar_v2h },
+#endif
+#ifdef CONFIG_ARCH_R8A7793
+ { .compatible = "renesas,r8a7793", .data = &soc_rcar_m2_n },
+#endif
+#ifdef CONFIG_ARCH_R8A7794
+ { .compatible = "renesas,r8a7794", .data = &soc_rcar_e2 },
+#endif
+#ifdef CONFIG_ARCH_R8A7795
+ { .compatible = "renesas,r8a7795", .data = &soc_rcar_h3 },
+#endif
+#ifdef CONFIG_ARCH_R8A7796
+ { .compatible = "renesas,r8a7796", .data = &soc_rcar_m3_w },
+#endif
+#ifdef CONFIG_ARCH_SH73A0
+ { .compatible = "renesas,sh73a0", .data = &soc_shmobile_ag5 },
+#endif
+ { /* sentinel */ }
+};
+
+static int __init renesas_soc_init(void)
+{
+ struct soc_device_attribute *soc_dev_attr;
+ const struct renesas_family *family;
+ const struct of_device_id *match;
+ const struct renesas_soc *soc;
+ void __iomem *chipid = NULL;
+ struct soc_device *soc_dev;
+ struct device_node *np;
+ unsigned int product;
+
+ match = of_match_node(renesas_socs, of_root);
+ if (!match)
+ return -ENODEV;
+
+ soc = match->data;
+ family = soc->family;
+
+ /* Try PRR first, then hardcoded fallback */
+ np = of_find_compatible_node(NULL, NULL, "renesas,prr");
+ if (np) {
+ chipid = of_iomap(np, 0);
+ of_node_put(np);
+ } else if (soc->id) {
+ chipid = ioremap(family->reg, 4);
+ }
+ if (chipid) {
+ product = readl(chipid);
+ iounmap(chipid);
+ if (soc->id && ((product >> 8) & 0xff) != soc->id) {
+ pr_warn("SoC mismatch (product = 0x%x)\n", product);
+ return -ENODEV;
+ }
+ }
+
+ soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+ if (!soc_dev_attr)
+ return -ENOMEM;
+
+ np = of_find_node_by_path("/");
+ of_property_read_string(np, "model", &soc_dev_attr->machine);
+ of_node_put(np);
+
+ soc_dev_attr->family = kstrdup_const(family->name, GFP_KERNEL);
+ soc_dev_attr->soc_id = kstrdup_const(strchr(match->compatible, ',') + 1,
+ GFP_KERNEL);
+ if (chipid)
+ soc_dev_attr->revision = kasprintf(GFP_KERNEL, "ES%u.%u",
+ ((product >> 4) & 0x0f) + 1,
+ product & 0xf);
+
+ pr_info("Detected Renesas %s %s %s\n", soc_dev_attr->family,
+ soc_dev_attr->soc_id, soc_dev_attr->revision ?: "");
+
+ soc_dev = soc_device_register(soc_dev_attr);
+ if (IS_ERR(soc_dev)) {
+ kfree(soc_dev_attr->revision);
+ kfree_const(soc_dev_attr->soc_id);
+ kfree_const(soc_dev_attr->family);
+ kfree(soc_dev_attr);
+ return PTR_ERR(soc_dev);
+ }
+
+ return 0;
+}
+core_initcall(renesas_soc_init);
--
1.9.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v3 03/11] ARM: dts: r8a73a4: Add device node for PRR
[not found] ` <1479148637-5399-1-git-send-email-geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org>
@ 2016-11-14 18:37 ` Geert Uytterhoeven
2016-11-14 18:37 ` [PATCH v3 06/11] ARM: dts: r8a7791: " Geert Uytterhoeven
` (3 subsequent siblings)
4 siblings, 0 replies; 13+ messages in thread
From: Geert Uytterhoeven @ 2016-11-14 18:37 UTC (permalink / raw)
To: Simon Horman, Magnus Damm
Cc: Arnd Bergmann, Rob Herring, Mark Rutland, Dirk Behme,
linux-renesas-soc-u79uwXL29TY76Z2rM5mHXA,
devicetree-u79uwXL29TY76Z2rM5mHXA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
Geert Uytterhoeven
Add a device node for the Product Register, which provides SoC product
and revision information.
Signed-off-by: Geert Uytterhoeven <geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org>
---
v3:
- Drop CCCR, as it is not a lone register, but part of the HPB/APB
block,
v2:
- New.
---
arch/arm/boot/dts/r8a73a4.dtsi | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm/boot/dts/r8a73a4.dtsi b/arch/arm/boot/dts/r8a73a4.dtsi
index ca8672778fe067e1..53183ffe04c11c11 100644
--- a/arch/arm/boot/dts/r8a73a4.dtsi
+++ b/arch/arm/boot/dts/r8a73a4.dtsi
@@ -751,6 +751,11 @@
};
};
+ prr: chipid@ff000044 {
+ compatible = "renesas,prr";
+ reg = <0 0xff000044 0 4>;
+ };
+
sysc: system-controller@e6180000 {
compatible = "renesas,sysc-r8a73a4", "renesas,sysc-rmobile";
reg = <0 0xe6180000 0 0x8000>, <0 0xe6188000 0 0x8000>;
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v3 04/11] ARM: dts: r8a7779: Add device node for PRR
2016-11-14 18:37 [PATCH v3 00/11] soc: renesas: Identify SoC and register with the SoC bus Geert Uytterhoeven
2016-11-14 18:37 ` [PATCH v3 01/11] ARM: shmobile: Document DT bindings for Product Register Geert Uytterhoeven
2016-11-14 18:37 ` [PATCH v3 02/11] soc: renesas: Identify SoC and register with the SoC bus Geert Uytterhoeven
@ 2016-11-14 18:37 ` Geert Uytterhoeven
2016-11-14 18:37 ` [PATCH v3 05/11] ARM: dts: r8a7790: " Geert Uytterhoeven
` (4 subsequent siblings)
7 siblings, 0 replies; 13+ messages in thread
From: Geert Uytterhoeven @ 2016-11-14 18:37 UTC (permalink / raw)
To: Simon Horman, Magnus Damm
Cc: Arnd Bergmann, Rob Herring, Mark Rutland, Dirk Behme,
linux-renesas-soc, devicetree, linux-arm-kernel,
Geert Uytterhoeven
Add a device node for the Product Register, which provides SoC product
and revision information.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
v3:
- Add to posted series,
v2:
- New.
---
arch/arm/boot/dts/r8a7779.dtsi | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm/boot/dts/r8a7779.dtsi b/arch/arm/boot/dts/r8a7779.dtsi
index 3005308a1807ca43..9d3bb74bd3f684d5 100644
--- a/arch/arm/boot/dts/r8a7779.dtsi
+++ b/arch/arm/boot/dts/r8a7779.dtsi
@@ -590,6 +590,11 @@
};
};
+ prr: chipid@ff000044 {
+ compatible = "renesas,prr";
+ reg = <0xff000044 4>;
+ };
+
sysc: system-controller@ffd85000 {
compatible = "renesas,r8a7779-sysc";
reg = <0xffd85000 0x0200>;
--
1.9.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v3 05/11] ARM: dts: r8a7790: Add device node for PRR
2016-11-14 18:37 [PATCH v3 00/11] soc: renesas: Identify SoC and register with the SoC bus Geert Uytterhoeven
` (2 preceding siblings ...)
2016-11-14 18:37 ` [PATCH v3 04/11] ARM: dts: r8a7779: Add device node for PRR Geert Uytterhoeven
@ 2016-11-14 18:37 ` Geert Uytterhoeven
2016-11-14 18:37 ` [PATCH v3 09/11] ARM: dts: r8a7794: " Geert Uytterhoeven
` (3 subsequent siblings)
7 siblings, 0 replies; 13+ messages in thread
From: Geert Uytterhoeven @ 2016-11-14 18:37 UTC (permalink / raw)
To: Simon Horman, Magnus Damm
Cc: Arnd Bergmann, Rob Herring, Mark Rutland, Dirk Behme,
linux-renesas-soc, devicetree, linux-arm-kernel,
Geert Uytterhoeven
Add a device node for the Product Register, which provides SoC product
and revision information.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
v3:
- Add to posted series,
v2:
- New.
---
arch/arm/boot/dts/r8a7790.dtsi | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a7790.dtsi
index a946474be9cf1e6b..f554ef3c8096726a 100644
--- a/arch/arm/boot/dts/r8a7790.dtsi
+++ b/arch/arm/boot/dts/r8a7790.dtsi
@@ -1471,6 +1471,11 @@
};
};
+ prr: chipid@ff000044 {
+ compatible = "renesas,prr";
+ reg = <0 0xff000044 0 4>;
+ };
+
sysc: system-controller@e6180000 {
compatible = "renesas,r8a7790-sysc";
reg = <0 0xe6180000 0 0x0200>;
--
1.9.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v3 06/11] ARM: dts: r8a7791: Add device node for PRR
[not found] ` <1479148637-5399-1-git-send-email-geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org>
2016-11-14 18:37 ` [PATCH v3 03/11] ARM: dts: r8a73a4: " Geert Uytterhoeven
@ 2016-11-14 18:37 ` Geert Uytterhoeven
2016-11-14 18:37 ` [PATCH v3 07/11] ARM: dts: r8a7792: " Geert Uytterhoeven
` (2 subsequent siblings)
4 siblings, 0 replies; 13+ messages in thread
From: Geert Uytterhoeven @ 2016-11-14 18:37 UTC (permalink / raw)
To: Simon Horman, Magnus Damm
Cc: Arnd Bergmann, Rob Herring, Mark Rutland, Dirk Behme,
linux-renesas-soc-u79uwXL29TY76Z2rM5mHXA,
devicetree-u79uwXL29TY76Z2rM5mHXA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
Geert Uytterhoeven
Add a device node for the Product Register, which provides SoC product
and revision information.
Signed-off-by: Geert Uytterhoeven <geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org>
---
v3:
- Add to posted series,
v2:
- New.
---
arch/arm/boot/dts/r8a7791.dtsi | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm/boot/dts/r8a7791.dtsi b/arch/arm/boot/dts/r8a7791.dtsi
index 091d7fb6ee7d53cc..4c50de2faef12301 100644
--- a/arch/arm/boot/dts/r8a7791.dtsi
+++ b/arch/arm/boot/dts/r8a7791.dtsi
@@ -1485,6 +1485,11 @@
};
};
+ prr: chipid@ff000044 {
+ compatible = "renesas,prr";
+ reg = <0 0xff000044 0 4>;
+ };
+
sysc: system-controller@e6180000 {
compatible = "renesas,r8a7791-sysc";
reg = <0 0xe6180000 0 0x0200>;
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v3 07/11] ARM: dts: r8a7792: Add device node for PRR
[not found] ` <1479148637-5399-1-git-send-email-geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org>
2016-11-14 18:37 ` [PATCH v3 03/11] ARM: dts: r8a73a4: " Geert Uytterhoeven
2016-11-14 18:37 ` [PATCH v3 06/11] ARM: dts: r8a7791: " Geert Uytterhoeven
@ 2016-11-14 18:37 ` Geert Uytterhoeven
2016-11-14 18:37 ` [PATCH v3 08/11] ARM: dts: r8a7793: " Geert Uytterhoeven
2016-11-15 17:53 ` [PATCH v3 00/11] soc: renesas: Identify SoC and register with the SoC bus Simon Horman
4 siblings, 0 replies; 13+ messages in thread
From: Geert Uytterhoeven @ 2016-11-14 18:37 UTC (permalink / raw)
To: Simon Horman, Magnus Damm
Cc: Arnd Bergmann, Rob Herring, Mark Rutland, Dirk Behme,
linux-renesas-soc-u79uwXL29TY76Z2rM5mHXA,
devicetree-u79uwXL29TY76Z2rM5mHXA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
Geert Uytterhoeven
Add a device node for the Product Register, which provides SoC product
and revision information.
Signed-off-by: Geert Uytterhoeven <geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org>
---
v3:
- Add to posted series,
v2:
- New.
---
arch/arm/boot/dts/r8a7792.dtsi | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm/boot/dts/r8a7792.dtsi b/arch/arm/boot/dts/r8a7792.dtsi
index a75e0cd312c5ecdf..69789020cf39e95f 100644
--- a/arch/arm/boot/dts/r8a7792.dtsi
+++ b/arch/arm/boot/dts/r8a7792.dtsi
@@ -120,6 +120,11 @@
IRQ_TYPE_LEVEL_LOW)>;
};
+ prr: chipid@ff000044 {
+ compatible = "renesas,prr";
+ reg = <0 0xff000044 0 4>;
+ };
+
sysc: system-controller@e6180000 {
compatible = "renesas,r8a7792-sysc";
reg = <0 0xe6180000 0 0x0200>;
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v3 08/11] ARM: dts: r8a7793: Add device node for PRR
[not found] ` <1479148637-5399-1-git-send-email-geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org>
` (2 preceding siblings ...)
2016-11-14 18:37 ` [PATCH v3 07/11] ARM: dts: r8a7792: " Geert Uytterhoeven
@ 2016-11-14 18:37 ` Geert Uytterhoeven
2016-11-15 17:53 ` [PATCH v3 00/11] soc: renesas: Identify SoC and register with the SoC bus Simon Horman
4 siblings, 0 replies; 13+ messages in thread
From: Geert Uytterhoeven @ 2016-11-14 18:37 UTC (permalink / raw)
To: Simon Horman, Magnus Damm
Cc: Arnd Bergmann, Rob Herring, Mark Rutland, Dirk Behme,
linux-renesas-soc-u79uwXL29TY76Z2rM5mHXA,
devicetree-u79uwXL29TY76Z2rM5mHXA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
Geert Uytterhoeven
Add a device node for the Product Register, which provides SoC product
and revision information.
Signed-off-by: Geert Uytterhoeven <geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org>
---
v3:
- Add to posted series,
v2:
- New.
---
arch/arm/boot/dts/r8a7793.dtsi | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm/boot/dts/r8a7793.dtsi b/arch/arm/boot/dts/r8a7793.dtsi
index 629d3d60d1cd7168..a377dda177241da0 100644
--- a/arch/arm/boot/dts/r8a7793.dtsi
+++ b/arch/arm/boot/dts/r8a7793.dtsi
@@ -1306,6 +1306,11 @@
};
};
+ prr: chipid@ff000044 {
+ compatible = "renesas,prr";
+ reg = <0 0xff000044 0 4>;
+ };
+
sysc: system-controller@e6180000 {
compatible = "renesas,r8a7793-sysc";
reg = <0 0xe6180000 0 0x0200>;
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v3 09/11] ARM: dts: r8a7794: Add device node for PRR
2016-11-14 18:37 [PATCH v3 00/11] soc: renesas: Identify SoC and register with the SoC bus Geert Uytterhoeven
` (3 preceding siblings ...)
2016-11-14 18:37 ` [PATCH v3 05/11] ARM: dts: r8a7790: " Geert Uytterhoeven
@ 2016-11-14 18:37 ` Geert Uytterhoeven
2016-11-14 18:37 ` [PATCH v3 10/11] arm64: dts: r8a7795: " Geert Uytterhoeven
` (2 subsequent siblings)
7 siblings, 0 replies; 13+ messages in thread
From: Geert Uytterhoeven @ 2016-11-14 18:37 UTC (permalink / raw)
To: Simon Horman, Magnus Damm
Cc: Arnd Bergmann, Rob Herring, Mark Rutland, Dirk Behme,
linux-renesas-soc, devicetree, linux-arm-kernel,
Geert Uytterhoeven
Add a device node for the Product Register, which provides SoC product
and revision information.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
v3:
- Add to posted series,
v2:
- New.
---
arch/arm/boot/dts/r8a7794.dtsi | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm/boot/dts/r8a7794.dtsi b/arch/arm/boot/dts/r8a7794.dtsi
index 364b4aa8d1c1aa28..63dc7f29d216c32e 100644
--- a/arch/arm/boot/dts/r8a7794.dtsi
+++ b/arch/arm/boot/dts/r8a7794.dtsi
@@ -1377,6 +1377,11 @@
};
};
+ prr: chipid@ff000044 {
+ compatible = "renesas,prr";
+ reg = <0 0xff000044 0 4>;
+ };
+
sysc: system-controller@e6180000 {
compatible = "renesas,r8a7794-sysc";
reg = <0 0xe6180000 0 0x0200>;
--
1.9.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v3 10/11] arm64: dts: r8a7795: Add device node for PRR
2016-11-14 18:37 [PATCH v3 00/11] soc: renesas: Identify SoC and register with the SoC bus Geert Uytterhoeven
` (4 preceding siblings ...)
2016-11-14 18:37 ` [PATCH v3 09/11] ARM: dts: r8a7794: " Geert Uytterhoeven
@ 2016-11-14 18:37 ` Geert Uytterhoeven
2016-11-14 18:37 ` [PATCH v3 11/11] arm64: dts: r8a7796: " Geert Uytterhoeven
[not found] ` <1479148637-5399-1-git-send-email-geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org>
7 siblings, 0 replies; 13+ messages in thread
From: Geert Uytterhoeven @ 2016-11-14 18:37 UTC (permalink / raw)
To: Simon Horman, Magnus Damm
Cc: Arnd Bergmann, Rob Herring, Mark Rutland, Dirk Behme,
linux-renesas-soc, devicetree, linux-arm-kernel,
Geert Uytterhoeven
Add a device node for the Product Register, which provides SoC product
and revision information.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
v3:
- No changes,
v2:
- New.
---
arch/arm64/boot/dts/renesas/r8a7795.dtsi | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm64/boot/dts/renesas/r8a7795.dtsi b/arch/arm64/boot/dts/renesas/r8a7795.dtsi
index 681f54422375f4f7..a39a702b904da73c 100644
--- a/arch/arm64/boot/dts/renesas/r8a7795.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a7795.dtsi
@@ -321,6 +321,11 @@
#power-domain-cells = <0>;
};
+ prr: chipid@fff00044 {
+ compatible = "renesas,prr";
+ reg = <0 0xfff00044 0 4>;
+ };
+
sysc: system-controller@e6180000 {
compatible = "renesas,r8a7795-sysc";
reg = <0 0xe6180000 0 0x0400>;
--
1.9.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v3 11/11] arm64: dts: r8a7796: Add device node for PRR
2016-11-14 18:37 [PATCH v3 00/11] soc: renesas: Identify SoC and register with the SoC bus Geert Uytterhoeven
` (5 preceding siblings ...)
2016-11-14 18:37 ` [PATCH v3 10/11] arm64: dts: r8a7795: " Geert Uytterhoeven
@ 2016-11-14 18:37 ` Geert Uytterhoeven
[not found] ` <1479148637-5399-1-git-send-email-geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org>
7 siblings, 0 replies; 13+ messages in thread
From: Geert Uytterhoeven @ 2016-11-14 18:37 UTC (permalink / raw)
To: Simon Horman, Magnus Damm
Cc: Arnd Bergmann, Rob Herring, Mark Rutland, Dirk Behme,
linux-renesas-soc, devicetree, linux-arm-kernel,
Geert Uytterhoeven
Add a device node for the Product Register, which provides SoC product
and revision information.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
v3:
- Add to posted series,
v2:
- New.
---
arch/arm64/boot/dts/renesas/r8a7796.dtsi | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi b/arch/arm64/boot/dts/renesas/r8a7796.dtsi
index 9599f5691099054b..41a050d2f1925552 100644
--- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi
@@ -243,6 +243,11 @@
#power-domain-cells = <0>;
};
+ prr: chipid@fff00044 {
+ compatible = "renesas,prr";
+ reg = <0 0xfff00044 0 4>;
+ };
+
sysc: system-controller@e6180000 {
compatible = "renesas,r8a7796-sysc";
reg = <0 0xe6180000 0 0x0400>;
--
1.9.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v3 00/11] soc: renesas: Identify SoC and register with the SoC bus
[not found] ` <1479148637-5399-1-git-send-email-geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org>
` (3 preceding siblings ...)
2016-11-14 18:37 ` [PATCH v3 08/11] ARM: dts: r8a7793: " Geert Uytterhoeven
@ 2016-11-15 17:53 ` Simon Horman
4 siblings, 0 replies; 13+ messages in thread
From: Simon Horman @ 2016-11-15 17:53 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: Magnus Damm, Arnd Bergmann, Rob Herring, Mark Rutland, Dirk Behme,
linux-renesas-soc-u79uwXL29TY76Z2rM5mHXA,
devicetree-u79uwXL29TY76Z2rM5mHXA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
On Mon, Nov 14, 2016 at 07:37:06PM +0100, Geert Uytterhoeven wrote:
> Hi Simon, Magnus,
>
> Some Renesas SoCs may exist in different revisions, providing slightly
> different functionalities (e.g. R-Car H3 ES1.x and ES2.0), and behavior
> (errate and quirks). This needs to be catered for by drivers and/or
> platform code. The recently proposed soc_device_match() API is a good
> fit to handle this.
>
> This patch series implements the core infrastructure to provide SoC and
> revision information through the SoC bus for Renesas ARM SoCs.
For the record I have queued this up.
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2016-11-15 17:53 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-14 18:37 [PATCH v3 00/11] soc: renesas: Identify SoC and register with the SoC bus Geert Uytterhoeven
2016-11-14 18:37 ` [PATCH v3 01/11] ARM: shmobile: Document DT bindings for Product Register Geert Uytterhoeven
2016-11-14 18:37 ` [PATCH v3 02/11] soc: renesas: Identify SoC and register with the SoC bus Geert Uytterhoeven
2016-11-14 18:37 ` [PATCH v3 04/11] ARM: dts: r8a7779: Add device node for PRR Geert Uytterhoeven
2016-11-14 18:37 ` [PATCH v3 05/11] ARM: dts: r8a7790: " Geert Uytterhoeven
2016-11-14 18:37 ` [PATCH v3 09/11] ARM: dts: r8a7794: " Geert Uytterhoeven
2016-11-14 18:37 ` [PATCH v3 10/11] arm64: dts: r8a7795: " Geert Uytterhoeven
2016-11-14 18:37 ` [PATCH v3 11/11] arm64: dts: r8a7796: " Geert Uytterhoeven
[not found] ` <1479148637-5399-1-git-send-email-geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org>
2016-11-14 18:37 ` [PATCH v3 03/11] ARM: dts: r8a73a4: " Geert Uytterhoeven
2016-11-14 18:37 ` [PATCH v3 06/11] ARM: dts: r8a7791: " Geert Uytterhoeven
2016-11-14 18:37 ` [PATCH v3 07/11] ARM: dts: r8a7792: " Geert Uytterhoeven
2016-11-14 18:37 ` [PATCH v3 08/11] ARM: dts: r8a7793: " Geert Uytterhoeven
2016-11-15 17:53 ` [PATCH v3 00/11] soc: renesas: Identify SoC and register with the SoC bus Simon Horman
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).