* [v16, 0/7] Fix eSDHC host version register bug
@ 2016-11-09 3:14 Yangbo Lu
2016-11-09 3:14 ` [v16, 1/7] ARM64: dts: ls2080a: add device configuration node Yangbo Lu
` (8 more replies)
0 siblings, 9 replies; 15+ messages in thread
From: Yangbo Lu @ 2016-11-09 3:14 UTC (permalink / raw)
To: linux-arm-kernel
This patchset is used to fix a host version register bug in the T4240-R1.0-R2.0
eSDHC controller. To match the SoC version and revision, 15 previous version
patchsets had tried many methods but all of them were rejected by reviewers.
Such as
- dts compatible method
- syscon method
- ifdef PPC method
- GUTS driver getting SVR method
Anrd suggested a soc_device_match method in v10, and this is the only available
method left now. This v11 patchset introduces the soc_device_match interface in
soc driver.
The first four patches of Yangbo are to add the GUTS driver. This is used to
register a soc device which contain soc version and revision information.
The other three patches introduce the soc_device_match method in soc driver
and apply it on esdhc driver to fix this bug.
---
Changes for v15:
- Dropped patch 'dt: bindings: update Freescale DCFG compatible'
since the work had been done by below patch on ShawnGuo's linux tree.
'dt-bindings: fsl: add LS1043A/LS1046A/LS2080A compatible for SCFG
and DCFG'
- Fixed error code issue in guts driver
Changes for v16:
- Dropped patch 'powerpc/fsl: move mpc85xx.h to include/linux/fsl'
- Added a bug-fix patch from Geert
---
Arnd Bergmann (1):
base: soc: introduce soc_device_match() interface
Geert Uytterhoeven (1):
base: soc: Check for NULL SoC device attributes
Yangbo Lu (5):
ARM64: dts: ls2080a: add device configuration node
dt: bindings: move guts devicetree doc out of powerpc directory
soc: fsl: add GUTS driver for QorIQ platforms
MAINTAINERS: add entry for Freescale SoC drivers
mmc: sdhci-of-esdhc: fix host version for T4240-R1.0-R2.0
.../bindings/{powerpc => soc}/fsl/guts.txt | 3 +
MAINTAINERS | 11 +-
arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi | 6 +
drivers/base/Kconfig | 1 +
drivers/base/soc.c | 70 ++++++
drivers/mmc/host/Kconfig | 1 +
drivers/mmc/host/sdhci-of-esdhc.c | 20 ++
drivers/soc/Kconfig | 3 +-
drivers/soc/fsl/Kconfig | 18 ++
drivers/soc/fsl/Makefile | 1 +
drivers/soc/fsl/guts.c | 236 +++++++++++++++++++++
include/linux/fsl/guts.h | 125 ++++++-----
include/linux/sys_soc.h | 3 +
13 files changed, 447 insertions(+), 51 deletions(-)
rename Documentation/devicetree/bindings/{powerpc => soc}/fsl/guts.txt (91%)
create mode 100644 drivers/soc/fsl/Kconfig
create mode 100644 drivers/soc/fsl/guts.c
--
2.1.0.27.g96db324
^ permalink raw reply [flat|nested] 15+ messages in thread* [v16, 1/7] ARM64: dts: ls2080a: add device configuration node 2016-11-09 3:14 [v16, 0/7] Fix eSDHC host version register bug Yangbo Lu @ 2016-11-09 3:14 ` Yangbo Lu 2016-11-09 3:14 ` [v16, 2/7] dt: bindings: move guts devicetree doc out of powerpc directory Yangbo Lu ` (7 subsequent siblings) 8 siblings, 0 replies; 15+ messages in thread From: Yangbo Lu @ 2016-11-09 3:14 UTC (permalink / raw) To: linux-arm-kernel Add the dts node for device configuration unit that provides general purpose configuration and status for the device. Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> Acked-by: Scott Wood <oss@buserror.net> Acked-by: Arnd Bergmann <arnd@arndb.de> --- Changes for v5: - Added this patch Changes for v6: - None Changes for v7: - None Changes for v8: - Added 'Acked-by: Scott Wood' Changes for v9: - None Changes for v10: - None Changes for v11: - None Changes for v12: - None Changes for v13: - None Changes for v14: - None Changes for v15: - None Changes for v16: - Added 'Acked-by: Arnd' --- arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi index 7f0dc13..d058e56 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi @@ -216,6 +216,12 @@ clocks = <&sysclk>; }; + dcfg: dcfg at 1e00000 { + compatible = "fsl,ls2080a-dcfg", "syscon"; + reg = <0x0 0x1e00000 0x0 0x10000>; + little-endian; + }; + serial0: serial at 21c0500 { compatible = "fsl,ns16550", "ns16550a"; reg = <0x0 0x21c0500 0x0 0x100>; -- 2.1.0.27.g96db324 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [v16, 2/7] dt: bindings: move guts devicetree doc out of powerpc directory 2016-11-09 3:14 [v16, 0/7] Fix eSDHC host version register bug Yangbo Lu 2016-11-09 3:14 ` [v16, 1/7] ARM64: dts: ls2080a: add device configuration node Yangbo Lu @ 2016-11-09 3:14 ` Yangbo Lu 2016-11-09 3:14 ` [v16, 3/7] soc: fsl: add GUTS driver for QorIQ platforms Yangbo Lu ` (6 subsequent siblings) 8 siblings, 0 replies; 15+ messages in thread From: Yangbo Lu @ 2016-11-09 3:14 UTC (permalink / raw) To: linux-arm-kernel Move guts devicetree doc to Documentation/devicetree/bindings/soc/fsl/ since it's used by not only PowerPC but also ARM. And add a specification for 'little-endian' property. Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> Acked-by: Rob Herring <robh@kernel.org> Acked-by: Scott Wood <oss@buserror.net> Acked-by: Arnd Bergmann <arnd@arndb.de> --- Changes for v4: - Added this patch Changes for v5: - Modified the description for little-endian property Changes for v6: - None Changes for v7: - None Changes for v8: - Added 'Acked-by: Scott Wood' - Added 'Acked-by: Rob Herring' Changes for v9: - None Changes for v10: - None Changes for v11: - None Changes for v12: - None Changes for v13: - None Changes for v14: - None Changes for v15: - None Changes for v16: - Added 'Acked-by: Arnd' --- Documentation/devicetree/bindings/{powerpc => soc}/fsl/guts.txt | 3 +++ 1 file changed, 3 insertions(+) rename Documentation/devicetree/bindings/{powerpc => soc}/fsl/guts.txt (91%) diff --git a/Documentation/devicetree/bindings/powerpc/fsl/guts.txt b/Documentation/devicetree/bindings/soc/fsl/guts.txt similarity index 91% rename from Documentation/devicetree/bindings/powerpc/fsl/guts.txt rename to Documentation/devicetree/bindings/soc/fsl/guts.txt index b71b203..07adca9 100644 --- a/Documentation/devicetree/bindings/powerpc/fsl/guts.txt +++ b/Documentation/devicetree/bindings/soc/fsl/guts.txt @@ -25,6 +25,9 @@ Recommended properties: - fsl,liodn-bits : Indicates the number of defined bits in the LIODN registers, for those SOCs that have a PAMU device. + - little-endian : Indicates that the global utilities block is little + endian. The default is big endian. + Examples: global-utilities at e0000 { /* global utilities block */ compatible = "fsl,mpc8548-guts"; -- 2.1.0.27.g96db324 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [v16, 3/7] soc: fsl: add GUTS driver for QorIQ platforms 2016-11-09 3:14 [v16, 0/7] Fix eSDHC host version register bug Yangbo Lu 2016-11-09 3:14 ` [v16, 1/7] ARM64: dts: ls2080a: add device configuration node Yangbo Lu 2016-11-09 3:14 ` [v16, 2/7] dt: bindings: move guts devicetree doc out of powerpc directory Yangbo Lu @ 2016-11-09 3:14 ` Yangbo Lu 2016-11-09 3:14 ` [v16, 4/7] MAINTAINERS: add entry for Freescale SoC drivers Yangbo Lu ` (5 subsequent siblings) 8 siblings, 0 replies; 15+ messages in thread From: Yangbo Lu @ 2016-11-09 3:14 UTC (permalink / raw) To: linux-arm-kernel The global utilities block controls power management, I/O device enabling, power-onreset(POR) configuration monitoring, alternate function selection for multiplexed signals,and clock control. This patch adds a driver to manage and access global utilities block. Initially only reading SVR and registering soc device are supported. Other guts accesses, such as reading RCW, should eventually be moved into this driver as well. Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> Acked-by: Arnd Bergmann <arnd@arndb.de> --- Changes for v4: - Added this patch Changes for v5: - Modified copyright info - Changed MODULE_LICENSE to GPL - Changed EXPORT_SYMBOL_GPL to EXPORT_SYMBOL - Made FSL_GUTS user-invisible - Added a complete compatible list for GUTS - Stored guts info in file-scope variable - Added mfspr() getting SVR - Redefined GUTS APIs - Called fsl_guts_init rather than using platform driver - Removed useless parentheses - Removed useless 'extern' key words Changes for v6: - Made guts thread safe in fsl_guts_init Changes for v7: - Removed 'ifdef' for function declaration in guts.h Changes for v8: - Fixes lines longer than 80 characters checkpatch issue - Added 'Acked-by: Scott Wood' Changes for v9: - None Changes for v10: - None Changes for v11: - Changed to platform driver Changes for v12: - Removed "signed-off-by: Scott" - Defined fsl_soc_die_attr struct array instead of soc_device_attribute - Re-designed soc_device_attribute for QorIQ SoC - Other minor fixes Changes for v13: - Rebased - Removed text after 'bool' in Kconfig - Removed ARCH ifdefs - Added more bits for ls1021a mask - Used devm Changes for v14: - Used devm_ioremap_resource Changes for v15: - Fixed error code for devm_ioremap_resource Changes for v16: - Removed header file svr.h and calculated REV_MAJ/MIN in this driver - Added 'Acked-by: Arnd' --- drivers/soc/Kconfig | 3 +- drivers/soc/fsl/Kconfig | 18 ++++ drivers/soc/fsl/Makefile | 1 + drivers/soc/fsl/guts.c | 236 +++++++++++++++++++++++++++++++++++++++++++++++ include/linux/fsl/guts.h | 125 +++++++++++++++---------- 5 files changed, 333 insertions(+), 50 deletions(-) create mode 100644 drivers/soc/fsl/Kconfig create mode 100644 drivers/soc/fsl/guts.c diff --git a/drivers/soc/Kconfig b/drivers/soc/Kconfig index e6e90e8..f31bceb 100644 --- a/drivers/soc/Kconfig +++ b/drivers/soc/Kconfig @@ -1,8 +1,7 @@ menu "SOC (System On Chip) specific Drivers" source "drivers/soc/bcm/Kconfig" -source "drivers/soc/fsl/qbman/Kconfig" -source "drivers/soc/fsl/qe/Kconfig" +source "drivers/soc/fsl/Kconfig" source "drivers/soc/mediatek/Kconfig" source "drivers/soc/qcom/Kconfig" source "drivers/soc/rockchip/Kconfig" diff --git a/drivers/soc/fsl/Kconfig b/drivers/soc/fsl/Kconfig new file mode 100644 index 0000000..7a9fb9b --- /dev/null +++ b/drivers/soc/fsl/Kconfig @@ -0,0 +1,18 @@ +# +# Freescale SOC drivers +# + +source "drivers/soc/fsl/qbman/Kconfig" +source "drivers/soc/fsl/qe/Kconfig" + +config FSL_GUTS + bool + select SOC_BUS + help + The global utilities block controls power management, I/O device + enabling, power-onreset(POR) configuration monitoring, alternate + function selection for multiplexed signals,and clock control. + This driver is to manage and access global utilities block. + Initially only reading SVR and registering soc device are supported. + Other guts accesses, such as reading RCW, should eventually be moved + into this driver as well. diff --git a/drivers/soc/fsl/Makefile b/drivers/soc/fsl/Makefile index 75e1f53..44b3beb 100644 --- a/drivers/soc/fsl/Makefile +++ b/drivers/soc/fsl/Makefile @@ -5,3 +5,4 @@ obj-$(CONFIG_FSL_DPAA) += qbman/ obj-$(CONFIG_QUICC_ENGINE) += qe/ obj-$(CONFIG_CPM) += qe/ +obj-$(CONFIG_FSL_GUTS) += guts.o diff --git a/drivers/soc/fsl/guts.c b/drivers/soc/fsl/guts.c new file mode 100644 index 0000000..0ac8826 --- /dev/null +++ b/drivers/soc/fsl/guts.c @@ -0,0 +1,236 @@ +/* + * Freescale QorIQ Platforms GUTS Driver + * + * Copyright (C) 2016 Freescale Semiconductor, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + */ + +#include <linux/io.h> +#include <linux/slab.h> +#include <linux/module.h> +#include <linux/of_fdt.h> +#include <linux/sys_soc.h> +#include <linux/of_address.h> +#include <linux/platform_device.h> +#include <linux/fsl/guts.h> + +struct guts { + struct ccsr_guts __iomem *regs; + bool little_endian; +}; + +struct fsl_soc_die_attr { + char *die; + u32 svr; + u32 mask; +}; + +static struct guts *guts; +static struct soc_device_attribute soc_dev_attr; +static struct soc_device *soc_dev; + + +/* SoC die attribute definition for QorIQ platform */ +static const struct fsl_soc_die_attr fsl_soc_die[] = { + /* + * Power Architecture-based SoCs T Series + */ + + /* Die: T4240, SoC: T4240/T4160/T4080 */ + { .die = "T4240", + .svr = 0x82400000, + .mask = 0xfff00000, + }, + /* Die: T1040, SoC: T1040/T1020/T1042/T1022 */ + { .die = "T1040", + .svr = 0x85200000, + .mask = 0xfff00000, + }, + /* Die: T2080, SoC: T2080/T2081 */ + { .die = "T2080", + .svr = 0x85300000, + .mask = 0xfff00000, + }, + /* Die: T1024, SoC: T1024/T1014/T1023/T1013 */ + { .die = "T1024", + .svr = 0x85400000, + .mask = 0xfff00000, + }, + + /* + * ARM-based SoCs LS Series + */ + + /* Die: LS1043A, SoC: LS1043A/LS1023A */ + { .die = "LS1043A", + .svr = 0x87920000, + .mask = 0xffff0000, + }, + /* Die: LS2080A, SoC: LS2080A/LS2040A/LS2085A */ + { .die = "LS2080A", + .svr = 0x87010000, + .mask = 0xff3f0000, + }, + /* Die: LS1088A, SoC: LS1088A/LS1048A/LS1084A/LS1044A */ + { .die = "LS1088A", + .svr = 0x87030000, + .mask = 0xff3f0000, + }, + /* Die: LS1012A, SoC: LS1012A */ + { .die = "LS1012A", + .svr = 0x87040000, + .mask = 0xffff0000, + }, + /* Die: LS1046A, SoC: LS1046A/LS1026A */ + { .die = "LS1046A", + .svr = 0x87070000, + .mask = 0xffff0000, + }, + /* Die: LS2088A, SoC: LS2088A/LS2048A/LS2084A/LS2044A */ + { .die = "LS2088A", + .svr = 0x87090000, + .mask = 0xff3f0000, + }, + /* Die: LS1021A, SoC: LS1021A/LS1020A/LS1022A */ + { .die = "LS1021A", + .svr = 0x87000000, + .mask = 0xfff70000, + }, + { }, +}; + +static const struct fsl_soc_die_attr *fsl_soc_die_match( + u32 svr, const struct fsl_soc_die_attr *matches) +{ + while (matches->svr) { + if (matches->svr == (svr & matches->mask)) + return matches; + matches++; + }; + return NULL; +} + +u32 fsl_guts_get_svr(void) +{ + u32 svr = 0; + + if (!guts || !guts->regs) + return svr; + + if (guts->little_endian) + svr = ioread32(&guts->regs->svr); + else + svr = ioread32be(&guts->regs->svr); + + return svr; +} +EXPORT_SYMBOL(fsl_guts_get_svr); + +static int fsl_guts_probe(struct platform_device *pdev) +{ + struct device_node *np = pdev->dev.of_node; + struct device *dev = &pdev->dev; + struct resource *res; + const struct fsl_soc_die_attr *soc_die; + const char *machine; + u32 svr; + + /* Initialize guts */ + guts = devm_kzalloc(dev, sizeof(*guts), GFP_KERNEL); + if (!guts) + return -ENOMEM; + + guts->little_endian = of_property_read_bool(np, "little-endian"); + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + guts->regs = devm_ioremap_resource(dev, res); + if (IS_ERR(guts->regs)) + return PTR_ERR(guts->regs); + + /* Register soc device */ + machine = of_flat_dt_get_machine_name(); + if (machine) + soc_dev_attr.machine = devm_kstrdup(dev, machine, GFP_KERNEL); + + svr = fsl_guts_get_svr(); + soc_die = fsl_soc_die_match(svr, fsl_soc_die); + if (soc_die) { + soc_dev_attr.family = devm_kasprintf(dev, GFP_KERNEL, + "QorIQ %s", soc_die->die); + } else { + soc_dev_attr.family = devm_kasprintf(dev, GFP_KERNEL, "QorIQ"); + } + soc_dev_attr.soc_id = devm_kasprintf(dev, GFP_KERNEL, + "svr:0x%08x", svr); + soc_dev_attr.revision = devm_kasprintf(dev, GFP_KERNEL, "%d.%d", + (svr >> 4) & 0xf, svr & 0xf); + + soc_dev = soc_device_register(&soc_dev_attr); + if (IS_ERR(soc_dev)) + return PTR_ERR(soc_dev); + + pr_info("Machine: %s\n", soc_dev_attr.machine); + pr_info("SoC family: %s\n", soc_dev_attr.family); + pr_info("SoC ID: %s, Revision: %s\n", + soc_dev_attr.soc_id, soc_dev_attr.revision); + return 0; +} + +static int fsl_guts_remove(struct platform_device *dev) +{ + soc_device_unregister(soc_dev); + return 0; +} + +/* + * Table for matching compatible strings, for device tree + * guts node, for Freescale QorIQ SOCs. + */ +static const struct of_device_id fsl_guts_of_match[] = { + { .compatible = "fsl,qoriq-device-config-1.0", }, + { .compatible = "fsl,qoriq-device-config-2.0", }, + { .compatible = "fsl,p1010-guts", }, + { .compatible = "fsl,p1020-guts", }, + { .compatible = "fsl,p1021-guts", }, + { .compatible = "fsl,p1022-guts", }, + { .compatible = "fsl,p1023-guts", }, + { .compatible = "fsl,p2020-guts", }, + { .compatible = "fsl,bsc9131-guts", }, + { .compatible = "fsl,bsc9132-guts", }, + { .compatible = "fsl,mpc8536-guts", }, + { .compatible = "fsl,mpc8544-guts", }, + { .compatible = "fsl,mpc8548-guts", }, + { .compatible = "fsl,mpc8568-guts", }, + { .compatible = "fsl,mpc8569-guts", }, + { .compatible = "fsl,mpc8572-guts", }, + { .compatible = "fsl,ls1021a-dcfg", }, + { .compatible = "fsl,ls1043a-dcfg", }, + { .compatible = "fsl,ls2080a-dcfg", }, + {} +}; +MODULE_DEVICE_TABLE(of, fsl_guts_of_match); + +static struct platform_driver fsl_guts_driver = { + .driver = { + .name = "fsl-guts", + .of_match_table = fsl_guts_of_match, + }, + .probe = fsl_guts_probe, + .remove = fsl_guts_remove, +}; + +static int __init fsl_guts_init(void) +{ + return platform_driver_register(&fsl_guts_driver); +} +core_initcall(fsl_guts_init); + +static void __exit fsl_guts_exit(void) +{ + platform_driver_unregister(&fsl_guts_driver); +} +module_exit(fsl_guts_exit); diff --git a/include/linux/fsl/guts.h b/include/linux/fsl/guts.h index 649e917..3efa3b8 100644 --- a/include/linux/fsl/guts.h +++ b/include/linux/fsl/guts.h @@ -29,83 +29,112 @@ * #ifdefs. */ struct ccsr_guts { - __be32 porpllsr; /* 0x.0000 - POR PLL Ratio Status Register */ - __be32 porbmsr; /* 0x.0004 - POR Boot Mode Status Register */ - __be32 porimpscr; /* 0x.0008 - POR I/O Impedance Status and Control Register */ - __be32 pordevsr; /* 0x.000c - POR I/O Device Status Register */ - __be32 pordbgmsr; /* 0x.0010 - POR Debug Mode Status Register */ - __be32 pordevsr2; /* 0x.0014 - POR device status register 2 */ + u32 porpllsr; /* 0x.0000 - POR PLL Ratio Status Register */ + u32 porbmsr; /* 0x.0004 - POR Boot Mode Status Register */ + u32 porimpscr; /* 0x.0008 - POR I/O Impedance Status and + * Control Register + */ + u32 pordevsr; /* 0x.000c - POR I/O Device Status Register */ + u32 pordbgmsr; /* 0x.0010 - POR Debug Mode Status Register */ + u32 pordevsr2; /* 0x.0014 - POR device status register 2 */ u8 res018[0x20 - 0x18]; - __be32 porcir; /* 0x.0020 - POR Configuration Information Register */ + u32 porcir; /* 0x.0020 - POR Configuration Information + * Register + */ u8 res024[0x30 - 0x24]; - __be32 gpiocr; /* 0x.0030 - GPIO Control Register */ + u32 gpiocr; /* 0x.0030 - GPIO Control Register */ u8 res034[0x40 - 0x34]; - __be32 gpoutdr; /* 0x.0040 - General-Purpose Output Data Register */ + u32 gpoutdr; /* 0x.0040 - General-Purpose Output Data + * Register + */ u8 res044[0x50 - 0x44]; - __be32 gpindr; /* 0x.0050 - General-Purpose Input Data Register */ + u32 gpindr; /* 0x.0050 - General-Purpose Input Data + * Register + */ u8 res054[0x60 - 0x54]; - __be32 pmuxcr; /* 0x.0060 - Alternate Function Signal Multiplex Control */ - __be32 pmuxcr2; /* 0x.0064 - Alternate function signal multiplex control 2 */ - __be32 dmuxcr; /* 0x.0068 - DMA Mux Control Register */ + u32 pmuxcr; /* 0x.0060 - Alternate Function Signal + * Multiplex Control + */ + u32 pmuxcr2; /* 0x.0064 - Alternate function signal + * multiplex control 2 + */ + u32 dmuxcr; /* 0x.0068 - DMA Mux Control Register */ u8 res06c[0x70 - 0x6c]; - __be32 devdisr; /* 0x.0070 - Device Disable Control */ + u32 devdisr; /* 0x.0070 - Device Disable Control */ #define CCSR_GUTS_DEVDISR_TB1 0x00001000 #define CCSR_GUTS_DEVDISR_TB0 0x00004000 - __be32 devdisr2; /* 0x.0074 - Device Disable Control 2 */ + u32 devdisr2; /* 0x.0074 - Device Disable Control 2 */ u8 res078[0x7c - 0x78]; - __be32 pmjcr; /* 0x.007c - 4 Power Management Jog Control Register */ - __be32 powmgtcsr; /* 0x.0080 - Power Management Status and Control Register */ - __be32 pmrccr; /* 0x.0084 - Power Management Reset Counter Configuration Register */ - __be32 pmpdccr; /* 0x.0088 - Power Management Power Down Counter Configuration Register */ - __be32 pmcdr; /* 0x.008c - 4Power management clock disable register */ - __be32 mcpsumr; /* 0x.0090 - Machine Check Summary Register */ - __be32 rstrscr; /* 0x.0094 - Reset Request Status and Control Register */ - __be32 ectrstcr; /* 0x.0098 - Exception reset control register */ - __be32 autorstsr; /* 0x.009c - Automatic reset status register */ - __be32 pvr; /* 0x.00a0 - Processor Version Register */ - __be32 svr; /* 0x.00a4 - System Version Register */ + u32 pmjcr; /* 0x.007c - 4 Power Management Jog Control + * Register + */ + u32 powmgtcsr; /* 0x.0080 - Power Management Status and + * Control Register + */ + u32 pmrccr; /* 0x.0084 - Power Management Reset Counter + * Configuration Register + */ + u32 pmpdccr; /* 0x.0088 - Power Management Power Down Counter + * Configuration Register + */ + u32 pmcdr; /* 0x.008c - 4Power management clock disable + * register + */ + u32 mcpsumr; /* 0x.0090 - Machine Check Summary Register */ + u32 rstrscr; /* 0x.0094 - Reset Request Status and + * Control Register + */ + u32 ectrstcr; /* 0x.0098 - Exception reset control register */ + u32 autorstsr; /* 0x.009c - Automatic reset status register */ + u32 pvr; /* 0x.00a0 - Processor Version Register */ + u32 svr; /* 0x.00a4 - System Version Register */ u8 res0a8[0xb0 - 0xa8]; - __be32 rstcr; /* 0x.00b0 - Reset Control Register */ + u32 rstcr; /* 0x.00b0 - Reset Control Register */ u8 res0b4[0xc0 - 0xb4]; - __be32 iovselsr; /* 0x.00c0 - I/O voltage select status register + u32 iovselsr; /* 0x.00c0 - I/O voltage select status register Called 'elbcvselcr' on 86xx SOCs */ u8 res0c4[0x100 - 0xc4]; - __be32 rcwsr[16]; /* 0x.0100 - Reset Control Word Status registers + u32 rcwsr[16]; /* 0x.0100 - Reset Control Word Status registers There are 16 registers */ u8 res140[0x224 - 0x140]; - __be32 iodelay1; /* 0x.0224 - IO delay control register 1 */ - __be32 iodelay2; /* 0x.0228 - IO delay control register 2 */ + u32 iodelay1; /* 0x.0224 - IO delay control register 1 */ + u32 iodelay2; /* 0x.0228 - IO delay control register 2 */ u8 res22c[0x604 - 0x22c]; - __be32 pamubypenr; /* 0x.604 - PAMU bypass enable register */ + u32 pamubypenr; /* 0x.604 - PAMU bypass enable register */ u8 res608[0x800 - 0x608]; - __be32 clkdvdr; /* 0x.0800 - Clock Divide Register */ + u32 clkdvdr; /* 0x.0800 - Clock Divide Register */ u8 res804[0x900 - 0x804]; - __be32 ircr; /* 0x.0900 - Infrared Control Register */ + u32 ircr; /* 0x.0900 - Infrared Control Register */ u8 res904[0x908 - 0x904]; - __be32 dmacr; /* 0x.0908 - DMA Control Register */ + u32 dmacr; /* 0x.0908 - DMA Control Register */ u8 res90c[0x914 - 0x90c]; - __be32 elbccr; /* 0x.0914 - eLBC Control Register */ + u32 elbccr; /* 0x.0914 - eLBC Control Register */ u8 res918[0xb20 - 0x918]; - __be32 ddr1clkdr; /* 0x.0b20 - DDR1 Clock Disable Register */ - __be32 ddr2clkdr; /* 0x.0b24 - DDR2 Clock Disable Register */ - __be32 ddrclkdr; /* 0x.0b28 - DDR Clock Disable Register */ + u32 ddr1clkdr; /* 0x.0b20 - DDR1 Clock Disable Register */ + u32 ddr2clkdr; /* 0x.0b24 - DDR2 Clock Disable Register */ + u32 ddrclkdr; /* 0x.0b28 - DDR Clock Disable Register */ u8 resb2c[0xe00 - 0xb2c]; - __be32 clkocr; /* 0x.0e00 - Clock Out Select Register */ + u32 clkocr; /* 0x.0e00 - Clock Out Select Register */ u8 rese04[0xe10 - 0xe04]; - __be32 ddrdllcr; /* 0x.0e10 - DDR DLL Control Register */ + u32 ddrdllcr; /* 0x.0e10 - DDR DLL Control Register */ u8 rese14[0xe20 - 0xe14]; - __be32 lbcdllcr; /* 0x.0e20 - LBC DLL Control Register */ - __be32 cpfor; /* 0x.0e24 - L2 charge pump fuse override register */ + u32 lbcdllcr; /* 0x.0e20 - LBC DLL Control Register */ + u32 cpfor; /* 0x.0e24 - L2 charge pump fuse override + * register + */ u8 rese28[0xf04 - 0xe28]; - __be32 srds1cr0; /* 0x.0f04 - SerDes1 Control Register 0 */ - __be32 srds1cr1; /* 0x.0f08 - SerDes1 Control Register 0 */ + u32 srds1cr0; /* 0x.0f04 - SerDes1 Control Register 0 */ + u32 srds1cr1; /* 0x.0f08 - SerDes1 Control Register 0 */ u8 resf0c[0xf2c - 0xf0c]; - __be32 itcr; /* 0x.0f2c - Internal transaction control register */ + u32 itcr; /* 0x.0f2c - Internal transaction control + * register + */ u8 resf30[0xf40 - 0xf30]; - __be32 srds2cr0; /* 0x.0f40 - SerDes2 Control Register 0 */ - __be32 srds2cr1; /* 0x.0f44 - SerDes2 Control Register 0 */ + u32 srds2cr0; /* 0x.0f40 - SerDes2 Control Register 0 */ + u32 srds2cr1; /* 0x.0f44 - SerDes2 Control Register 0 */ } __attribute__ ((packed)); +u32 fsl_guts_get_svr(void); /* Alternate function signal multiplex control */ #define MPC85xx_PMUXCR_QE(x) (0x8000 >> (x)) -- 2.1.0.27.g96db324 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [v16, 4/7] MAINTAINERS: add entry for Freescale SoC drivers 2016-11-09 3:14 [v16, 0/7] Fix eSDHC host version register bug Yangbo Lu ` (2 preceding siblings ...) 2016-11-09 3:14 ` [v16, 3/7] soc: fsl: add GUTS driver for QorIQ platforms Yangbo Lu @ 2016-11-09 3:14 ` Yangbo Lu 2016-11-09 3:14 ` [v16, 5/7] base: soc: introduce soc_device_match() interface Yangbo Lu ` (4 subsequent siblings) 8 siblings, 0 replies; 15+ messages in thread From: Yangbo Lu @ 2016-11-09 3:14 UTC (permalink / raw) To: linux-arm-kernel Add maintainer entry for Freescale SoC drivers including the QE library and the GUTS driver now. Also add maintainer for QE library. Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> Acked-by: Scott Wood <oss@buserror.net> Acked-by: Qiang Zhao <qiang.zhao@nxp.com> Acked-by: Arnd Bergmann <arnd@arndb.de> --- Changes for v8: - Added this patch Changes for v9: - Added linux-arm mail list - Removed GUTS driver entry Changes for v10: - Changed 'DRIVER' to 'DRIVERS' - Added 'Acked-by' of Scott and Qiang Changes for v11: - None Changes for v12: - None Changes for v13: - None Changes for v14: - None Changes for v15: - None Changes for v16: - Added 'Acked-by: Arnd' --- MAINTAINERS | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index 9be761f..e1a8835 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -5045,9 +5045,18 @@ S: Maintained F: drivers/net/ethernet/freescale/fman F: Documentation/devicetree/bindings/powerpc/fsl/fman.txt +FREESCALE SOC DRIVERS +M: Scott Wood <oss@buserror.net> +L: linuxppc-dev at lists.ozlabs.org +L: linux-arm-kernel at lists.infradead.org +S: Maintained +F: drivers/soc/fsl/ +F: include/linux/fsl/ + FREESCALE QUICC ENGINE LIBRARY +M: Qiang Zhao <qiang.zhao@nxp.com> L: linuxppc-dev at lists.ozlabs.org -S: Orphan +S: Maintained F: drivers/soc/fsl/qe/ F: include/soc/fsl/*qe*.h F: include/soc/fsl/*ucc*.h -- 2.1.0.27.g96db324 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [v16, 5/7] base: soc: introduce soc_device_match() interface 2016-11-09 3:14 [v16, 0/7] Fix eSDHC host version register bug Yangbo Lu ` (3 preceding siblings ...) 2016-11-09 3:14 ` [v16, 4/7] MAINTAINERS: add entry for Freescale SoC drivers Yangbo Lu @ 2016-11-09 3:14 ` Yangbo Lu 2016-11-09 3:14 ` [v16, 6/7] base: soc: Check for NULL SoC device attributes Yangbo Lu ` (3 subsequent siblings) 8 siblings, 0 replies; 15+ messages in thread From: Yangbo Lu @ 2016-11-09 3:14 UTC (permalink / raw) To: linux-arm-kernel From: Arnd Bergmann <arnd@arndb.de> We keep running into cases where device drivers want to know the exact version of the a SoC they are currently running on. In the past, this has usually been done through a vendor specific API that can be called by a driver, or by directly accessing some kind of version register that is not part of the device itself but that belongs to a global register area of the chip. Common reasons for doing this include: - A machine is not using devicetree or similar for passing data about on-chip devices, but just announces their presence using boot-time platform devices, and the machine code itself does not care about the revision. - There is existing firmware or boot loaders with existing DT binaries with generic compatible strings that do not identify the particular revision of each device, but the driver knows which SoC revisions include which part. - A prerelease version of a chip has some quirks and we are using the same version of the bootloader and the DT blob on both the prerelease and the final version. An update of the DT binding seems inappropriate because that would involve maintaining multiple copies of the dts and/or bootloader. This patch introduces the soc_device_match() interface that is meant to work like of_match_node() but instead of identifying the version of a device, it identifies the SoC itself using a vendor-agnostic interface. Unlike of_match_node(), we do not do an exact string compare but instead use glob_match() to allow wildcards in strings. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- Changes for v11: - Added this patch for soc match Changes for v12: - Corrected the author - Rewrited soc_device_match with while loop Changes for v13: - Added ack from Greg Changes for v14: - None Changes for v15: - None Changes for v16: - None --- drivers/base/Kconfig | 1 + drivers/base/soc.c | 66 +++++++++++++++++++++++++++++++++++++++++++++++++ include/linux/sys_soc.h | 3 +++ 3 files changed, 70 insertions(+) diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig index d02e7c0..2abea87 100644 --- a/drivers/base/Kconfig +++ b/drivers/base/Kconfig @@ -237,6 +237,7 @@ config GENERIC_CPU_AUTOPROBE config SOC_BUS bool + select GLOB source "drivers/base/regmap/Kconfig" diff --git a/drivers/base/soc.c b/drivers/base/soc.c index b63f23e..0c5cf87 100644 --- a/drivers/base/soc.c +++ b/drivers/base/soc.c @@ -13,6 +13,7 @@ #include <linux/spinlock.h> #include <linux/sys_soc.h> #include <linux/err.h> +#include <linux/glob.h> static DEFINE_IDA(soc_ida); @@ -159,3 +160,68 @@ static int __init soc_bus_register(void) return bus_register(&soc_bus_type); } core_initcall(soc_bus_register); + +static int soc_device_match_one(struct device *dev, void *arg) +{ + struct soc_device *soc_dev = container_of(dev, struct soc_device, dev); + const struct soc_device_attribute *match = arg; + + if (match->machine && + !glob_match(match->machine, soc_dev->attr->machine)) + return 0; + + if (match->family && + !glob_match(match->family, soc_dev->attr->family)) + return 0; + + if (match->revision && + !glob_match(match->revision, soc_dev->attr->revision)) + return 0; + + if (match->soc_id && + !glob_match(match->soc_id, soc_dev->attr->soc_id)) + return 0; + + return 1; +} + +/* + * soc_device_match - identify the SoC in the machine + * @matches: zero-terminated array of possible matches + * + * returns the first matching entry of the argument array, or NULL + * if none of them match. + * + * This function is meant as a helper in place of of_match_node() + * in cases where either no device tree is available or the information + * in a device node is insufficient to identify a particular variant + * by its compatible strings or other properties. For new devices, + * the DT binding should always provide unique compatible strings + * that allow the use of of_match_node() instead. + * + * The calling function can use the .data entry of the + * soc_device_attribute to pass a structure or function pointer for + * each entry. + */ +const struct soc_device_attribute *soc_device_match( + const struct soc_device_attribute *matches) +{ + int ret = 0; + + if (!matches) + return NULL; + + while (!ret) { + if (!(matches->machine || matches->family || + matches->revision || matches->soc_id)) + break; + ret = bus_for_each_dev(&soc_bus_type, NULL, (void *)matches, + soc_device_match_one); + if (!ret) + matches++; + else + return matches; + } + return NULL; +} +EXPORT_SYMBOL_GPL(soc_device_match); diff --git a/include/linux/sys_soc.h b/include/linux/sys_soc.h index 2739ccb..9f5eb06 100644 --- a/include/linux/sys_soc.h +++ b/include/linux/sys_soc.h @@ -13,6 +13,7 @@ struct soc_device_attribute { const char *family; const char *revision; const char *soc_id; + const void *data; }; /** @@ -34,4 +35,6 @@ void soc_device_unregister(struct soc_device *soc_dev); */ struct device *soc_device_to_device(struct soc_device *soc); +const struct soc_device_attribute *soc_device_match( + const struct soc_device_attribute *matches); #endif /* __SOC_BUS_H */ -- 2.1.0.27.g96db324 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [v16, 6/7] base: soc: Check for NULL SoC device attributes 2016-11-09 3:14 [v16, 0/7] Fix eSDHC host version register bug Yangbo Lu ` (4 preceding siblings ...) 2016-11-09 3:14 ` [v16, 5/7] base: soc: introduce soc_device_match() interface Yangbo Lu @ 2016-11-09 3:14 ` Yangbo Lu 2016-11-09 3:14 ` [v16, 7/7] mmc: sdhci-of-esdhc: fix host version for T4240-R1.0-R2.0 Yangbo Lu ` (2 subsequent siblings) 8 siblings, 0 replies; 15+ messages in thread From: Yangbo Lu @ 2016-11-09 3:14 UTC (permalink / raw) To: linux-arm-kernel From: Geert Uytterhoeven <geert+renesas@glider.be> If soc_device_match() is used to check the value of a specific attribute that is not present for the current SoC, the kernel crashes with a NULL pointer dereference. Fix this by explicitly checking for the absence of a needed property, and considering this a non-match. Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Acked-by: Arnd Bergmann <arnd@arndb.de> --- Changes for v16: - Added this patch --- drivers/base/soc.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/base/soc.c b/drivers/base/soc.c index 0c5cf87..0e701e2 100644 --- a/drivers/base/soc.c +++ b/drivers/base/soc.c @@ -167,19 +167,23 @@ static int soc_device_match_one(struct device *dev, void *arg) const struct soc_device_attribute *match = arg; if (match->machine && - !glob_match(match->machine, soc_dev->attr->machine)) + (!soc_dev->attr->machine || + !glob_match(match->machine, soc_dev->attr->machine))) return 0; if (match->family && - !glob_match(match->family, soc_dev->attr->family)) + (!soc_dev->attr->family || + !glob_match(match->family, soc_dev->attr->family))) return 0; if (match->revision && - !glob_match(match->revision, soc_dev->attr->revision)) + (!soc_dev->attr->revision || + !glob_match(match->revision, soc_dev->attr->revision))) return 0; if (match->soc_id && - !glob_match(match->soc_id, soc_dev->attr->soc_id)) + (!soc_dev->attr->soc_id || + !glob_match(match->soc_id, soc_dev->attr->soc_id))) return 0; return 1; -- 2.1.0.27.g96db324 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [v16, 7/7] mmc: sdhci-of-esdhc: fix host version for T4240-R1.0-R2.0 2016-11-09 3:14 [v16, 0/7] Fix eSDHC host version register bug Yangbo Lu ` (5 preceding siblings ...) 2016-11-09 3:14 ` [v16, 6/7] base: soc: Check for NULL SoC device attributes Yangbo Lu @ 2016-11-09 3:14 ` Yangbo Lu 2016-11-09 9:18 ` [v16, 0/7] Fix eSDHC host version register bug Wolfram Sang 2016-11-09 18:27 ` Ulf Hansson 8 siblings, 0 replies; 15+ messages in thread From: Yangbo Lu @ 2016-11-09 3:14 UTC (permalink / raw) To: linux-arm-kernel The eSDHC of T4240-R1.0-R2.0 has incorrect vender version and spec version. Acturally the right version numbers should be VVN=0x13 and SVN = 0x1. This patch adds the GUTS driver support for eSDHC driver to match SoC. And fix host version to avoid that incorrect version numbers break down the ADMA data transfer. Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> Acked-by: Ulf Hansson <ulf.hansson@linaro.org> Acked-by: Scott Wood <oss@buserror.net> Acked-by: Arnd Bergmann <arnd@arndb.de> --- Changes for v2: - Got SVR through iomap instead of dts Changes for v3: - Managed GUTS through syscon instead of iomap in eSDHC driver Changes for v4: - Got SVR by GUTS driver instead of SYSCON Changes for v5: - Changed to get SVR through API fsl_guts_get_svr() - Combined patch 4, patch 5 and patch 6 into one Changes for v6: - Added 'Acked-by: Ulf Hansson' Changes for v7: - None Changes for v8: - Added 'Acked-by: Scott Wood' Changes for v9: - None Changes for v10: - None Changes for v11: - Changed to use soc_device_match Changes for v12: - Matched soc through .family field instead of .soc_id Changes for v13: - None Changes for v14: - None Changes for v15: - None Changes for v16: - Added 'Acked-by: Arnd' --- drivers/mmc/host/Kconfig | 1 + drivers/mmc/host/sdhci-of-esdhc.c | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig index 5cf7eba..4128a3c 100644 --- a/drivers/mmc/host/Kconfig +++ b/drivers/mmc/host/Kconfig @@ -144,6 +144,7 @@ config MMC_SDHCI_OF_ESDHC depends on MMC_SDHCI_PLTFM depends on PPC || ARCH_MXC || ARCH_LAYERSCAPE select MMC_SDHCI_IO_ACCESSORS + select FSL_GUTS help This selects the Freescale eSDHC controller support. diff --git a/drivers/mmc/host/sdhci-of-esdhc.c b/drivers/mmc/host/sdhci-of-esdhc.c index fb71c86..57bdb9e 100644 --- a/drivers/mmc/host/sdhci-of-esdhc.c +++ b/drivers/mmc/host/sdhci-of-esdhc.c @@ -18,6 +18,7 @@ #include <linux/of.h> #include <linux/delay.h> #include <linux/module.h> +#include <linux/sys_soc.h> #include <linux/mmc/host.h> #include "sdhci-pltfm.h" #include "sdhci-esdhc.h" @@ -28,6 +29,7 @@ struct sdhci_esdhc { u8 vendor_ver; u8 spec_ver; + bool quirk_incorrect_hostver; }; /** @@ -73,6 +75,8 @@ static u32 esdhc_readl_fixup(struct sdhci_host *host, static u16 esdhc_readw_fixup(struct sdhci_host *host, int spec_reg, u32 value) { + struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); + struct sdhci_esdhc *esdhc = sdhci_pltfm_priv(pltfm_host); u16 ret; int shift = (spec_reg & 0x2) * 8; @@ -80,6 +84,12 @@ static u16 esdhc_readw_fixup(struct sdhci_host *host, ret = value & 0xffff; else ret = (value >> shift) & 0xffff; + /* Workaround for T4240-R1.0-R2.0 eSDHC which has incorrect + * vendor version and spec version information. + */ + if ((spec_reg == SDHCI_HOST_VERSION) && + (esdhc->quirk_incorrect_hostver)) + ret = (VENDOR_V_23 << SDHCI_VENDOR_VER_SHIFT) | SDHCI_SPEC_200; return ret; } @@ -558,6 +568,12 @@ static const struct sdhci_pltfm_data sdhci_esdhc_le_pdata = { .ops = &sdhci_esdhc_le_ops, }; +static struct soc_device_attribute soc_incorrect_hostver[] = { + { .family = "QorIQ T4240", .revision = "1.0", }, + { .family = "QorIQ T4240", .revision = "2.0", }, + { }, +}; + static void esdhc_init(struct platform_device *pdev, struct sdhci_host *host) { struct sdhci_pltfm_host *pltfm_host; @@ -571,6 +587,10 @@ static void esdhc_init(struct platform_device *pdev, struct sdhci_host *host) esdhc->vendor_ver = (host_ver & SDHCI_VENDOR_VER_MASK) >> SDHCI_VENDOR_VER_SHIFT; esdhc->spec_ver = host_ver & SDHCI_SPEC_VER_MASK; + if (soc_device_match(soc_incorrect_hostver)) + esdhc->quirk_incorrect_hostver = true; + else + esdhc->quirk_incorrect_hostver = false; } static int sdhci_esdhc_probe(struct platform_device *pdev) -- 2.1.0.27.g96db324 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [v16, 0/7] Fix eSDHC host version register bug 2016-11-09 3:14 [v16, 0/7] Fix eSDHC host version register bug Yangbo Lu ` (6 preceding siblings ...) 2016-11-09 3:14 ` [v16, 7/7] mmc: sdhci-of-esdhc: fix host version for T4240-R1.0-R2.0 Yangbo Lu @ 2016-11-09 9:18 ` Wolfram Sang 2016-11-09 18:27 ` Ulf Hansson 8 siblings, 0 replies; 15+ messages in thread From: Wolfram Sang @ 2016-11-09 9:18 UTC (permalink / raw) To: linux-arm-kernel Can you please update your CC list? There is nothing i2c related in this patch series, so you could drop the i2c-list. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: not available URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20161109/022a8376/attachment.sig> ^ permalink raw reply [flat|nested] 15+ messages in thread
* [v16, 0/7] Fix eSDHC host version register bug 2016-11-09 3:14 [v16, 0/7] Fix eSDHC host version register bug Yangbo Lu ` (7 preceding siblings ...) 2016-11-09 9:18 ` [v16, 0/7] Fix eSDHC host version register bug Wolfram Sang @ 2016-11-09 18:27 ` Ulf Hansson 2016-11-10 3:55 ` Scott Wood 2016-11-10 9:26 ` Geert Uytterhoeven 8 siblings, 2 replies; 15+ messages in thread From: Ulf Hansson @ 2016-11-09 18:27 UTC (permalink / raw) To: linux-arm-kernel - i2c-list On 9 November 2016 at 04:14, Yangbo Lu <yangbo.lu@nxp.com> wrote: > This patchset is used to fix a host version register bug in the T4240-R1.0-R2.0 > eSDHC controller. To match the SoC version and revision, 15 previous version > patchsets had tried many methods but all of them were rejected by reviewers. > Such as > - dts compatible method > - syscon method > - ifdef PPC method > - GUTS driver getting SVR method > Anrd suggested a soc_device_match method in v10, and this is the only available > method left now. This v11 patchset introduces the soc_device_match interface in > soc driver. > > The first four patches of Yangbo are to add the GUTS driver. This is used to > register a soc device which contain soc version and revision information. > The other three patches introduce the soc_device_match method in soc driver > and apply it on esdhc driver to fix this bug. > > --- > Changes for v15: > - Dropped patch 'dt: bindings: update Freescale DCFG compatible' > since the work had been done by below patch on ShawnGuo's linux tree. > 'dt-bindings: fsl: add LS1043A/LS1046A/LS2080A compatible for SCFG > and DCFG' > - Fixed error code issue in guts driver > Changes for v16: > - Dropped patch 'powerpc/fsl: move mpc85xx.h to include/linux/fsl' > - Added a bug-fix patch from Geert > --- > > Arnd Bergmann (1): > base: soc: introduce soc_device_match() interface > > Geert Uytterhoeven (1): > base: soc: Check for NULL SoC device attributes > > Yangbo Lu (5): > ARM64: dts: ls2080a: add device configuration node > dt: bindings: move guts devicetree doc out of powerpc directory > soc: fsl: add GUTS driver for QorIQ platforms > MAINTAINERS: add entry for Freescale SoC drivers > mmc: sdhci-of-esdhc: fix host version for T4240-R1.0-R2.0 > > .../bindings/{powerpc => soc}/fsl/guts.txt | 3 + > MAINTAINERS | 11 +- > arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi | 6 + > drivers/base/Kconfig | 1 + > drivers/base/soc.c | 70 ++++++ > drivers/mmc/host/Kconfig | 1 + > drivers/mmc/host/sdhci-of-esdhc.c | 20 ++ > drivers/soc/Kconfig | 3 +- > drivers/soc/fsl/Kconfig | 18 ++ > drivers/soc/fsl/Makefile | 1 + > drivers/soc/fsl/guts.c | 236 +++++++++++++++++++++ > include/linux/fsl/guts.h | 125 ++++++----- > include/linux/sys_soc.h | 3 + > 13 files changed, 447 insertions(+), 51 deletions(-) > rename Documentation/devicetree/bindings/{powerpc => soc}/fsl/guts.txt (91%) > create mode 100644 drivers/soc/fsl/Kconfig > create mode 100644 drivers/soc/fsl/guts.c > > -- > 2.1.0.27.g96db324 > Thanks, applied on my mmc tree for next! I noticed that some DT compatibles weren't documented, according to checkpatch. Please fix that asap! Kind regards Ulf Hansson ^ permalink raw reply [flat|nested] 15+ messages in thread
* [v16, 0/7] Fix eSDHC host version register bug 2016-11-09 18:27 ` Ulf Hansson @ 2016-11-10 3:55 ` Scott Wood 2016-11-10 4:06 ` Y.B. Lu 2016-11-10 4:11 ` Y.B. Lu 2016-11-10 9:26 ` Geert Uytterhoeven 1 sibling, 2 replies; 15+ messages in thread From: Scott Wood @ 2016-11-10 3:55 UTC (permalink / raw) To: linux-arm-kernel On Wed, 2016-11-09 at 19:27 +0100, Ulf Hansson wrote: > - i2c-list > > On 9 November 2016 at 04:14, Yangbo Lu <yangbo.lu@nxp.com> wrote: > > > > This patchset is used to fix a host version register bug in the T4240- > > R1.0-R2.0 > > eSDHC controller. To match the SoC version and revision, 15 previous > > version > > patchsets had tried many methods but all of them were rejected by > > reviewers. > > Such as > > ????????- dts compatible method > > ????????- syscon method > > ????????- ifdef PPC method > > ????????- GUTS driver getting SVR method > > Anrd suggested a soc_device_match method in v10, and this is the only > > available > > method left now. This v11 patchset introduces the soc_device_match > > interface in > > soc driver. > > > > The first four patches of Yangbo are to add the GUTS driver. This is used > > to > > register a soc device which contain soc version and revision information. > > The other three patches introduce the soc_device_match method in soc > > driver > > and apply it on esdhc driver to fix this bug. > > > > --- > > Changes for v15: > > ????????- Dropped patch 'dt: bindings: update Freescale DCFG compatible' > > ??????????since the work had been done by below patch on ShawnGuo's linux > > tree. > > ??????????'dt-bindings: fsl: add LS1043A/LS1046A/LS2080A compatible for > > SCFG > > ???????????and DCFG' > > ????????- Fixed error code issue in guts driver > > Changes for v16: > > ????????- Dropped patch 'powerpc/fsl: move mpc85xx.h to include/linux/fsl' > > ????????- Added a bug-fix patch from Geert > > --- > > > > Arnd Bergmann (1): > > ? base: soc: introduce soc_device_match() interface > > > > Geert Uytterhoeven (1): > > ? base: soc: Check for NULL SoC device attributes > > > > Yangbo Lu (5): > > ? ARM64: dts: ls2080a: add device configuration node > > ? dt: bindings: move guts devicetree doc out of powerpc directory > > ? soc: fsl: add GUTS driver for QorIQ platforms > > ? MAINTAINERS: add entry for Freescale SoC drivers > > ? mmc: sdhci-of-esdhc: fix host version for T4240-R1.0-R2.0 > > > > ?.../bindings/{powerpc => soc}/fsl/guts.txt?????????|???3 + > > ?MAINTAINERS????????????????????????????????????????|??11 +- > > ?arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi?????|???6 + > > ?drivers/base/Kconfig???????????????????????????????|???1 + > > ?drivers/base/soc.c?????????????????????????????????|??70 ++++++ > > ?drivers/mmc/host/Kconfig???????????????????????????|???1 + > > ?drivers/mmc/host/sdhci-of-esdhc.c??????????????????|??20 ++ > > ?drivers/soc/Kconfig????????????????????????????????|???3 +- > > ?drivers/soc/fsl/Kconfig????????????????????????????|??18 ++ > > ?drivers/soc/fsl/Makefile???????????????????????????|???1 + > > ?drivers/soc/fsl/guts.c?????????????????????????????| 236 > > +++++++++++++++++++++ > > ?include/linux/fsl/guts.h???????????????????????????| 125 ++++++----- > > ?include/linux/sys_soc.h????????????????????????????|???3 + > > ?13 files changed, 447 insertions(+), 51 deletions(-) > > ?rename Documentation/devicetree/bindings/{powerpc => soc}/fsl/guts.txt > > (91%) > > ?create mode 100644 drivers/soc/fsl/Kconfig > > ?create mode 100644 drivers/soc/fsl/guts.c > > > > -- > > 2.1.0.27.g96db324 > > > Thanks, applied on my mmc tree for next! > > I noticed that some DT compatibles weren't documented, according to > checkpatch. Please fix that asap! They are documented, in fsl/guts.txt (the file moved in patch 2/7): > ?- compatible : Should define the compatible device type for > ???global-utilities. > ???Possible compatibles: > ????????"fsl,qoriq-device-config-1.0" > ????????"fsl,qoriq-device-config-2.0" > ????????"fsl,<chip>-device-config" > ????????"fsl,<chip>-guts" Checkpatch doesn't understand compatibles defined in such a way. -Scott ^ permalink raw reply [flat|nested] 15+ messages in thread
* [v16, 0/7] Fix eSDHC host version register bug 2016-11-10 3:55 ` Scott Wood @ 2016-11-10 4:06 ` Y.B. Lu 2016-11-10 4:11 ` Y.B. Lu 1 sibling, 0 replies; 15+ messages in thread From: Y.B. Lu @ 2016-11-10 4:06 UTC (permalink / raw) To: linux-arm-kernel > -----Original Message----- > From: linux-mmc-owner at vger.kernel.org [mailto:linux-mmc- > owner at vger.kernel.org] On Behalf Of Scott Wood > Sent: Thursday, November 10, 2016 11:55 AM > To: Ulf Hansson; Y.B. Lu > Cc: linux-mmc; Arnd Bergmann; linuxppc-dev at lists.ozlabs.org; > devicetree at vger.kernel.org; linux-arm-kernel at lists.infradead.org; linux- > kernel at vger.kernel.org; linux-clk; iommu at lists.linux-foundation.org; > netdev at vger.kernel.org; Greg Kroah-Hartman; Mark Rutland; Rob Herring; > Russell King; Jochen Friedrich; Joerg Roedel; Claudiu Manoil; Bhupesh > Sharma; Qiang Zhao; Kumar Gala; Leo Li; X.B. Xie; M.H. Lian > Subject: Re: [v16, 0/7] Fix eSDHC host version register bug > > On Wed, 2016-11-09 at 19:27 +0100, Ulf Hansson wrote: > > - i2c-list > > > > On 9 November 2016 at 04:14, Yangbo Lu <yangbo.lu@nxp.com> wrote: > > > > > > This patchset is used to fix a host version register bug in the > > > T4240- > > > R1.0-R2.0 > > > eSDHC controller. To match the SoC version and revision, 15 previous > > > version patchsets had tried many methods but all of them were > > > rejected by reviewers. > > > Such as > > > ????????- dts compatible method > > > ????????- syscon method > > > ????????- ifdef PPC method > > > ????????- GUTS driver getting SVR method Anrd suggested a > > > soc_device_match method in v10, and this is the only available > > > method left now. This v11 patchset introduces the soc_device_match > > > interface in soc driver. > > > > > > The first four patches of Yangbo are to add the GUTS driver. This is > > > used to register a soc device which contain soc version and revision > > > information. > > > The other three patches introduce the soc_device_match method in soc > > > driver and apply it on esdhc driver to fix this bug. > > > > > > --- > > > Changes for v15: > > > ????????- Dropped patch 'dt: bindings: update Freescale DCFG > compatible' > > > ??????????since the work had been done by below patch on ShawnGuo's > > > linux tree. > > > ??????????'dt-bindings: fsl: add LS1043A/LS1046A/LS2080A compatible > > > for SCFG > > > ???????????and DCFG' > > > ????????- Fixed error code issue in guts driver Changes for v16: > > > ????????- Dropped patch 'powerpc/fsl: move mpc85xx.h to > include/linux/fsl' > > > ????????- Added a bug-fix patch from Geert > > > --- > > > > > > Arnd Bergmann (1): > > > ? base: soc: introduce soc_device_match() interface > > > > > > Geert Uytterhoeven (1): > > > ? base: soc: Check for NULL SoC device attributes > > > > > > Yangbo Lu (5): > > > ? ARM64: dts: ls2080a: add device configuration node > > > ? dt: bindings: move guts devicetree doc out of powerpc directory > > > ? soc: fsl: add GUTS driver for QorIQ platforms > > > ? MAINTAINERS: add entry for Freescale SoC drivers > > > ? mmc: sdhci-of-esdhc: fix host version for T4240-R1.0-R2.0 > > > > > > ?.../bindings/{powerpc => soc}/fsl/guts.txt?????????|???3 + > > > ?MAINTAINERS????????????????????????????????????????|??11 +- > > > ?arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi?????|???6 + > > > ?drivers/base/Kconfig???????????????????????????????|???1 + > > > ?drivers/base/soc.c?????????????????????????????????|??70 ++++++ > > > ?drivers/mmc/host/Kconfig???????????????????????????|???1 + > > > ?drivers/mmc/host/sdhci-of-esdhc.c??????????????????|??20 ++ > > > ?drivers/soc/Kconfig????????????????????????????????|???3 +- > > > ?drivers/soc/fsl/Kconfig????????????????????????????|??18 ++ > > > ?drivers/soc/fsl/Makefile???????????????????????????|???1 + > > > ?drivers/soc/fsl/guts.c?????????????????????????????| 236 > > > +++++++++++++++++++++ > > > ?include/linux/fsl/guts.h???????????????????????????| 125 > > > ++++++----- > > > ?include/linux/sys_soc.h????????????????????????????|???3 + > > > ?13 files changed, 447 insertions(+), 51 deletions(-) > > > ?rename Documentation/devicetree/bindings/{powerpc => > > > soc}/fsl/guts.txt > > > (91%) > > > ?create mode 100644 drivers/soc/fsl/Kconfig > > > ?create mode 100644 drivers/soc/fsl/guts.c > > > > > > -- > > > 2.1.0.27.g96db324 > > > > > Thanks, applied on my mmc tree for next! > > > > I noticed that some DT compatibles weren't documented, according to > > checkpatch. Please fix that asap! > > They are documented, in fsl/guts.txt (the file moved in patch 2/7): > > ?- compatible : Should define the compatible device type for > > ???global-utilities. > > ???Possible compatibles: > > ????????"fsl,qoriq-device-config-1.0" > > ????????"fsl,qoriq-device-config-2.0" > > ????????"fsl,<chip>-device-config" > > ????????"fsl,<chip>-guts" > > Checkpatch doesn't understand compatibles defined in such a way. [Lu Yangbo-B47093] You're right, Scott. I dropped DT patch 'dt: bindings: update Freescale DCFG compatible ' which fixed un-doc issue since Shaohui had done this on Shawn Guo's tree. https://git.kernel.org/cgit/linux/kernel/git/shawnguo/linux.git/commit/?h=imx/dt64&id=981034a2bfcaff5c95dafde24d7abfe7f9025c19 Thanks. > > -Scott > > -- > To unsubscribe from this list: send the line "unsubscribe linux-mmc" in > the body of a message to majordomo at vger.kernel.org More majordomo info at > http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 15+ messages in thread
* [v16, 0/7] Fix eSDHC host version register bug 2016-11-10 3:55 ` Scott Wood 2016-11-10 4:06 ` Y.B. Lu @ 2016-11-10 4:11 ` Y.B. Lu 2016-11-10 5:17 ` Scott Wood 1 sibling, 1 reply; 15+ messages in thread From: Y.B. Lu @ 2016-11-10 4:11 UTC (permalink / raw) To: linux-arm-kernel > -----Original Message----- > From: Y.B. Lu > Sent: Thursday, November 10, 2016 12:06 PM > To: 'Scott Wood'; Ulf Hansson > Cc: linux-mmc; Arnd Bergmann; linuxppc-dev at lists.ozlabs.org; > devicetree at vger.kernel.org; linux-arm-kernel at lists.infradead.org; linux- > kernel at vger.kernel.org; linux-clk; iommu at lists.linux-foundation.org; > netdev at vger.kernel.org; Greg Kroah-Hartman; Mark Rutland; Rob Herring; > Russell King; Jochen Friedrich; Joerg Roedel; Claudiu Manoil; Bhupesh > Sharma; Qiang Zhao; Kumar Gala; Leo Li; X.B. Xie; M.H. Lian > Subject: RE: [v16, 0/7] Fix eSDHC host version register bug > > > -----Original Message----- > > From: linux-mmc-owner at vger.kernel.org [mailto:linux-mmc- > > owner at vger.kernel.org] On Behalf Of Scott Wood > > Sent: Thursday, November 10, 2016 11:55 AM > > To: Ulf Hansson; Y.B. Lu > > Cc: linux-mmc; Arnd Bergmann; linuxppc-dev at lists.ozlabs.org; > > devicetree at vger.kernel.org; linux-arm-kernel at lists.infradead.org; > > linux- kernel at vger.kernel.org; linux-clk; > > iommu at lists.linux-foundation.org; netdev at vger.kernel.org; Greg > > Kroah-Hartman; Mark Rutland; Rob Herring; Russell King; Jochen > > Friedrich; Joerg Roedel; Claudiu Manoil; Bhupesh Sharma; Qiang Zhao; > > Kumar Gala; Leo Li; X.B. Xie; M.H. Lian > > Subject: Re: [v16, 0/7] Fix eSDHC host version register bug > > > > On Wed, 2016-11-09 at 19:27 +0100, Ulf Hansson wrote: > > > - i2c-list > > > > > > On 9 November 2016 at 04:14, Yangbo Lu <yangbo.lu@nxp.com> wrote: > > > > > > > > This patchset is used to fix a host version register bug in the > > > > T4240- > > > > R1.0-R2.0 > > > > eSDHC controller. To match the SoC version and revision, 15 > > > > previous version patchsets had tried many methods but all of them > > > > were rejected by reviewers. > > > > Such as > > > > ????????- dts compatible method > > > > ????????- syscon method > > > > ????????- ifdef PPC method > > > > ????????- GUTS driver getting SVR method Anrd suggested a > > > > soc_device_match method in v10, and this is the only available > > > > method left now. This v11 patchset introduces the soc_device_match > > > > interface in soc driver. > > > > > > > > The first four patches of Yangbo are to add the GUTS driver. This > > > > is used to register a soc device which contain soc version and > > > > revision information. > > > > The other three patches introduce the soc_device_match method in > > > > soc driver and apply it on esdhc driver to fix this bug. > > > > > > > > --- > > > > Changes for v15: > > > > ????????- Dropped patch 'dt: bindings: update Freescale DCFG > > compatible' > > > > ??????????since the work had been done by below patch on > > > > ShawnGuo's linux tree. > > > > ??????????'dt-bindings: fsl: add LS1043A/LS1046A/LS2080A > > > > compatible for SCFG > > > > ???????????and DCFG' > > > > ????????- Fixed error code issue in guts driver Changes for v16: > > > > ????????- Dropped patch 'powerpc/fsl: move mpc85xx.h to > > include/linux/fsl' > > > > ????????- Added a bug-fix patch from Geert > > > > --- > > > > > > > > Arnd Bergmann (1): > > > > ? base: soc: introduce soc_device_match() interface > > > > > > > > Geert Uytterhoeven (1): > > > > ? base: soc: Check for NULL SoC device attributes > > > > > > > > Yangbo Lu (5): > > > > ? ARM64: dts: ls2080a: add device configuration node > > > > ? dt: bindings: move guts devicetree doc out of powerpc directory > > > > ? soc: fsl: add GUTS driver for QorIQ platforms > > > > ? MAINTAINERS: add entry for Freescale SoC drivers > > > > ? mmc: sdhci-of-esdhc: fix host version for T4240-R1.0-R2.0 > > > > > > > > ?.../bindings/{powerpc => soc}/fsl/guts.txt?????????|???3 + > > > > ?MAINTAINERS????????????????????????????????????????|??11 +- > > > > ?arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi?????|???6 + > > > > ?drivers/base/Kconfig???????????????????????????????|???1 + > > > > ?drivers/base/soc.c?????????????????????????????????|??70 ++++++ > > > > ?drivers/mmc/host/Kconfig???????????????????????????|???1 + > > > > ?drivers/mmc/host/sdhci-of-esdhc.c??????????????????|??20 ++ > > > > ?drivers/soc/Kconfig????????????????????????????????|???3 +- > > > > ?drivers/soc/fsl/Kconfig????????????????????????????|??18 ++ > > > > ?drivers/soc/fsl/Makefile???????????????????????????|???1 + > > > > ?drivers/soc/fsl/guts.c?????????????????????????????| 236 > > > > +++++++++++++++++++++ > > > > ?include/linux/fsl/guts.h???????????????????????????| 125 > > > > ++++++----- > > > > ?include/linux/sys_soc.h????????????????????????????|???3 + > > > > ?13 files changed, 447 insertions(+), 51 deletions(-) > > > > ?rename Documentation/devicetree/bindings/{powerpc => > > > > soc}/fsl/guts.txt > > > > (91%) > > > > ?create mode 100644 drivers/soc/fsl/Kconfig > > > > ?create mode 100644 drivers/soc/fsl/guts.c > > > > > > > > -- > > > > 2.1.0.27.g96db324 > > > > > > > Thanks, applied on my mmc tree for next! > > > > > > I noticed that some DT compatibles weren't documented, according to > > > checkpatch. Please fix that asap! > > > > They are documented, in fsl/guts.txt (the file moved in patch 2/7): > > > ?- compatible : Should define the compatible device type for > > > ???global-utilities. > > > ???Possible compatibles: > > > ????????"fsl,qoriq-device-config-1.0" > > > ????????"fsl,qoriq-device-config-2.0" > > > ????????"fsl,<chip>-device-config" > > > ????????"fsl,<chip>-guts" > > > > Checkpatch doesn't understand compatibles defined in such a way. > > [Lu Yangbo-B47093] You're right, Scott. I dropped DT patch 'dt: bindings: > update Freescale DCFG compatible ' > which fixed un-doc issue since Shaohui had done this on Shawn Guo's tree. > https://git.kernel.org/cgit/linux/kernel/git/shawnguo/linux.git/commit/?h > =imx/dt64&id=981034a2bfcaff5c95dafde24d7abfe7f9025c19 > > Thanks. [Lu Yangbo-B47093] Both 'fsl,<chip>-guts' and 'fsl,<chip>-dcfg' would have no un-doc issue after Shaohui's patch are pulled :) > > > > > -Scott > > > > -- > > To unsubscribe from this list: send the line "unsubscribe linux-mmc" > > in the body of a message to majordomo at vger.kernel.org More majordomo > > info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 15+ messages in thread
* [v16, 0/7] Fix eSDHC host version register bug 2016-11-10 4:11 ` Y.B. Lu @ 2016-11-10 5:17 ` Scott Wood 0 siblings, 0 replies; 15+ messages in thread From: Scott Wood @ 2016-11-10 5:17 UTC (permalink / raw) To: linux-arm-kernel On Thu, 2016-11-10 at 04:11 +0000, Y.B. Lu wrote: > > > > -----Original Message----- > > From: Y.B. Lu > > Sent: Thursday, November 10, 2016 12:06 PM > > To: 'Scott Wood'; Ulf Hansson > > Cc: linux-mmc; Arnd Bergmann; linuxppc-dev at lists.ozlabs.org; > > devicetree at vger.kernel.org; linux-arm-kernel at lists.infradead.org; linux- > > kernel at vger.kernel.org; linux-clk; iommu at lists.linux-foundation.org; > > netdev at vger.kernel.org; Greg Kroah-Hartman; Mark Rutland; Rob Herring; > > Russell King; Jochen Friedrich; Joerg Roedel; Claudiu Manoil; Bhupesh > > Sharma; Qiang Zhao; Kumar Gala; Leo Li; X.B. Xie; M.H. Lian > > Subject: RE: [v16, 0/7] Fix eSDHC host version register bug > > > > > > > > -----Original Message----- > > > From: linux-mmc-owner at vger.kernel.org [mailto:linux-mmc- > > > owner at vger.kernel.org] On Behalf Of Scott Wood > > > Sent: Thursday, November 10, 2016 11:55 AM > > > To: Ulf Hansson; Y.B. Lu > > > Cc: linux-mmc; Arnd Bergmann; linuxppc-dev at lists.ozlabs.org; > > > devicetree at vger.kernel.org; linux-arm-kernel at lists.infradead.org; > > > linux- kernel at vger.kernel.org; linux-clk; > > > iommu at lists.linux-foundation.org; netdev at vger.kernel.org; Greg > > > Kroah-Hartman; Mark Rutland; Rob Herring; Russell King; Jochen > > > Friedrich; Joerg Roedel; Claudiu Manoil; Bhupesh Sharma; Qiang Zhao; > > > Kumar Gala; Leo Li; X.B. Xie; M.H. Lian > > > Subject: Re: [v16, 0/7] Fix eSDHC host version register bug > > > > > > On Wed, 2016-11-09 at 19:27 +0100, Ulf Hansson wrote: > > > > > > > > - i2c-list > > > > > > > > On 9 November 2016 at 04:14, Yangbo Lu <yangbo.lu@nxp.com> wrote: > > > > > > > > > > > > > > > This patchset is used to fix a host version register bug in the > > > > > T4240- > > > > > R1.0-R2.0 > > > > > eSDHC controller. To match the SoC version and revision, 15 > > > > > previous version patchsets had tried many methods but all of them > > > > > were rejected by reviewers. > > > > > Such as > > > > > ????????- dts compatible method > > > > > ????????- syscon method > > > > > ????????- ifdef PPC method > > > > > ????????- GUTS driver getting SVR method Anrd suggested a > > > > > soc_device_match method in v10, and this is the only available > > > > > method left now. This v11 patchset introduces the soc_device_match > > > > > interface in soc driver. > > > > > > > > > > The first four patches of Yangbo are to add the GUTS driver. This > > > > > is used to register a soc device which contain soc version and > > > > > revision information. > > > > > The other three patches introduce the soc_device_match method in > > > > > soc driver and apply it on esdhc driver to fix this bug. > > > > > > > > > > --- > > > > > Changes for v15: > > > > > ????????- Dropped patch 'dt: bindings: update Freescale DCFG > > > compatible' > > > > > > > > > > > > > > ??????????since the work had been done by below patch on > > > > > ShawnGuo's linux tree. > > > > > ??????????'dt-bindings: fsl: add LS1043A/LS1046A/LS2080A > > > > > compatible for SCFG > > > > > ???????????and DCFG' > > > > > ????????- Fixed error code issue in guts driver Changes for v16: > > > > > ????????- Dropped patch 'powerpc/fsl: move mpc85xx.h to > > > include/linux/fsl' > > > > > > > > > > > > > > ????????- Added a bug-fix patch from Geert > > > > > --- > > > > > > > > > > Arnd Bergmann (1): > > > > > ? base: soc: introduce soc_device_match() interface > > > > > > > > > > Geert Uytterhoeven (1): > > > > > ? base: soc: Check for NULL SoC device attributes > > > > > > > > > > Yangbo Lu (5): > > > > > ? ARM64: dts: ls2080a: add device configuration node > > > > > ? dt: bindings: move guts devicetree doc out of powerpc directory > > > > > ? soc: fsl: add GUTS driver for QorIQ platforms > > > > > ? MAINTAINERS: add entry for Freescale SoC drivers > > > > > ? mmc: sdhci-of-esdhc: fix host version for T4240-R1.0-R2.0 > > > > > > > > > > ?.../bindings/{powerpc => soc}/fsl/guts.txt?????????|???3 + > > > > > ?MAINTAINERS????????????????????????????????????????|??11 +- > > > > > ?arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi?????|???6 + > > > > > ?drivers/base/Kconfig???????????????????????????????|???1 + > > > > > ?drivers/base/soc.c?????????????????????????????????|??70 ++++++ > > > > > ?drivers/mmc/host/Kconfig???????????????????????????|???1 + > > > > > ?drivers/mmc/host/sdhci-of-esdhc.c??????????????????|??20 ++ > > > > > ?drivers/soc/Kconfig????????????????????????????????|???3 +- > > > > > ?drivers/soc/fsl/Kconfig????????????????????????????|??18 ++ > > > > > ?drivers/soc/fsl/Makefile???????????????????????????|???1 + > > > > > ?drivers/soc/fsl/guts.c?????????????????????????????| 236 > > > > > +++++++++++++++++++++ > > > > > ?include/linux/fsl/guts.h???????????????????????????| 125 > > > > > ++++++----- > > > > > ?include/linux/sys_soc.h????????????????????????????|???3 + > > > > > ?13 files changed, 447 insertions(+), 51 deletions(-) > > > > > ?rename Documentation/devicetree/bindings/{powerpc => > > > > > soc}/fsl/guts.txt > > > > > (91%) > > > > > ?create mode 100644 drivers/soc/fsl/Kconfig > > > > > ?create mode 100644 drivers/soc/fsl/guts.c > > > > > > > > > > -- > > > > > 2.1.0.27.g96db324 > > > > > > > > > Thanks, applied on my mmc tree for next! > > > > > > > > I noticed that some DT compatibles weren't documented, according to > > > > checkpatch. Please fix that asap! > > > They are documented, in fsl/guts.txt (the file moved in patch 2/7): > > > > > > > > ?- compatible : Should define the compatible device type for > > > > ???global-utilities. > > > > ???Possible compatibles: > > > > ????????"fsl,qoriq-device-config-1.0" > > > > ????????"fsl,qoriq-device-config-2.0" > > > > ????????"fsl,<chip>-device-config" > > > > ????????"fsl,<chip>-guts" > > > Checkpatch doesn't understand compatibles defined in such a way. > > [Lu Yangbo-B47093] You're right, Scott. I dropped DT patch 'dt: bindings: > > update Freescale DCFG compatible ' > > which fixed un-doc issue since Shaohui had done this on Shawn Guo's tree. > > https://git.kernel.org/cgit/linux/kernel/git/shawnguo/linux.git/commit/?h > > =imx/dt64&id=981034a2bfcaff5c95dafde24d7abfe7f9025c19 > > > > Thanks. > [Lu Yangbo-B47093] Both 'fsl,<chip>-guts' and 'fsl,<chip>-dcfg' would have > no un-doc issue after Shaohui's patch are pulled :) I don't follow. ?The link above points to a patch that addresses -dcfg and -scfg, not -device-config or -guts -- and it also doesn't do it in a manner that checkpatch will understand. In any case, I wouldn't call this an "un-doc issue" -- it is documented -- but rather a checkpatch-friendliness issue. -Scott ^ permalink raw reply [flat|nested] 15+ messages in thread
* [v16, 0/7] Fix eSDHC host version register bug 2016-11-09 18:27 ` Ulf Hansson 2016-11-10 3:55 ` Scott Wood @ 2016-11-10 9:26 ` Geert Uytterhoeven 1 sibling, 0 replies; 15+ messages in thread From: Geert Uytterhoeven @ 2016-11-10 9:26 UTC (permalink / raw) To: linux-arm-kernel Hi Ulf, On Wed, Nov 9, 2016 at 7:27 PM, Ulf Hansson <ulf.hansson@linaro.org> wrote: > On 9 November 2016 at 04:14, Yangbo Lu <yangbo.lu@nxp.com> wrote: >> This patchset is used to fix a host version register bug in the T4240-R1.0-R2.0 >> eSDHC controller. To match the SoC version and revision, 15 previous version >> patchsets had tried many methods but all of them were rejected by reviewers. >> Such as >> - dts compatible method >> - syscon method >> - ifdef PPC method >> - GUTS driver getting SVR method >> Anrd suggested a soc_device_match method in v10, and this is the only available >> method left now. This v11 patchset introduces the soc_device_match interface in >> soc driver. >> >> The first four patches of Yangbo are to add the GUTS driver. This is used to >> register a soc device which contain soc version and revision information. >> The other three patches introduce the soc_device_match method in soc driver >> and apply it on esdhc driver to fix this bug. >> >> --- >> Changes for v15: >> - Dropped patch 'dt: bindings: update Freescale DCFG compatible' >> since the work had been done by below patch on ShawnGuo's linux tree. >> 'dt-bindings: fsl: add LS1043A/LS1046A/LS2080A compatible for SCFG >> and DCFG' >> - Fixed error code issue in guts driver >> Changes for v16: >> - Dropped patch 'powerpc/fsl: move mpc85xx.h to include/linux/fsl' >> - Added a bug-fix patch from Geert >> --- >> >> Arnd Bergmann (1): >> base: soc: introduce soc_device_match() interface >> >> Geert Uytterhoeven (1): >> base: soc: Check for NULL SoC device attributes > Thanks, applied on my mmc tree for next! Oops, the above two commits (plus two more enhancements) are also a dependency for Samsung and Renesas. Hence the plan was to use an immutable branch for that... Ulf, would it still be possible to replace these two commits in mmc/next: 8b82c17a8ae533d6 base: soc: introduce soc_device_match() interface 6fa350172b098f0f base: soc: Check for NULL SoC device attributes by a merge of the immutable branch I've just created? Cfr, the other thread "[PATCH v2 0/7] soc: renesas: Identify SoC and register with the SoC bus". Thanks! Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at 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
end of thread, other threads:[~2016-11-10 9:26 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-11-09 3:14 [v16, 0/7] Fix eSDHC host version register bug Yangbo Lu 2016-11-09 3:14 ` [v16, 1/7] ARM64: dts: ls2080a: add device configuration node Yangbo Lu 2016-11-09 3:14 ` [v16, 2/7] dt: bindings: move guts devicetree doc out of powerpc directory Yangbo Lu 2016-11-09 3:14 ` [v16, 3/7] soc: fsl: add GUTS driver for QorIQ platforms Yangbo Lu 2016-11-09 3:14 ` [v16, 4/7] MAINTAINERS: add entry for Freescale SoC drivers Yangbo Lu 2016-11-09 3:14 ` [v16, 5/7] base: soc: introduce soc_device_match() interface Yangbo Lu 2016-11-09 3:14 ` [v16, 6/7] base: soc: Check for NULL SoC device attributes Yangbo Lu 2016-11-09 3:14 ` [v16, 7/7] mmc: sdhci-of-esdhc: fix host version for T4240-R1.0-R2.0 Yangbo Lu 2016-11-09 9:18 ` [v16, 0/7] Fix eSDHC host version register bug Wolfram Sang 2016-11-09 18:27 ` Ulf Hansson 2016-11-10 3:55 ` Scott Wood 2016-11-10 4:06 ` Y.B. Lu 2016-11-10 4:11 ` Y.B. Lu 2016-11-10 5:17 ` Scott Wood 2016-11-10 9:26 ` 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).