.../devicetree/bindings/spi/samsung,spi.yaml | 1 + drivers/spi/spi-s3c64xx.c | 29 +++++++++++++++---- 2 files changed, 25 insertions(+), 5 deletions(-)
Exynos990 uses the same version of USI SPI (v2.1) as the GS101. Removed fifo_lvl_mask and rx_lvl_offset, and changed to the new data configuration port. The difference from other new port configuration data is that fifo_depth is only specified in fifo-depth in DT. Exynos 990 data for SPI: - The depth of the FIFO is not the same size on all nodes. A depth of 64 bytes is used on most nodes, while a depth of 256 bytes is used on 3 specific nodes (SPI 8/9/10). - The Exynos 990 only allows access to 32-bit registers. If access is attempted with a different size, an error interrupt is generated. Therefore, it is necessary to perform write accesses to registers in 32-bit blocks. Changes in v2: - Added a default "fifo_depth = 64" to prevent crashes when "fifo-depth" is missing in the device tree (avoids divide-by-zero issues). - No other functional changes. Changes in v3: - Reordered fifo_depth handling in s3c64xx_spi_probe() so that the DT property takes precedence over the default value in port_config. This allows node-specific FIFO depths to be applied correctly while preserving a fallback. Denzeel Oliva (3): spi: dt-bindings: samsung: add samsung,exynos990-spi compatible spi: s3c64xx: prioritize fifo-depth from DT over port_config spi: s3c64xx: add support exynos990-spi to new port config data .../devicetree/bindings/spi/samsung,spi.yaml | 1 + drivers/spi/spi-s3c64xx.c | 29 +++++++++++++++---- 2 files changed, 25 insertions(+), 5 deletions(-) -- 2.48.1
On Fri, Feb 14, 2025 at 04:33:40AM +0000, Denzeel Oliva wrote: > Changes in v3: > - Reordered fifo_depth handling in s3c64xx_spi_probe() so that the DT > property takes precedence over the default value in port_config. > This allows node-specific FIFO depths to be applied correctly while > preserving a fallback. Showing evidence: [ 0.339111] s3c64xx-spi 10920000.spi: spi bus clock parent not specified, using clock at index 0 as parent [ 0.339119] s3c64xx-spi 10920000.spi: number of chip select lines not specified, assuming 1 chip select line [ 0.339467] s3c64xx-spi 10920000.spi: registered host spi0 [ 0.339589] s3c64xx-spi 10920000.spi: Samsung SoC SPI Driver loaded for Bus SPI-0 with 1 Targets attached [ 0.339597] s3c64xx-spi 10920000.spi: IOmem=[[mem 0x10920000-0x1092002f]] FIFO 256bytes ------------------------------------------------------------------------------------------------------------- [ 0.587452] s3c64xx-spi 10650000.spi: spi bus clock parent not specified, using clock at index 0 as parent [ 0.587462] s3c64xx-spi 10650000.spi: number of chip select lines not specified, assuming 1 chip select line [ 0.587847] s3c64xx-spi 10650000.spi: registered host spi1 [ 0.587986] s3c64xx-spi 10650000.spi: Samsung SoC SPI Driver loaded for Bus SPI-1 with 1 Targets attached [ 0.587997] s3c64xx-spi 10650000.spi: IOmem=[[mem 0x10650000-0x1065002f]] FIFO 64bytes
On 2/14/25 5:31 AM, Denzeel Oliva wrote: > On Fri, Feb 14, 2025 at 04:33:40AM +0000, Denzeel Oliva wrote: >> Changes in v3: >> - Reordered fifo_depth handling in s3c64xx_spi_probe() so that the DT >> property takes precedence over the default value in port_config. >> This allows node-specific FIFO depths to be applied correctly while >> preserving a fallback. > > Showing evidence: > [ 0.339111] s3c64xx-spi 10920000.spi: spi bus clock parent not specified, using clock at index 0 as parent > [ 0.339119] s3c64xx-spi 10920000.spi: number of chip select lines not specified, assuming 1 chip select line > [ 0.339467] s3c64xx-spi 10920000.spi: registered host spi0 > [ 0.339589] s3c64xx-spi 10920000.spi: Samsung SoC SPI Driver loaded for Bus SPI-0 with 1 Targets attached > [ 0.339597] s3c64xx-spi 10920000.spi: IOmem=[[mem 0x10920000-0x1092002f]] FIFO 256bytes > ------------------------------------------------------------------------------------------------------------- > [ 0.587452] s3c64xx-spi 10650000.spi: spi bus clock parent not specified, using clock at index 0 as parent > [ 0.587462] s3c64xx-spi 10650000.spi: number of chip select lines not specified, assuming 1 chip select line > [ 0.587847] s3c64xx-spi 10650000.spi: registered host spi1 > [ 0.587986] s3c64xx-spi 10650000.spi: Samsung SoC SPI Driver loaded for Bus SPI-1 with 1 Targets attached > [ 0.587997] s3c64xx-spi 10650000.spi: IOmem=[[mem 0x10650000-0x1065002f]] FIFO 64bytes > Why does this prove that the IP works? Can you do a loopback test? See drivers/spi/spi-loopback-test.c
© 2016 - 2025 Red Hat, Inc.