* [PATCH v3 0/3] spi-cadence: support transmission with bits_per_word of 16 and 32
@ 2025-10-31 7:30 Jun Guo
2025-10-31 7:30 ` [PATCH v3 1/3] dt-bindings: spi: spi-cadence: update DT binding docs to support cix sky1 SoC Jun Guo
` (3 more replies)
0 siblings, 4 replies; 11+ messages in thread
From: Jun Guo @ 2025-10-31 7:30 UTC (permalink / raw)
To: peter.chen, fugang.duan, robh, krzk+dt, conor+dt, broonie
Cc: linux-spi, michal.simek, cix-kernel-upstream, linux-arm-kernel,
devicetree, linux-kernel, jun.guo
From: "jun.guo" <jun.guo@cixtech.com>
The Cadence SPI IP supports configurable FIFO data widths during
integration. On some SoCs, the FIFO data width is designed to be 16 or
32 bits at the chip design stage. However, the current driver only
supports communication with an 8-bit FIFO data width. Therefore, these
patches are added to enable the driver to support communication with
16-bit and 32-bit FIFO data widths.
This series introduces the following enhancements for Cadence SPI
controller support on arm64 platforms:
Patch 1: Add a compatible string "cix,sky1-spi-r1p6" for the cix
sky1 SoC.
Patch 2: Update DT binding docs to support cix sky1 SoC.
Patch 3: Enhance the SPI Cadence driver to support data transmission
with bits_per_word values of 16 and 32.
The CIX Sky1 SPI supported patch is added:
https://lore.kernel.org/all/20250919013118.853078-1-jun.guo@cixtech.com/
The patches have been tested on CIX SKY1 platform.
Changes for v3:
- Rebase the dt-bindings modification on top of the latest patches in
spi/for-next to make the patch more minimal.
Changes for v2:
- Remove the fifo-width property and add a compatible string for the
cix sky1 SoC to control the FIFO data width configuration.
Jun Guo (3):
dt-bindings: spi: spi-cadence: update DT binding docs to support cix
sky1 SoC
spi: spi-cadence: supports transmission with bits_per_word of 16 and
32
arm64: dts: cix: add a compatible string for the cix sky1 SoC
.../devicetree/bindings/spi/spi-cadence.yaml | 1 +
arch/arm64/boot/dts/cix/sky1.dtsi | 4 +-
drivers/spi/spi-cadence.c | 106 +++++++++++++++---
3 files changed, 96 insertions(+), 15 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 11+ messages in thread* [PATCH v3 1/3] dt-bindings: spi: spi-cadence: update DT binding docs to support cix sky1 SoC 2025-10-31 7:30 [PATCH v3 0/3] spi-cadence: support transmission with bits_per_word of 16 and 32 Jun Guo @ 2025-10-31 7:30 ` Jun Guo 2025-10-31 15:10 ` Conor Dooley 2025-10-31 7:30 ` [PATCH v3 2/3] spi: spi-cadence: supports transmission with bits_per_word of 16 and 32 Jun Guo ` (2 subsequent siblings) 3 siblings, 1 reply; 11+ messages in thread From: Jun Guo @ 2025-10-31 7:30 UTC (permalink / raw) To: peter.chen, fugang.duan, robh, krzk+dt, conor+dt, broonie Cc: linux-spi, michal.simek, cix-kernel-upstream, linux-arm-kernel, devicetree, linux-kernel, Jun Guo - Add new compatible strings to the DT binding documents to support cix sky1 SoC. Signed-off-by: Jun Guo <jun.guo@cixtech.com> --- Documentation/devicetree/bindings/spi/spi-cadence.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/spi/spi-cadence.yaml b/Documentation/devicetree/bindings/spi/spi-cadence.yaml index 27414b78d61d..347bed0c4956 100644 --- a/Documentation/devicetree/bindings/spi/spi-cadence.yaml +++ b/Documentation/devicetree/bindings/spi/spi-cadence.yaml @@ -21,6 +21,7 @@ properties: - enum: - xlnx,zynqmp-spi-r1p6 - xlnx,versal-net-spi-r1p6 + - cix,sky1-spi-r1p6 - const: cdns,spi-r1p6 reg: -- 2.34.1 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v3 1/3] dt-bindings: spi: spi-cadence: update DT binding docs to support cix sky1 SoC 2025-10-31 7:30 ` [PATCH v3 1/3] dt-bindings: spi: spi-cadence: update DT binding docs to support cix sky1 SoC Jun Guo @ 2025-10-31 15:10 ` Conor Dooley 0 siblings, 0 replies; 11+ messages in thread From: Conor Dooley @ 2025-10-31 15:10 UTC (permalink / raw) To: Jun Guo Cc: peter.chen, fugang.duan, robh, krzk+dt, conor+dt, broonie, linux-spi, michal.simek, cix-kernel-upstream, linux-arm-kernel, devicetree, linux-kernel [-- Attachment #1: Type: text/plain, Size: 278 bytes --] On Fri, Oct 31, 2025 at 03:30:01PM +0800, Jun Guo wrote: > - Add new compatible strings to the DT binding documents to support > cix sky1 SoC. > > Signed-off-by: Jun Guo <jun.guo@cixtech.com> Acked-by: Conor Dooley <conor.dooley@microchip.com> pw-bot: not-applicable [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v3 2/3] spi: spi-cadence: supports transmission with bits_per_word of 16 and 32 2025-10-31 7:30 [PATCH v3 0/3] spi-cadence: support transmission with bits_per_word of 16 and 32 Jun Guo 2025-10-31 7:30 ` [PATCH v3 1/3] dt-bindings: spi: spi-cadence: update DT binding docs to support cix sky1 SoC Jun Guo @ 2025-10-31 7:30 ` Jun Guo 2026-01-14 14:14 ` Rodrigo Alencar 2025-10-31 7:30 ` [PATCH v3 3/3] arm64: dts: cix: add a compatible string for the cix sky1 SoC Jun Guo 2025-11-14 17:07 ` (subset) [PATCH v3 0/3] spi-cadence: support transmission with bits_per_word of 16 and 32 Mark Brown 3 siblings, 1 reply; 11+ messages in thread From: Jun Guo @ 2025-10-31 7:30 UTC (permalink / raw) To: peter.chen, fugang.duan, robh, krzk+dt, conor+dt, broonie Cc: linux-spi, michal.simek, cix-kernel-upstream, linux-arm-kernel, devicetree, linux-kernel, Jun Guo The default FIFO data width of the Cadence SPI IP is 8 bits, but the hardware supports configurations of 16 bits and 32 bits. This patch enhances the driver to support communication with both 16-bits and 32-bits FIFO data widths. Signed-off-by: Jun Guo <jun.guo@cixtech.com> --- drivers/spi/spi-cadence.c | 106 +++++++++++++++++++++++++++++++++----- 1 file changed, 93 insertions(+), 13 deletions(-) diff --git a/drivers/spi/spi-cadence.c b/drivers/spi/spi-cadence.c index 5ae09b21d23a..47054da630d0 100644 --- a/drivers/spi/spi-cadence.c +++ b/drivers/spi/spi-cadence.c @@ -109,6 +109,7 @@ * @rxbuf: Pointer to the RX buffer * @tx_bytes: Number of bytes left to transfer * @rx_bytes: Number of bytes requested + * @n_bytes: Number of bytes per word * @dev_busy: Device busy flag * @is_decoded_cs: Flag for decoder property set or not * @tx_fifo_depth: Depth of the TX FIFO @@ -120,16 +121,24 @@ struct cdns_spi { struct clk *pclk; unsigned int clk_rate; u32 speed_hz; - const u8 *txbuf; - u8 *rxbuf; + const void *txbuf; + void *rxbuf; int tx_bytes; int rx_bytes; + u8 n_bytes; u8 dev_busy; u32 is_decoded_cs; unsigned int tx_fifo_depth; struct reset_control *rstc; }; +enum cdns_spi_frame_n_bytes { + CDNS_SPI_N_BYTES_NULL = 0, + CDNS_SPI_N_BYTES_U8 = 1, + CDNS_SPI_N_BYTES_U16 = 2, + CDNS_SPI_N_BYTES_U32 = 4 +}; + /* Macros for the SPI controller read/write */ static inline u32 cdns_spi_read(struct cdns_spi *xspi, u32 offset) { @@ -305,6 +314,78 @@ static int cdns_spi_setup_transfer(struct spi_device *spi, return 0; } +static u8 cdns_spi_n_bytes(struct spi_transfer *transfer) +{ + if (transfer->bits_per_word <= 8) + return CDNS_SPI_N_BYTES_U8; + else if (transfer->bits_per_word <= 16) + return CDNS_SPI_N_BYTES_U16; + else + return CDNS_SPI_N_BYTES_U32; +} + +static inline void cdns_spi_reader(struct cdns_spi *xspi) +{ + u32 rxw = 0; + + if (xspi->rxbuf && !IS_ALIGNED((uintptr_t)xspi->rxbuf, xspi->n_bytes)) { + pr_err("%s: rxbuf address is not aligned for %d bytes\n", + __func__, xspi->n_bytes); + return; + } + + rxw = cdns_spi_read(xspi, CDNS_SPI_RXD); + if (xspi->rxbuf) { + switch (xspi->n_bytes) { + case CDNS_SPI_N_BYTES_U8: + *(u8 *)xspi->rxbuf = rxw; + break; + case CDNS_SPI_N_BYTES_U16: + *(u16 *)xspi->rxbuf = rxw; + break; + case CDNS_SPI_N_BYTES_U32: + *(u32 *)xspi->rxbuf = rxw; + break; + default: + pr_err("%s invalid n_bytes %d\n", __func__, + xspi->n_bytes); + return; + } + xspi->rxbuf = (u8 *)xspi->rxbuf + xspi->n_bytes; + } +} + +static inline void cdns_spi_writer(struct cdns_spi *xspi) +{ + u32 txw = 0; + + if (xspi->txbuf && !IS_ALIGNED((uintptr_t)xspi->txbuf, xspi->n_bytes)) { + pr_err("%s: txbuf address is not aligned for %d bytes\n", + __func__, xspi->n_bytes); + return; + } + + if (xspi->txbuf) { + switch (xspi->n_bytes) { + case CDNS_SPI_N_BYTES_U8: + txw = *(u8 *)xspi->txbuf; + break; + case CDNS_SPI_N_BYTES_U16: + txw = *(u16 *)xspi->txbuf; + break; + case CDNS_SPI_N_BYTES_U32: + txw = *(u32 *)xspi->txbuf; + break; + default: + pr_err("%s invalid n_bytes %d\n", __func__, + xspi->n_bytes); + return; + } + cdns_spi_write(xspi, CDNS_SPI_TXD, txw); + xspi->txbuf = (u8 *)xspi->txbuf + xspi->n_bytes; + } +} + /** * cdns_spi_process_fifo - Fills the TX FIFO, and drain the RX FIFO * @xspi: Pointer to the cdns_spi structure @@ -321,23 +402,14 @@ static void cdns_spi_process_fifo(struct cdns_spi *xspi, int ntx, int nrx) while (ntx || nrx) { if (nrx) { - u8 data = cdns_spi_read(xspi, CDNS_SPI_RXD); - - if (xspi->rxbuf) - *xspi->rxbuf++ = data; - + cdns_spi_reader(xspi); nrx--; } if (ntx) { - if (xspi->txbuf) - cdns_spi_write(xspi, CDNS_SPI_TXD, *xspi->txbuf++); - else - cdns_spi_write(xspi, CDNS_SPI_TXD, 0); - + cdns_spi_writer(xspi); ntx--; } - } } @@ -454,6 +526,10 @@ static int cdns_transfer_one(struct spi_controller *ctlr, if (cdns_spi_read(xspi, CDNS_SPI_ISR) & CDNS_SPI_IXR_TXFULL) udelay(10); + xspi->n_bytes = cdns_spi_n_bytes(transfer); + xspi->tx_bytes = DIV_ROUND_UP(xspi->tx_bytes, xspi->n_bytes); + xspi->rx_bytes = DIV_ROUND_UP(xspi->rx_bytes, xspi->n_bytes); + cdns_spi_process_fifo(xspi, xspi->tx_fifo_depth, 0); cdns_spi_write(xspi, CDNS_SPI_IER, CDNS_SPI_IXR_DEFAULT); @@ -654,6 +730,9 @@ static int cdns_spi_probe(struct platform_device *pdev) ctlr->mode_bits = SPI_CPOL | SPI_CPHA; ctlr->bits_per_word_mask = SPI_BPW_MASK(8); + if (of_device_is_compatible(pdev->dev.of_node, "cix,sky1-spi-r1p6")) + ctlr->bits_per_word_mask |= SPI_BPW_MASK(16) | SPI_BPW_MASK(32); + if (!spi_controller_is_target(ctlr)) { ctlr->mode_bits |= SPI_CS_HIGH; ctlr->set_cs = cdns_spi_chipselect; @@ -797,6 +876,7 @@ static const struct dev_pm_ops cdns_spi_dev_pm_ops = { static const struct of_device_id cdns_spi_of_match[] = { { .compatible = "xlnx,zynq-spi-r1p6" }, + { .compatible = "cix,sky1-spi-r1p6" }, { .compatible = "cdns,spi-r1p6" }, { /* end of table */ } }; -- 2.34.1 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v3 2/3] spi: spi-cadence: supports transmission with bits_per_word of 16 and 32 2025-10-31 7:30 ` [PATCH v3 2/3] spi: spi-cadence: supports transmission with bits_per_word of 16 and 32 Jun Guo @ 2026-01-14 14:14 ` Rodrigo Alencar 2026-01-14 14:16 ` Mark Brown 0 siblings, 1 reply; 11+ messages in thread From: Rodrigo Alencar @ 2026-01-14 14:14 UTC (permalink / raw) To: Jun Guo, peter.chen, fugang.duan, robh, krzk+dt, conor+dt, broonie Cc: linux-spi, michal.simek, cix-kernel-upstream, linux-arm-kernel, devicetree, linux-kernel On 25/10/31 03:30PM, Jun Guo wrote: > The default FIFO data width of the Cadence SPI IP is 8 bits, but > the hardware supports configurations of 16 bits and 32 bits. > This patch enhances the driver to support communication with both > 16-bits and 32-bits FIFO data widths. > > Signed-off-by: Jun Guo <jun.guo@cixtech.com> ... > +static inline void cdns_spi_writer(struct cdns_spi *xspi) > +{ > + u32 txw = 0; > + > + if (xspi->txbuf && !IS_ALIGNED((uintptr_t)xspi->txbuf, xspi->n_bytes)) { > + pr_err("%s: txbuf address is not aligned for %d bytes\n", > + __func__, xspi->n_bytes); > + return; > + } > + > + if (xspi->txbuf) { > + switch (xspi->n_bytes) { > + case CDNS_SPI_N_BYTES_U8: > + txw = *(u8 *)xspi->txbuf; > + break; > + case CDNS_SPI_N_BYTES_U16: > + txw = *(u16 *)xspi->txbuf; > + break; > + case CDNS_SPI_N_BYTES_U32: > + txw = *(u32 *)xspi->txbuf; > + break; > + default: > + pr_err("%s invalid n_bytes %d\n", __func__, > + xspi->n_bytes); > + return; > + } > + cdns_spi_write(xspi, CDNS_SPI_TXD, txw); > + xspi->txbuf = (u8 *)xspi->txbuf + xspi->n_bytes; > + } cdns_spi_write(xspi, CDNS_SPI_TXD, txw) needs to be called regardless of xspi->txbuf. Otherwise, there will be no clock for the read operation to work. This is a bug I am seeing on a Zedboard running on 6.19 kind regards, Rodrigo Alencar ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 2/3] spi: spi-cadence: supports transmission with bits_per_word of 16 and 32 2026-01-14 14:14 ` Rodrigo Alencar @ 2026-01-14 14:16 ` Mark Brown 2026-01-14 16:09 ` Rodrigo Alencar 0 siblings, 1 reply; 11+ messages in thread From: Mark Brown @ 2026-01-14 14:16 UTC (permalink / raw) To: Rodrigo Alencar Cc: Jun Guo, peter.chen, fugang.duan, robh, krzk+dt, conor+dt, linux-spi, michal.simek, cix-kernel-upstream, linux-arm-kernel, devicetree, linux-kernel [-- Attachment #1: Type: text/plain, Size: 633 bytes --] On Wed, Jan 14, 2026 at 02:14:35PM +0000, Rodrigo Alencar wrote: > On 25/10/31 03:30PM, Jun Guo wrote: > > + if (xspi->txbuf) { > > + switch (xspi->n_bytes) { > > + case CDNS_SPI_N_BYTES_U8: > > + txw = *(u8 *)xspi->txbuf; > > + break; > > + cdns_spi_write(xspi, CDNS_SPI_TXD, txw); > > + xspi->txbuf = (u8 *)xspi->txbuf + xspi->n_bytes; > > + } > cdns_spi_write(xspi, CDNS_SPI_TXD, txw) needs to be called regardless of xspi->txbuf. > Otherwise, there will be no clock for the read operation to work. > This is a bug I am seeing on a Zedboard running on 6.19 So the device needs to be flagged as SPI_CONTROLLER_MUST_TX? [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 2/3] spi: spi-cadence: supports transmission with bits_per_word of 16 and 32 2026-01-14 14:16 ` Mark Brown @ 2026-01-14 16:09 ` Rodrigo Alencar 2026-01-15 2:14 ` Jun Guo 0 siblings, 1 reply; 11+ messages in thread From: Rodrigo Alencar @ 2026-01-14 16:09 UTC (permalink / raw) To: Mark Brown, Rodrigo Alencar Cc: Jun Guo, peter.chen, fugang.duan, robh, krzk+dt, conor+dt, linux-spi, michal.simek, cix-kernel-upstream, linux-arm-kernel, devicetree, linux-kernel On 26/01/14 02:16PM, Mark Brown wrote: > On Wed, Jan 14, 2026 at 02:14:35PM +0000, Rodrigo Alencar wrote: > > On 25/10/31 03:30PM, Jun Guo wrote: > > > > + if (xspi->txbuf) { > > > + switch (xspi->n_bytes) { > > > + case CDNS_SPI_N_BYTES_U8: > > > + txw = *(u8 *)xspi->txbuf; > > > + break; > > > > + cdns_spi_write(xspi, CDNS_SPI_TXD, txw); > > > + xspi->txbuf = (u8 *)xspi->txbuf + xspi->n_bytes; > > > + } > > > cdns_spi_write(xspi, CDNS_SPI_TXD, txw) needs to be called regardless of xspi->txbuf. > > Otherwise, there will be no clock for the read operation to work. > > This is a bug I am seeing on a Zedboard running on 6.19 > > So the device needs to be flagged as SPI_CONTROLLER_MUST_TX? yes, It works if ctlr->flags = SPI_CONTROLLER_MUST_TX; is added to the probe function. At least for my case handling with "xlnx,zynq-spi-r1p6" kind regards, Rodrigo Alencar ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 2/3] spi: spi-cadence: supports transmission with bits_per_word of 16 and 32 2026-01-14 16:09 ` Rodrigo Alencar @ 2026-01-15 2:14 ` Jun Guo 0 siblings, 0 replies; 11+ messages in thread From: Jun Guo @ 2026-01-15 2:14 UTC (permalink / raw) To: Rodrigo Alencar, Mark Brown Cc: peter.chen, fugang.duan, robh, krzk+dt, conor+dt, linux-spi, michal.simek, cix-kernel-upstream, linux-arm-kernel, devicetree, linux-kernel hi Rodrigo, I'm very sorry for introducing this issue. Thank you for your reminder. I will immediately submit a patch to add SPI_CONTROLLER_MUST_TX to the flags during probe to resolve this problem. On 1/15/2026 12:09 AM, Rodrigo Alencar wrote: > [You don't often get email from 455.rodrigo.alencar@gmail.com. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] > > EXTERNAL EMAIL > > On 26/01/14 02:16PM, Mark Brown wrote: >> On Wed, Jan 14, 2026 at 02:14:35PM +0000, Rodrigo Alencar wrote: >>> On 25/10/31 03:30PM, Jun Guo wrote: >> >>>> + if (xspi->txbuf) { >>>> + switch (xspi->n_bytes) { >>>> + case CDNS_SPI_N_BYTES_U8: >>>> + txw = *(u8 *)xspi->txbuf; >>>> + break; >> >>>> + cdns_spi_write(xspi, CDNS_SPI_TXD, txw); >>>> + xspi->txbuf = (u8 *)xspi->txbuf + xspi->n_bytes; >>>> + } >> >>> cdns_spi_write(xspi, CDNS_SPI_TXD, txw) needs to be called regardless of xspi->txbuf. >>> Otherwise, there will be no clock for the read operation to work. >>> This is a bug I am seeing on a Zedboard running on 6.19 >> >> So the device needs to be flagged as SPI_CONTROLLER_MUST_TX? > > yes, It works if > > ctlr->flags = SPI_CONTROLLER_MUST_TX; > > is added to the probe function. At least for my case handling with "xlnx,zynq-spi-r1p6" > > kind regards, > > Rodrigo Alencar > ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v3 3/3] arm64: dts: cix: add a compatible string for the cix sky1 SoC 2025-10-31 7:30 [PATCH v3 0/3] spi-cadence: support transmission with bits_per_word of 16 and 32 Jun Guo 2025-10-31 7:30 ` [PATCH v3 1/3] dt-bindings: spi: spi-cadence: update DT binding docs to support cix sky1 SoC Jun Guo 2025-10-31 7:30 ` [PATCH v3 2/3] spi: spi-cadence: supports transmission with bits_per_word of 16 and 32 Jun Guo @ 2025-10-31 7:30 ` Jun Guo 2025-11-17 9:32 ` Peter Chen 2025-11-14 17:07 ` (subset) [PATCH v3 0/3] spi-cadence: support transmission with bits_per_word of 16 and 32 Mark Brown 3 siblings, 1 reply; 11+ messages in thread From: Jun Guo @ 2025-10-31 7:30 UTC (permalink / raw) To: peter.chen, fugang.duan, robh, krzk+dt, conor+dt, broonie Cc: linux-spi, michal.simek, cix-kernel-upstream, linux-arm-kernel, devicetree, linux-kernel, Jun Guo The SPI IP design for the cix sky1 SoC uses a FIFO with a data width of 32 bits, instead of the default 8 bits. Therefore, a compatible string is added to specify the FIFO data width configuration for the cix sky1 SoC. Signed-off-by: Jun Guo <jun.guo@cixtech.com> --- arch/arm64/boot/dts/cix/sky1.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/cix/sky1.dtsi b/arch/arm64/boot/dts/cix/sky1.dtsi index d21387224e79..189b9a3be55c 100644 --- a/arch/arm64/boot/dts/cix/sky1.dtsi +++ b/arch/arm64/boot/dts/cix/sky1.dtsi @@ -265,7 +265,7 @@ i2c7: i2c@4080000 { }; spi0: spi@4090000 { - compatible = "cdns,spi-r1p6"; + compatible = "cix,sky1-spi-r1p6", "cdns,spi-r1p6"; reg = <0x0 0x04090000 0x0 0x10000>; clocks = <&scmi_clk CLK_TREE_FCH_SPI0_APB>, <&scmi_clk CLK_TREE_FCH_SPI0_APB>; @@ -275,7 +275,7 @@ spi0: spi@4090000 { }; spi1: spi@40a0000 { - compatible = "cdns,spi-r1p6"; + compatible = "cix,sky1-spi-r1p6", "cdns,spi-r1p6"; reg = <0x0 0x040a0000 0x0 0x10000>; clocks = <&scmi_clk CLK_TREE_FCH_SPI1_APB>, <&scmi_clk CLK_TREE_FCH_SPI1_APB>; -- 2.34.1 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v3 3/3] arm64: dts: cix: add a compatible string for the cix sky1 SoC 2025-10-31 7:30 ` [PATCH v3 3/3] arm64: dts: cix: add a compatible string for the cix sky1 SoC Jun Guo @ 2025-11-17 9:32 ` Peter Chen 0 siblings, 0 replies; 11+ messages in thread From: Peter Chen @ 2025-11-17 9:32 UTC (permalink / raw) To: Jun Guo Cc: fugang.duan, robh, krzk+dt, conor+dt, broonie, linux-spi, michal.simek, cix-kernel-upstream, linux-arm-kernel, devicetree, linux-kernel On 25-10-31 15:30:03, Jun Guo wrote: > The SPI IP design for the cix sky1 SoC uses a FIFO with a data width > of 32 bits, instead of the default 8 bits. Therefore, a compatible > string is added to specify the FIFO data width configuration for the > cix sky1 SoC. > > Signed-off-by: Jun Guo <jun.guo@cixtech.com> Applied, Thanks. Peter > --- > arch/arm64/boot/dts/cix/sky1.dtsi | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/arm64/boot/dts/cix/sky1.dtsi b/arch/arm64/boot/dts/cix/sky1.dtsi > index d21387224e79..189b9a3be55c 100644 > --- a/arch/arm64/boot/dts/cix/sky1.dtsi > +++ b/arch/arm64/boot/dts/cix/sky1.dtsi > @@ -265,7 +265,7 @@ i2c7: i2c@4080000 { > }; > > spi0: spi@4090000 { > - compatible = "cdns,spi-r1p6"; > + compatible = "cix,sky1-spi-r1p6", "cdns,spi-r1p6"; > reg = <0x0 0x04090000 0x0 0x10000>; > clocks = <&scmi_clk CLK_TREE_FCH_SPI0_APB>, > <&scmi_clk CLK_TREE_FCH_SPI0_APB>; > @@ -275,7 +275,7 @@ spi0: spi@4090000 { > }; > > spi1: spi@40a0000 { > - compatible = "cdns,spi-r1p6"; > + compatible = "cix,sky1-spi-r1p6", "cdns,spi-r1p6"; > reg = <0x0 0x040a0000 0x0 0x10000>; > clocks = <&scmi_clk CLK_TREE_FCH_SPI1_APB>, > <&scmi_clk CLK_TREE_FCH_SPI1_APB>; > -- > 2.34.1 > -- Best regards, Peter ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: (subset) [PATCH v3 0/3] spi-cadence: support transmission with bits_per_word of 16 and 32 2025-10-31 7:30 [PATCH v3 0/3] spi-cadence: support transmission with bits_per_word of 16 and 32 Jun Guo ` (2 preceding siblings ...) 2025-10-31 7:30 ` [PATCH v3 3/3] arm64: dts: cix: add a compatible string for the cix sky1 SoC Jun Guo @ 2025-11-14 17:07 ` Mark Brown 3 siblings, 0 replies; 11+ messages in thread From: Mark Brown @ 2025-11-14 17:07 UTC (permalink / raw) To: peter.chen, fugang.duan, robh, krzk+dt, conor+dt, Jun Guo Cc: linux-spi, michal.simek, cix-kernel-upstream, linux-arm-kernel, devicetree, linux-kernel On Fri, 31 Oct 2025 15:30:00 +0800, Jun Guo wrote: > The Cadence SPI IP supports configurable FIFO data widths during > integration. On some SoCs, the FIFO data width is designed to be 16 or > 32 bits at the chip design stage. However, the current driver only > supports communication with an 8-bit FIFO data width. Therefore, these > patches are added to enable the driver to support communication with > 16-bit and 32-bit FIFO data widths. > > [...] Applied to https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-next Thanks! [1/3] dt-bindings: spi: spi-cadence: update DT binding docs to support cix sky1 SoC commit: 55b5d192bab5e152bda8f8cefe837c4ed0ec60c5 [2/3] spi: spi-cadence: supports transmission with bits_per_word of 16 and 32 commit: 4e00135b2dd1d7924a58bffa551b6ceb3bd836f2 All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted. You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed. If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced. Please add any relevant lists and maintainers to the CCs when replying to this mail. Thanks, Mark ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2026-01-15 2:14 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-10-31 7:30 [PATCH v3 0/3] spi-cadence: support transmission with bits_per_word of 16 and 32 Jun Guo 2025-10-31 7:30 ` [PATCH v3 1/3] dt-bindings: spi: spi-cadence: update DT binding docs to support cix sky1 SoC Jun Guo 2025-10-31 15:10 ` Conor Dooley 2025-10-31 7:30 ` [PATCH v3 2/3] spi: spi-cadence: supports transmission with bits_per_word of 16 and 32 Jun Guo 2026-01-14 14:14 ` Rodrigo Alencar 2026-01-14 14:16 ` Mark Brown 2026-01-14 16:09 ` Rodrigo Alencar 2026-01-15 2:14 ` Jun Guo 2025-10-31 7:30 ` [PATCH v3 3/3] arm64: dts: cix: add a compatible string for the cix sky1 SoC Jun Guo 2025-11-17 9:32 ` Peter Chen 2025-11-14 17:07 ` (subset) [PATCH v3 0/3] spi-cadence: support transmission with bits_per_word of 16 and 32 Mark Brown
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox