Re: [PATCH v8 1/2] spi: ca_sflash: Add CAxxxx SPI Flash Controller
Hi Jagan, You mean it is a generic SPI controller that handles NOR, NAND devices? • Yes so above the single, dual, quad is number lines than number flash chips, isn't it? • Yes. Thanks, PengPeng From: Alex Nemirovsky Date: Thursday, July 9, 2020 at 10:53 PM To: Pengpeng Chen Subject: Fwd: [PATCH v8 1/2] spi: ca_sflash: Add CA SPI Flash Controller Please review and reply Begin forwarded message: From: Jagan Teki Date: July 9, 2020 at 1:48:48 AM PDT To: Alex Nemirovsky Cc: U-Boot-Denx , Pengpeng Chen , Vignesh R , Tom Rini Subject: Re: [PATCH v8 1/2] spi: ca_sflash: Add CA SPI Flash Controller On Tue, Jun 2, 2020 at 1:45 AM Alex Nemirovsky wrote: On Jun 1, 2020, at 9:45 AM, Jagan Teki wrote: On Fri, May 22, 2020 at 6:18 AM Alex Nemirovsky wrote: From: Pengpeng Chen Add SPI Flash controller driver for Cortina Access CA SoCs Signed-off-by: Pengpeng Chen Signed-off-by: Alex Nemirovsky CC: Jagan Teki CC: Vignesh R CC: Tom Rini --- Changes in v8: - No code change - Split out individual driver from Cortina Package 2 patch series to help streamline acceptence into master Changes in v7: - Replace substring "OPCODE" with "OP" in MACROs to help reduce code line lengths - Replace substring "_MASK" with "_MSK" in MACROs to help reduce code line lengths Changes in v5: None Changes in v3: - Fixup syntax issues related to checkpatch.pl cleanup MAINTAINERS | 8 + drivers/spi/Kconfig | 8 + drivers/spi/Makefile| 1 + drivers/spi/ca_sflash.c | 576 4 files changed, 593 insertions(+) create mode 100644 drivers/spi/ca_sflash.c diff --git a/MAINTAINERS b/MAINTAINERS index 8add9d4..57ce45e 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -181,6 +181,10 @@ F: drivers/gpio/cortina_gpio.c F: drivers/watchdog/cortina_wdt.c F: drivers/serial/serial_cortina.c F: drivers/mmc/ca_dw_mmc.c +F: drivers/i2c/i2c-cortina.c +F: drivers/i2c/i2c-cortina.h +F: drivers/led/led_cortina.c +F: drivers/spi/ca_sflash.c ARM/CZ.NIC TURRIS MOX SUPPORT M: Marek Behun @@ -732,6 +736,10 @@ F: drivers/gpio/cortina_gpio.c F: drivers/watchdog/cortina_wdt.c F: drivers/serial/serial_cortina.c F: drivers/mmc/ca_dw_mmc.c +F: drivers/i2c/i2c-cortina.c +F: drivers/i2c/i2c-cortina.h +F: drivers/led/led_cortina.c These changes are unrelated to SPI, keep out of this patch. will be corrected in v9 +F: drivers/spi/ca_sflash.c MIPS MSCC M: Gregory CLEMENT diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig index dccd5ea..09f2a2a 100644 --- a/drivers/spi/Kconfig +++ b/drivers/spi/Kconfig @@ -106,6 +106,14 @@ config BCMSTB_SPI be used to access the SPI flash on platforms embedding this Broadcom SPI core. +config CORTINA_SFLASH + bool "Cortina-Access Serial Flash controller driver" + depends on DM_SPI && SPI_MEM + help + Enable the Cortina-Access Serial Flash controller driver. This driver + can be used to access the SPI NOR/NAND flash on platforms embedding this + Cortina-Access IP core. + config CADENCE_QSPI bool "Cadence QSPI driver" help diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile index 6441694..5e53f11 100644 --- a/drivers/spi/Makefile +++ b/drivers/spi/Makefile @@ -25,6 +25,7 @@ obj-$(CONFIG_BCM63XX_SPI) += bcm63xx_spi.o obj-$(CONFIG_BCMSTB_SPI) += bcmstb_spi.o obj-$(CONFIG_CADENCE_QSPI) += cadence_qspi.o cadence_qspi_apb.o obj-$(CONFIG_CF_SPI) += cf_spi.o +obj-$(CONFIG_CORTINA_SFLASH) += ca_sflash.o obj-$(CONFIG_DAVINCI_SPI) += davinci_spi.o obj-$(CONFIG_DESIGNWARE_SPI) += designware_spi.o obj-$(CONFIG_EXYNOS_SPI) += exynos_spi.o diff --git a/drivers/spi/ca_sflash.c b/drivers/spi/ca_sflash.c new file mode 100644 index 000..00af6bf --- /dev/null +++ b/drivers/spi/ca_sflash.c @@ -0,0 +1,576 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Driver for Cortina SPI-FLASH Controller + * + * Copyright (C) 2020 Cortina Access Inc. All Rights Reserved. + * + * Author: PengPeng Chen + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +DECLARE_GLOBAL_DATA_PTR; + +struct ca_sflash_regs { + u32 idr;/* 0x00:Flash word ID Register */ + u32 tc; /* 0x04:Flash Timeout Counter Register */ + u32 sr; /* 0x08:Flash Status Register */ + u32 tr; /* 0x0C:Flash Type Register */ + u32 asr;/* 0x10:Flash ACCESS START/BUSY Register */ + u32 isr;/* 0x14:Flash Interrupt Status Register */ + u32 imr;/* 0x18:Flash Interrupt Mask Register */ + u32 fcr;/* 0x1C:NAND Flash FIFO Control Register */ + u32 ffsr; /* 0x20:Flash FIFO Status Register */ + u32 ff
Re: [PATCH v8 1/2] spi: ca_sflash: Add CAxxxx SPI Flash Controller
On Tue, Jun 2, 2020 at 1:45 AM Alex Nemirovsky wrote: > > > > > On Jun 1, 2020, at 9:45 AM, Jagan Teki wrote: > > > > On Fri, May 22, 2020 at 6:18 AM Alex Nemirovsky > > wrote: > >> > >> From: Pengpeng Chen > >> > >> Add SPI Flash controller driver for Cortina Access > >> CA SoCs > >> > >> Signed-off-by: Pengpeng Chen > >> Signed-off-by: Alex Nemirovsky > >> CC: Jagan Teki > >> CC: Vignesh R > >> CC: Tom Rini > >> > >> --- > >> > >> Changes in v8: > >> - No code change > >> - Split out individual driver from Cortina Package 2 patch series > >> to help streamline acceptence into master > >> > >> Changes in v7: > >> - Replace substring "OPCODE" with "OP" in MACROs to help > >> reduce code line lengths > >> - Replace substring "_MASK" with "_MSK" in MACROs to help > >> reduce code line lengths > >> > >> Changes in v5: None > >> Changes in v3: > >> - Fixup syntax issues related to checkpatch.pl cleanup > >> > >> MAINTAINERS | 8 + > >> drivers/spi/Kconfig | 8 + > >> drivers/spi/Makefile| 1 + > >> drivers/spi/ca_sflash.c | 576 > >> > >> 4 files changed, 593 insertions(+) > >> create mode 100644 drivers/spi/ca_sflash.c > >> > >> diff --git a/MAINTAINERS b/MAINTAINERS > >> index 8add9d4..57ce45e 100644 > >> --- a/MAINTAINERS > >> +++ b/MAINTAINERS > >> @@ -181,6 +181,10 @@ F: drivers/gpio/cortina_gpio.c > >> F: drivers/watchdog/cortina_wdt.c > >> F: drivers/serial/serial_cortina.c > >> F: drivers/mmc/ca_dw_mmc.c > >> +F: drivers/i2c/i2c-cortina.c > >> +F: drivers/i2c/i2c-cortina.h > >> +F: drivers/led/led_cortina.c > >> +F: drivers/spi/ca_sflash.c > >> > >> ARM/CZ.NIC TURRIS MOX SUPPORT > >> M: Marek Behun > >> @@ -732,6 +736,10 @@ F: drivers/gpio/cortina_gpio.c > >> F: drivers/watchdog/cortina_wdt.c > >> F: drivers/serial/serial_cortina.c > >> F: drivers/mmc/ca_dw_mmc.c > >> +F: drivers/i2c/i2c-cortina.c > >> +F: drivers/i2c/i2c-cortina.h > >> +F: drivers/led/led_cortina.c > > > > These changes are unrelated to SPI, keep out of this patch. > > will be corrected in v9 > > > >> +F: drivers/spi/ca_sflash.c > >> > >> MIPS MSCC > >> M: Gregory CLEMENT > >> diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig > >> index dccd5ea..09f2a2a 100644 > >> --- a/drivers/spi/Kconfig > >> +++ b/drivers/spi/Kconfig > >> @@ -106,6 +106,14 @@ config BCMSTB_SPI > >> be used to access the SPI flash on platforms embedding this > >> Broadcom SPI core. > >> > >> +config CORTINA_SFLASH > >> + bool "Cortina-Access Serial Flash controller driver" > >> + depends on DM_SPI && SPI_MEM > >> + help > >> + Enable the Cortina-Access Serial Flash controller driver. This > >> driver > >> + can be used to access the SPI NOR/NAND flash on platforms > >> embedding this > >> + Cortina-Access IP core. > >> + > >> config CADENCE_QSPI > >>bool "Cadence QSPI driver" > >>help > >> diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile > >> index 6441694..5e53f11 100644 > >> --- a/drivers/spi/Makefile > >> +++ b/drivers/spi/Makefile > >> @@ -25,6 +25,7 @@ obj-$(CONFIG_BCM63XX_SPI) += bcm63xx_spi.o > >> obj-$(CONFIG_BCMSTB_SPI) += bcmstb_spi.o > >> obj-$(CONFIG_CADENCE_QSPI) += cadence_qspi.o cadence_qspi_apb.o > >> obj-$(CONFIG_CF_SPI) += cf_spi.o > >> +obj-$(CONFIG_CORTINA_SFLASH) += ca_sflash.o > >> obj-$(CONFIG_DAVINCI_SPI) += davinci_spi.o > >> obj-$(CONFIG_DESIGNWARE_SPI) += designware_spi.o > >> obj-$(CONFIG_EXYNOS_SPI) += exynos_spi.o > >> diff --git a/drivers/spi/ca_sflash.c b/drivers/spi/ca_sflash.c > >> new file mode 100644 > >> index 000..00af6bf > >> --- /dev/null > >> +++ b/drivers/spi/ca_sflash.c > >> @@ -0,0 +1,576 @@ > >> +// SPDX-License-Identifier: GPL-2.0+ > >> +/* > >> + * Driver for Cortina SPI-FLASH Controller > >> + * > >> + * Copyright (C) 2020 Cortina Access Inc. All Rights Reserved. > >> + * > >> + * Author: PengPeng Chen > >> + */ > >> + > >> +#include > >> +#include > >> +#include > >> +#include > >> +#include > >> +#include > >> +#include > >> +#include > >> +#include > >> +#include > >> +#include > >> +#include > >> +#include > >> +#include > >> + > >> +DECLARE_GLOBAL_DATA_PTR; > >> + > >> +struct ca_sflash_regs { > >> + u32 idr;/* 0x00:Flash word ID Register */ > >> + u32 tc; /* 0x04:Flash Timeout Counter Register */ > >> + u32 sr; /* 0x08:Flash Status Register */ > >> + u32 tr; /* 0x0C:Flash Type Register */ > >> + u32 asr;/* 0x10:Flash ACCESS START/BUSY Register */ > >> + u32 isr;/* 0x14:Flash Interrupt Status Register */ > >> + u32 imr;/* 0x18:Flash Interrupt Mask Register */ > >> + u32 fcr;/* 0x1C:NAND Flash FIFO Control Register */ > >> + u32 ffsr; /* 0x20:Flash FIFO Status
Re: [PATCH v8 1/2] spi: ca_sflash: Add CAxxxx SPI Flash Controller
> On Jun 1, 2020, at 9:45 AM, Jagan Teki wrote: > > On Fri, May 22, 2020 at 6:18 AM Alex Nemirovsky > wrote: >> >> From: Pengpeng Chen >> >> Add SPI Flash controller driver for Cortina Access >> CA SoCs >> >> Signed-off-by: Pengpeng Chen >> Signed-off-by: Alex Nemirovsky >> CC: Jagan Teki >> CC: Vignesh R >> CC: Tom Rini >> >> --- >> >> Changes in v8: >> - No code change >> - Split out individual driver from Cortina Package 2 patch series >> to help streamline acceptence into master >> >> Changes in v7: >> - Replace substring "OPCODE" with "OP" in MACROs to help >> reduce code line lengths >> - Replace substring "_MASK" with "_MSK" in MACROs to help >> reduce code line lengths >> >> Changes in v5: None >> Changes in v3: >> - Fixup syntax issues related to checkpatch.pl cleanup >> >> MAINTAINERS | 8 + >> drivers/spi/Kconfig | 8 + >> drivers/spi/Makefile| 1 + >> drivers/spi/ca_sflash.c | 576 >> >> 4 files changed, 593 insertions(+) >> create mode 100644 drivers/spi/ca_sflash.c >> >> diff --git a/MAINTAINERS b/MAINTAINERS >> index 8add9d4..57ce45e 100644 >> --- a/MAINTAINERS >> +++ b/MAINTAINERS >> @@ -181,6 +181,10 @@ F: drivers/gpio/cortina_gpio.c >> F: drivers/watchdog/cortina_wdt.c >> F: drivers/serial/serial_cortina.c >> F: drivers/mmc/ca_dw_mmc.c >> +F: drivers/i2c/i2c-cortina.c >> +F: drivers/i2c/i2c-cortina.h >> +F: drivers/led/led_cortina.c >> +F: drivers/spi/ca_sflash.c >> >> ARM/CZ.NIC TURRIS MOX SUPPORT >> M: Marek Behun >> @@ -732,6 +736,10 @@ F: drivers/gpio/cortina_gpio.c >> F: drivers/watchdog/cortina_wdt.c >> F: drivers/serial/serial_cortina.c >> F: drivers/mmc/ca_dw_mmc.c >> +F: drivers/i2c/i2c-cortina.c >> +F: drivers/i2c/i2c-cortina.h >> +F: drivers/led/led_cortina.c > > These changes are unrelated to SPI, keep out of this patch. will be corrected in v9 > >> +F: drivers/spi/ca_sflash.c >> >> MIPS MSCC >> M: Gregory CLEMENT >> diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig >> index dccd5ea..09f2a2a 100644 >> --- a/drivers/spi/Kconfig >> +++ b/drivers/spi/Kconfig >> @@ -106,6 +106,14 @@ config BCMSTB_SPI >> be used to access the SPI flash on platforms embedding this >> Broadcom SPI core. >> >> +config CORTINA_SFLASH >> + bool "Cortina-Access Serial Flash controller driver" >> + depends on DM_SPI && SPI_MEM >> + help >> + Enable the Cortina-Access Serial Flash controller driver. This >> driver >> + can be used to access the SPI NOR/NAND flash on platforms >> embedding this >> + Cortina-Access IP core. >> + >> config CADENCE_QSPI >>bool "Cadence QSPI driver" >>help >> diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile >> index 6441694..5e53f11 100644 >> --- a/drivers/spi/Makefile >> +++ b/drivers/spi/Makefile >> @@ -25,6 +25,7 @@ obj-$(CONFIG_BCM63XX_SPI) += bcm63xx_spi.o >> obj-$(CONFIG_BCMSTB_SPI) += bcmstb_spi.o >> obj-$(CONFIG_CADENCE_QSPI) += cadence_qspi.o cadence_qspi_apb.o >> obj-$(CONFIG_CF_SPI) += cf_spi.o >> +obj-$(CONFIG_CORTINA_SFLASH) += ca_sflash.o >> obj-$(CONFIG_DAVINCI_SPI) += davinci_spi.o >> obj-$(CONFIG_DESIGNWARE_SPI) += designware_spi.o >> obj-$(CONFIG_EXYNOS_SPI) += exynos_spi.o >> diff --git a/drivers/spi/ca_sflash.c b/drivers/spi/ca_sflash.c >> new file mode 100644 >> index 000..00af6bf >> --- /dev/null >> +++ b/drivers/spi/ca_sflash.c >> @@ -0,0 +1,576 @@ >> +// SPDX-License-Identifier: GPL-2.0+ >> +/* >> + * Driver for Cortina SPI-FLASH Controller >> + * >> + * Copyright (C) 2020 Cortina Access Inc. All Rights Reserved. >> + * >> + * Author: PengPeng Chen >> + */ >> + >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> + >> +DECLARE_GLOBAL_DATA_PTR; >> + >> +struct ca_sflash_regs { >> + u32 idr;/* 0x00:Flash word ID Register */ >> + u32 tc; /* 0x04:Flash Timeout Counter Register */ >> + u32 sr; /* 0x08:Flash Status Register */ >> + u32 tr; /* 0x0C:Flash Type Register */ >> + u32 asr;/* 0x10:Flash ACCESS START/BUSY Register */ >> + u32 isr;/* 0x14:Flash Interrupt Status Register */ >> + u32 imr;/* 0x18:Flash Interrupt Mask Register */ >> + u32 fcr;/* 0x1C:NAND Flash FIFO Control Register */ >> + u32 ffsr; /* 0x20:Flash FIFO Status Register */ >> + u32 ffar; /* 0x24:Flash FIFO ADDRESS Register */ >> + u32 ffmar; /* 0x28:Flash FIFO MATCHING ADDRESS Register >> */ >> + u32 ffdr; /* 0x2C:Flash FIFO Data Register */ >> + u32 ar; /* 0x30:Serial Flash Access Register */ >> + u32 ear;
Re: [PATCH v8 1/2] spi: ca_sflash: Add CAxxxx SPI Flash Controller
On Fri, May 22, 2020 at 6:18 AM Alex Nemirovsky wrote: > > From: Pengpeng Chen > > Add SPI Flash controller driver for Cortina Access > CA SoCs > > Signed-off-by: Pengpeng Chen > Signed-off-by: Alex Nemirovsky > CC: Jagan Teki > CC: Vignesh R > CC: Tom Rini > > --- > > Changes in v8: > - No code change > - Split out individual driver from Cortina Package 2 patch series > to help streamline acceptence into master > > Changes in v7: > - Replace substring "OPCODE" with "OP" in MACROs to help > reduce code line lengths > - Replace substring "_MASK" with "_MSK" in MACROs to help > reduce code line lengths > > Changes in v5: None > Changes in v3: > - Fixup syntax issues related to checkpatch.pl cleanup > > MAINTAINERS | 8 + > drivers/spi/Kconfig | 8 + > drivers/spi/Makefile| 1 + > drivers/spi/ca_sflash.c | 576 > > 4 files changed, 593 insertions(+) > create mode 100644 drivers/spi/ca_sflash.c > > diff --git a/MAINTAINERS b/MAINTAINERS > index 8add9d4..57ce45e 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -181,6 +181,10 @@ F: drivers/gpio/cortina_gpio.c > F: drivers/watchdog/cortina_wdt.c > F: drivers/serial/serial_cortina.c > F: drivers/mmc/ca_dw_mmc.c > +F: drivers/i2c/i2c-cortina.c > +F: drivers/i2c/i2c-cortina.h > +F: drivers/led/led_cortina.c > +F: drivers/spi/ca_sflash.c > > ARM/CZ.NIC TURRIS MOX SUPPORT > M: Marek Behun > @@ -732,6 +736,10 @@ F: drivers/gpio/cortina_gpio.c > F: drivers/watchdog/cortina_wdt.c > F: drivers/serial/serial_cortina.c > F: drivers/mmc/ca_dw_mmc.c > +F: drivers/i2c/i2c-cortina.c > +F: drivers/i2c/i2c-cortina.h > +F: drivers/led/led_cortina.c These changes are unrelated to SPI, keep out of this patch. > +F: drivers/spi/ca_sflash.c > > MIPS MSCC > M: Gregory CLEMENT > diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig > index dccd5ea..09f2a2a 100644 > --- a/drivers/spi/Kconfig > +++ b/drivers/spi/Kconfig > @@ -106,6 +106,14 @@ config BCMSTB_SPI > be used to access the SPI flash on platforms embedding this > Broadcom SPI core. > > +config CORTINA_SFLASH > + bool "Cortina-Access Serial Flash controller driver" > + depends on DM_SPI && SPI_MEM > + help > + Enable the Cortina-Access Serial Flash controller driver. This > driver > + can be used to access the SPI NOR/NAND flash on platforms embedding > this > + Cortina-Access IP core. > + > config CADENCE_QSPI > bool "Cadence QSPI driver" > help > diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile > index 6441694..5e53f11 100644 > --- a/drivers/spi/Makefile > +++ b/drivers/spi/Makefile > @@ -25,6 +25,7 @@ obj-$(CONFIG_BCM63XX_SPI) += bcm63xx_spi.o > obj-$(CONFIG_BCMSTB_SPI) += bcmstb_spi.o > obj-$(CONFIG_CADENCE_QSPI) += cadence_qspi.o cadence_qspi_apb.o > obj-$(CONFIG_CF_SPI) += cf_spi.o > +obj-$(CONFIG_CORTINA_SFLASH) += ca_sflash.o > obj-$(CONFIG_DAVINCI_SPI) += davinci_spi.o > obj-$(CONFIG_DESIGNWARE_SPI) += designware_spi.o > obj-$(CONFIG_EXYNOS_SPI) += exynos_spi.o > diff --git a/drivers/spi/ca_sflash.c b/drivers/spi/ca_sflash.c > new file mode 100644 > index 000..00af6bf > --- /dev/null > +++ b/drivers/spi/ca_sflash.c > @@ -0,0 +1,576 @@ > +// SPDX-License-Identifier: GPL-2.0+ > +/* > + * Driver for Cortina SPI-FLASH Controller > + * > + * Copyright (C) 2020 Cortina Access Inc. All Rights Reserved. > + * > + * Author: PengPeng Chen > + */ > + > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > + > +DECLARE_GLOBAL_DATA_PTR; > + > +struct ca_sflash_regs { > + u32 idr;/* 0x00:Flash word ID Register */ > + u32 tc; /* 0x04:Flash Timeout Counter Register */ > + u32 sr; /* 0x08:Flash Status Register */ > + u32 tr; /* 0x0C:Flash Type Register */ > + u32 asr;/* 0x10:Flash ACCESS START/BUSY Register */ > + u32 isr;/* 0x14:Flash Interrupt Status Register */ > + u32 imr;/* 0x18:Flash Interrupt Mask Register */ > + u32 fcr;/* 0x1C:NAND Flash FIFO Control Register */ > + u32 ffsr; /* 0x20:Flash FIFO Status Register */ > + u32 ffar; /* 0x24:Flash FIFO ADDRESS Register */ > + u32 ffmar; /* 0x28:Flash FIFO MATCHING ADDRESS Register > */ > + u32 ffdr; /* 0x2C:Flash FIFO Data Register */ > + u32 ar; /* 0x30:Serial Flash Access Register */ > + u32 ear;/* 0x34:Serial Flash Extend Access Register */ > + u32 adr;/* 0x38:Serial Flash ADdress Register */ > + u32 dr; /* 0x3C:Serial Flash Data Register */ > +
[PATCH v8 1/2] spi: ca_sflash: Add CAxxxx SPI Flash Controller
From: Pengpeng Chen Add SPI Flash controller driver for Cortina Access CA SoCs Signed-off-by: Pengpeng Chen Signed-off-by: Alex Nemirovsky CC: Jagan Teki CC: Vignesh R CC: Tom Rini --- Changes in v8: - No code change - Split out individual driver from Cortina Package 2 patch series to help streamline acceptence into master Changes in v7: - Replace substring "OPCODE" with "OP" in MACROs to help reduce code line lengths - Replace substring "_MASK" with "_MSK" in MACROs to help reduce code line lengths Changes in v5: None Changes in v3: - Fixup syntax issues related to checkpatch.pl cleanup MAINTAINERS | 8 + drivers/spi/Kconfig | 8 + drivers/spi/Makefile| 1 + drivers/spi/ca_sflash.c | 576 4 files changed, 593 insertions(+) create mode 100644 drivers/spi/ca_sflash.c diff --git a/MAINTAINERS b/MAINTAINERS index 8add9d4..57ce45e 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -181,6 +181,10 @@ F: drivers/gpio/cortina_gpio.c F: drivers/watchdog/cortina_wdt.c F: drivers/serial/serial_cortina.c F: drivers/mmc/ca_dw_mmc.c +F: drivers/i2c/i2c-cortina.c +F: drivers/i2c/i2c-cortina.h +F: drivers/led/led_cortina.c +F: drivers/spi/ca_sflash.c ARM/CZ.NIC TURRIS MOX SUPPORT M: Marek Behun @@ -732,6 +736,10 @@ F: drivers/gpio/cortina_gpio.c F: drivers/watchdog/cortina_wdt.c F: drivers/serial/serial_cortina.c F: drivers/mmc/ca_dw_mmc.c +F: drivers/i2c/i2c-cortina.c +F: drivers/i2c/i2c-cortina.h +F: drivers/led/led_cortina.c +F: drivers/spi/ca_sflash.c MIPS MSCC M: Gregory CLEMENT diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig index dccd5ea..09f2a2a 100644 --- a/drivers/spi/Kconfig +++ b/drivers/spi/Kconfig @@ -106,6 +106,14 @@ config BCMSTB_SPI be used to access the SPI flash on platforms embedding this Broadcom SPI core. +config CORTINA_SFLASH + bool "Cortina-Access Serial Flash controller driver" + depends on DM_SPI && SPI_MEM + help + Enable the Cortina-Access Serial Flash controller driver. This driver + can be used to access the SPI NOR/NAND flash on platforms embedding this + Cortina-Access IP core. + config CADENCE_QSPI bool "Cadence QSPI driver" help diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile index 6441694..5e53f11 100644 --- a/drivers/spi/Makefile +++ b/drivers/spi/Makefile @@ -25,6 +25,7 @@ obj-$(CONFIG_BCM63XX_SPI) += bcm63xx_spi.o obj-$(CONFIG_BCMSTB_SPI) += bcmstb_spi.o obj-$(CONFIG_CADENCE_QSPI) += cadence_qspi.o cadence_qspi_apb.o obj-$(CONFIG_CF_SPI) += cf_spi.o +obj-$(CONFIG_CORTINA_SFLASH) += ca_sflash.o obj-$(CONFIG_DAVINCI_SPI) += davinci_spi.o obj-$(CONFIG_DESIGNWARE_SPI) += designware_spi.o obj-$(CONFIG_EXYNOS_SPI) += exynos_spi.o diff --git a/drivers/spi/ca_sflash.c b/drivers/spi/ca_sflash.c new file mode 100644 index 000..00af6bf --- /dev/null +++ b/drivers/spi/ca_sflash.c @@ -0,0 +1,576 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Driver for Cortina SPI-FLASH Controller + * + * Copyright (C) 2020 Cortina Access Inc. All Rights Reserved. + * + * Author: PengPeng Chen + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +DECLARE_GLOBAL_DATA_PTR; + +struct ca_sflash_regs { + u32 idr;/* 0x00:Flash word ID Register */ + u32 tc; /* 0x04:Flash Timeout Counter Register */ + u32 sr; /* 0x08:Flash Status Register */ + u32 tr; /* 0x0C:Flash Type Register */ + u32 asr;/* 0x10:Flash ACCESS START/BUSY Register */ + u32 isr;/* 0x14:Flash Interrupt Status Register */ + u32 imr;/* 0x18:Flash Interrupt Mask Register */ + u32 fcr;/* 0x1C:NAND Flash FIFO Control Register */ + u32 ffsr; /* 0x20:Flash FIFO Status Register */ + u32 ffar; /* 0x24:Flash FIFO ADDRESS Register */ + u32 ffmar; /* 0x28:Flash FIFO MATCHING ADDRESS Register */ + u32 ffdr; /* 0x2C:Flash FIFO Data Register */ + u32 ar; /* 0x30:Serial Flash Access Register */ + u32 ear;/* 0x34:Serial Flash Extend Access Register */ + u32 adr;/* 0x38:Serial Flash ADdress Register */ + u32 dr; /* 0x3C:Serial Flash Data Register */ + u32 tmr;/* 0x40:Serial Flash Timing Register */ +}; + +/* + * FLASH_TYPE + */ +#define CA_FLASH_TR_PINBIT(15) +#define CA_FLASH_TR_TYPE_MSK GENMASK(14, 12) +#define CA_FLASH_TR_TYPE(tp) (((tp) << 12) & CA_FLASH_TR_TYPE_MSK) +#define CA_FLASH_TR_WIDTH BIT(11) +#define CA_FLASH_TR_SIZE_MSK GENMASK(10, 9)