* [PATCH 0/3] Mediatek EFUSE Support @ 2015-10-16 8:39 andrew-ct.chen at mediatek.com 2015-10-16 8:39 ` [PATCH 1/3] dt-bindings: add document of mediatek efuse driver andrew-ct.chen at mediatek.com ` (3 more replies) 0 siblings, 4 replies; 15+ messages in thread From: andrew-ct.chen at mediatek.com @ 2015-10-16 8:39 UTC (permalink / raw) To: linux-arm-kernel This patch adds EFUSE support driver which is used by other drivers like thermal sensor and HDMI impedance. There are some efuses these fuses store things like calibration data, speed bins.. etc. Drivers like thermal sensor, HDMI impedance would read out this data for configuring the driver. Andrew-CT Chen (3): dt-bindings: add document of mediatek efuse driver nvmem: mediatek: Add Mediatek EFUSE driver dts: arm64: Add EFUSE device node .../devicetree/bindings/nvmem/mtk-efuse.txt | 36 +++++++++ arch/arm64/boot/dts/mediatek/mt8173.dtsi | 5 ++ drivers/nvmem/Kconfig | 11 +++ drivers/nvmem/Makefile | 1 + drivers/nvmem/mtk-efuse.c | 89 ++++++++++++++++++++++ 5 files changed, 142 insertions(+) create mode 100644 Documentation/devicetree/bindings/nvmem/mtk-efuse.txt create mode 100644 drivers/nvmem/mtk-efuse.c -- 1.9.1 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 1/3] dt-bindings: add document of mediatek efuse driver 2015-10-16 8:39 [PATCH 0/3] Mediatek EFUSE Support andrew-ct.chen at mediatek.com @ 2015-10-16 8:39 ` andrew-ct.chen at mediatek.com 2015-10-26 9:56 ` Srinivas Kandagatla 2015-10-16 8:39 ` [PATCH 2/3] nvmem: mediatek: Add Mediatek EFUSE driver andrew-ct.chen at mediatek.com ` (2 subsequent siblings) 3 siblings, 1 reply; 15+ messages in thread From: andrew-ct.chen at mediatek.com @ 2015-10-16 8:39 UTC (permalink / raw) To: linux-arm-kernel From: Andrew-CT Chen <andrew-ct.chen@mediatek.com> Add Mediatek MT8173 EFUSE Devicetree binding file Signed-off-by: Andrew-CT Chen <andrew-ct.chen@mediatek.com> --- .../devicetree/bindings/nvmem/mtk-efuse.txt | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 Documentation/devicetree/bindings/nvmem/mtk-efuse.txt diff --git a/Documentation/devicetree/bindings/nvmem/mtk-efuse.txt b/Documentation/devicetree/bindings/nvmem/mtk-efuse.txt new file mode 100644 index 0000000..92edc3d --- /dev/null +++ b/Documentation/devicetree/bindings/nvmem/mtk-efuse.txt @@ -0,0 +1,36 @@ += Mediatek MTK-EFUSE device tree bindings = + +This binding is intended to represent MTK-EFUSE which is found in most Mediatek SOCs. + +Required properties: +- compatible: should be "mediatek,mt8173-efuse" or "mediatek,mt8135-efuse" +- reg: Should contain registers location and length + += Data cells = +Are child nodes of MTK-EFUSE, bindings of which as described in +bindings/nvmem/nvmem.txt + +Example: + + efuse: efuse at 10206000 { + compatible = "mediatek,mt8173-efuse"; + reg = <0 0x10206000 0 0x1000>; + #address-cells = <1>; + #size-cells = <1>; + + /* Data cells */ + thermal_calibration: calib at 528 { + reg = <0x528 0xc>; + }; + }; + += Data consumers = +Are device nodes which consume nvmem data cells. + +For example: + + thermal { + ... + nvmem-cells = <&thermal_calibration>; + nvmem-cell-names = "calibration"; + }; -- 1.9.1 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 1/3] dt-bindings: add document of mediatek efuse driver 2015-10-16 8:39 ` [PATCH 1/3] dt-bindings: add document of mediatek efuse driver andrew-ct.chen at mediatek.com @ 2015-10-26 9:56 ` Srinivas Kandagatla 2015-10-26 10:23 ` Sascha Hauer 0 siblings, 1 reply; 15+ messages in thread From: Srinivas Kandagatla @ 2015-10-26 9:56 UTC (permalink / raw) To: linux-arm-kernel On 16/10/15 09:39, andrew-ct.chen at mediatek.com wrote: > From: Andrew-CT Chen <andrew-ct.chen@mediatek.com> > > Add Mediatek MT8173 EFUSE Devicetree binding file > > Signed-off-by: Andrew-CT Chen <andrew-ct.chen@mediatek.com> Looks good to me, minor comment below. Will queue this for v4.5 once v4.4-rc1 is released. > --- > .../devicetree/bindings/nvmem/mtk-efuse.txt | 36 ++++++++++++++++++++++ > 1 file changed, 36 insertions(+) > create mode 100644 Documentation/devicetree/bindings/nvmem/mtk-efuse.txt > > diff --git a/Documentation/devicetree/bindings/nvmem/mtk-efuse.txt b/Documentation/devicetree/bindings/nvmem/mtk-efuse.txt > new file mode 100644 > index 0000000..92edc3d > --- /dev/null > +++ b/Documentation/devicetree/bindings/nvmem/mtk-efuse.txt > @@ -0,0 +1,36 @@ > += Mediatek MTK-EFUSE device tree bindings = > + > +This binding is intended to represent MTK-EFUSE which is found in most Mediatek SOCs. > + > +Required properties: > +- compatible: should be "mediatek,mt8173-efuse" or "mediatek,mt8135-efuse" Can we make the compatible more generic for mediatek socs? Like "mediatek,efuse" Or are they different in each SOC? --srini > +- reg: Should contain registers location and length > + > += Data cells = > +Are child nodes of MTK-EFUSE, bindings of which as described in > +bindings/nvmem/nvmem.txt > + > +Example: > + > + efuse: efuse at 10206000 { > + compatible = "mediatek,mt8173-efuse"; > + reg = <0 0x10206000 0 0x1000>; > + #address-cells = <1>; > + #size-cells = <1>; > + > + /* Data cells */ > + thermal_calibration: calib at 528 { > + reg = <0x528 0xc>; > + }; > + }; > + > += Data consumers = > +Are device nodes which consume nvmem data cells. > + > +For example: > + > + thermal { > + ... > + nvmem-cells = <&thermal_calibration>; > + nvmem-cell-names = "calibration"; > + }; > ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 1/3] dt-bindings: add document of mediatek efuse driver 2015-10-26 9:56 ` Srinivas Kandagatla @ 2015-10-26 10:23 ` Sascha Hauer 2015-10-26 10:55 ` Srinivas Kandagatla 0 siblings, 1 reply; 15+ messages in thread From: Sascha Hauer @ 2015-10-26 10:23 UTC (permalink / raw) To: linux-arm-kernel On Mon, Oct 26, 2015 at 09:56:14AM +0000, Srinivas Kandagatla wrote: > > > On 16/10/15 09:39, andrew-ct.chen at mediatek.com wrote: > >From: Andrew-CT Chen <andrew-ct.chen@mediatek.com> > > > >Add Mediatek MT8173 EFUSE Devicetree binding file > > > >Signed-off-by: Andrew-CT Chen <andrew-ct.chen@mediatek.com> > > Looks good to me, minor comment below. > > Will queue this for v4.5 once v4.4-rc1 is released. > > > >--- > > .../devicetree/bindings/nvmem/mtk-efuse.txt | 36 ++++++++++++++++++++++ > > 1 file changed, 36 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/nvmem/mtk-efuse.txt > > > >diff --git a/Documentation/devicetree/bindings/nvmem/mtk-efuse.txt b/Documentation/devicetree/bindings/nvmem/mtk-efuse.txt > >new file mode 100644 > >index 0000000..92edc3d > >--- /dev/null > >+++ b/Documentation/devicetree/bindings/nvmem/mtk-efuse.txt > >@@ -0,0 +1,36 @@ > >+= Mediatek MTK-EFUSE device tree bindings = > >+ > >+This binding is intended to represent MTK-EFUSE which is found in most Mediatek SOCs. > >+ > >+Required properties: > >+- compatible: should be "mediatek,mt8173-efuse" or "mediatek,mt8135-efuse" > > Can we make the compatible more generic for mediatek socs? Like > "mediatek,efuse" Or are they different in each SOC? While we can add an additional "mediatek,efuse" compatible we should always add the most specific compatible first. Otherwise we cannot differentiate between SoCs later without changing the device tree. Sascha -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 1/3] dt-bindings: add document of mediatek efuse driver 2015-10-26 10:23 ` Sascha Hauer @ 2015-10-26 10:55 ` Srinivas Kandagatla 2015-10-27 5:32 ` andrew-ct chen 0 siblings, 1 reply; 15+ messages in thread From: Srinivas Kandagatla @ 2015-10-26 10:55 UTC (permalink / raw) To: linux-arm-kernel On 26/10/15 10:23, Sascha Hauer wrote: > On Mon, Oct 26, 2015 at 09:56:14AM +0000, Srinivas Kandagatla wrote: >> >> >> On 16/10/15 09:39, andrew-ct.chen at mediatek.com wrote: >>> From: Andrew-CT Chen <andrew-ct.chen@mediatek.com> >>> >>> Add Mediatek MT8173 EFUSE Devicetree binding file >>> >>> Signed-off-by: Andrew-CT Chen <andrew-ct.chen@mediatek.com> >> >> Looks good to me, minor comment below. >> >> Will queue this for v4.5 once v4.4-rc1 is released. >> >> >>> --- >>> .../devicetree/bindings/nvmem/mtk-efuse.txt | 36 ++++++++++++++++++++++ >>> 1 file changed, 36 insertions(+) >>> create mode 100644 Documentation/devicetree/bindings/nvmem/mtk-efuse.txt >>> >>> diff --git a/Documentation/devicetree/bindings/nvmem/mtk-efuse.txt b/Documentation/devicetree/bindings/nvmem/mtk-efuse.txt >>> new file mode 100644 >>> index 0000000..92edc3d >>> --- /dev/null >>> +++ b/Documentation/devicetree/bindings/nvmem/mtk-efuse.txt >>> @@ -0,0 +1,36 @@ >>> += Mediatek MTK-EFUSE device tree bindings = >>> + >>> +This binding is intended to represent MTK-EFUSE which is found in most Mediatek SOCs. >>> + >>> +Required properties: >>> +- compatible: should be "mediatek,mt8173-efuse" or "mediatek,mt8135-efuse" >> >> Can we make the compatible more generic for mediatek socs? Like >> "mediatek,efuse" Or are they different in each SOC? > > While we can add an additional "mediatek,efuse" compatible we should > always add the most specific compatible first. Otherwise we cannot > differentiate between SoCs later without changing the device tree. Yes, that?s correct. AFAIK, Ideally the driver should have more generic compatible string unless there is any SOC specific thing, and DT can still use the order of specific, generic compatible strings. If not we would end up adding compatible strings into the driver for every new SOC. --srini > > Sascha > ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 1/3] dt-bindings: add document of mediatek efuse driver 2015-10-26 10:55 ` Srinivas Kandagatla @ 2015-10-27 5:32 ` andrew-ct chen 2015-10-27 9:27 ` andrew-ct chen 0 siblings, 1 reply; 15+ messages in thread From: andrew-ct chen @ 2015-10-27 5:32 UTC (permalink / raw) To: linux-arm-kernel On Mon, 2015-10-26 at 10:55 +0000, Srinivas Kandagatla wrote: > > On 26/10/15 10:23, Sascha Hauer wrote: > > On Mon, Oct 26, 2015 at 09:56:14AM +0000, Srinivas Kandagatla wrote: > >> > >> > >> On 16/10/15 09:39, andrew-ct.chen at mediatek.com wrote: > >>> From: Andrew-CT Chen <andrew-ct.chen@mediatek.com> > >>> > >>> Add Mediatek MT8173 EFUSE Devicetree binding file > >>> > >>> Signed-off-by: Andrew-CT Chen <andrew-ct.chen@mediatek.com> > >> > >> Looks good to me, minor comment below. > >> > >> Will queue this for v4.5 once v4.4-rc1 is released. > >> > >> > >>> --- > >>> .../devicetree/bindings/nvmem/mtk-efuse.txt | 36 ++++++++++++++++++++++ > >>> 1 file changed, 36 insertions(+) > >>> create mode 100644 Documentation/devicetree/bindings/nvmem/mtk-efuse.txt > >>> > >>> diff --git a/Documentation/devicetree/bindings/nvmem/mtk-efuse.txt b/Documentation/devicetree/bindings/nvmem/mtk-efuse.txt > >>> new file mode 100644 > >>> index 0000000..92edc3d > >>> --- /dev/null > >>> +++ b/Documentation/devicetree/bindings/nvmem/mtk-efuse.txt > >>> @@ -0,0 +1,36 @@ > >>> += Mediatek MTK-EFUSE device tree bindings = > >>> + > >>> +This binding is intended to represent MTK-EFUSE which is found in most Mediatek SOCs. > >>> + > >>> +Required properties: > >>> +- compatible: should be "mediatek,mt8173-efuse" or "mediatek,mt8135-efuse" > >> > >> Can we make the compatible more generic for mediatek socs? Like > >> "mediatek,efuse" Or are they different in each SOC? > > > > While we can add an additional "mediatek,efuse" compatible we should > > always add the most specific compatible first. Otherwise we cannot > > differentiate between SoCs later without changing the device tree. > Yes, that?s correct. > > AFAIK, Ideally the driver should have more generic compatible string > unless there is any SOC specific thing, and DT can still use the order > of specific, generic compatible strings. If not we would end up adding > compatible strings into the driver for every new SOC. We will modify for generic compatible string like "mediatek,efuse" and rebase it to v4.4-rc1. > > --srini > > > > > Sascha > > ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 1/3] dt-bindings: add document of mediatek efuse driver 2015-10-27 5:32 ` andrew-ct chen @ 2015-10-27 9:27 ` andrew-ct chen 0 siblings, 0 replies; 15+ messages in thread From: andrew-ct chen @ 2015-10-27 9:27 UTC (permalink / raw) To: linux-arm-kernel On Tue, 2015-10-27 at 13:32 +0800, andrew-ct chen wrote: > On Mon, 2015-10-26 at 10:55 +0000, Srinivas Kandagatla wrote: > > > > On 26/10/15 10:23, Sascha Hauer wrote: > > > On Mon, Oct 26, 2015 at 09:56:14AM +0000, Srinivas Kandagatla wrote: > > >> > > >> > > >> On 16/10/15 09:39, andrew-ct.chen at mediatek.com wrote: > > >>> From: Andrew-CT Chen <andrew-ct.chen@mediatek.com> > > >>> > > >>> Add Mediatek MT8173 EFUSE Devicetree binding file > > >>> > > >>> Signed-off-by: Andrew-CT Chen <andrew-ct.chen@mediatek.com> > > >> > > >> Looks good to me, minor comment below. > > >> > > >> Will queue this for v4.5 once v4.4-rc1 is released. > > >> > > >> > > >>> --- > > >>> .../devicetree/bindings/nvmem/mtk-efuse.txt | 36 ++++++++++++++++++++++ > > >>> 1 file changed, 36 insertions(+) > > >>> create mode 100644 Documentation/devicetree/bindings/nvmem/mtk-efuse.txt > > >>> > > >>> diff --git a/Documentation/devicetree/bindings/nvmem/mtk-efuse.txt b/Documentation/devicetree/bindings/nvmem/mtk-efuse.txt > > >>> new file mode 100644 > > >>> index 0000000..92edc3d > > >>> --- /dev/null > > >>> +++ b/Documentation/devicetree/bindings/nvmem/mtk-efuse.txt > > >>> @@ -0,0 +1,36 @@ > > >>> += Mediatek MTK-EFUSE device tree bindings = > > >>> + > > >>> +This binding is intended to represent MTK-EFUSE which is found in most Mediatek SOCs. > > >>> + > > >>> +Required properties: > > >>> +- compatible: should be "mediatek,mt8173-efuse" or "mediatek,mt8135-efuse" > > >> > > >> Can we make the compatible more generic for mediatek socs? Like > > >> "mediatek,efuse" Or are they different in each SOC? > > > > > > While we can add an additional "mediatek,efuse" compatible we should > > > always add the most specific compatible first. Otherwise we cannot > > > differentiate between SoCs later without changing the device tree. > > Yes, that?s correct. > > > > AFAIK, Ideally the driver should have more generic compatible string > > unless there is any SOC specific thing, and DT can still use the order > > of specific, generic compatible strings. If not we would end up adding > > compatible strings into the driver for every new SOC. > > We will modify for generic compatible string like "mediatek,efuse" and > rebase it to v4.4-rc1. For more clearly, we will modify the compatible string to "mediatek,mt8173-efuse" and "mediatek,efuse". > > > > > --srini > > > > > > > > Sascha > > > > ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 2/3] nvmem: mediatek: Add Mediatek EFUSE driver 2015-10-16 8:39 [PATCH 0/3] Mediatek EFUSE Support andrew-ct.chen at mediatek.com 2015-10-16 8:39 ` [PATCH 1/3] dt-bindings: add document of mediatek efuse driver andrew-ct.chen at mediatek.com @ 2015-10-16 8:39 ` andrew-ct.chen at mediatek.com 2015-10-26 9:56 ` Srinivas Kandagatla 2015-10-16 8:39 ` [PATCH 3/3] dts: arm64: Add EFUSE device node andrew-ct.chen at mediatek.com 2015-10-19 6:49 ` [PATCH 0/3] Mediatek EFUSE Support Sascha Hauer 3 siblings, 1 reply; 15+ messages in thread From: andrew-ct.chen at mediatek.com @ 2015-10-16 8:39 UTC (permalink / raw) To: linux-arm-kernel From: Andrew-CT Chen <andrew-ct.chen@mediatek.com> Add Mediatek EFUSE driver to access hardware data like thermal sensor calibration or HDMI impedance. Signed-off-by: Andrew-CT Chen <andrew-ct.chen@mediatek.com> --- drivers/nvmem/Kconfig | 11 ++++++ drivers/nvmem/Makefile | 1 + drivers/nvmem/mtk-efuse.c | 89 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 101 insertions(+) create mode 100644 drivers/nvmem/mtk-efuse.c diff --git a/drivers/nvmem/Kconfig b/drivers/nvmem/Kconfig index 8db2978..1bd5badc 100644 --- a/drivers/nvmem/Kconfig +++ b/drivers/nvmem/Kconfig @@ -14,6 +14,17 @@ menuconfig NVMEM if NVMEM +config MTK_EFUSE + tristate "Mediatek SoCs EFUSE support" + depends on ARCH_MEDIATEK || COMPILE_TEST + select REGMAP_MMIO + help + This is a driver to access hardware related data like sensor + calibration, HDMI impedance etc. + + This driver can also be built as a module. If so, the module + will be called efuse-mtk. + config QCOM_QFPROM tristate "QCOM QFPROM Support" depends on ARCH_QCOM || COMPILE_TEST diff --git a/drivers/nvmem/Makefile b/drivers/nvmem/Makefile index 4328b93..916b727 100644 --- a/drivers/nvmem/Makefile +++ b/drivers/nvmem/Makefile @@ -6,6 +6,7 @@ obj-$(CONFIG_NVMEM) += nvmem_core.o nvmem_core-y := core.o # Devices +obj-$(CONFIG_MTK_EFUSE) += mtk-efuse.o obj-$(CONFIG_QCOM_QFPROM) += nvmem_qfprom.o nvmem_qfprom-y := qfprom.o obj-$(CONFIG_NVMEM_SUNXI_SID) += nvmem_sunxi_sid.o diff --git a/drivers/nvmem/mtk-efuse.c b/drivers/nvmem/mtk-efuse.c new file mode 100644 index 0000000..9021c0b --- /dev/null +++ b/drivers/nvmem/mtk-efuse.c @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2015 MediaTek Inc. + * Author: Andrew-CT Chen <andrew-ct.chen@mediatek.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * 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/device.h> +#include <linux/module.h> +#include <linux/nvmem-provider.h> +#include <linux/platform_device.h> +#include <linux/regmap.h> + +static struct regmap_config mtk_regmap_config = { + .reg_bits = 32, + .val_bits = 32, + .reg_stride = 4, +}; + +static int mtk_efuse_probe(struct platform_device *pdev) +{ + struct device *dev = &pdev->dev; + struct resource *res; + struct nvmem_device *nvmem; + struct nvmem_config *econfig; + struct regmap *regmap; + void __iomem *base; + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + base = devm_ioremap_resource(dev, res); + if (IS_ERR(base)) + return PTR_ERR(base); + + econfig = devm_kzalloc(dev, sizeof(*econfig), GFP_KERNEL); + if (!econfig) + return -ENOMEM; + + mtk_regmap_config.max_register = resource_size(res) - 1; + + regmap = devm_regmap_init_mmio(dev, base, &mtk_regmap_config); + if (IS_ERR(regmap)) { + dev_err(dev, "regmap init failed\n"); + return PTR_ERR(regmap); + } + + econfig->dev = dev; + econfig->owner = THIS_MODULE; + nvmem = nvmem_register(econfig); + if (IS_ERR(nvmem)) + return PTR_ERR(nvmem); + + platform_set_drvdata(pdev, nvmem); + + return 0; +} + +static int mtk_efuse_remove(struct platform_device *pdev) +{ + struct nvmem_device *nvmem = platform_get_drvdata(pdev); + + return nvmem_unregister(nvmem); +} + +static const struct of_device_id mtk_efuse_of_match[] = { + { .compatible = "mediatek,mt8135-efuse",}, + { .compatible = "mediatek,mt8173-efuse",}, + {/* sentinel */}, +}; +MODULE_DEVICE_TABLE(of, mtk_efuse_of_match); + +static struct platform_driver mtk_efuse_driver = { + .probe = mtk_efuse_probe, + .remove = mtk_efuse_remove, + .driver = { + .name = "mediatek,efuse", + .of_match_table = mtk_efuse_of_match, + }, +}; +module_platform_driver(mtk_efuse_driver); +MODULE_AUTHOR("Andrew-CT Chen <andrew-ct.chen@mediatek.com>"); +MODULE_DESCRIPTION("Mediatek EFUSE driver"); +MODULE_LICENSE("GPL v2"); -- 1.9.1 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 2/3] nvmem: mediatek: Add Mediatek EFUSE driver 2015-10-16 8:39 ` [PATCH 2/3] nvmem: mediatek: Add Mediatek EFUSE driver andrew-ct.chen at mediatek.com @ 2015-10-26 9:56 ` Srinivas Kandagatla 2015-10-26 10:28 ` Sascha Hauer 2015-10-27 5:32 ` andrew-ct chen 0 siblings, 2 replies; 15+ messages in thread From: Srinivas Kandagatla @ 2015-10-26 9:56 UTC (permalink / raw) To: linux-arm-kernel On 16/10/15 09:39, andrew-ct.chen at mediatek.com wrote: > From: Andrew-CT Chen <andrew-ct.chen@mediatek.com> > > Add Mediatek EFUSE driver to access hardware data like > thermal sensor calibration or HDMI impedance. > > Signed-off-by: Andrew-CT Chen <andrew-ct.chen@mediatek.com> Dirver looks pretty simple, below are few minor nits. Please rebase this patch on top of v4.4-rc1 once its released in few weeks, so that I can queue this driver for v4.5. > --- > drivers/nvmem/Kconfig | 11 ++++++ > drivers/nvmem/Makefile | 1 + > drivers/nvmem/mtk-efuse.c | 89 +++++++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 101 insertions(+) > create mode 100644 drivers/nvmem/mtk-efuse.c > > diff --git a/drivers/nvmem/Kconfig b/drivers/nvmem/Kconfig > index 8db2978..1bd5badc 100644 > --- a/drivers/nvmem/Kconfig > +++ b/drivers/nvmem/Kconfig > @@ -14,6 +14,17 @@ menuconfig NVMEM > > if NVMEM > > +config MTK_EFUSE > + tristate "Mediatek SoCs EFUSE support" > + depends on ARCH_MEDIATEK || COMPILE_TEST > + select REGMAP_MMIO > + help > + This is a driver to access hardware related data like sensor > + calibration, HDMI impedance etc. > + > + This driver can also be built as a module. If so, the module > + will be called efuse-mtk. > + > config QCOM_QFPROM > tristate "QCOM QFPROM Support" > depends on ARCH_QCOM || COMPILE_TEST > diff --git a/drivers/nvmem/Makefile b/drivers/nvmem/Makefile > index 4328b93..916b727 100644 > --- a/drivers/nvmem/Makefile > +++ b/drivers/nvmem/Makefile > @@ -6,6 +6,7 @@ obj-$(CONFIG_NVMEM) += nvmem_core.o > nvmem_core-y := core.o > > # Devices > +obj-$(CONFIG_MTK_EFUSE) += mtk-efuse.o For consistency reasons, could you do this similar to other drivers. > obj-$(CONFIG_QCOM_QFPROM) += nvmem_qfprom.o > nvmem_qfprom-y := qfprom.o > obj-$(CONFIG_NVMEM_SUNXI_SID) += nvmem_sunxi_sid.o > diff --git a/drivers/nvmem/mtk-efuse.c b/drivers/nvmem/mtk-efuse.c > new file mode 100644 > index 0000000..9021c0b > --- /dev/null > +++ b/drivers/nvmem/mtk-efuse.c > @@ -0,0 +1,89 @@ > +/* > + * Copyright (c) 2015 MediaTek Inc. > + * Author: Andrew-CT Chen <andrew-ct.chen@mediatek.com> > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License version 2 as > + * published by the Free Software Foundation. > + * > + * 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/device.h> > +#include <linux/module.h> > +#include <linux/nvmem-provider.h> > +#include <linux/platform_device.h> > +#include <linux/regmap.h> > + > +static struct regmap_config mtk_regmap_config = { > + .reg_bits = 32, > + .val_bits = 32, > + .reg_stride = 4, > +}; > + > +static int mtk_efuse_probe(struct platform_device *pdev) > +{ > + struct device *dev = &pdev->dev; > + struct resource *res; > + struct nvmem_device *nvmem; > + struct nvmem_config *econfig; > + struct regmap *regmap; > + void __iomem *base; > + > + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > + base = devm_ioremap_resource(dev, res); > + if (IS_ERR(base)) > + return PTR_ERR(base); > + > + econfig = devm_kzalloc(dev, sizeof(*econfig), GFP_KERNEL); > + if (!econfig) > + return -ENOMEM; Why not use static econfig variable? > + > + mtk_regmap_config.max_register = resource_size(res) - 1; > + > + regmap = devm_regmap_init_mmio(dev, base, &mtk_regmap_config); > + if (IS_ERR(regmap)) { > + dev_err(dev, "regmap init failed\n"); > + return PTR_ERR(regmap); > + } > + > + econfig->dev = dev; > + econfig->owner = THIS_MODULE; > + nvmem = nvmem_register(econfig); > + if (IS_ERR(nvmem)) > + return PTR_ERR(nvmem); > + > + platform_set_drvdata(pdev, nvmem); > + > + return 0; > +} > + > +static int mtk_efuse_remove(struct platform_device *pdev) > +{ > + struct nvmem_device *nvmem = platform_get_drvdata(pdev); > + > + return nvmem_unregister(nvmem); > +} > + > +static const struct of_device_id mtk_efuse_of_match[] = { > + { .compatible = "mediatek,mt8135-efuse",}, > + { .compatible = "mediatek,mt8173-efuse",}, > + {/* sentinel */}, > +}; > +MODULE_DEVICE_TABLE(of, mtk_efuse_of_match); > + > +static struct platform_driver mtk_efuse_driver = { > + .probe = mtk_efuse_probe, > + .remove = mtk_efuse_remove, > + .driver = { > + .name = "mediatek,efuse", > + .of_match_table = mtk_efuse_of_match, > + }, > +}; > +module_platform_driver(mtk_efuse_driver); > +MODULE_AUTHOR("Andrew-CT Chen <andrew-ct.chen@mediatek.com>"); > +MODULE_DESCRIPTION("Mediatek EFUSE driver"); > +MODULE_LICENSE("GPL v2"); > ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 2/3] nvmem: mediatek: Add Mediatek EFUSE driver 2015-10-26 9:56 ` Srinivas Kandagatla @ 2015-10-26 10:28 ` Sascha Hauer 2015-10-26 10:39 ` Srinivas Kandagatla 2015-10-27 5:32 ` andrew-ct chen 1 sibling, 1 reply; 15+ messages in thread From: Sascha Hauer @ 2015-10-26 10:28 UTC (permalink / raw) To: linux-arm-kernel On Mon, Oct 26, 2015 at 09:56:24AM +0000, Srinivas Kandagatla wrote: > >+ .val_bits = 32, > >+ .reg_stride = 4, > >+}; > >+ > >+static int mtk_efuse_probe(struct platform_device *pdev) > >+{ > >+ struct device *dev = &pdev->dev; > >+ struct resource *res; > >+ struct nvmem_device *nvmem; > >+ struct nvmem_config *econfig; > >+ struct regmap *regmap; > >+ void __iomem *base; > >+ > >+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > >+ base = devm_ioremap_resource(dev, res); > >+ if (IS_ERR(base)) > >+ return PTR_ERR(base); > >+ > >+ econfig = devm_kzalloc(dev, sizeof(*econfig), GFP_KERNEL); > >+ if (!econfig) > >+ return -ENOMEM; > Why not use static econfig variable? Because drivers should not assume there is only one instance of them in the system. The qfprom driver does this and it's only a matter of putting a second qcom,qfprom node into the device tree to break the driver. Sascha -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 2/3] nvmem: mediatek: Add Mediatek EFUSE driver 2015-10-26 10:28 ` Sascha Hauer @ 2015-10-26 10:39 ` Srinivas Kandagatla 0 siblings, 0 replies; 15+ messages in thread From: Srinivas Kandagatla @ 2015-10-26 10:39 UTC (permalink / raw) To: linux-arm-kernel On 26/10/15 10:28, Sascha Hauer wrote: > On Mon, Oct 26, 2015 at 09:56:24AM +0000, Srinivas Kandagatla wrote: >>> + .val_bits = 32, >>> + .reg_stride = 4, >>> +}; >>> + >>> +static int mtk_efuse_probe(struct platform_device *pdev) >>> +{ >>> + struct device *dev = &pdev->dev; >>> + struct resource *res; >>> + struct nvmem_device *nvmem; >>> + struct nvmem_config *econfig; >>> + struct regmap *regmap; >>> + void __iomem *base; >>> + >>> + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); >>> + base = devm_ioremap_resource(dev, res); >>> + if (IS_ERR(base)) >>> + return PTR_ERR(base); >>> + >>> + econfig = devm_kzalloc(dev, sizeof(*econfig), GFP_KERNEL); >>> + if (!econfig) >>> + return -ENOMEM; >> Why not use static econfig variable? > > Because drivers should not assume there is only one instance of them in > the system. The qfprom driver does this and it's only a matter of Good point, Yes, you are right. If MTK has possibility of having more than one efuse we can leave the code as it is. > putting a second qcom,qfprom node into the device tree to break the > driver. It would indeed. --srini > > Sascha > ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 2/3] nvmem: mediatek: Add Mediatek EFUSE driver 2015-10-26 9:56 ` Srinivas Kandagatla 2015-10-26 10:28 ` Sascha Hauer @ 2015-10-27 5:32 ` andrew-ct chen 2015-10-27 9:28 ` andrew-ct chen 1 sibling, 1 reply; 15+ messages in thread From: andrew-ct chen @ 2015-10-27 5:32 UTC (permalink / raw) To: linux-arm-kernel On Mon, 2015-10-26 at 09:56 +0000, Srinivas Kandagatla wrote: > On 16/10/15 09:39, andrew-ct.chen at mediatek.com wrote: > > From: Andrew-CT Chen <andrew-ct.chen@mediatek.com> > > > > Add Mediatek EFUSE driver to access hardware data like > > thermal sensor calibration or HDMI impedance. > > > > Signed-off-by: Andrew-CT Chen <andrew-ct.chen@mediatek.com> > > Dirver looks pretty simple, below are few minor nits. > > Please rebase this patch on top of v4.4-rc1 once its released in few > weeks, so that I can queue this driver for v4.5. We will rebase it. > > > --- > > drivers/nvmem/Kconfig | 11 ++++++ > > drivers/nvmem/Makefile | 1 + > > drivers/nvmem/mtk-efuse.c | 89 +++++++++++++++++++++++++++++++++++++++++++++++ > > 3 files changed, 101 insertions(+) > > create mode 100644 drivers/nvmem/mtk-efuse.c > > > > diff --git a/drivers/nvmem/Kconfig b/drivers/nvmem/Kconfig > > index 8db2978..1bd5badc 100644 > > --- a/drivers/nvmem/Kconfig > > +++ b/drivers/nvmem/Kconfig > > @@ -14,6 +14,17 @@ menuconfig NVMEM > > > > if NVMEM > > > > +config MTK_EFUSE > > + tristate "Mediatek SoCs EFUSE support" > > + depends on ARCH_MEDIATEK || COMPILE_TEST > > + select REGMAP_MMIO > > + help > > + This is a driver to access hardware related data like sensor > > + calibration, HDMI impedance etc. > > + > > + This driver can also be built as a module. If so, the module > > + will be called efuse-mtk. > > + > > config QCOM_QFPROM > > tristate "QCOM QFPROM Support" > > depends on ARCH_QCOM || COMPILE_TEST > > diff --git a/drivers/nvmem/Makefile b/drivers/nvmem/Makefile > > index 4328b93..916b727 100644 > > --- a/drivers/nvmem/Makefile > > +++ b/drivers/nvmem/Makefile > > @@ -6,6 +6,7 @@ obj-$(CONFIG_NVMEM) += nvmem_core.o > > nvmem_core-y := core.o > > > > # Devices > > +obj-$(CONFIG_MTK_EFUSE) += mtk-efuse.o > > For consistency reasons, could you do this similar to other drivers. > > > obj-$(CONFIG_QCOM_QFPROM) += nvmem_qfprom.o > > nvmem_qfprom-y := qfprom.o > > obj-$(CONFIG_NVMEM_SUNXI_SID) += nvmem_sunxi_sid.o > > diff --git a/drivers/nvmem/mtk-efuse.c b/drivers/nvmem/mtk-efuse.c > > new file mode 100644 > > index 0000000..9021c0b > > --- /dev/null > > +++ b/drivers/nvmem/mtk-efuse.c > > @@ -0,0 +1,89 @@ > > +/* > > + * Copyright (c) 2015 MediaTek Inc. > > + * Author: Andrew-CT Chen <andrew-ct.chen@mediatek.com> > > + * > > + * This program is free software; you can redistribute it and/or modify > > + * it under the terms of the GNU General Public License version 2 as > > + * published by the Free Software Foundation. > > + * > > + * 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/device.h> > > +#include <linux/module.h> > > +#include <linux/nvmem-provider.h> > > +#include <linux/platform_device.h> > > +#include <linux/regmap.h> > > + > > +static struct regmap_config mtk_regmap_config = { > > + .reg_bits = 32, > > + .val_bits = 32, > > + .reg_stride = 4, > > +}; > > + > > +static int mtk_efuse_probe(struct platform_device *pdev) > > +{ > > + struct device *dev = &pdev->dev; > > + struct resource *res; > > + struct nvmem_device *nvmem; > > + struct nvmem_config *econfig; > > + struct regmap *regmap; > > + void __iomem *base; > > + > > + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > > + base = devm_ioremap_resource(dev, res); > > + if (IS_ERR(base)) > > + return PTR_ERR(base); > > + > > + econfig = devm_kzalloc(dev, sizeof(*econfig), GFP_KERNEL); > > + if (!econfig) > > + return -ENOMEM; > Why not use static econfig variable? > > > + > > + mtk_regmap_config.max_register = resource_size(res) - 1; > > + > > + regmap = devm_regmap_init_mmio(dev, base, &mtk_regmap_config); > > + if (IS_ERR(regmap)) { > > + dev_err(dev, "regmap init failed\n"); > > + return PTR_ERR(regmap); > > + } > > + > > + econfig->dev = dev; > > + econfig->owner = THIS_MODULE; > > + nvmem = nvmem_register(econfig); > > + if (IS_ERR(nvmem)) > > + return PTR_ERR(nvmem); > > + > > + platform_set_drvdata(pdev, nvmem); > > + > > + return 0; > > +} > > + > > +static int mtk_efuse_remove(struct platform_device *pdev) > > +{ > > + struct nvmem_device *nvmem = platform_get_drvdata(pdev); > > + > > + return nvmem_unregister(nvmem); > > +} > > + > > +static const struct of_device_id mtk_efuse_of_match[] = { > > + { .compatible = "mediatek,mt8135-efuse",}, > > + { .compatible = "mediatek,mt8173-efuse",}, > > + {/* sentinel */}, > > +}; > > +MODULE_DEVICE_TABLE(of, mtk_efuse_of_match); > > + > > +static struct platform_driver mtk_efuse_driver = { > > + .probe = mtk_efuse_probe, > > + .remove = mtk_efuse_remove, > > + .driver = { > > + .name = "mediatek,efuse", > > + .of_match_table = mtk_efuse_of_match, > > + }, > > +}; > > +module_platform_driver(mtk_efuse_driver); > > +MODULE_AUTHOR("Andrew-CT Chen <andrew-ct.chen@mediatek.com>"); > > +MODULE_DESCRIPTION("Mediatek EFUSE driver"); > > +MODULE_LICENSE("GPL v2"); > > ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 2/3] nvmem: mediatek: Add Mediatek EFUSE driver 2015-10-27 5:32 ` andrew-ct chen @ 2015-10-27 9:28 ` andrew-ct chen 0 siblings, 0 replies; 15+ messages in thread From: andrew-ct chen @ 2015-10-27 9:28 UTC (permalink / raw) To: linux-arm-kernel On Tue, 2015-10-27 at 13:32 +0800, andrew-ct chen wrote: > On Mon, 2015-10-26 at 09:56 +0000, Srinivas Kandagatla wrote: > > On 16/10/15 09:39, andrew-ct.chen at mediatek.com wrote: > > > From: Andrew-CT Chen <andrew-ct.chen@mediatek.com> > > > > > > Add Mediatek EFUSE driver to access hardware data like > > > thermal sensor calibration or HDMI impedance. > > > > > > Signed-off-by: Andrew-CT Chen <andrew-ct.chen@mediatek.com> > > > > Dirver looks pretty simple, below are few minor nits. > > > > Please rebase this patch on top of v4.4-rc1 once its released in few > > weeks, so that I can queue this driver for v4.5. > > We will rebase it. > > > > > > --- > > > drivers/nvmem/Kconfig | 11 ++++++ > > > drivers/nvmem/Makefile | 1 + > > > drivers/nvmem/mtk-efuse.c | 89 +++++++++++++++++++++++++++++++++++++++++++++++ > > > 3 files changed, 101 insertions(+) > > > create mode 100644 drivers/nvmem/mtk-efuse.c > > > > > > diff --git a/drivers/nvmem/Kconfig b/drivers/nvmem/Kconfig > > > index 8db2978..1bd5badc 100644 > > > --- a/drivers/nvmem/Kconfig > > > +++ b/drivers/nvmem/Kconfig > > > @@ -14,6 +14,17 @@ menuconfig NVMEM > > > > > > if NVMEM > > > > > > +config MTK_EFUSE > > > + tristate "Mediatek SoCs EFUSE support" > > > + depends on ARCH_MEDIATEK || COMPILE_TEST > > > + select REGMAP_MMIO > > > + help > > > + This is a driver to access hardware related data like sensor > > > + calibration, HDMI impedance etc. > > > + > > > + This driver can also be built as a module. If so, the module > > > + will be called efuse-mtk. > > > + > > > config QCOM_QFPROM > > > tristate "QCOM QFPROM Support" > > > depends on ARCH_QCOM || COMPILE_TEST > > > diff --git a/drivers/nvmem/Makefile b/drivers/nvmem/Makefile > > > index 4328b93..916b727 100644 > > > --- a/drivers/nvmem/Makefile > > > +++ b/drivers/nvmem/Makefile > > > @@ -6,6 +6,7 @@ obj-$(CONFIG_NVMEM) += nvmem_core.o > > > nvmem_core-y := core.o > > > > > > # Devices > > > +obj-$(CONFIG_MTK_EFUSE) += mtk-efuse.o > > > > For consistency reasons, could you do this similar to other drivers. We will do this for the consistency. > > > > > obj-$(CONFIG_QCOM_QFPROM) += nvmem_qfprom.o > > > nvmem_qfprom-y := qfprom.o > > > obj-$(CONFIG_NVMEM_SUNXI_SID) += nvmem_sunxi_sid.o > > > diff --git a/drivers/nvmem/mtk-efuse.c b/drivers/nvmem/mtk-efuse.c > > > new file mode 100644 > > > index 0000000..9021c0b > > > --- /dev/null > > > +++ b/drivers/nvmem/mtk-efuse.c > > > @@ -0,0 +1,89 @@ > > > +/* > > > + * Copyright (c) 2015 MediaTek Inc. > > > + * Author: Andrew-CT Chen <andrew-ct.chen@mediatek.com> > > > + * > > > + * This program is free software; you can redistribute it and/or modify > > > + * it under the terms of the GNU General Public License version 2 as > > > + * published by the Free Software Foundation. > > > + * > > > + * 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/device.h> > > > +#include <linux/module.h> > > > +#include <linux/nvmem-provider.h> > > > +#include <linux/platform_device.h> > > > +#include <linux/regmap.h> > > > + > > > +static struct regmap_config mtk_regmap_config = { > > > + .reg_bits = 32, > > > + .val_bits = 32, > > > + .reg_stride = 4, > > > +}; > > > + > > > +static int mtk_efuse_probe(struct platform_device *pdev) > > > +{ > > > + struct device *dev = &pdev->dev; > > > + struct resource *res; > > > + struct nvmem_device *nvmem; > > > + struct nvmem_config *econfig; > > > + struct regmap *regmap; > > > + void __iomem *base; > > > + > > > + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > > > + base = devm_ioremap_resource(dev, res); > > > + if (IS_ERR(base)) > > > + return PTR_ERR(base); > > > + > > > + econfig = devm_kzalloc(dev, sizeof(*econfig), GFP_KERNEL); > > > + if (!econfig) > > > + return -ENOMEM; > > Why not use static econfig variable? > > > > > + > > > + mtk_regmap_config.max_register = resource_size(res) - 1; > > > + > > > + regmap = devm_regmap_init_mmio(dev, base, &mtk_regmap_config); > > > + if (IS_ERR(regmap)) { > > > + dev_err(dev, "regmap init failed\n"); > > > + return PTR_ERR(regmap); > > > + } > > > + > > > + econfig->dev = dev; > > > + econfig->owner = THIS_MODULE; > > > + nvmem = nvmem_register(econfig); > > > + if (IS_ERR(nvmem)) > > > + return PTR_ERR(nvmem); > > > + > > > + platform_set_drvdata(pdev, nvmem); > > > + > > > + return 0; > > > +} > > > + > > > +static int mtk_efuse_remove(struct platform_device *pdev) > > > +{ > > > + struct nvmem_device *nvmem = platform_get_drvdata(pdev); > > > + > > > + return nvmem_unregister(nvmem); > > > +} > > > + > > > +static const struct of_device_id mtk_efuse_of_match[] = { > > > + { .compatible = "mediatek,mt8135-efuse",}, > > > + { .compatible = "mediatek,mt8173-efuse",}, > > > + {/* sentinel */}, > > > +}; > > > +MODULE_DEVICE_TABLE(of, mtk_efuse_of_match); > > > + > > > +static struct platform_driver mtk_efuse_driver = { > > > + .probe = mtk_efuse_probe, > > > + .remove = mtk_efuse_remove, > > > + .driver = { > > > + .name = "mediatek,efuse", > > > + .of_match_table = mtk_efuse_of_match, > > > + }, > > > +}; > > > +module_platform_driver(mtk_efuse_driver); > > > +MODULE_AUTHOR("Andrew-CT Chen <andrew-ct.chen@mediatek.com>"); > > > +MODULE_DESCRIPTION("Mediatek EFUSE driver"); > > > +MODULE_LICENSE("GPL v2"); > > > > ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 3/3] dts: arm64: Add EFUSE device node 2015-10-16 8:39 [PATCH 0/3] Mediatek EFUSE Support andrew-ct.chen at mediatek.com 2015-10-16 8:39 ` [PATCH 1/3] dt-bindings: add document of mediatek efuse driver andrew-ct.chen at mediatek.com 2015-10-16 8:39 ` [PATCH 2/3] nvmem: mediatek: Add Mediatek EFUSE driver andrew-ct.chen at mediatek.com @ 2015-10-16 8:39 ` andrew-ct.chen at mediatek.com 2015-10-19 6:49 ` [PATCH 0/3] Mediatek EFUSE Support Sascha Hauer 3 siblings, 0 replies; 15+ messages in thread From: andrew-ct.chen at mediatek.com @ 2015-10-16 8:39 UTC (permalink / raw) To: linux-arm-kernel From: Andrew-CT Chen <andrew-ct.chen@mediatek.com> Add Mediatek MT8173 EFUSE device node Signed-off-by: Andrew-CT Chen <andrew-ct.chen@mediatek.com> --- arch/arm64/boot/dts/mediatek/mt8173.dtsi | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arm64/boot/dts/mediatek/mt8173.dtsi b/arch/arm64/boot/dts/mediatek/mt8173.dtsi index d18ee42..ab7227a 100644 --- a/arch/arm64/boot/dts/mediatek/mt8173.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8173.dtsi @@ -258,6 +258,11 @@ reg = <0 0x10200620 0 0x20>; }; + efuse: efuse at 10206000 { + compatible = "mediatek,mt8173-efuse"; + reg = <0 0x10206000 0 0x1000>; + }; + apmixedsys: clock-controller at 10209000 { compatible = "mediatek,mt8173-apmixedsys"; reg = <0 0x10209000 0 0x1000>; -- 1.9.1 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 0/3] Mediatek EFUSE Support 2015-10-16 8:39 [PATCH 0/3] Mediatek EFUSE Support andrew-ct.chen at mediatek.com ` (2 preceding siblings ...) 2015-10-16 8:39 ` [PATCH 3/3] dts: arm64: Add EFUSE device node andrew-ct.chen at mediatek.com @ 2015-10-19 6:49 ` Sascha Hauer 3 siblings, 0 replies; 15+ messages in thread From: Sascha Hauer @ 2015-10-19 6:49 UTC (permalink / raw) To: linux-arm-kernel Hi, On Fri, Oct 16, 2015 at 04:39:08PM +0800, andrew-ct.chen at mediatek.com wrote: > This patch adds EFUSE support driver which is used by other drivers > like thermal sensor and HDMI impedance. > > There are some efuses these fuses store things like calibration data, > speed bins.. etc. Drivers like thermal sensor, HDMI impedance would > read out this data for configuring the driver. > > Andrew-CT Chen (3): > dt-bindings: add document of mediatek efuse driver > nvmem: mediatek: Add Mediatek EFUSE driver > dts: arm64: Add EFUSE device node Being the one who motivated using nvmem for the efuses and having reviewed the first internal version of this driver, this version looks ok to me. Reviewed-by: Sascha Hauer <s.hauer@pengutronix.de> Sascha -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2015-10-27 9:28 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-10-16 8:39 [PATCH 0/3] Mediatek EFUSE Support andrew-ct.chen at mediatek.com 2015-10-16 8:39 ` [PATCH 1/3] dt-bindings: add document of mediatek efuse driver andrew-ct.chen at mediatek.com 2015-10-26 9:56 ` Srinivas Kandagatla 2015-10-26 10:23 ` Sascha Hauer 2015-10-26 10:55 ` Srinivas Kandagatla 2015-10-27 5:32 ` andrew-ct chen 2015-10-27 9:27 ` andrew-ct chen 2015-10-16 8:39 ` [PATCH 2/3] nvmem: mediatek: Add Mediatek EFUSE driver andrew-ct.chen at mediatek.com 2015-10-26 9:56 ` Srinivas Kandagatla 2015-10-26 10:28 ` Sascha Hauer 2015-10-26 10:39 ` Srinivas Kandagatla 2015-10-27 5:32 ` andrew-ct chen 2015-10-27 9:28 ` andrew-ct chen 2015-10-16 8:39 ` [PATCH 3/3] dts: arm64: Add EFUSE device node andrew-ct.chen at mediatek.com 2015-10-19 6:49 ` [PATCH 0/3] Mediatek EFUSE Support Sascha Hauer
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).