* [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 [not found] ` <1479148637-5399-1-git-send-email-geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org> ` (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
[parent not found: <1479148637-5399-1-git-send-email-geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org>]
* [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 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: Add device node for PRR 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: Add device node for PRR 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
* 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
* [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 ` (2 preceding siblings ...) [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 05/11] ARM: dts: r8a7790: " 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/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 ` (3 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 ` (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/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 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 ` (4 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 2016-11-14 18:37 ` [PATCH v3 11/11] arm64: dts: r8a7796: " Geert Uytterhoeven 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 ` (5 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 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 ` (6 preceding siblings ...) 2016-11-14 18:37 ` [PATCH v3 10/11] arm64: dts: r8a7795: " Geert Uytterhoeven @ 2016-11-14 18:37 ` Geert Uytterhoeven 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
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 [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: Add device node for PRR 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 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
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).