* [PATCH 0/6] few clean up for flexspi driver on imx8ulp and imx8mp
@ 2024-09-04 11:17 haibo.chen
2024-09-04 11:17 ` [PATCH 1/6] dt-bindings: spi: nxp-fspi: adjust imx8mp to compatible with imx8mm haibo.chen
` (6 more replies)
0 siblings, 7 replies; 11+ messages in thread
From: haibo.chen @ 2024-09-04 11:17 UTC (permalink / raw)
To: han.xu, yogeshgaur.83, broonie, robh, krzk+dt, conor+dt, shawnguo,
s.hauer
Cc: kernel, festevam, singh.kuldeep87k, hs, linux-spi, devicetree,
linux-kernel, imx, linux-arm-kernel, haibo.chen
From: Haibo Chen <haibo.chen@nxp.com>
PATCH1~3 clean up the redundant imx8mp compatible string
PATCH4~5 add support on imx8ulp. The flexspi on imx8ulp has a difference
with others, it only has 16 LUTs, while others all has upper to
32 LUTs. so add this distinguish in the driver.
Haibo Chen (6):
dt-bindings: spi: nxp-fspi: adjust imx8mp to compatible with imx8mm
spi: nxp-fspi: remove the imx8mp compatible string
arm64: dts: imx8mp: add the compatible string for flexspi
dt-bindings: spi: nxp-fspi: add imx8ulp support
spi: fspi: add support for imx8ulp
arm64: dts: imx8ulp: correct the flexspi compatible string
.../devicetree/bindings/spi/spi-nxp-fspi.yaml | 3 +-
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 2 +-
arch/arm64/boot/dts/freescale/imx8ulp.dtsi | 2 +-
drivers/spi/spi-nxp-fspi.c | 55 ++++++++++++-------
4 files changed, 39 insertions(+), 23 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 1/6] dt-bindings: spi: nxp-fspi: adjust imx8mp to compatible with imx8mm
2024-09-04 11:17 [PATCH 0/6] few clean up for flexspi driver on imx8ulp and imx8mp haibo.chen
@ 2024-09-04 11:17 ` haibo.chen
2024-09-04 11:17 ` [PATCH 2/6] spi: nxp-fspi: remove the imx8mp compatible string haibo.chen
` (5 subsequent siblings)
6 siblings, 0 replies; 11+ messages in thread
From: haibo.chen @ 2024-09-04 11:17 UTC (permalink / raw)
To: han.xu, yogeshgaur.83, broonie, robh, krzk+dt, conor+dt, shawnguo,
s.hauer
Cc: kernel, festevam, singh.kuldeep87k, hs, linux-spi, devicetree,
linux-kernel, imx, linux-arm-kernel, haibo.chen
From: Haibo Chen <haibo.chen@nxp.com>
According to the imx8mp RM, the fspi on imx8mp is compatible with the
fspi on imx8mm.
Fixes: 28b5eaf9712b ("spi: Convert NXP flexspi to json schema")
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
---
Documentation/devicetree/bindings/spi/spi-nxp-fspi.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/spi/spi-nxp-fspi.yaml b/Documentation/devicetree/bindings/spi/spi-nxp-fspi.yaml
index 4a5f41bde00f..e994ff02f479 100644
--- a/Documentation/devicetree/bindings/spi/spi-nxp-fspi.yaml
+++ b/Documentation/devicetree/bindings/spi/spi-nxp-fspi.yaml
@@ -19,11 +19,11 @@ properties:
- enum:
- nxp,imx8dxl-fspi
- nxp,imx8mm-fspi
- - nxp,imx8mp-fspi
- nxp,imx8qxp-fspi
- nxp,lx2160a-fspi
- items:
- enum:
+ - nxp,imx8mp-fspi
- nxp,imx93-fspi
- nxp,imx95-fspi
- const: nxp,imx8mm-fspi
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 2/6] spi: nxp-fspi: remove the imx8mp compatible string
2024-09-04 11:17 [PATCH 0/6] few clean up for flexspi driver on imx8ulp and imx8mp haibo.chen
2024-09-04 11:17 ` [PATCH 1/6] dt-bindings: spi: nxp-fspi: adjust imx8mp to compatible with imx8mm haibo.chen
@ 2024-09-04 11:17 ` haibo.chen
2024-09-04 11:20 ` Marc Kleine-Budde
2024-09-04 16:31 ` Krzysztof Kozlowski
2024-09-04 11:17 ` [PATCH 3/6] arm64: dts: imx8mp: add the compatible string for flexspi haibo.chen
` (4 subsequent siblings)
6 siblings, 2 replies; 11+ messages in thread
From: haibo.chen @ 2024-09-04 11:17 UTC (permalink / raw)
To: han.xu, yogeshgaur.83, broonie, robh, krzk+dt, conor+dt, shawnguo,
s.hauer
Cc: kernel, festevam, singh.kuldeep87k, hs, linux-spi, devicetree,
linux-kernel, imx, linux-arm-kernel, haibo.chen
From: Haibo Chen <haibo.chen@nxp.com>
According to imx8mp RM, the fspi is compatible with the fspi on
imx8mm. So remove this redundant imx8mp compatible string here.
Fixes: 0467a97367d4 ("spi: fspi: enable fspi driver for on imx8mp")
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
---
drivers/spi/spi-nxp-fspi.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/spi/spi-nxp-fspi.c b/drivers/spi/spi-nxp-fspi.c
index fd1816befcd8..da110188bfed 100644
--- a/drivers/spi/spi-nxp-fspi.c
+++ b/drivers/spi/spi-nxp-fspi.c
@@ -1286,7 +1286,6 @@ static int nxp_fspi_resume(struct device *dev)
static const struct of_device_id nxp_fspi_dt_ids[] = {
{ .compatible = "nxp,lx2160a-fspi", .data = (void *)&lx2160a_data, },
{ .compatible = "nxp,imx8mm-fspi", .data = (void *)&imx8mm_data, },
- { .compatible = "nxp,imx8mp-fspi", .data = (void *)&imx8mm_data, },
{ .compatible = "nxp,imx8qxp-fspi", .data = (void *)&imx8qxp_data, },
{ .compatible = "nxp,imx8dxl-fspi", .data = (void *)&imx8dxl_data, },
{ /* sentinel */ }
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 3/6] arm64: dts: imx8mp: add the compatible string for flexspi
2024-09-04 11:17 [PATCH 0/6] few clean up for flexspi driver on imx8ulp and imx8mp haibo.chen
2024-09-04 11:17 ` [PATCH 1/6] dt-bindings: spi: nxp-fspi: adjust imx8mp to compatible with imx8mm haibo.chen
2024-09-04 11:17 ` [PATCH 2/6] spi: nxp-fspi: remove the imx8mp compatible string haibo.chen
@ 2024-09-04 11:17 ` haibo.chen
2024-09-04 11:17 ` [PATCH 4/6] dt-bindings: spi: nxp-fspi: add imx8ulp support haibo.chen
` (3 subsequent siblings)
6 siblings, 0 replies; 11+ messages in thread
From: haibo.chen @ 2024-09-04 11:17 UTC (permalink / raw)
To: han.xu, yogeshgaur.83, broonie, robh, krzk+dt, conor+dt, shawnguo,
s.hauer
Cc: kernel, festevam, singh.kuldeep87k, hs, linux-spi, devicetree,
linux-kernel, imx, linux-arm-kernel, haibo.chen
From: Haibo Chen <haibo.chen@nxp.com>
The flexspi on imx8mp is compatible with the one on imx8mm. Add the
correct compatible string here.
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
---
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
index 3b02c6e2988c..e44424af245c 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
@@ -1300,7 +1300,7 @@ usdhc3: mmc@30b60000 {
};
flexspi: spi@30bb0000 {
- compatible = "nxp,imx8mp-fspi";
+ compatible = "nxp,imx8mp-fspi", "nxp,imx8mm-fspi";
reg = <0x30bb0000 0x10000>, <0x8000000 0x10000000>;
reg-names = "fspi_base", "fspi_mmap";
interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 4/6] dt-bindings: spi: nxp-fspi: add imx8ulp support
2024-09-04 11:17 [PATCH 0/6] few clean up for flexspi driver on imx8ulp and imx8mp haibo.chen
` (2 preceding siblings ...)
2024-09-04 11:17 ` [PATCH 3/6] arm64: dts: imx8mp: add the compatible string for flexspi haibo.chen
@ 2024-09-04 11:17 ` haibo.chen
2024-09-04 11:17 ` [PATCH 5/6] spi: fspi: add support for imx8ulp haibo.chen
` (2 subsequent siblings)
6 siblings, 0 replies; 11+ messages in thread
From: haibo.chen @ 2024-09-04 11:17 UTC (permalink / raw)
To: han.xu, yogeshgaur.83, broonie, robh, krzk+dt, conor+dt, shawnguo,
s.hauer
Cc: kernel, festevam, singh.kuldeep87k, hs, linux-spi, devicetree,
linux-kernel, imx, linux-arm-kernel, haibo.chen
From: Haibo Chen <haibo.chen@nxp.com>
The flexspi on imx8ulp only has 16 number of LUTs, it is different
with flexspi on other imx SoC which has 32 number of LUTs.
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
---
Documentation/devicetree/bindings/spi/spi-nxp-fspi.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/spi/spi-nxp-fspi.yaml b/Documentation/devicetree/bindings/spi/spi-nxp-fspi.yaml
index e994ff02f479..3cbba282c040 100644
--- a/Documentation/devicetree/bindings/spi/spi-nxp-fspi.yaml
+++ b/Documentation/devicetree/bindings/spi/spi-nxp-fspi.yaml
@@ -20,6 +20,7 @@ properties:
- nxp,imx8dxl-fspi
- nxp,imx8mm-fspi
- nxp,imx8qxp-fspi
+ - nxp,imx8ulp-fspi
- nxp,lx2160a-fspi
- items:
- enum:
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 5/6] spi: fspi: add support for imx8ulp
2024-09-04 11:17 [PATCH 0/6] few clean up for flexspi driver on imx8ulp and imx8mp haibo.chen
` (3 preceding siblings ...)
2024-09-04 11:17 ` [PATCH 4/6] dt-bindings: spi: nxp-fspi: add imx8ulp support haibo.chen
@ 2024-09-04 11:17 ` haibo.chen
2024-09-04 11:17 ` [PATCH 6/6] arm64: dts: imx8ulp: correct the flexspi compatible string haibo.chen
2024-09-04 15:17 ` [PATCH 0/6] few clean up for flexspi driver on imx8ulp and imx8mp Frank Li
6 siblings, 0 replies; 11+ messages in thread
From: haibo.chen @ 2024-09-04 11:17 UTC (permalink / raw)
To: han.xu, yogeshgaur.83, broonie, robh, krzk+dt, conor+dt, shawnguo,
s.hauer
Cc: kernel, festevam, singh.kuldeep87k, hs, linux-spi, devicetree,
linux-kernel, imx, linux-arm-kernel, haibo.chen
From: Haibo Chen <haibo.chen@nxp.com>
The flexspi on imx8ulp only has 16 LUTs, different with others which
have up to 32 LUTs.
Add a separate compatible string and nxp_fspi_devtype_data to support
flexspi on imx8ulp.
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
---
drivers/spi/spi-nxp-fspi.c | 54 ++++++++++++++++++++++++--------------
1 file changed, 35 insertions(+), 19 deletions(-)
diff --git a/drivers/spi/spi-nxp-fspi.c b/drivers/spi/spi-nxp-fspi.c
index da110188bfed..96219cea65fb 100644
--- a/drivers/spi/spi-nxp-fspi.c
+++ b/drivers/spi/spi-nxp-fspi.c
@@ -57,13 +57,6 @@
#include <linux/spi/spi.h>
#include <linux/spi/spi-mem.h>
-/*
- * The driver only uses one single LUT entry, that is updated on
- * each call of exec_op(). Index 0 is preset at boot with a basic
- * read operation, so let's use the last entry (31).
- */
-#define SEQID_LUT 31
-
/* Registers used by the driver */
#define FSPI_MCR0 0x00
#define FSPI_MCR0_AHB_TIMEOUT(x) ((x) << 24)
@@ -263,9 +256,6 @@
#define FSPI_TFDR 0x180
#define FSPI_LUT_BASE 0x200
-#define FSPI_LUT_OFFSET (SEQID_LUT * 4 * 4)
-#define FSPI_LUT_REG(idx) \
- (FSPI_LUT_BASE + FSPI_LUT_OFFSET + (idx) * 4)
/* register map end */
@@ -341,6 +331,7 @@ struct nxp_fspi_devtype_data {
unsigned int txfifo;
unsigned int ahb_buf_size;
unsigned int quirks;
+ unsigned int lut_num;
bool little_endian;
};
@@ -349,6 +340,7 @@ static struct nxp_fspi_devtype_data lx2160a_data = {
.txfifo = SZ_1K, /* (128 * 64 bits) */
.ahb_buf_size = SZ_2K, /* (256 * 64 bits) */
.quirks = 0,
+ .lut_num = 32,
.little_endian = true, /* little-endian */
};
@@ -357,6 +349,7 @@ static struct nxp_fspi_devtype_data imx8mm_data = {
.txfifo = SZ_1K, /* (128 * 64 bits) */
.ahb_buf_size = SZ_2K, /* (256 * 64 bits) */
.quirks = 0,
+ .lut_num = 32,
.little_endian = true, /* little-endian */
};
@@ -365,6 +358,7 @@ static struct nxp_fspi_devtype_data imx8qxp_data = {
.txfifo = SZ_1K, /* (128 * 64 bits) */
.ahb_buf_size = SZ_2K, /* (256 * 64 bits) */
.quirks = 0,
+ .lut_num = 32,
.little_endian = true, /* little-endian */
};
@@ -373,6 +367,16 @@ static struct nxp_fspi_devtype_data imx8dxl_data = {
.txfifo = SZ_1K, /* (128 * 64 bits) */
.ahb_buf_size = SZ_2K, /* (256 * 64 bits) */
.quirks = FSPI_QUIRK_USE_IP_ONLY,
+ .lut_num = 32,
+ .little_endian = true, /* little-endian */
+};
+
+static struct nxp_fspi_devtype_data imx8ulp_data = {
+ .rxfifo = SZ_512, /* (64 * 64 bits) */
+ .txfifo = SZ_1K, /* (128 * 64 bits) */
+ .ahb_buf_size = SZ_2K, /* (256 * 64 bits) */
+ .quirks = 0,
+ .lut_num = 16,
.little_endian = true, /* little-endian */
};
@@ -544,6 +548,8 @@ static void nxp_fspi_prepare_lut(struct nxp_fspi *f,
void __iomem *base = f->iobase;
u32 lutval[4] = {};
int lutidx = 1, i;
+ u32 lut_offset = (f->devtype_data->lut_num - 1) * 4 * 4;
+ u32 target_lut_reg;
/* cmd */
lutval[0] |= LUT_DEF(0, LUT_CMD, LUT_PAD(op->cmd.buswidth),
@@ -588,8 +594,10 @@ static void nxp_fspi_prepare_lut(struct nxp_fspi *f,
fspi_writel(f, FSPI_LCKER_UNLOCK, f->iobase + FSPI_LCKCR);
/* fill LUT */
- for (i = 0; i < ARRAY_SIZE(lutval); i++)
- fspi_writel(f, lutval[i], base + FSPI_LUT_REG(i));
+ for (i = 0; i < ARRAY_SIZE(lutval); i++) {
+ target_lut_reg = FSPI_LUT_BASE + lut_offset + i * 4;
+ fspi_writel(f, lutval[i], base + target_lut_reg);
+ }
dev_dbg(f->dev, "CMD[%02x] lutval[0:%08x 1:%08x 2:%08x 3:%08x], size: 0x%08x\n",
op->cmd.opcode, lutval[0], lutval[1], lutval[2], lutval[3], op->data.nbytes);
@@ -874,7 +882,7 @@ static int nxp_fspi_do_op(struct nxp_fspi *f, const struct spi_mem_op *op)
void __iomem *base = f->iobase;
int seqnum = 0;
int err = 0;
- u32 reg;
+ u32 reg, seqid_lut;
reg = fspi_readl(f, base + FSPI_IPRXFCR);
/* invalid RXFIFO first */
@@ -890,8 +898,9 @@ static int nxp_fspi_do_op(struct nxp_fspi *f, const struct spi_mem_op *op)
* the LUT at each exec_op() call. And also specify the DATA
* length, since it's has not been specified in the LUT.
*/
+ seqid_lut = f->devtype_data->lut_num - 1;
fspi_writel(f, op->data.nbytes |
- (SEQID_LUT << FSPI_IPCR1_SEQID_SHIFT) |
+ (seqid_lut << FSPI_IPCR1_SEQID_SHIFT) |
(seqnum << FSPI_IPCR1_SEQNUM_SHIFT),
base + FSPI_IPCR1);
@@ -1015,7 +1024,7 @@ static int nxp_fspi_default_setup(struct nxp_fspi *f)
{
void __iomem *base = f->iobase;
int ret, i;
- u32 reg;
+ u32 reg, seqid_lut;
/* disable and unprepare clock to avoid glitch pass to controller */
nxp_fspi_clk_disable_unprep(f);
@@ -1090,11 +1099,17 @@ static int nxp_fspi_default_setup(struct nxp_fspi *f)
fspi_writel(f, reg, base + FSPI_FLSHB1CR1);
fspi_writel(f, reg, base + FSPI_FLSHB2CR1);
+ /*
+ * The driver only uses one single LUT entry, that is updated on
+ * each call of exec_op(). Index 0 is preset at boot with a basic
+ * read operation, so let's use the last entry (31 or 15).
+ */
+ seqid_lut = f->devtype_data->lut_num - 1;
/* AHB Read - Set lut sequence ID for all CS. */
- fspi_writel(f, SEQID_LUT, base + FSPI_FLSHA1CR2);
- fspi_writel(f, SEQID_LUT, base + FSPI_FLSHA2CR2);
- fspi_writel(f, SEQID_LUT, base + FSPI_FLSHB1CR2);
- fspi_writel(f, SEQID_LUT, base + FSPI_FLSHB2CR2);
+ fspi_writel(f, seqid_lut, base + FSPI_FLSHA1CR2);
+ fspi_writel(f, seqid_lut, base + FSPI_FLSHA2CR2);
+ fspi_writel(f, seqid_lut, base + FSPI_FLSHB1CR2);
+ fspi_writel(f, seqid_lut, base + FSPI_FLSHB2CR2);
f->selected = -1;
@@ -1288,6 +1303,7 @@ static const struct of_device_id nxp_fspi_dt_ids[] = {
{ .compatible = "nxp,imx8mm-fspi", .data = (void *)&imx8mm_data, },
{ .compatible = "nxp,imx8qxp-fspi", .data = (void *)&imx8qxp_data, },
{ .compatible = "nxp,imx8dxl-fspi", .data = (void *)&imx8dxl_data, },
+ { .compatible = "nxp,imx8ulp-fspi", .data = (void *)&imx8ulp_data, },
{ /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, nxp_fspi_dt_ids);
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 6/6] arm64: dts: imx8ulp: correct the flexspi compatible string
2024-09-04 11:17 [PATCH 0/6] few clean up for flexspi driver on imx8ulp and imx8mp haibo.chen
` (4 preceding siblings ...)
2024-09-04 11:17 ` [PATCH 5/6] spi: fspi: add support for imx8ulp haibo.chen
@ 2024-09-04 11:17 ` haibo.chen
2024-09-04 15:17 ` [PATCH 0/6] few clean up for flexspi driver on imx8ulp and imx8mp Frank Li
6 siblings, 0 replies; 11+ messages in thread
From: haibo.chen @ 2024-09-04 11:17 UTC (permalink / raw)
To: han.xu, yogeshgaur.83, broonie, robh, krzk+dt, conor+dt, shawnguo,
s.hauer
Cc: kernel, festevam, singh.kuldeep87k, hs, linux-spi, devicetree,
linux-kernel, imx, linux-arm-kernel, haibo.chen
From: Haibo Chen <haibo.chen@nxp.com>
The flexspi on imx8ulp only has 16 LUTs, and imx8mm flexspi has
32 LUTs, so correct the compatible string here, otherwise will
meet below error:
[ 1.119072] ------------[ cut here ]------------
[ 1.123926] WARNING: CPU: 0 PID: 1 at drivers/spi/spi-nxp-fspi.c:855 nxp_fspi_exec_op+0xb04/0xb64
[ 1.133239] Modules linked in:
[ 1.136448] CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.11.0-rc6-next-20240902-00001-g131bf9439dd9 #69
[ 1.146821] Hardware name: NXP i.MX8ULP EVK (DT)
[ 1.151647] pstate: 40000005 (nZcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 1.158931] pc : nxp_fspi_exec_op+0xb04/0xb64
[ 1.163496] lr : nxp_fspi_exec_op+0xa34/0xb64
[ 1.168060] sp : ffff80008002b2a0
[ 1.171526] x29: ffff80008002b2d0 x28: 0000000000000000 x27: 0000000000000000
[ 1.179002] x26: ffff2eb645542580 x25: ffff800080610014 x24: ffff800080610000
[ 1.186480] x23: ffff2eb645548080 x22: 0000000000000006 x21: ffff2eb6455425e0
[ 1.193956] x20: 0000000000000000 x19: ffff80008002b5e0 x18: ffffffffffffffff
[ 1.201432] x17: ffff2eb644467508 x16: 0000000000000138 x15: 0000000000000002
[ 1.208907] x14: 0000000000000000 x13: ffff2eb6400d8080 x12: 00000000ffffff00
[ 1.216378] x11: 0000000000000000 x10: ffff2eb6400d8080 x9 : ffff2eb697adca80
[ 1.223850] x8 : ffff2eb697ad3cc0 x7 : 0000000100000000 x6 : 0000000000000001
[ 1.231324] x5 : 0000000000000000 x4 : 0000000000000000 x3 : 00000000000007a6
[ 1.238795] x2 : 0000000000000000 x1 : 00000000000001ce x0 : 00000000ffffff92
[ 1.246267] Call trace:
[ 1.248824] nxp_fspi_exec_op+0xb04/0xb64
[ 1.253031] spi_mem_exec_op+0x3a0/0x430
[ 1.257139] spi_nor_read_id+0x80/0xcc
[ 1.261065] spi_nor_scan+0x1ec/0xf10
[ 1.264901] spi_nor_probe+0x108/0x2fc
[ 1.268828] spi_mem_probe+0x6c/0xbc
[ 1.272574] spi_probe+0x84/0xe4
[ 1.275958] really_probe+0xbc/0x29c
[ 1.279713] __driver_probe_device+0x78/0x12c
[ 1.284277] driver_probe_device+0xd8/0x15c
[ 1.288660] __device_attach_driver+0xb8/0x134
[ 1.293316] bus_for_each_drv+0x88/0xe8
[ 1.297337] __device_attach+0xa0/0x190
[ 1.301353] device_initial_probe+0x14/0x20
[ 1.305734] bus_probe_device+0xac/0xb0
[ 1.309752] device_add+0x5d0/0x790
[ 1.313408] __spi_add_device+0x134/0x204
[ 1.317606] of_register_spi_device+0x3b4/0x590
[ 1.322348] spi_register_controller+0x47c/0x754
[ 1.327181] devm_spi_register_controller+0x4c/0xa4
[ 1.332289] nxp_fspi_probe+0x1cc/0x2b0
[ 1.336307] platform_probe+0x68/0xc4
[ 1.340145] really_probe+0xbc/0x29c
[ 1.343893] __driver_probe_device+0x78/0x12c
[ 1.348457] driver_probe_device+0xd8/0x15c
[ 1.352838] __driver_attach+0x90/0x19c
[ 1.356857] bus_for_each_dev+0x7c/0xdc
[ 1.360877] driver_attach+0x24/0x30
[ 1.364624] bus_add_driver+0xe4/0x208
[ 1.368552] driver_register+0x5c/0x124
[ 1.372573] __platform_driver_register+0x28/0x34
[ 1.377497] nxp_fspi_driver_init+0x1c/0x28
[ 1.381888] do_one_initcall+0x80/0x1c8
[ 1.385908] kernel_init_freeable+0x1c4/0x28c
[ 1.390472] kernel_init+0x20/0x1d8
[ 1.394138] ret_from_fork+0x10/0x20
[ 1.397885] ---[ end trace 0000000000000000 ]---
[ 1.407908] ------------[ cut here ]------------
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
---
arch/arm64/boot/dts/freescale/imx8ulp.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8ulp.dtsi b/arch/arm64/boot/dts/freescale/imx8ulp.dtsi
index e32d5afcf4a9..43f543768444 100644
--- a/arch/arm64/boot/dts/freescale/imx8ulp.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8ulp.dtsi
@@ -384,7 +384,7 @@ pcc4: clock-controller@29800000 {
};
flexspi2: spi@29810000 {
- compatible = "nxp,imx8mm-fspi";
+ compatible = "nxp,imx8ulp-fspi";
reg = <0x29810000 0x10000>, <0x60000000 0x10000000>;
reg-names = "fspi_base", "fspi_mmap";
#address-cells = <1>;
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 2/6] spi: nxp-fspi: remove the imx8mp compatible string
2024-09-04 11:17 ` [PATCH 2/6] spi: nxp-fspi: remove the imx8mp compatible string haibo.chen
@ 2024-09-04 11:20 ` Marc Kleine-Budde
2024-09-04 16:31 ` Krzysztof Kozlowski
1 sibling, 0 replies; 11+ messages in thread
From: Marc Kleine-Budde @ 2024-09-04 11:20 UTC (permalink / raw)
To: haibo.chen
Cc: han.xu, yogeshgaur.83, broonie, robh, krzk+dt, conor+dt, shawnguo,
s.hauer, devicetree, singh.kuldeep87k, imx, linux-kernel,
linux-spi, kernel, hs, festevam, linux-arm-kernel
[-- Attachment #1: Type: text/plain, Size: 1497 bytes --]
On 04.09.2024 19:17:23, haibo.chen@nxp.com wrote:
> From: Haibo Chen <haibo.chen@nxp.com>
>
> According to imx8mp RM, the fspi is compatible with the fspi on
> imx8mm. So remove this redundant imx8mp compatible string here.
>
> Fixes: 0467a97367d4 ("spi: fspi: enable fspi driver for on imx8mp")
> Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
> ---
> drivers/spi/spi-nxp-fspi.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/drivers/spi/spi-nxp-fspi.c b/drivers/spi/spi-nxp-fspi.c
> index fd1816befcd8..da110188bfed 100644
> --- a/drivers/spi/spi-nxp-fspi.c
> +++ b/drivers/spi/spi-nxp-fspi.c
> @@ -1286,7 +1286,6 @@ static int nxp_fspi_resume(struct device *dev)
> static const struct of_device_id nxp_fspi_dt_ids[] = {
> { .compatible = "nxp,lx2160a-fspi", .data = (void *)&lx2160a_data, },
> { .compatible = "nxp,imx8mm-fspi", .data = (void *)&imx8mm_data, },
> - { .compatible = "nxp,imx8mp-fspi", .data = (void *)&imx8mm_data, },
I think this breaks old DT with new driver, doesn't it?
> { .compatible = "nxp,imx8qxp-fspi", .data = (void *)&imx8qxp_data, },
> { .compatible = "nxp,imx8dxl-fspi", .data = (void *)&imx8dxl_data, },
> { /* sentinel */ }
regards,
Marc
--
Pengutronix e.K. | Marc Kleine-Budde |
Embedded Linux | https://www.pengutronix.de |
Vertretung Nürnberg | Phone: +49-5121-206917-129 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-9 |
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 0/6] few clean up for flexspi driver on imx8ulp and imx8mp
2024-09-04 11:17 [PATCH 0/6] few clean up for flexspi driver on imx8ulp and imx8mp haibo.chen
` (5 preceding siblings ...)
2024-09-04 11:17 ` [PATCH 6/6] arm64: dts: imx8ulp: correct the flexspi compatible string haibo.chen
@ 2024-09-04 15:17 ` Frank Li
6 siblings, 0 replies; 11+ messages in thread
From: Frank Li @ 2024-09-04 15:17 UTC (permalink / raw)
To: haibo.chen
Cc: han.xu, yogeshgaur.83, broonie, robh, krzk+dt, conor+dt, shawnguo,
s.hauer, kernel, festevam, singh.kuldeep87k, hs, linux-spi,
devicetree, linux-kernel, imx, linux-arm-kernel
On Wed, Sep 04, 2024 at 07:17:21PM +0800, haibo.chen@nxp.com wrote:
> From: Haibo Chen <haibo.chen@nxp.com>
>
> PATCH1~3 clean up the redundant imx8mp compatible string
look through these 3 patches, look like we can't get much benefit and broke
compatibility, I think it is not worth. just leave as it and add 8ulp
support.
Frank
> PATCH4~5 add support on imx8ulp. The flexspi on imx8ulp has a difference
> with others, it only has 16 LUTs, while others all has upper to
> 32 LUTs. so add this distinguish in the driver.
>
> Haibo Chen (6):
> dt-bindings: spi: nxp-fspi: adjust imx8mp to compatible with imx8mm
> spi: nxp-fspi: remove the imx8mp compatible string
> arm64: dts: imx8mp: add the compatible string for flexspi
> dt-bindings: spi: nxp-fspi: add imx8ulp support
> spi: fspi: add support for imx8ulp
> arm64: dts: imx8ulp: correct the flexspi compatible string
>
> .../devicetree/bindings/spi/spi-nxp-fspi.yaml | 3 +-
> arch/arm64/boot/dts/freescale/imx8mp.dtsi | 2 +-
> arch/arm64/boot/dts/freescale/imx8ulp.dtsi | 2 +-
> drivers/spi/spi-nxp-fspi.c | 55 ++++++++++++-------
> 4 files changed, 39 insertions(+), 23 deletions(-)
>
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/6] spi: nxp-fspi: remove the imx8mp compatible string
2024-09-04 11:17 ` [PATCH 2/6] spi: nxp-fspi: remove the imx8mp compatible string haibo.chen
2024-09-04 11:20 ` Marc Kleine-Budde
@ 2024-09-04 16:31 ` Krzysztof Kozlowski
2024-09-04 17:47 ` Adam Ford
1 sibling, 1 reply; 11+ messages in thread
From: Krzysztof Kozlowski @ 2024-09-04 16:31 UTC (permalink / raw)
To: haibo.chen, han.xu, yogeshgaur.83, broonie, robh, krzk+dt,
conor+dt, shawnguo, s.hauer
Cc: kernel, festevam, singh.kuldeep87k, hs, linux-spi, devicetree,
linux-kernel, imx, linux-arm-kernel
On 04/09/2024 13:17, haibo.chen@nxp.com wrote:
> From: Haibo Chen <haibo.chen@nxp.com>
>
> According to imx8mp RM, the fspi is compatible with the fspi on
> imx8mm. So remove this redundant imx8mp compatible string here.
>
> Fixes: 0467a97367d4 ("spi: fspi: enable fspi driver for on imx8mp")
> Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
> ---
This breaks users.
NAK
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/6] spi: nxp-fspi: remove the imx8mp compatible string
2024-09-04 16:31 ` Krzysztof Kozlowski
@ 2024-09-04 17:47 ` Adam Ford
0 siblings, 0 replies; 11+ messages in thread
From: Adam Ford @ 2024-09-04 17:47 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: haibo.chen, han.xu, yogeshgaur.83, broonie, robh, krzk+dt,
conor+dt, shawnguo, s.hauer, kernel, festevam, singh.kuldeep87k,
hs, linux-spi, devicetree, linux-kernel, imx, linux-arm-kernel
On Wed, Sep 4, 2024 at 11:32 AM Krzysztof Kozlowski <krzk@kernel.org> wrote:
>
> On 04/09/2024 13:17, haibo.chen@nxp.com wrote:
> > From: Haibo Chen <haibo.chen@nxp.com>
> >
> > According to imx8mp RM, the fspi is compatible with the fspi on
> > imx8mm. So remove this redundant imx8mp compatible string here.
We'd need to have the device tree compatible fall back to
nxp,imx8mm-fspi, but it doesn't, so the driver would never associate
itself with nxp,imx8mp-fspi.
adam
> >
> > Fixes: 0467a97367d4 ("spi: fspi: enable fspi driver for on imx8mp")
> > Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
> > ---
>
>
> This breaks users.
>
> NAK
>
> Best regards,
> Krzysztof
>
>
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2024-09-04 17:49 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-04 11:17 [PATCH 0/6] few clean up for flexspi driver on imx8ulp and imx8mp haibo.chen
2024-09-04 11:17 ` [PATCH 1/6] dt-bindings: spi: nxp-fspi: adjust imx8mp to compatible with imx8mm haibo.chen
2024-09-04 11:17 ` [PATCH 2/6] spi: nxp-fspi: remove the imx8mp compatible string haibo.chen
2024-09-04 11:20 ` Marc Kleine-Budde
2024-09-04 16:31 ` Krzysztof Kozlowski
2024-09-04 17:47 ` Adam Ford
2024-09-04 11:17 ` [PATCH 3/6] arm64: dts: imx8mp: add the compatible string for flexspi haibo.chen
2024-09-04 11:17 ` [PATCH 4/6] dt-bindings: spi: nxp-fspi: add imx8ulp support haibo.chen
2024-09-04 11:17 ` [PATCH 5/6] spi: fspi: add support for imx8ulp haibo.chen
2024-09-04 11:17 ` [PATCH 6/6] arm64: dts: imx8ulp: correct the flexspi compatible string haibo.chen
2024-09-04 15:17 ` [PATCH 0/6] few clean up for flexspi driver on imx8ulp and imx8mp Frank Li
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).