Message ID | 1555320234-15802-5-git-send-email-masonccyang@mxic.com.tw |
---|---|
State | Changes Requested |
Delegated to: | Miquel Raynal |
Headers | show |
Series | Add Macronix MX25F0A MFD driver for raw nand and spi | expand |
On Mon, Apr 15, 2019 at 05:23:54PM +0800, Mason Yang wrote: > Document the bindings used by the Macronix MX25F0A MFD controller. > > Signed-off-by: Mason Yang <masonccyang@mxic.com.tw> > --- > .../devicetree/bindings/mfd/mxic-mx25f0a.txt | 51 ++++++++++++++++++++++ > 1 file changed, 51 insertions(+) > create mode 100644 Documentation/devicetree/bindings/mfd/mxic-mx25f0a.txt > > diff --git a/Documentation/devicetree/bindings/mfd/mxic-mx25f0a.txt b/Documentation/devicetree/bindings/mfd/mxic-mx25f0a.txt > new file mode 100644 > index 0000000..7f3e0f8 > --- /dev/null > +++ b/Documentation/devicetree/bindings/mfd/mxic-mx25f0a.txt > @@ -0,0 +1,51 @@ > +Macronix MX25F0A MultiFunction Device Tree Bindings > +---------------------------------------------------- > + > +MX25F0A is a MultiFunction Device with SPI and raw NAND, which > +supports either spi host controller or raw nand controller. > + > +Required properties: > +- compatible: should be "mxic,mx25f0a" > +- #address-cells: should be 1 > +- #size-cells: should be 0 > +- reg: should contain 2 entries, one for the registers and one for the direct > + mapping area in SPI mode. > +- reg-names: should contain "regs" and "dirmap" > +- interrupts: interrupt line connected to this MFD controller > +- SPI controller driver: > + - clock-names: should contain "ps_clk", "send_clk" and > + "send_dly_clk" > + - clocks: should contain 3 entries for the "ps_clk", "send_clk" > + and "send_dly_clk" clocks > + > +- Raw nand controller driver. > + - nand-ecc-mode = "soft"; > + - nand-ecc-algo = "bch"; > + > +Example: > + > + mxic: mx25f0a@43c30000 { > + compatible = "mxic,mx25f0a"; > + reg = <0x43c30000 0x10000>, <0xa0000000 0x4000000>; > + reg-names = "regs", "dirmap"; > + > + /* spi */ > + clocks = <&clkwizard 0>, <&clkwizard 1>, <&clkc 15>; > + clock-names = "send_clk", "send_dly_clk", "ps_clk"; > + #address-cells = <1>; > + #size-cells = <0>; > + > + flash@0 { > + compatible = "jedec,spi-nor"; > + reg = <0>; > + spi-max-frequency = <25000000>; > + spi-tx-bus-width = <4>; > + spi-rx-bus-width = <4>; > + }; > + > + /* nand */ Don't you need a nand child node? I'm not sure how that's going to work as you are already using the number space (i.e. reg) for SPI CS number and you can't really mix number spaces within a node level. > + nand-ecc-mode = "soft"; > + nand-ecc-algo = "bch"; > + nand-ecc-step-size = <512>; > + nand-ecc-strength = <8>; > + }; > -- > 1.9.1 >
Hi Mason, Mason Yang <masonccyang@mxic.com.tw> wrote on Mon, 15 Apr 2019 17:23:54 +0800: > Document the bindings used by the Macronix MX25F0A MFD controller. > > Signed-off-by: Mason Yang <masonccyang@mxic.com.tw> > --- > .../devicetree/bindings/mfd/mxic-mx25f0a.txt | 51 ++++++++++++++++++++++ > 1 file changed, 51 insertions(+) > create mode 100644 Documentation/devicetree/bindings/mfd/mxic-mx25f0a.txt > > diff --git a/Documentation/devicetree/bindings/mfd/mxic-mx25f0a.txt b/Documentation/devicetree/bindings/mfd/mxic-mx25f0a.txt > new file mode 100644 > index 0000000..7f3e0f8 > --- /dev/null > +++ b/Documentation/devicetree/bindings/mfd/mxic-mx25f0a.txt > @@ -0,0 +1,51 @@ > +Macronix MX25F0A MultiFunction Device Tree Bindings > +---------------------------------------------------- > + > +MX25F0A is a MultiFunction Device with SPI and raw NAND, which > +supports either spi host controller or raw nand controller. Acronyms in plain English should be in upper case. > + > +Required properties: > +- compatible: should be "mxic,mx25f0a" > +- #address-cells: should be 1 > +- #size-cells: should be 0 > +- reg: should contain 2 entries, one for the registers and one for the direct > + mapping area in SPI mode. > +- reg-names: should contain "regs" and "dirmap" > +- interrupts: interrupt line connected to this MFD controller > +- SPI controller driver: > + - clock-names: should contain "ps_clk", "send_clk" and > + "send_dly_clk" > + - clocks: should contain 3 entries for the "ps_clk", "send_clk" > + and "send_dly_clk" clocks > + > +- Raw nand controller driver. > + - nand-ecc-mode = "soft"; > + - nand-ecc-algo = "bch"; > + > +Example: > + > + mxic: mx25f0a@43c30000 { > + compatible = "mxic,mx25f0a"; > + reg = <0x43c30000 0x10000>, <0xa0000000 0x4000000>; > + reg-names = "regs", "dirmap"; > + > + /* spi */ > + clocks = <&clkwizard 0>, <&clkwizard 1>, <&clkc 15>; > + clock-names = "send_clk", "send_dly_clk", "ps_clk"; > + #address-cells = <1>; > + #size-cells = <0>; > + > + flash@0 { > + compatible = "jedec,spi-nor"; > + reg = <0>; > + spi-max-frequency = <25000000>; > + spi-tx-bus-width = <4>; > + spi-rx-bus-width = <4>; > + }; > + > + /* nand */ > + nand-ecc-mode = "soft"; > + nand-ecc-algo = "bch"; > + nand-ecc-step-size = <512>; > + nand-ecc-strength = <8>; Any reason to enforce 512B/8b correction? Why not letting the core choose for you depending on the NAND chip's requirements? Anyway, I think you can have only one or the other (NAND or SPI), not both, and you probably should have a compatible or a property to tell the kernel which one you are using, right? Thanks, Miquèl
Hi Miquel, > > +Macronix MX25F0A MultiFunction Device Tree Bindings > > +---------------------------------------------------- > > + > > +MX25F0A is a MultiFunction Device with SPI and raw NAND, which > > +supports either spi host controller or raw nand controller. > > Acronyms in plain English should be in upper case. okay, will fix. > > +Example: > > + > > + mxic: mx25f0a@43c30000 { > > + compatible = "mxic,mx25f0a"; > > + reg = <0x43c30000 0x10000>, <0xa0000000 0x4000000>; > > + reg-names = "regs", "dirmap"; > > + > > + /* spi */ > > + clocks = <&clkwizard 0>, <&clkwizard 1>, <&clkc 15>; > > + clock-names = "send_clk", "send_dly_clk", "ps_clk"; > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + flash@0 { > > + compatible = "jedec,spi-nor"; > > + reg = <0>; > > + spi-max-frequency = <25000000>; > > + spi-tx-bus-width = <4>; > > + spi-rx-bus-width = <4>; > > + }; > > + > > + /* nand */ > > + nand-ecc-mode = "soft"; > > + nand-ecc-algo = "bch"; > > + nand-ecc-step-size = <512>; > > + nand-ecc-strength = <8>; > > Any reason to enforce 512B/8b correction? Why not letting the core > choose for you depending on the NAND chip's requirements? > I thought here is just a raw NAND DTS example. Will remove it. > > Anyway, I think you can have only one or the other (NAND or SPI), not > both, and you probably should have a compatible or a property to tell > the kernel which one you are using, right? > yes, you are right. New DTS is bellow. --------------------------------------------------------------------------> Macronix Flash Memory Controller Device Tree Bindings ----------------------------------------------------- Macronix Flash Memory Controller supports serial and raw Flash, including NOR and NAND Flash for high throughput and low pin count applications. It's a MultiFunction Device which supports either SPI host controller or raw NAND controller. Required properties: - compatible: should be "mxic,mfd" - reg: should contain 2 entries, one for the registers and one for the direct mapping area in SPI mode. - reg-names: should contain "regs" and "dirmap" - interrupts: interrupt line connected to this controller - SPI: - #address-cells: should be 1 - #size-cells: should be 0 - clock-names: should contain "ps_clk", "send_clk" and "send_dly_clk" - clocks: should contain 3 entries for the "ps_clk", "send_clk" and "send_dly_clk" clocks - Raw NAND: - nand-ecc-mode = "soft"; - nand-ecc-algo = "bch"; Example: - SPI mode: mxic: mxic-mfd@43c30000 { compatible = "mxic,mfd"; reg = <0x43c30000 0x10000>, <0xa0000000 0x4000000>; reg-names = "regs", "dirmap"; clocks = <&clkwizard 0>, <&clkwizard 1>, <&clkc 15>; clock-names = "send_clk", "send_dly_clk", "ps_clk"; #address-cells = <1>; #size-cells = <0>; flash@0 { compatible = "jedec,spi-nor"; reg = <0>; spi-max-frequency = <25000000>; spi-tx-bus-width = <4>; spi-rx-bus-width = <4>; }; }; - Raw NAND mode: mxic: mxic-mfd@43c30000 { compatible = "mxic,mfd"; reg = <0x43c30000 0x10000>, <0xa0000000 0x4000000>; reg-names = "regs", "dirmap"; nand-ecc-mode = "soft"; nand-ecc-algo = "bch"; }; ---------------------------------------------------------------------< thanks for your review. best regards, Mason CONFIDENTIALITY NOTE: This e-mail and any attachments may contain confidential information and/or personal data, which is protected by applicable laws. Please be reminded that duplication, disclosure, distribution, or use of this e-mail (and/or its attachments) or any part thereof is prohibited. If you receive this e-mail in error, please notify us immediately and delete this mail as well as its attachment(s) from your system. In addition, please be informed that collection, processing, and/or use of personal data is prohibited unless expressly permitted by personal data protection laws. Thank you for your attention and cooperation. Macronix International Co., Ltd. ===================================================================== ============================================================================ CONFIDENTIALITY NOTE: This e-mail and any attachments may contain confidential information and/or personal data, which is protected by applicable laws. Please be reminded that duplication, disclosure, distribution, or use of this e-mail (and/or its attachments) or any part thereof is prohibited. If you receive this e-mail in error, please notify us immediately and delete this mail as well as its attachment(s) from your system. In addition, please be informed that collection, processing, and/or use of personal data is prohibited unless expressly permitted by personal data protection laws. Thank you for your attention and cooperation. Macronix International Co., Ltd. =====================================================================
diff --git a/Documentation/devicetree/bindings/mfd/mxic-mx25f0a.txt b/Documentation/devicetree/bindings/mfd/mxic-mx25f0a.txt new file mode 100644 index 0000000..7f3e0f8 --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/mxic-mx25f0a.txt @@ -0,0 +1,51 @@ +Macronix MX25F0A MultiFunction Device Tree Bindings +---------------------------------------------------- + +MX25F0A is a MultiFunction Device with SPI and raw NAND, which +supports either spi host controller or raw nand controller. + +Required properties: +- compatible: should be "mxic,mx25f0a" +- #address-cells: should be 1 +- #size-cells: should be 0 +- reg: should contain 2 entries, one for the registers and one for the direct + mapping area in SPI mode. +- reg-names: should contain "regs" and "dirmap" +- interrupts: interrupt line connected to this MFD controller +- SPI controller driver: + - clock-names: should contain "ps_clk", "send_clk" and + "send_dly_clk" + - clocks: should contain 3 entries for the "ps_clk", "send_clk" + and "send_dly_clk" clocks + +- Raw nand controller driver. + - nand-ecc-mode = "soft"; + - nand-ecc-algo = "bch"; + +Example: + + mxic: mx25f0a@43c30000 { + compatible = "mxic,mx25f0a"; + reg = <0x43c30000 0x10000>, <0xa0000000 0x4000000>; + reg-names = "regs", "dirmap"; + + /* spi */ + clocks = <&clkwizard 0>, <&clkwizard 1>, <&clkc 15>; + clock-names = "send_clk", "send_dly_clk", "ps_clk"; + #address-cells = <1>; + #size-cells = <0>; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <25000000>; + spi-tx-bus-width = <4>; + spi-rx-bus-width = <4>; + }; + + /* nand */ + nand-ecc-mode = "soft"; + nand-ecc-algo = "bch"; + nand-ecc-step-size = <512>; + nand-ecc-strength = <8>; + };
Document the bindings used by the Macronix MX25F0A MFD controller. Signed-off-by: Mason Yang <masonccyang@mxic.com.tw> --- .../devicetree/bindings/mfd/mxic-mx25f0a.txt | 51 ++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 Documentation/devicetree/bindings/mfd/mxic-mx25f0a.txt