git: b109946d7564 - main - intelspi: Release LPSS reset on Sunrise Point controllers.
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 03 Aug 2023 16:12:02 UTC
The branch main has been updated by wulf:
URL: https://cgit.FreeBSD.org/src/commit/?id=b109946d7564afde6f3d3b3a78f428c8da14e17c
commit b109946d7564afde6f3d3b3a78f428c8da14e17c
Author: Vladimir Kondratyev <wulf@FreeBSD.org>
AuthorDate: 2023-08-03 16:10:50 +0000
Commit: Vladimir Kondratyev <wulf@FreeBSD.org>
CommitDate: 2023-08-03 16:10:50 +0000
intelspi: Release LPSS reset on Sunrise Point controllers.
MacBookPro 14.1 SPI controller requires that to start functioning.
MFC after: 1 week
Reviewed by: manu
Differential Revision: https://reviews.freebsd.org/D41245
---
sys/dev/intel/spi.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/sys/dev/intel/spi.c b/sys/dev/intel/spi.c
index 42caed0c1c02..6dd063511e26 100644
--- a/sys/dev/intel/spi.c
+++ b/sys/dev/intel/spi.c
@@ -109,6 +109,10 @@
#define SPI_CS_CTRL_HW_MODE (1 << 0)
#define SPI_CS_CTRL_CS_HIGH (1 << 1)
+#define INTELSPI_RESETS 0x204
+#define INTELSPI_RESET_HOST (1 << 0) | (1 << 1)
+#define INTELSPI_RESET_DMA (1 << 2)
+
/* Same order as intelspi_vers */
static const struct intelspi_info {
uint32_t reg_lpss_base;
@@ -477,6 +481,11 @@ intelspi_attach(device_t dev)
goto error;
}
+ /* Release LPSS reset */
+ if (sc->sc_vers == SPI_SUNRISEPOINT)
+ INTELSPI_WRITE(sc, INTELSPI_RESETS,
+ (INTELSPI_RESET_HOST | INTELSPI_RESET_DMA));
+
sc->sc_irq_res = bus_alloc_resource_any(sc->sc_dev,
SYS_RES_IRQ, &sc->sc_irq_rid, RF_ACTIVE | RF_SHAREABLE);
if (sc->sc_irq_res == NULL) {