]> www.infradead.org Git - users/jedix/linux-maple.git/commit
soc: samsung: usi: implement support for USIv1 and exynos8895
authorIvaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
Tue, 4 Feb 2025 17:28:02 +0000 (19:28 +0200)
committerKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Wed, 5 Feb 2025 15:27:34 +0000 (16:27 +0100)
commitb88cd5c854b24eee36e6480f8c7cc0b94c832764
treee11ca4cf39181bd1ce3f4e8685a9e5cbb86db72e
parent11e77776b58af4bd05d1d0432e16428234b6bc86
soc: samsung: usi: implement support for USIv1 and exynos8895

USIv1 IP-core is found on some ARM64 Exynos SoCs (like Exynos8895) and
provides selectable serial protocols (one of: HSI2C0, HSI2C1, HSI2C0_1,
SPI, UART, UART_HSI2C1).

USIv1, unlike USIv2, doesn't have any known register map. Underlying
protocols that it implements have no offset, like with Exynos850.
Desired protocol can be chosen via SW_CONF register from System
Register block of the same domain as USI.

In order to select a particular protocol, the protocol has to be
selected via the System Register. Unlike USIv2, there's no need for
any setup before the given protocol becomes accessible apart from
enabling the APB clock and the protocol operating clock.

Modify the existing driver in order to allow USIv1 instances in
Exynos8895 to probe and set their protocol. While we're at it,
make use of the new mode constants in place of the old ones.

Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
Link: https://lore.kernel.org/r/20250204172803.3425496-4-ivo.ivanov.ivanov1@gmail.com
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
drivers/soc/samsung/exynos-usi.c