Message ID | 20240222172853.25082-1-fancer.lancer@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | spi: dw: Auto-detect number of native CS | expand |
On Thu, Feb 22, 2024 at 7:28 PM Serge Semin <fancer.lancer@gmail.com> wrote: > > The main goal of the short series is to provide a procedure implementing > the auto-detection of the number of native Chip-Select signals supported > by the controller. The suggested algorithm is straightforward. It relies > on the fact that the SER register writable flags reflects the actual > number of available native chip-select signals. So the DW APB/AHB SSI > driver now tests the SER register for having the writable bits, > calculates the number of CS signals based on the number of set flags and > then initializes the num_cs private data field based on that, which then > will be passed to the SPI-core subsystem indicating the number of > supported hardware chip-selects. The implemented procedure will be useful > for the DW SSI device nodes not having the explicitly set "num-cs" > property. In case if the property is specified it will be utilized instead > of the auto-detection procedure. > > Besides of that a small cleanup patch is introduced in the head of the > series. It converts the driver to using the BITS_TO_BYTES() macro instead > of the hard-coded DIV_ROUND_UP()-based calculation of the number of > bytes-per-transfer-word. > > Link: https://lore.kernel.org/linux-spi/20240215180102.13887-1-fancer.lancer@gmail.com > Changelog v2: > - Add a new patch: > [PATCH v2 3/4] spi: dw: Convert dw_spi::num_cs to u32 > - Fix some spelling notes (@Andy). For all untagged, Reviewed-by: Andy Shevchenko <andy@kernel.org> Thank you!
The main goal of the short series is to provide a procedure implementing the auto-detection of the number of native Chip-Select signals supported by the controller. The suggested algorithm is straightforward. It relies on the fact that the SER register writable flags reflects the actual number of available native chip-select signals. So the DW APB/AHB SSI driver now tests the SER register for having the writable bits, calculates the number of CS signals based on the number of set flags and then initializes the num_cs private data field based on that, which then will be passed to the SPI-core subsystem indicating the number of supported hardware chip-selects. The implemented procedure will be useful for the DW SSI device nodes not having the explicitly set "num-cs" property. In case if the property is specified it will be utilized instead of the auto-detection procedure. Besides of that a small cleanup patch is introduced in the head of the series. It converts the driver to using the BITS_TO_BYTES() macro instead of the hard-coded DIV_ROUND_UP()-based calculation of the number of bytes-per-transfer-word. Link: https://lore.kernel.org/linux-spi/20240215180102.13887-1-fancer.lancer@gmail.com Changelog v2: - Add a new patch: [PATCH v2 3/4] spi: dw: Convert dw_spi::num_cs to u32 - Fix some spelling notes (@Andy). Signed-off-by: Serge Semin <fancer.lancer@gmail.com> Cc: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru> Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Cc: Andy Shevchenko <andy@kernel.org> Cc: linux-spi@vger.kernel.org Cc: linux-kernel@vger.kernel.org Serge Semin (4): spi: dw: Convert to using BITS_TO_BYTES() macro spi: dw: Add a number of native CS auto-detection spi: dw: Convert dw_spi::num_cs to u32 spi: dw: Drop default number of CS setting drivers/spi/spi-dw-core.c | 20 ++++++++++++++++---- drivers/spi/spi-dw-mmio.c | 8 ++------ drivers/spi/spi-dw.h | 2 +- 3 files changed, 19 insertions(+), 11 deletions(-)