From 976deff0dbc8e0af97b7ac1ba6dddb41cd1a9412 Mon Sep 17 00:00:00 2001 From: Chen Liang Date: Tue, 11 Apr 2017 15:51:23 +0800 Subject: [PATCH] nvmem: rockchip-efuse: add optional property to get efuse size The exact efuse size is defined in property before, this assume that the length of registers is equal to efuse size, but it not true for some chips, so we need anothor property to redefine efuse size. Change-Id: I9cdab8adc2a13b55cfcacc3c2248295c4387a806 Signed-off-by: Chen Liang --- Documentation/devicetree/bindings/nvmem/rockchip-efuse.txt | 4 ++++ drivers/nvmem/rockchip-efuse.c | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/nvmem/rockchip-efuse.txt b/Documentation/devicetree/bindings/nvmem/rockchip-efuse.txt index ceab1d14f1ab..19b3dad67528 100644 --- a/Documentation/devicetree/bindings/nvmem/rockchip-efuse.txt +++ b/Documentation/devicetree/bindings/nvmem/rockchip-efuse.txt @@ -13,6 +13,10 @@ Required properties: - clocks: Should be the clock id of eFuse - clock-names: Should be "pclk_efuse" +Optional properties: +- rockchip,efuse-size: Should be exact eFuse size in byte, the eFuse + size in property will be invalid if define this property. + Deprecated properties: - compatible: "rockchip,rockchip-efuse" Old efuse compatible value compatible to rk3066a, rk3188 and rk3288 diff --git a/drivers/nvmem/rockchip-efuse.c b/drivers/nvmem/rockchip-efuse.c index c117d071d967..294816c2430a 100644 --- a/drivers/nvmem/rockchip-efuse.c +++ b/drivers/nvmem/rockchip-efuse.c @@ -361,7 +361,12 @@ static int __init rockchip_efuse_probe(struct platform_device *pdev) return PTR_ERR(efuse->clk); efuse->dev = &pdev->dev; - econfig.size = resource_size(res); + if (of_property_read_u32_index(dev->of_node, + "rockchip,efuse-size", + 0, + &econfig.size)) + econfig.size = resource_size(res); + econfig.reg_read = match->data; econfig.priv = efuse; econfig.dev = efuse->dev; -- 2.34.1