spi: aspeed: Improve clock, timing and address decoding logic
From: | Chin-Ting Kuo <chin-ting_kuo-AT-aspeedtech.com> | |
To: | <robh-AT-kernel.org>, <krzk+dt-AT-kernel.org>, <conor+dt-AT-kernel.org>, <joel-AT-jms.id.au>, <andrew-AT-codeconstruct.com.au>, <clg-AT-kaod.org>, <broonie-AT-kernel.org>, <devicetree-AT-vger.kernel.org>, <linux-arm-kernel-AT-lists.infradead.org>, <linux-aspeed-AT-lists.ozlabs.org>, <linux-kernel-AT-vger.kernel.org>, <openbmc-AT-lists.ozlabs.org>, <linux-spi-AT-vger.kernel.org>, <BMC-SW-AT-aspeedtech.com> | |
Subject: | [PATCH 0/6] spi: aspeed: Improve clock, timing and address decoding logic | |
Date: | Wed, 01 Oct 2025 19:25:59 +0800 | |
Message-ID: | <20251001112605.1130723-1-chin-ting_kuo@aspeedtech.com> | |
Archive-link: | Article |
This patch series introduces several improvements to the ASPEED SPI driver, targeting better stability, compatibility and, flexibility across multiple ASPEED platforms. Key changes include: * Clock selection strategy update Improves fallback logic when timing calibration is skipped or fails, ensuring reliable boot behavior. * Timing calibration enhancement for AST2600 Replaces the previous "first-pass" strategy with a more robust algorithm that selects the optimal timing point. * Default address decoding assignment Ensures each chip select (CS) has a valid decoding range during probe, avoiding detection failures due to missing or incorrect bootloader setup. * Centralized address decoding management Refactors the decoding logic to centrally assign address windows, preventing improper trimming and improving layout flexibility. * Per-platform decoding adjustment Introduces platform-specific `adjust_window` callbacks to handle platform specific hardware constraints for address decoding range. * Selective memory mapping Optimizes memory usage by mapping only the required address window per CS to avoid exhaustion. Chin-Ting Kuo (6): spi: aspeed: Update clock selection strategy spi: aspeed: Improve timing calibration algorithm for AST2600 platform spi: aspeed: Force default address decoding range assignment for each CS spi: aspeed: Centralize address decoding region management spi: aspeed: Add per-platform adjust_window callback for decoding range spi: aspeed: Only map necessary address window region drivers/spi/spi-aspeed-smc.c | 644 ++++++++++++++++++++++++++--------- 1 file changed, 489 insertions(+), 155 deletions(-) -- 2.34.1