Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751793AbeACUCR (ORCPT + 1 other); Wed, 3 Jan 2018 15:02:17 -0500 Received: from mail-ot0-f195.google.com ([74.125.82.195]:34154 "EHLO mail-ot0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751765AbeACUCN (ORCPT ); Wed, 3 Jan 2018 15:02:13 -0500 X-Google-Smtp-Source: ACJfBot1FJHrp4eNThxKyaj4tOPjfaer9VtPAUAp0V667Q8gYKZTmv9CR893wDXk/GOE7Gr2oETBnw== Date: Wed, 3 Jan 2018 14:02:11 -0600 From: Rob Herring To: Mathieu Malaterre Cc: Marcin Nowakowski , Greg Kroah-Hartman , Zubair.Kakakhel@mips.com, PrasannaKumar Muralidharan , Srinivas Kandagatla , Mark Rutland , Ralf Baechle , linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-mips@linux-mips.org Subject: Re: [PATCH v2 1/2] nvmem: add driver for JZ4780 efuse Message-ID: <20180103200211.u56tqesyumsofoff@rob-hp-laptop> References: <20171228212954.2922-1-malat@debian.org> <20171228212954.2922-2-malat@debian.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20171228212954.2922-2-malat@debian.org> User-Agent: NeoMutt/20170609 (1.8.3) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: On Thu, Dec 28, 2017 at 10:29:52PM +0100, Mathieu Malaterre wrote: > From: PrasannaKumar Muralidharan > > This patch brings support for the JZ4780 efuse. Currently it only expose > a read only access to the entire 8K bits efuse memory. > > Tested-by: Mathieu Malaterre > Signed-off-by: PrasannaKumar Muralidharan > Signed-off-by: Mathieu Malaterre > --- > .../ABI/testing/sysfs-driver-jz4780-efuse | 16 ++ > .../bindings/nvmem/ingenic,jz4780-efuse.txt | 17 ++ Please split bindings to separate patch. > MAINTAINERS | 5 + > arch/mips/boot/dts/ingenic/jz4780.dtsi | 40 ++- dts files should also be separate. > drivers/nvmem/Kconfig | 10 + > drivers/nvmem/Makefile | 2 + > drivers/nvmem/jz4780-efuse.c | 305 +++++++++++++++++++++ > 7 files changed, 383 insertions(+), 12 deletions(-) > create mode 100644 Documentation/ABI/testing/sysfs-driver-jz4780-efuse > create mode 100644 Documentation/devicetree/bindings/nvmem/ingenic,jz4780-efuse.txt > create mode 100644 drivers/nvmem/jz4780-efuse.c > > diff --git a/Documentation/ABI/testing/sysfs-driver-jz4780-efuse b/Documentation/ABI/testing/sysfs-driver-jz4780-efuse > new file mode 100644 > index 000000000000..bb6f5d6ceea0 > --- /dev/null > +++ b/Documentation/ABI/testing/sysfs-driver-jz4780-efuse > @@ -0,0 +1,16 @@ > +What: /sys/devices/*//nvmem > +Date: December 2017 > +Contact: PrasannaKumar Muralidharan > +Description: read-only access to the efuse on the Ingenic JZ4780 SoC > + The SoC has a one time programmable 8K efuse that is > + split into segments. The driver supports read only. > + The segments are > + 0x000 64 bit Random Number > + 0x008 128 bit Ingenic Chip ID > + 0x018 128 bit Customer ID > + 0x028 3520 bit Reserved > + 0x1E0 8 bit Protect Segment > + 0x1E1 2296 bit HDMI Key > + 0x300 2048 bit Security boot key Why do these need to be exposed to userspace? sysfs is 1 value per file and this is lots of different things. We already have ways to feed random data (entropy) to the system. And we have a way to expose SoC ID info to userspace (socdev). > +Users: any user space application which wants to read the Chip > + and Customer ID > diff --git a/Documentation/devicetree/bindings/nvmem/ingenic,jz4780-efuse.txt b/Documentation/devicetree/bindings/nvmem/ingenic,jz4780-efuse.txt > new file mode 100644 > index 000000000000..cd6d67ec22fc > --- /dev/null > +++ b/Documentation/devicetree/bindings/nvmem/ingenic,jz4780-efuse.txt > @@ -0,0 +1,17 @@ > +Ingenic JZ EFUSE driver bindings > + > +Required properties: > +- "compatible" Must be set to "ingenic,jz4780-efuse" > +- "reg" Register location and length > +- "clocks" Handle for the ahb clock for the efuse. > +- "clock-names" Must be "bus_clk" > + > +Example: > + > +efuse: efuse@134100d0 { > + compatible = "ingenic,jz4780-efuse"; > + reg = <0x134100D0 0xFF>; > + > + clocks = <&cgu JZ4780_CLK_AHB2>; > + clock-names = "bus_clk"; > +}; > diff --git a/MAINTAINERS b/MAINTAINERS > index a6e86e20761e..7a050c20c533 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -6902,6 +6902,11 @@ M: Zubair Lutfullah Kakakhel > S: Maintained > F: drivers/dma/dma-jz4780.c > > +INGENIC JZ4780 EFUSE Driver > +M: PrasannaKumar Muralidharan > +S: Maintained > +F: drivers/nvmem/jz4780-efuse.c Binding file? > + > INGENIC JZ4780 NAND DRIVER > M: Harvey Hunt > L: linux-mtd@lists.infradead.org > diff --git a/arch/mips/boot/dts/ingenic/jz4780.dtsi b/arch/mips/boot/dts/ingenic/jz4780.dtsi > index 9b5794667aee..3fb9d916a2ea 100644 > --- a/arch/mips/boot/dts/ingenic/jz4780.dtsi > +++ b/arch/mips/boot/dts/ingenic/jz4780.dtsi > @@ -224,21 +224,37 @@ > reg = <0x10002000 0x100>; > }; > > - nemc: nemc@13410000 { > - compatible = "ingenic,jz4780-nemc"; > - reg = <0x13410000 0x10000>; > - #address-cells = <2>; > + > + ahb2: ahb2 { > + compatible = "simple-bus"; This is an unrelated change and should be its own patch. > + #address-cells = <1>; > #size-cells = <1>; > - ranges = <1 0 0x1b000000 0x1000000 > - 2 0 0x1a000000 0x1000000 > - 3 0 0x19000000 0x1000000 > - 4 0 0x18000000 0x1000000 > - 5 0 0x17000000 0x1000000 > - 6 0 0x16000000 0x1000000>; > + ranges = <>; > + > + nemc: nemc@13410000 { > + compatible = "ingenic,jz4780-nemc"; > + reg = <0x13410000 0x10000>; > + #address-cells = <2>; > + #size-cells = <1>; > + ranges = <1 0 0x1b000000 0x1000000 > + 2 0 0x1a000000 0x1000000 > + 3 0 0x19000000 0x1000000 > + 4 0 0x18000000 0x1000000 > + 5 0 0x17000000 0x1000000 > + 6 0 0x16000000 0x1000000>; > + > + clocks = <&cgu JZ4780_CLK_NEMC>; > + > + status = "disabled"; > + }; > > - clocks = <&cgu JZ4780_CLK_NEMC>; > + efuse: efuse@134100d0 { > + compatible = "ingenic,jz4780-efuse"; > + reg = <0x134100d0 0xff>; You are creating an overlapping region here with nemc above. Don't do that. > > - status = "disabled"; > + clocks = <&cgu JZ4780_CLK_AHB2>; > + clock-names = "bus_clk"; > + }; > }; > > bch: bch@134d0000 {