Re: [RESEND PATCH v11] mtd: spi-nor: add hisilicon spi-nor flash controller driver
Hi Brian, I haven't received more other comments for two weeks since I resent this patch except a compiling error. Could you help me merge this patch into the -next tree after I fix the compiling error? If so, I'll send out the new version as soon as possible. Thank you very much! Regards, Jiancheng On 2016/6/13 16:21, Jiancheng Xue wrote: > Add hisilicon spi-nor flash controller driver > > Signed-off-by: Binquan Peng> Signed-off-by: Jiancheng Xue > Acked-by: Rob Herring > Reviewed-by: Ezequiel Garcia > --- > change log > v11: > Fixed issues pointed by Brian Norris and Cyrille Pitchen. > 1)Changed hisi_spi_nor_read_reg()/write_reg() to configure registers > without sniffing the opcodes. > 2)Deleted hisi_spi_nor_erase() and used default implementation instead. > 3)Changed hisi_spi_nor_dma_transfer() to return a integer type value > instead of nothing. > 4)Simplified hisi_spi_nor_read()/write() as Brian suggested. > > v10: > Fixed issues pointed by Marek Vasut. > 1)Droped the underscores in the argument names of some macros' definition. > 2)Changed some varibles to correct type. > 3)Rewrote hisi_spi_nor_read/write for readability. > 4)Added new functions hisi_spi_nor_register/unregister_all > 5)Changed to dynamically allocation for spi_nor embeded in hifmc_host. > Fixed issues pointed by Brian Norris. > 1)Replaced some headers with more accurate ones. > v9: > Fixed issues pointed by Jagan Teki. > v8: > Fixed issues pointed by Ezequiel Garcia and Brian Norris. > Moved dts binding file to mtd directory. > Changed the compatible string more specific. > v7: > Rebased to v4.5-rc3. > Fixed issues pointed by Ezequiel Garcia. > v6: > Based on v4.5-rc2 > Fixed issues pointed by Ezequiel Garcia. > v5: > Fixed a compile error. > v4: > Rebased to v4.5-rc1 > v3: > Added a compatible string "hisilicon,hi3519-sfc". > v2: > Fixed some compiling warings. > > .../bindings/mtd/hisilicon,fmc-spi-nor.txt | 24 + > drivers/mtd/spi-nor/Kconfig| 7 + > drivers/mtd/spi-nor/Makefile | 1 + > drivers/mtd/spi-nor/hisi-sfc.c | 489 > + > 4 files changed, 521 insertions(+) > create mode 100644 > Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt > create mode 100644 drivers/mtd/spi-nor/hisi-sfc.c > > diff --git a/Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt > b/Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt > new file mode 100644 > index 000..7498152 > --- /dev/null > +++ b/Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt > @@ -0,0 +1,24 @@ > +HiSilicon SPI-NOR Flash Controller > + > +Required properties: > +- compatible : Should be "hisilicon,fmc-spi-nor" and one of the following > strings: > + "hisilicon,hi3519-spi-nor" > +- address-cells : Should be 1. > +- size-cells : Should be 0. > +- reg : Offset and length of the register set for the controller device. > +- reg-names : Must include the following two entries: "control", "memory". > +- clocks : handle to spi-nor flash controller clock. > + > +Example: > +spi-nor-controller@1000 { > + compatible = "hisilicon,hi3519-spi-nor", "hisilicon,fmc-spi-nor"; > + #address-cells = <1>; > + #size-cells = <0>; > + reg = <0x1000 0x1000>, <0x1400 0x100>; > + reg-names = "control", "memory"; > + clocks = < HI3519_FMC_CLK>; > + spi-nor@0 { > + compatible = "jedec,spi-nor"; > + reg = <0>; > + }; > +}; > diff --git a/drivers/mtd/spi-nor/Kconfig b/drivers/mtd/spi-nor/Kconfig > index d42c98e..b9ff675 100644 > --- a/drivers/mtd/spi-nor/Kconfig > +++ b/drivers/mtd/spi-nor/Kconfig > @@ -38,6 +38,13 @@ config SPI_FSL_QUADSPI > This controller does not support generic SPI. It only supports > SPI NOR. > > +config SPI_HISI_SFC > + tristate "Hisilicon SPI-NOR Flash Controller(SFC)" > + depends on ARCH_HISI || COMPILE_TEST > + depends on HAS_IOMEM > + help > + This enables support for hisilicon SPI-NOR flash controller. > + > config SPI_NXP_SPIFI > tristate "NXP SPI Flash Interface (SPIFI)" > depends on OF && (ARCH_LPC18XX || COMPILE_TEST) > diff --git a/drivers/mtd/spi-nor/Makefile b/drivers/mtd/spi-nor/Makefile > index 0bf3a7f8..8a6fa69 100644 > --- a/drivers/mtd/spi-nor/Makefile > +++ b/drivers/mtd/spi-nor/Makefile > @@ -1,4 +1,5 @@ > obj-$(CONFIG_MTD_SPI_NOR)+= spi-nor.o > obj-$(CONFIG_SPI_FSL_QUADSPI)+= fsl-quadspi.o > +obj-$(CONFIG_SPI_HISI_SFC) += hisi-sfc.o > obj-$(CONFIG_MTD_MT81xx_NOR)+= mtk-quadspi.o > obj-$(CONFIG_SPI_NXP_SPIFI) += nxp-spifi.o > diff --git a/drivers/mtd/spi-nor/hisi-sfc.c b/drivers/mtd/spi-nor/hisi-sfc.c > new file mode 100644 > index 000..44664c3 > --- /dev/null > +++ b/drivers/mtd/spi-nor/hisi-sfc.c > @@ -0,0 +1,489 @@ > +/* > + *
Re: [RESEND PATCH v11] mtd: spi-nor: add hisilicon spi-nor flash controller driver
Hi Brian, I haven't received more other comments for two weeks since I resent this patch except a compiling error. Could you help me merge this patch into the -next tree after I fix the compiling error? If so, I'll send out the new version as soon as possible. Thank you very much! Regards, Jiancheng On 2016/6/13 16:21, Jiancheng Xue wrote: > Add hisilicon spi-nor flash controller driver > > Signed-off-by: Binquan Peng > Signed-off-by: Jiancheng Xue > Acked-by: Rob Herring > Reviewed-by: Ezequiel Garcia > --- > change log > v11: > Fixed issues pointed by Brian Norris and Cyrille Pitchen. > 1)Changed hisi_spi_nor_read_reg()/write_reg() to configure registers > without sniffing the opcodes. > 2)Deleted hisi_spi_nor_erase() and used default implementation instead. > 3)Changed hisi_spi_nor_dma_transfer() to return a integer type value > instead of nothing. > 4)Simplified hisi_spi_nor_read()/write() as Brian suggested. > > v10: > Fixed issues pointed by Marek Vasut. > 1)Droped the underscores in the argument names of some macros' definition. > 2)Changed some varibles to correct type. > 3)Rewrote hisi_spi_nor_read/write for readability. > 4)Added new functions hisi_spi_nor_register/unregister_all > 5)Changed to dynamically allocation for spi_nor embeded in hifmc_host. > Fixed issues pointed by Brian Norris. > 1)Replaced some headers with more accurate ones. > v9: > Fixed issues pointed by Jagan Teki. > v8: > Fixed issues pointed by Ezequiel Garcia and Brian Norris. > Moved dts binding file to mtd directory. > Changed the compatible string more specific. > v7: > Rebased to v4.5-rc3. > Fixed issues pointed by Ezequiel Garcia. > v6: > Based on v4.5-rc2 > Fixed issues pointed by Ezequiel Garcia. > v5: > Fixed a compile error. > v4: > Rebased to v4.5-rc1 > v3: > Added a compatible string "hisilicon,hi3519-sfc". > v2: > Fixed some compiling warings. > > .../bindings/mtd/hisilicon,fmc-spi-nor.txt | 24 + > drivers/mtd/spi-nor/Kconfig| 7 + > drivers/mtd/spi-nor/Makefile | 1 + > drivers/mtd/spi-nor/hisi-sfc.c | 489 > + > 4 files changed, 521 insertions(+) > create mode 100644 > Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt > create mode 100644 drivers/mtd/spi-nor/hisi-sfc.c > > diff --git a/Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt > b/Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt > new file mode 100644 > index 000..7498152 > --- /dev/null > +++ b/Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt > @@ -0,0 +1,24 @@ > +HiSilicon SPI-NOR Flash Controller > + > +Required properties: > +- compatible : Should be "hisilicon,fmc-spi-nor" and one of the following > strings: > + "hisilicon,hi3519-spi-nor" > +- address-cells : Should be 1. > +- size-cells : Should be 0. > +- reg : Offset and length of the register set for the controller device. > +- reg-names : Must include the following two entries: "control", "memory". > +- clocks : handle to spi-nor flash controller clock. > + > +Example: > +spi-nor-controller@1000 { > + compatible = "hisilicon,hi3519-spi-nor", "hisilicon,fmc-spi-nor"; > + #address-cells = <1>; > + #size-cells = <0>; > + reg = <0x1000 0x1000>, <0x1400 0x100>; > + reg-names = "control", "memory"; > + clocks = < HI3519_FMC_CLK>; > + spi-nor@0 { > + compatible = "jedec,spi-nor"; > + reg = <0>; > + }; > +}; > diff --git a/drivers/mtd/spi-nor/Kconfig b/drivers/mtd/spi-nor/Kconfig > index d42c98e..b9ff675 100644 > --- a/drivers/mtd/spi-nor/Kconfig > +++ b/drivers/mtd/spi-nor/Kconfig > @@ -38,6 +38,13 @@ config SPI_FSL_QUADSPI > This controller does not support generic SPI. It only supports > SPI NOR. > > +config SPI_HISI_SFC > + tristate "Hisilicon SPI-NOR Flash Controller(SFC)" > + depends on ARCH_HISI || COMPILE_TEST > + depends on HAS_IOMEM > + help > + This enables support for hisilicon SPI-NOR flash controller. > + > config SPI_NXP_SPIFI > tristate "NXP SPI Flash Interface (SPIFI)" > depends on OF && (ARCH_LPC18XX || COMPILE_TEST) > diff --git a/drivers/mtd/spi-nor/Makefile b/drivers/mtd/spi-nor/Makefile > index 0bf3a7f8..8a6fa69 100644 > --- a/drivers/mtd/spi-nor/Makefile > +++ b/drivers/mtd/spi-nor/Makefile > @@ -1,4 +1,5 @@ > obj-$(CONFIG_MTD_SPI_NOR)+= spi-nor.o > obj-$(CONFIG_SPI_FSL_QUADSPI)+= fsl-quadspi.o > +obj-$(CONFIG_SPI_HISI_SFC) += hisi-sfc.o > obj-$(CONFIG_MTD_MT81xx_NOR)+= mtk-quadspi.o > obj-$(CONFIG_SPI_NXP_SPIFI) += nxp-spifi.o > diff --git a/drivers/mtd/spi-nor/hisi-sfc.c b/drivers/mtd/spi-nor/hisi-sfc.c > new file mode 100644 > index 000..44664c3 > --- /dev/null > +++ b/drivers/mtd/spi-nor/hisi-sfc.c > @@ -0,0 +1,489 @@ > +/* > + * HiSilicon SPI Nor Flash Controller Driver > + * > + * Copyright (c) 2015-2016 HiSilicon Technologies Co.,
Re: [RESEND PATCH v11] mtd: spi-nor: add hisilicon spi-nor flash controller driver
Hi Cyrille, On 2016/6/22 20:37, Cyrille Pitchen wrote: > Hi Jiancheng, > > maybe a "depends on HAS_DMA" in the Kconfig may fix the kbuild test robot > error. > Otherwise your driver looks good now :) > Thank you very much for all comments. I'll fix this issue in the new version. If there are no any other comments from others. I'll send the new version patch out later. Thanks, Jiancheng > Reviewed-by: Cyrille Pitchen> > Best regards, > > Cyrille > > Le 13/06/2016 10:21, Jiancheng Xue a écrit : >> Add hisilicon spi-nor flash controller driver >> >> Signed-off-by: Binquan Peng >> Signed-off-by: Jiancheng Xue >> Acked-by: Rob Herring >> Reviewed-by: Ezequiel Garcia >> --- >> change log >> v11: >> Fixed issues pointed by Brian Norris and Cyrille Pitchen. >> 1)Changed hisi_spi_nor_read_reg()/write_reg() to configure registers >> without sniffing the opcodes. >> 2)Deleted hisi_spi_nor_erase() and used default implementation instead. >> 3)Changed hisi_spi_nor_dma_transfer() to return a integer type value >> instead of nothing. >> 4)Simplified hisi_spi_nor_read()/write() as Brian suggested. >> >> v10: >> Fixed issues pointed by Marek Vasut. >> 1)Droped the underscores in the argument names of some macros' definition. >> 2)Changed some varibles to correct type. >> 3)Rewrote hisi_spi_nor_read/write for readability. >> 4)Added new functions hisi_spi_nor_register/unregister_all >> 5)Changed to dynamically allocation for spi_nor embeded in hifmc_host. >> Fixed issues pointed by Brian Norris. >> 1)Replaced some headers with more accurate ones. >> v9: >> Fixed issues pointed by Jagan Teki. >> v8: >> Fixed issues pointed by Ezequiel Garcia and Brian Norris. >> Moved dts binding file to mtd directory. >> Changed the compatible string more specific. >> v7: >> Rebased to v4.5-rc3. >> Fixed issues pointed by Ezequiel Garcia. >> v6: >> Based on v4.5-rc2 >> Fixed issues pointed by Ezequiel Garcia. >> v5: >> Fixed a compile error. >> v4: >> Rebased to v4.5-rc1 >> v3: >> Added a compatible string "hisilicon,hi3519-sfc". >> v2: >> Fixed some compiling warings. >> >> .../bindings/mtd/hisilicon,fmc-spi-nor.txt | 24 + >> drivers/mtd/spi-nor/Kconfig| 7 + >> drivers/mtd/spi-nor/Makefile | 1 + >> drivers/mtd/spi-nor/hisi-sfc.c | 489 >> + >> 4 files changed, 521 insertions(+) >> create mode 100644 >> Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt >> create mode 100644 drivers/mtd/spi-nor/hisi-sfc.c >> >> diff --git a/Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt >> b/Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt >> new file mode 100644 >> index 000..7498152 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt >> @@ -0,0 +1,24 @@ >> +HiSilicon SPI-NOR Flash Controller >> + >> +Required properties: >> +- compatible : Should be "hisilicon,fmc-spi-nor" and one of the following >> strings: >> +"hisilicon,hi3519-spi-nor" >> +- address-cells : Should be 1. >> +- size-cells : Should be 0. >> +- reg : Offset and length of the register set for the controller device. >> +- reg-names : Must include the following two entries: "control", "memory". >> +- clocks : handle to spi-nor flash controller clock. >> + >> +Example: >> +spi-nor-controller@1000 { >> +compatible = "hisilicon,hi3519-spi-nor", "hisilicon,fmc-spi-nor"; >> +#address-cells = <1>; >> +#size-cells = <0>; >> +reg = <0x1000 0x1000>, <0x1400 0x100>; >> +reg-names = "control", "memory"; >> +clocks = < HI3519_FMC_CLK>; >> +spi-nor@0 { >> +compatible = "jedec,spi-nor"; >> +reg = <0>; >> +}; >> +}; >> diff --git a/drivers/mtd/spi-nor/Kconfig b/drivers/mtd/spi-nor/Kconfig >> index d42c98e..b9ff675 100644 >> --- a/drivers/mtd/spi-nor/Kconfig >> +++ b/drivers/mtd/spi-nor/Kconfig >> @@ -38,6 +38,13 @@ config SPI_FSL_QUADSPI >>This controller does not support generic SPI. It only supports >>SPI NOR. >> >> +config SPI_HISI_SFC >> +tristate "Hisilicon SPI-NOR Flash Controller(SFC)" >> +depends on ARCH_HISI || COMPILE_TEST >> +depends on HAS_IOMEM >> +help >> + This enables support for hisilicon SPI-NOR flash controller. >> + >> config SPI_NXP_SPIFI >> tristate "NXP SPI Flash Interface (SPIFI)" >> depends on OF && (ARCH_LPC18XX || COMPILE_TEST) >> diff --git a/drivers/mtd/spi-nor/Makefile b/drivers/mtd/spi-nor/Makefile >> index 0bf3a7f8..8a6fa69 100644 >> --- a/drivers/mtd/spi-nor/Makefile >> +++ b/drivers/mtd/spi-nor/Makefile >> @@ -1,4 +1,5 @@ >> obj-$(CONFIG_MTD_SPI_NOR) += spi-nor.o >> obj-$(CONFIG_SPI_FSL_QUADSPI) += fsl-quadspi.o >> +obj-$(CONFIG_SPI_HISI_SFC) += hisi-sfc.o >> obj-$(CONFIG_MTD_MT81xx_NOR)
Re: [RESEND PATCH v11] mtd: spi-nor: add hisilicon spi-nor flash controller driver
Hi Cyrille, On 2016/6/22 20:37, Cyrille Pitchen wrote: > Hi Jiancheng, > > maybe a "depends on HAS_DMA" in the Kconfig may fix the kbuild test robot > error. > Otherwise your driver looks good now :) > Thank you very much for all comments. I'll fix this issue in the new version. If there are no any other comments from others. I'll send the new version patch out later. Thanks, Jiancheng > Reviewed-by: Cyrille Pitchen > > Best regards, > > Cyrille > > Le 13/06/2016 10:21, Jiancheng Xue a écrit : >> Add hisilicon spi-nor flash controller driver >> >> Signed-off-by: Binquan Peng >> Signed-off-by: Jiancheng Xue >> Acked-by: Rob Herring >> Reviewed-by: Ezequiel Garcia >> --- >> change log >> v11: >> Fixed issues pointed by Brian Norris and Cyrille Pitchen. >> 1)Changed hisi_spi_nor_read_reg()/write_reg() to configure registers >> without sniffing the opcodes. >> 2)Deleted hisi_spi_nor_erase() and used default implementation instead. >> 3)Changed hisi_spi_nor_dma_transfer() to return a integer type value >> instead of nothing. >> 4)Simplified hisi_spi_nor_read()/write() as Brian suggested. >> >> v10: >> Fixed issues pointed by Marek Vasut. >> 1)Droped the underscores in the argument names of some macros' definition. >> 2)Changed some varibles to correct type. >> 3)Rewrote hisi_spi_nor_read/write for readability. >> 4)Added new functions hisi_spi_nor_register/unregister_all >> 5)Changed to dynamically allocation for spi_nor embeded in hifmc_host. >> Fixed issues pointed by Brian Norris. >> 1)Replaced some headers with more accurate ones. >> v9: >> Fixed issues pointed by Jagan Teki. >> v8: >> Fixed issues pointed by Ezequiel Garcia and Brian Norris. >> Moved dts binding file to mtd directory. >> Changed the compatible string more specific. >> v7: >> Rebased to v4.5-rc3. >> Fixed issues pointed by Ezequiel Garcia. >> v6: >> Based on v4.5-rc2 >> Fixed issues pointed by Ezequiel Garcia. >> v5: >> Fixed a compile error. >> v4: >> Rebased to v4.5-rc1 >> v3: >> Added a compatible string "hisilicon,hi3519-sfc". >> v2: >> Fixed some compiling warings. >> >> .../bindings/mtd/hisilicon,fmc-spi-nor.txt | 24 + >> drivers/mtd/spi-nor/Kconfig| 7 + >> drivers/mtd/spi-nor/Makefile | 1 + >> drivers/mtd/spi-nor/hisi-sfc.c | 489 >> + >> 4 files changed, 521 insertions(+) >> create mode 100644 >> Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt >> create mode 100644 drivers/mtd/spi-nor/hisi-sfc.c >> >> diff --git a/Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt >> b/Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt >> new file mode 100644 >> index 000..7498152 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt >> @@ -0,0 +1,24 @@ >> +HiSilicon SPI-NOR Flash Controller >> + >> +Required properties: >> +- compatible : Should be "hisilicon,fmc-spi-nor" and one of the following >> strings: >> +"hisilicon,hi3519-spi-nor" >> +- address-cells : Should be 1. >> +- size-cells : Should be 0. >> +- reg : Offset and length of the register set for the controller device. >> +- reg-names : Must include the following two entries: "control", "memory". >> +- clocks : handle to spi-nor flash controller clock. >> + >> +Example: >> +spi-nor-controller@1000 { >> +compatible = "hisilicon,hi3519-spi-nor", "hisilicon,fmc-spi-nor"; >> +#address-cells = <1>; >> +#size-cells = <0>; >> +reg = <0x1000 0x1000>, <0x1400 0x100>; >> +reg-names = "control", "memory"; >> +clocks = < HI3519_FMC_CLK>; >> +spi-nor@0 { >> +compatible = "jedec,spi-nor"; >> +reg = <0>; >> +}; >> +}; >> diff --git a/drivers/mtd/spi-nor/Kconfig b/drivers/mtd/spi-nor/Kconfig >> index d42c98e..b9ff675 100644 >> --- a/drivers/mtd/spi-nor/Kconfig >> +++ b/drivers/mtd/spi-nor/Kconfig >> @@ -38,6 +38,13 @@ config SPI_FSL_QUADSPI >>This controller does not support generic SPI. It only supports >>SPI NOR. >> >> +config SPI_HISI_SFC >> +tristate "Hisilicon SPI-NOR Flash Controller(SFC)" >> +depends on ARCH_HISI || COMPILE_TEST >> +depends on HAS_IOMEM >> +help >> + This enables support for hisilicon SPI-NOR flash controller. >> + >> config SPI_NXP_SPIFI >> tristate "NXP SPI Flash Interface (SPIFI)" >> depends on OF && (ARCH_LPC18XX || COMPILE_TEST) >> diff --git a/drivers/mtd/spi-nor/Makefile b/drivers/mtd/spi-nor/Makefile >> index 0bf3a7f8..8a6fa69 100644 >> --- a/drivers/mtd/spi-nor/Makefile >> +++ b/drivers/mtd/spi-nor/Makefile >> @@ -1,4 +1,5 @@ >> obj-$(CONFIG_MTD_SPI_NOR) += spi-nor.o >> obj-$(CONFIG_SPI_FSL_QUADSPI) += fsl-quadspi.o >> +obj-$(CONFIG_SPI_HISI_SFC) += hisi-sfc.o >> obj-$(CONFIG_MTD_MT81xx_NOR)+= mtk-quadspi.o >> obj-$(CONFIG_SPI_NXP_SPIFI) += nxp-spifi.o >> diff --git a/drivers/mtd/spi-nor/hisi-sfc.c
Re: [RESEND PATCH v11] mtd: spi-nor: add hisilicon spi-nor flash controller driver
Hi Jiancheng, maybe a "depends on HAS_DMA" in the Kconfig may fix the kbuild test robot error. Otherwise your driver looks good now :) Reviewed-by: Cyrille PitchenBest regards, Cyrille Le 13/06/2016 10:21, Jiancheng Xue a écrit : > Add hisilicon spi-nor flash controller driver > > Signed-off-by: Binquan Peng > Signed-off-by: Jiancheng Xue > Acked-by: Rob Herring > Reviewed-by: Ezequiel Garcia > --- > change log > v11: > Fixed issues pointed by Brian Norris and Cyrille Pitchen. > 1)Changed hisi_spi_nor_read_reg()/write_reg() to configure registers > without sniffing the opcodes. > 2)Deleted hisi_spi_nor_erase() and used default implementation instead. > 3)Changed hisi_spi_nor_dma_transfer() to return a integer type value > instead of nothing. > 4)Simplified hisi_spi_nor_read()/write() as Brian suggested. > > v10: > Fixed issues pointed by Marek Vasut. > 1)Droped the underscores in the argument names of some macros' definition. > 2)Changed some varibles to correct type. > 3)Rewrote hisi_spi_nor_read/write for readability. > 4)Added new functions hisi_spi_nor_register/unregister_all > 5)Changed to dynamically allocation for spi_nor embeded in hifmc_host. > Fixed issues pointed by Brian Norris. > 1)Replaced some headers with more accurate ones. > v9: > Fixed issues pointed by Jagan Teki. > v8: > Fixed issues pointed by Ezequiel Garcia and Brian Norris. > Moved dts binding file to mtd directory. > Changed the compatible string more specific. > v7: > Rebased to v4.5-rc3. > Fixed issues pointed by Ezequiel Garcia. > v6: > Based on v4.5-rc2 > Fixed issues pointed by Ezequiel Garcia. > v5: > Fixed a compile error. > v4: > Rebased to v4.5-rc1 > v3: > Added a compatible string "hisilicon,hi3519-sfc". > v2: > Fixed some compiling warings. > > .../bindings/mtd/hisilicon,fmc-spi-nor.txt | 24 + > drivers/mtd/spi-nor/Kconfig| 7 + > drivers/mtd/spi-nor/Makefile | 1 + > drivers/mtd/spi-nor/hisi-sfc.c | 489 > + > 4 files changed, 521 insertions(+) > create mode 100644 > Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt > create mode 100644 drivers/mtd/spi-nor/hisi-sfc.c > > diff --git a/Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt > b/Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt > new file mode 100644 > index 000..7498152 > --- /dev/null > +++ b/Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt > @@ -0,0 +1,24 @@ > +HiSilicon SPI-NOR Flash Controller > + > +Required properties: > +- compatible : Should be "hisilicon,fmc-spi-nor" and one of the following > strings: > + "hisilicon,hi3519-spi-nor" > +- address-cells : Should be 1. > +- size-cells : Should be 0. > +- reg : Offset and length of the register set for the controller device. > +- reg-names : Must include the following two entries: "control", "memory". > +- clocks : handle to spi-nor flash controller clock. > + > +Example: > +spi-nor-controller@1000 { > + compatible = "hisilicon,hi3519-spi-nor", "hisilicon,fmc-spi-nor"; > + #address-cells = <1>; > + #size-cells = <0>; > + reg = <0x1000 0x1000>, <0x1400 0x100>; > + reg-names = "control", "memory"; > + clocks = < HI3519_FMC_CLK>; > + spi-nor@0 { > + compatible = "jedec,spi-nor"; > + reg = <0>; > + }; > +}; > diff --git a/drivers/mtd/spi-nor/Kconfig b/drivers/mtd/spi-nor/Kconfig > index d42c98e..b9ff675 100644 > --- a/drivers/mtd/spi-nor/Kconfig > +++ b/drivers/mtd/spi-nor/Kconfig > @@ -38,6 +38,13 @@ config SPI_FSL_QUADSPI > This controller does not support generic SPI. It only supports > SPI NOR. > > +config SPI_HISI_SFC > + tristate "Hisilicon SPI-NOR Flash Controller(SFC)" > + depends on ARCH_HISI || COMPILE_TEST > + depends on HAS_IOMEM > + help > + This enables support for hisilicon SPI-NOR flash controller. > + > config SPI_NXP_SPIFI > tristate "NXP SPI Flash Interface (SPIFI)" > depends on OF && (ARCH_LPC18XX || COMPILE_TEST) > diff --git a/drivers/mtd/spi-nor/Makefile b/drivers/mtd/spi-nor/Makefile > index 0bf3a7f8..8a6fa69 100644 > --- a/drivers/mtd/spi-nor/Makefile > +++ b/drivers/mtd/spi-nor/Makefile > @@ -1,4 +1,5 @@ > obj-$(CONFIG_MTD_SPI_NOR)+= spi-nor.o > obj-$(CONFIG_SPI_FSL_QUADSPI)+= fsl-quadspi.o > +obj-$(CONFIG_SPI_HISI_SFC) += hisi-sfc.o > obj-$(CONFIG_MTD_MT81xx_NOR)+= mtk-quadspi.o > obj-$(CONFIG_SPI_NXP_SPIFI) += nxp-spifi.o > diff --git a/drivers/mtd/spi-nor/hisi-sfc.c b/drivers/mtd/spi-nor/hisi-sfc.c > new file mode 100644 > index 000..44664c3 > --- /dev/null > +++ b/drivers/mtd/spi-nor/hisi-sfc.c > @@ -0,0 +1,489 @@ > +/* > + * HiSilicon SPI Nor Flash Controller Driver > + * > + * Copyright (c) 2015-2016
Re: [RESEND PATCH v11] mtd: spi-nor: add hisilicon spi-nor flash controller driver
Hi Jiancheng, maybe a "depends on HAS_DMA" in the Kconfig may fix the kbuild test robot error. Otherwise your driver looks good now :) Reviewed-by: Cyrille Pitchen Best regards, Cyrille Le 13/06/2016 10:21, Jiancheng Xue a écrit : > Add hisilicon spi-nor flash controller driver > > Signed-off-by: Binquan Peng > Signed-off-by: Jiancheng Xue > Acked-by: Rob Herring > Reviewed-by: Ezequiel Garcia > --- > change log > v11: > Fixed issues pointed by Brian Norris and Cyrille Pitchen. > 1)Changed hisi_spi_nor_read_reg()/write_reg() to configure registers > without sniffing the opcodes. > 2)Deleted hisi_spi_nor_erase() and used default implementation instead. > 3)Changed hisi_spi_nor_dma_transfer() to return a integer type value > instead of nothing. > 4)Simplified hisi_spi_nor_read()/write() as Brian suggested. > > v10: > Fixed issues pointed by Marek Vasut. > 1)Droped the underscores in the argument names of some macros' definition. > 2)Changed some varibles to correct type. > 3)Rewrote hisi_spi_nor_read/write for readability. > 4)Added new functions hisi_spi_nor_register/unregister_all > 5)Changed to dynamically allocation for spi_nor embeded in hifmc_host. > Fixed issues pointed by Brian Norris. > 1)Replaced some headers with more accurate ones. > v9: > Fixed issues pointed by Jagan Teki. > v8: > Fixed issues pointed by Ezequiel Garcia and Brian Norris. > Moved dts binding file to mtd directory. > Changed the compatible string more specific. > v7: > Rebased to v4.5-rc3. > Fixed issues pointed by Ezequiel Garcia. > v6: > Based on v4.5-rc2 > Fixed issues pointed by Ezequiel Garcia. > v5: > Fixed a compile error. > v4: > Rebased to v4.5-rc1 > v3: > Added a compatible string "hisilicon,hi3519-sfc". > v2: > Fixed some compiling warings. > > .../bindings/mtd/hisilicon,fmc-spi-nor.txt | 24 + > drivers/mtd/spi-nor/Kconfig| 7 + > drivers/mtd/spi-nor/Makefile | 1 + > drivers/mtd/spi-nor/hisi-sfc.c | 489 > + > 4 files changed, 521 insertions(+) > create mode 100644 > Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt > create mode 100644 drivers/mtd/spi-nor/hisi-sfc.c > > diff --git a/Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt > b/Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt > new file mode 100644 > index 000..7498152 > --- /dev/null > +++ b/Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt > @@ -0,0 +1,24 @@ > +HiSilicon SPI-NOR Flash Controller > + > +Required properties: > +- compatible : Should be "hisilicon,fmc-spi-nor" and one of the following > strings: > + "hisilicon,hi3519-spi-nor" > +- address-cells : Should be 1. > +- size-cells : Should be 0. > +- reg : Offset and length of the register set for the controller device. > +- reg-names : Must include the following two entries: "control", "memory". > +- clocks : handle to spi-nor flash controller clock. > + > +Example: > +spi-nor-controller@1000 { > + compatible = "hisilicon,hi3519-spi-nor", "hisilicon,fmc-spi-nor"; > + #address-cells = <1>; > + #size-cells = <0>; > + reg = <0x1000 0x1000>, <0x1400 0x100>; > + reg-names = "control", "memory"; > + clocks = < HI3519_FMC_CLK>; > + spi-nor@0 { > + compatible = "jedec,spi-nor"; > + reg = <0>; > + }; > +}; > diff --git a/drivers/mtd/spi-nor/Kconfig b/drivers/mtd/spi-nor/Kconfig > index d42c98e..b9ff675 100644 > --- a/drivers/mtd/spi-nor/Kconfig > +++ b/drivers/mtd/spi-nor/Kconfig > @@ -38,6 +38,13 @@ config SPI_FSL_QUADSPI > This controller does not support generic SPI. It only supports > SPI NOR. > > +config SPI_HISI_SFC > + tristate "Hisilicon SPI-NOR Flash Controller(SFC)" > + depends on ARCH_HISI || COMPILE_TEST > + depends on HAS_IOMEM > + help > + This enables support for hisilicon SPI-NOR flash controller. > + > config SPI_NXP_SPIFI > tristate "NXP SPI Flash Interface (SPIFI)" > depends on OF && (ARCH_LPC18XX || COMPILE_TEST) > diff --git a/drivers/mtd/spi-nor/Makefile b/drivers/mtd/spi-nor/Makefile > index 0bf3a7f8..8a6fa69 100644 > --- a/drivers/mtd/spi-nor/Makefile > +++ b/drivers/mtd/spi-nor/Makefile > @@ -1,4 +1,5 @@ > obj-$(CONFIG_MTD_SPI_NOR)+= spi-nor.o > obj-$(CONFIG_SPI_FSL_QUADSPI)+= fsl-quadspi.o > +obj-$(CONFIG_SPI_HISI_SFC) += hisi-sfc.o > obj-$(CONFIG_MTD_MT81xx_NOR)+= mtk-quadspi.o > obj-$(CONFIG_SPI_NXP_SPIFI) += nxp-spifi.o > diff --git a/drivers/mtd/spi-nor/hisi-sfc.c b/drivers/mtd/spi-nor/hisi-sfc.c > new file mode 100644 > index 000..44664c3 > --- /dev/null > +++ b/drivers/mtd/spi-nor/hisi-sfc.c > @@ -0,0 +1,489 @@ > +/* > + * HiSilicon SPI Nor Flash Controller Driver > + * > + * Copyright (c) 2015-2016 HiSilicon Technologies Co., Ltd. > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms
Re: [RESEND PATCH v11] mtd: spi-nor: add hisilicon spi-nor flash controller driver
Hi, [auto build test ERROR on mtd/master] [also build test ERROR on v4.7-rc3 next-20160609] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Jiancheng-Xue/mtd-spi-nor-add-hisilicon-spi-nor-flash-controller-driver/20160613-163520 base: git://git.infradead.org/linux-mtd.git master config: m32r-allmodconfig (attached as .config) compiler: m32r-linux-gcc (GCC) 4.9.0 reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=m32r All errors (new ones prefixed by >>): ERROR: "bad_dma_ops" [sound/soc/fsl/snd-soc-fsl-asrc.ko] undefined! ERROR: "bad_dma_ops" [sound/soc/atmel/snd-soc-atmel-pcm-pdc.ko] undefined! ERROR: "bad_dma_ops" [sound/core/snd-pcm.ko] undefined! ERROR: "dma_common_mmap" [sound/core/snd-pcm.ko] undefined! ERROR: "__ucmpdi2" [lib/842/842_decompress.ko] undefined! ERROR: "__ucmpdi2" [fs/btrfs/btrfs.ko] undefined! >> ERROR: "dmam_alloc_coherent" [drivers/mtd/spi-nor/hisi-sfc.ko] undefined! >> ERROR: "bad_dma_ops" [drivers/mtd/spi-nor/hisi-sfc.ko] undefined! ERROR: "__ucmpdi2" [drivers/media/i2c/adv7842.ko] undefined! ERROR: "__ucmpdi2" [drivers/md/bcache/bcache.ko] undefined! ERROR: "__ucmpdi2" [drivers/iio/imu/inv_mpu6050/inv-mpu6050.ko] undefined! ERROR: "bad_dma_ops" [drivers/fpga/zynq-fpga.ko] undefined! --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation .config.gz Description: Binary data
Re: [RESEND PATCH v11] mtd: spi-nor: add hisilicon spi-nor flash controller driver
Hi, [auto build test ERROR on mtd/master] [also build test ERROR on v4.7-rc3 next-20160609] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Jiancheng-Xue/mtd-spi-nor-add-hisilicon-spi-nor-flash-controller-driver/20160613-163520 base: git://git.infradead.org/linux-mtd.git master config: m32r-allmodconfig (attached as .config) compiler: m32r-linux-gcc (GCC) 4.9.0 reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=m32r All errors (new ones prefixed by >>): ERROR: "bad_dma_ops" [sound/soc/fsl/snd-soc-fsl-asrc.ko] undefined! ERROR: "bad_dma_ops" [sound/soc/atmel/snd-soc-atmel-pcm-pdc.ko] undefined! ERROR: "bad_dma_ops" [sound/core/snd-pcm.ko] undefined! ERROR: "dma_common_mmap" [sound/core/snd-pcm.ko] undefined! ERROR: "__ucmpdi2" [lib/842/842_decompress.ko] undefined! ERROR: "__ucmpdi2" [fs/btrfs/btrfs.ko] undefined! >> ERROR: "dmam_alloc_coherent" [drivers/mtd/spi-nor/hisi-sfc.ko] undefined! >> ERROR: "bad_dma_ops" [drivers/mtd/spi-nor/hisi-sfc.ko] undefined! ERROR: "__ucmpdi2" [drivers/media/i2c/adv7842.ko] undefined! ERROR: "__ucmpdi2" [drivers/md/bcache/bcache.ko] undefined! ERROR: "__ucmpdi2" [drivers/iio/imu/inv_mpu6050/inv-mpu6050.ko] undefined! ERROR: "bad_dma_ops" [drivers/fpga/zynq-fpga.ko] undefined! --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation .config.gz Description: Binary data
[RESEND PATCH v11] mtd: spi-nor: add hisilicon spi-nor flash controller driver
Add hisilicon spi-nor flash controller driver Signed-off-by: Binquan PengSigned-off-by: Jiancheng Xue Acked-by: Rob Herring Reviewed-by: Ezequiel Garcia --- change log v11: Fixed issues pointed by Brian Norris and Cyrille Pitchen. 1)Changed hisi_spi_nor_read_reg()/write_reg() to configure registers without sniffing the opcodes. 2)Deleted hisi_spi_nor_erase() and used default implementation instead. 3)Changed hisi_spi_nor_dma_transfer() to return a integer type value instead of nothing. 4)Simplified hisi_spi_nor_read()/write() as Brian suggested. v10: Fixed issues pointed by Marek Vasut. 1)Droped the underscores in the argument names of some macros' definition. 2)Changed some varibles to correct type. 3)Rewrote hisi_spi_nor_read/write for readability. 4)Added new functions hisi_spi_nor_register/unregister_all 5)Changed to dynamically allocation for spi_nor embeded in hifmc_host. Fixed issues pointed by Brian Norris. 1)Replaced some headers with more accurate ones. v9: Fixed issues pointed by Jagan Teki. v8: Fixed issues pointed by Ezequiel Garcia and Brian Norris. Moved dts binding file to mtd directory. Changed the compatible string more specific. v7: Rebased to v4.5-rc3. Fixed issues pointed by Ezequiel Garcia. v6: Based on v4.5-rc2 Fixed issues pointed by Ezequiel Garcia. v5: Fixed a compile error. v4: Rebased to v4.5-rc1 v3: Added a compatible string "hisilicon,hi3519-sfc". v2: Fixed some compiling warings. .../bindings/mtd/hisilicon,fmc-spi-nor.txt | 24 + drivers/mtd/spi-nor/Kconfig| 7 + drivers/mtd/spi-nor/Makefile | 1 + drivers/mtd/spi-nor/hisi-sfc.c | 489 + 4 files changed, 521 insertions(+) create mode 100644 Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt create mode 100644 drivers/mtd/spi-nor/hisi-sfc.c diff --git a/Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt b/Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt new file mode 100644 index 000..7498152 --- /dev/null +++ b/Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt @@ -0,0 +1,24 @@ +HiSilicon SPI-NOR Flash Controller + +Required properties: +- compatible : Should be "hisilicon,fmc-spi-nor" and one of the following strings: + "hisilicon,hi3519-spi-nor" +- address-cells : Should be 1. +- size-cells : Should be 0. +- reg : Offset and length of the register set for the controller device. +- reg-names : Must include the following two entries: "control", "memory". +- clocks : handle to spi-nor flash controller clock. + +Example: +spi-nor-controller@1000 { + compatible = "hisilicon,hi3519-spi-nor", "hisilicon,fmc-spi-nor"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x1000 0x1000>, <0x1400 0x100>; + reg-names = "control", "memory"; + clocks = < HI3519_FMC_CLK>; + spi-nor@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + }; +}; diff --git a/drivers/mtd/spi-nor/Kconfig b/drivers/mtd/spi-nor/Kconfig index d42c98e..b9ff675 100644 --- a/drivers/mtd/spi-nor/Kconfig +++ b/drivers/mtd/spi-nor/Kconfig @@ -38,6 +38,13 @@ config SPI_FSL_QUADSPI This controller does not support generic SPI. It only supports SPI NOR. +config SPI_HISI_SFC + tristate "Hisilicon SPI-NOR Flash Controller(SFC)" + depends on ARCH_HISI || COMPILE_TEST + depends on HAS_IOMEM + help + This enables support for hisilicon SPI-NOR flash controller. + config SPI_NXP_SPIFI tristate "NXP SPI Flash Interface (SPIFI)" depends on OF && (ARCH_LPC18XX || COMPILE_TEST) diff --git a/drivers/mtd/spi-nor/Makefile b/drivers/mtd/spi-nor/Makefile index 0bf3a7f8..8a6fa69 100644 --- a/drivers/mtd/spi-nor/Makefile +++ b/drivers/mtd/spi-nor/Makefile @@ -1,4 +1,5 @@ obj-$(CONFIG_MTD_SPI_NOR) += spi-nor.o obj-$(CONFIG_SPI_FSL_QUADSPI) += fsl-quadspi.o +obj-$(CONFIG_SPI_HISI_SFC) += hisi-sfc.o obj-$(CONFIG_MTD_MT81xx_NOR)+= mtk-quadspi.o obj-$(CONFIG_SPI_NXP_SPIFI)+= nxp-spifi.o diff --git a/drivers/mtd/spi-nor/hisi-sfc.c b/drivers/mtd/spi-nor/hisi-sfc.c new file mode 100644 index 000..44664c3 --- /dev/null +++ b/drivers/mtd/spi-nor/hisi-sfc.c @@ -0,0 +1,489 @@ +/* + * HiSilicon SPI Nor Flash Controller Driver + * + * Copyright (c) 2015-2016 HiSilicon Technologies Co., Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * 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
[RESEND PATCH v11] mtd: spi-nor: add hisilicon spi-nor flash controller driver
Add hisilicon spi-nor flash controller driver Signed-off-by: Binquan Peng Signed-off-by: Jiancheng Xue Acked-by: Rob Herring Reviewed-by: Ezequiel Garcia --- change log v11: Fixed issues pointed by Brian Norris and Cyrille Pitchen. 1)Changed hisi_spi_nor_read_reg()/write_reg() to configure registers without sniffing the opcodes. 2)Deleted hisi_spi_nor_erase() and used default implementation instead. 3)Changed hisi_spi_nor_dma_transfer() to return a integer type value instead of nothing. 4)Simplified hisi_spi_nor_read()/write() as Brian suggested. v10: Fixed issues pointed by Marek Vasut. 1)Droped the underscores in the argument names of some macros' definition. 2)Changed some varibles to correct type. 3)Rewrote hisi_spi_nor_read/write for readability. 4)Added new functions hisi_spi_nor_register/unregister_all 5)Changed to dynamically allocation for spi_nor embeded in hifmc_host. Fixed issues pointed by Brian Norris. 1)Replaced some headers with more accurate ones. v9: Fixed issues pointed by Jagan Teki. v8: Fixed issues pointed by Ezequiel Garcia and Brian Norris. Moved dts binding file to mtd directory. Changed the compatible string more specific. v7: Rebased to v4.5-rc3. Fixed issues pointed by Ezequiel Garcia. v6: Based on v4.5-rc2 Fixed issues pointed by Ezequiel Garcia. v5: Fixed a compile error. v4: Rebased to v4.5-rc1 v3: Added a compatible string "hisilicon,hi3519-sfc". v2: Fixed some compiling warings. .../bindings/mtd/hisilicon,fmc-spi-nor.txt | 24 + drivers/mtd/spi-nor/Kconfig| 7 + drivers/mtd/spi-nor/Makefile | 1 + drivers/mtd/spi-nor/hisi-sfc.c | 489 + 4 files changed, 521 insertions(+) create mode 100644 Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt create mode 100644 drivers/mtd/spi-nor/hisi-sfc.c diff --git a/Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt b/Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt new file mode 100644 index 000..7498152 --- /dev/null +++ b/Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt @@ -0,0 +1,24 @@ +HiSilicon SPI-NOR Flash Controller + +Required properties: +- compatible : Should be "hisilicon,fmc-spi-nor" and one of the following strings: + "hisilicon,hi3519-spi-nor" +- address-cells : Should be 1. +- size-cells : Should be 0. +- reg : Offset and length of the register set for the controller device. +- reg-names : Must include the following two entries: "control", "memory". +- clocks : handle to spi-nor flash controller clock. + +Example: +spi-nor-controller@1000 { + compatible = "hisilicon,hi3519-spi-nor", "hisilicon,fmc-spi-nor"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x1000 0x1000>, <0x1400 0x100>; + reg-names = "control", "memory"; + clocks = < HI3519_FMC_CLK>; + spi-nor@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + }; +}; diff --git a/drivers/mtd/spi-nor/Kconfig b/drivers/mtd/spi-nor/Kconfig index d42c98e..b9ff675 100644 --- a/drivers/mtd/spi-nor/Kconfig +++ b/drivers/mtd/spi-nor/Kconfig @@ -38,6 +38,13 @@ config SPI_FSL_QUADSPI This controller does not support generic SPI. It only supports SPI NOR. +config SPI_HISI_SFC + tristate "Hisilicon SPI-NOR Flash Controller(SFC)" + depends on ARCH_HISI || COMPILE_TEST + depends on HAS_IOMEM + help + This enables support for hisilicon SPI-NOR flash controller. + config SPI_NXP_SPIFI tristate "NXP SPI Flash Interface (SPIFI)" depends on OF && (ARCH_LPC18XX || COMPILE_TEST) diff --git a/drivers/mtd/spi-nor/Makefile b/drivers/mtd/spi-nor/Makefile index 0bf3a7f8..8a6fa69 100644 --- a/drivers/mtd/spi-nor/Makefile +++ b/drivers/mtd/spi-nor/Makefile @@ -1,4 +1,5 @@ obj-$(CONFIG_MTD_SPI_NOR) += spi-nor.o obj-$(CONFIG_SPI_FSL_QUADSPI) += fsl-quadspi.o +obj-$(CONFIG_SPI_HISI_SFC) += hisi-sfc.o obj-$(CONFIG_MTD_MT81xx_NOR)+= mtk-quadspi.o obj-$(CONFIG_SPI_NXP_SPIFI)+= nxp-spifi.o diff --git a/drivers/mtd/spi-nor/hisi-sfc.c b/drivers/mtd/spi-nor/hisi-sfc.c new file mode 100644 index 000..44664c3 --- /dev/null +++ b/drivers/mtd/spi-nor/hisi-sfc.c @@ -0,0 +1,489 @@ +/* + * HiSilicon SPI Nor Flash Controller Driver + * + * Copyright (c) 2015-2016 HiSilicon Technologies Co., Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * 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. + * + * You should have received a copy of