* [PATCH v4 0/2] mtd: rawnand: meson: add Amlogic NAND driver support @ 2018-09-20 8:50 Jianxin Pan 2018-09-20 8:50 ` [PATCH v4 1/2] dt-bindings: nand: meson: add Amlogic NAND controller driver Jianxin Pan 0 siblings, 1 reply; 4+ messages in thread From: Jianxin Pan @ 2018-09-20 8:50 UTC (permalink / raw) To: Boris Brezillon, linux-mtd Cc: Jianxin Pan, David Woodhouse, Brian Norris, Marek Vasut, Richard Weinberger, Jerome Brunet, Neil Armstrong, Martin Blumenstingl, Carlo Caione, Kevin Hilman, Rob Herring, Yixun Lan, Jian Hu, Liang Yang, Hanjie Lin, Victor Wan, linux-amlogic, linux-arm-kernel, linux-kernel, devicetree These two patches try to add initial NAND driver support for Amlogic Meson SoCs, current it has been tested on GXL(p212) and AXG(s400) platform. Changes since v3 at [4]: - remove partition table and some used props from dt-bindings Changes since v2 at [3]: - remove some hardcode time value, like twb - use dev wait R/B instead of nand_soft_waitrdy - implement nfc ecc init by ecc helper - rework nfc buffer init to register the maximun buffer when several chips - free nfc buffer when error and cleanup - add variable to teack all the already assigned CS lines - fix mtd->name use the first cs line only - remove dt "nand-enable-scrambler" and use NAND_NEED_SCRAMBLING instead. - move setuping ECC fileds after the identification phase - use nand_scan() and attach_chip() - check one event to return IRQ_NONE - delete cast when of_device_get_match_data - use nand_controller_init() helper - remove nfc driver complains when calling devm_ioremap_resource - clear irqs before setting up irq handler Changes since v1 at [1]: - adopt property amlogic,nand-enable-scrambler - thanks Martin - drop nand pins in DT - convert clk access to emmc clkc model - fix regiser field definition alignment - drop nand-user-mode - parse cs id from DT - rework n2m, m2n function - explain why insert two "IDLE" command - implement exec_op() - drop meson_nfc_get_nand_chip_dts() - release resource once error occur in meson_nfc_nand_chips_init(), - call nand_cleanup(nand) once mtd_device_register fail Items not addressed ( or confirmed ) in this version: - convert to ECC conf helper() - convert to dma coherent API - how to construct mtd->name [1] https://lkml.kernel.org/r/20180613161314.14894-1-yixun.lan@amlogic.com [2] https://lkml.kernel.org/r/20180712211244.11428-1-yixun.lan@amlogic.com [3] https://lkml.kernel.org/r/20180719094612.5833-1-yixun.lan@amlogic.com [4] https://lkml.kernel.org/r/1536317831-58056-1-git-send-email-jianxin.pan@amlogic.com/ Liang Yang (2): dt-bindings: nand: meson: add Amlogic NAND controller driver mtd: rawnand: meson: add support for Amlogic NAND flash controller .../devicetree/bindings/mtd/amlogic,meson-nand.txt | 60 + drivers/mtd/nand/raw/Kconfig | 10 + drivers/mtd/nand/raw/Makefile | 1 + drivers/mtd/nand/raw/meson_nand.c | 1372 ++++++++++++++++++++ 4 files changed, 1443 insertions(+) create mode 100644 Documentation/devicetree/bindings/mtd/amlogic,meson-nand.txt create mode 100644 drivers/mtd/nand/raw/meson_nand.c -- 1.9.1 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v4 1/2] dt-bindings: nand: meson: add Amlogic NAND controller driver 2018-09-20 8:50 [PATCH v4 0/2] mtd: rawnand: meson: add Amlogic NAND driver support Jianxin Pan @ 2018-09-20 8:50 ` Jianxin Pan 2018-09-27 18:16 ` Rob Herring 0 siblings, 1 reply; 4+ messages in thread From: Jianxin Pan @ 2018-09-20 8:50 UTC (permalink / raw) To: Boris Brezillon, linux-mtd Cc: Liang Yang, Yixun Lan, David Woodhouse, Brian Norris, Marek Vasut, Richard Weinberger, Jerome Brunet, Neil Armstrong, Martin Blumenstingl, Carlo Caione, Kevin Hilman, Rob Herring, Jian Hu, Jianxin Pan, Hanjie Lin, Victor Wan, linux-amlogic, linux-arm-kernel, linux-kernel, devicetree From: Liang Yang <liang.yang@amlogic.com> Add Amlogic NAND controller dt-bindings for Meson SoC, Current this driver support GXBB/GXL/AXG platform. Signed-off-by: Liang Yang <liang.yang@amlogic.com> Signed-off-by: Yixun Lan <yixun.lan@amlogic.com> --- .../devicetree/bindings/mtd/amlogic,meson-nand.txt | 60 ++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 Documentation/devicetree/bindings/mtd/amlogic,meson-nand.txt diff --git a/Documentation/devicetree/bindings/mtd/amlogic,meson-nand.txt b/Documentation/devicetree/bindings/mtd/amlogic,meson-nand.txt new file mode 100644 index 0000000..803df2a --- /dev/null +++ b/Documentation/devicetree/bindings/mtd/amlogic,meson-nand.txt @@ -0,0 +1,60 @@ +Amlogic NAND Flash Controller (NFC) for GXBB/GXL/AXG family SoCs + +This file documents the properties in addition to those available in +the MTD NAND bindings. + +Required properties: +- compatible : contains one of: + - "amlogic,meson-gxl-nfc" + - "amlogic,meson-axg-nfc" +- clocks : + A list of phandle + clock-specifier pairs for the clocks listed + in clock-names. + +- clock-names: Should contain the following: + "core" - NFC module gate clock + "device" - device clock from eMMC sub clock controller + +- amlogic,mmc-syscon : Required for NAND clocks, it's shared with SD/eMMC + controller port C + +Optional children nodes: +Children nodes represent the available nand chips. + +Other properties: +see Documentation/devicetree/bindings/mtd/nand.txt for generic bindings. + +Example demonstrate on AXG SoC: + + sd_emmc_c_clkc: mmc@7000 { + compatible = "amlogic,meson-axg-mmc-clkc", "syscon"; + reg = <0x0 0x7000 0x0 0x800>; + status = "okay"; + }; + + nand: nfc@7800 { + compatible = "amlogic,meson-axg-nfc"; + reg = <0x0 0x7800 0x0 0x100>; + #address-cells = <1>; + #size-cells = <0>; + interrupts = <GIC_SPI 34 IRQ_TYPE_EDGE_RISING>; + status = "disabled"; + + clocks = <&clkc CLKID_SD_EMMC_C>, + <&sd_emmc_c_clkc CLKID_MMC_DIV>; + clock-names = "core", "device"; + amlogic,mmc-syscon = <&sd_emmc_c_clkc>; + + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&nand_pins>; + + nand@0 { + reg = <0>; + #address-cells = <1>; + #size-cells = <1>; + + nand-on-flash-bbt; + }; + }; -- 1.9.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v4 1/2] dt-bindings: nand: meson: add Amlogic NAND controller driver 2018-09-20 8:50 ` [PATCH v4 1/2] dt-bindings: nand: meson: add Amlogic NAND controller driver Jianxin Pan @ 2018-09-27 18:16 ` Rob Herring 2018-09-28 8:33 ` Liang Yang 0 siblings, 1 reply; 4+ messages in thread From: Rob Herring @ 2018-09-27 18:16 UTC (permalink / raw) To: Jianxin Pan Cc: Boris Brezillon, linux-mtd, Liang Yang, Yixun Lan, David Woodhouse, Brian Norris, Marek Vasut, Richard Weinberger, Jerome Brunet, Neil Armstrong, Martin Blumenstingl, Carlo Caione, Kevin Hilman, Jian Hu, Hanjie Lin, Victor Wan, linux-amlogic, linux-arm-kernel, linux-kernel, devicetree On Thu, Sep 20, 2018 at 04:50:48PM +0800, Jianxin Pan wrote: > From: Liang Yang <liang.yang@amlogic.com> > > Add Amlogic NAND controller dt-bindings for Meson SoC, > Current this driver support GXBB/GXL/AXG platform. > > Signed-off-by: Liang Yang <liang.yang@amlogic.com> > Signed-off-by: Yixun Lan <yixun.lan@amlogic.com> > --- > .../devicetree/bindings/mtd/amlogic,meson-nand.txt | 60 ++++++++++++++++++++++ > 1 file changed, 60 insertions(+) > create mode 100644 Documentation/devicetree/bindings/mtd/amlogic,meson-nand.txt > > diff --git a/Documentation/devicetree/bindings/mtd/amlogic,meson-nand.txt b/Documentation/devicetree/bindings/mtd/amlogic,meson-nand.txt > new file mode 100644 > index 0000000..803df2a > --- /dev/null > +++ b/Documentation/devicetree/bindings/mtd/amlogic,meson-nand.txt > @@ -0,0 +1,60 @@ > +Amlogic NAND Flash Controller (NFC) for GXBB/GXL/AXG family SoCs > + > +This file documents the properties in addition to those available in > +the MTD NAND bindings. > + > +Required properties: > +- compatible : contains one of: > + - "amlogic,meson-gxl-nfc" > + - "amlogic,meson-axg-nfc" > +- clocks : > + A list of phandle + clock-specifier pairs for the clocks listed > + in clock-names. > + > +- clock-names: Should contain the following: > + "core" - NFC module gate clock > + "device" - device clock from eMMC sub clock controller > + > +- amlogic,mmc-syscon : Required for NAND clocks, it's shared with SD/eMMC > + controller port C > + > +Optional children nodes: > +Children nodes represent the available nand chips. > + > +Other properties: > +see Documentation/devicetree/bindings/mtd/nand.txt for generic bindings. > + > +Example demonstrate on AXG SoC: > + > + sd_emmc_c_clkc: mmc@7000 { > + compatible = "amlogic,meson-axg-mmc-clkc", "syscon"; > + reg = <0x0 0x7000 0x0 0x800>; > + status = "okay"; > + }; > + > + nand: nfc@7800 { nand-controller@7800 > + compatible = "amlogic,meson-axg-nfc"; > + reg = <0x0 0x7800 0x0 0x100>; > + #address-cells = <1>; > + #size-cells = <0>; > + interrupts = <GIC_SPI 34 IRQ_TYPE_EDGE_RISING>; > + status = "disabled"; > + > + clocks = <&clkc CLKID_SD_EMMC_C>, > + <&sd_emmc_c_clkc CLKID_MMC_DIV>; > + clock-names = "core", "device"; > + amlogic,mmc-syscon = <&sd_emmc_c_clkc>; > + > + status = "okay"; Don't show status in examples, plus you have it twice. > + > + pinctrl-names = "default"; > + pinctrl-0 = <&nand_pins>; > + > + nand@0 { > + reg = <0>; > + #address-cells = <1>; > + #size-cells = <1>; > + > + nand-on-flash-bbt; > + }; > + }; > -- > 1.9.1 > ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v4 1/2] dt-bindings: nand: meson: add Amlogic NAND controller driver 2018-09-27 18:16 ` Rob Herring @ 2018-09-28 8:33 ` Liang Yang 0 siblings, 0 replies; 4+ messages in thread From: Liang Yang @ 2018-09-28 8:33 UTC (permalink / raw) To: Rob Herring, Jianxin Pan Cc: Boris Brezillon, linux-mtd, Yixun Lan, David Woodhouse, Brian Norris, Marek Vasut, Richard Weinberger, Jerome Brunet, Neil Armstrong, Martin Blumenstingl, Carlo Caione, Kevin Hilman, Jian Hu, Hanjie Lin, Victor Wan, linux-amlogic, linux-arm-kernel, linux-kernel, devicetree On 9/28/2018 2:16 AM, Rob Herring wrote: > On Thu, Sep 20, 2018 at 04:50:48PM +0800, Jianxin Pan wrote: >> From: Liang Yang <liang.yang@amlogic.com> >> >> Add Amlogic NAND controller dt-bindings for Meson SoC, >> Current this driver support GXBB/GXL/AXG platform. >> >> Signed-off-by: Liang Yang <liang.yang@amlogic.com> >> Signed-off-by: Yixun Lan <yixun.lan@amlogic.com> >> --- >> .../devicetree/bindings/mtd/amlogic,meson-nand.txt | 60 ++++++++++++++++++++++ >> 1 file changed, 60 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/mtd/amlogic,meson-nand.txt >> >> diff --git a/Documentation/devicetree/bindings/mtd/amlogic,meson-nand.txt b/Documentation/devicetree/bindings/mtd/amlogic,meson-nand.txt >> new file mode 100644 >> index 0000000..803df2a >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/mtd/amlogic,meson-nand.txt >> @@ -0,0 +1,60 @@ >> +Amlogic NAND Flash Controller (NFC) for GXBB/GXL/AXG family SoCs >> + >> +This file documents the properties in addition to those available in >> +the MTD NAND bindings. >> + >> +Required properties: >> +- compatible : contains one of: >> + - "amlogic,meson-gxl-nfc" >> + - "amlogic,meson-axg-nfc" >> +- clocks : >> + A list of phandle + clock-specifier pairs for the clocks listed >> + in clock-names. >> + >> +- clock-names: Should contain the following: >> + "core" - NFC module gate clock >> + "device" - device clock from eMMC sub clock controller >> + >> +- amlogic,mmc-syscon : Required for NAND clocks, it's shared with SD/eMMC >> + controller port C >> + >> +Optional children nodes: >> +Children nodes represent the available nand chips. >> + >> +Other properties: >> +see Documentation/devicetree/bindings/mtd/nand.txt for generic bindings. >> + >> +Example demonstrate on AXG SoC: >> + >> + sd_emmc_c_clkc: mmc@7000 { >> + compatible = "amlogic,meson-axg-mmc-clkc", "syscon"; >> + reg = <0x0 0x7000 0x0 0x800>; >> + status = "okay"; >> + }; >> + >> + nand: nfc@7800 { > > nand-controller@7800 > ok, i will fix it. >> + compatible = "amlogic,meson-axg-nfc"; >> + reg = <0x0 0x7800 0x0 0x100>; >> + #address-cells = <1>; >> + #size-cells = <0>; >> + interrupts = <GIC_SPI 34 IRQ_TYPE_EDGE_RISING>; >> + status = "disabled"; >> + >> + clocks = <&clkc CLKID_SD_EMMC_C>, >> + <&sd_emmc_c_clkc CLKID_MMC_DIV>; >> + clock-names = "core", "device"; >> + amlogic,mmc-syscon = <&sd_emmc_c_clkc>; >> + >> + status = "okay"; > > Don't show status in examples, plus you have it twice. > ok, i will fix it. >> + >> + pinctrl-names = "default"; >> + pinctrl-0 = <&nand_pins>; >> + >> + nand@0 { >> + reg = <0>; >> + #address-cells = <1>; >> + #size-cells = <1>; >> + >> + nand-on-flash-bbt; >> + }; >> + }; >> -- >> 1.9.1 >> > > . > ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-09-28 8:33 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-09-20 8:50 [PATCH v4 0/2] mtd: rawnand: meson: add Amlogic NAND driver support Jianxin Pan 2018-09-20 8:50 ` [PATCH v4 1/2] dt-bindings: nand: meson: add Amlogic NAND controller driver Jianxin Pan 2018-09-27 18:16 ` Rob Herring 2018-09-28 8:33 ` Liang Yang
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).