[PATCH 00/10] Add S32N79RDB UFS support

From: Larisa Grigore

Date: Wed Aug 26 2026 - 09:45:58 EST


This series adds support for the UFS host controller found on the NXP S32N79
platform. The controller is based on the Synopsys DesignWare (DWC) UFS host
architecture and requires S32N79-specific M-PHY initialization/calibration
sequence. It is compliant with JESD-223D "Universal Flash Storage Host
Controller Interface" v3.0, and supports up to HS-Gear 4 speed grade. It is
compatible with UFS 2.1, 3.0 and 3.1 devices. The MIPI UniPro is compliant with
"MIPI Alliance Specification for Unified Protocol", v1.8. The MIPI M-PHY is
compliant to version 4.1.

In order to keep the S32N79 platform driver small and avoid duplicating common
DWC code across platform glue drivers, the series also refactors and exports a
few reusable DWC helpers. In particular, M-PHY CREG (CBCREG*) register access
helpers are moved from the existing AMD Versal2 glue driver into the common
ufshcd-dwc layer, and are then used by the platform drivers. The series also
introduces a generic Hibern8 TX-FSM polling helper so that multiple platforms
can reuse the same pre-link checks.

Device tree binding documentation for the S32N79 UFS controller is included,
along with SoC and board DTS updates to instantiate and enable the controller.

Larisa Grigore (10):
ufs: unipro: Move Tx/Rx FSM state definitions to unipro.h
ufs: unipro: Add TX/RX FSM state attributes
ufs: host: Add common Hibern8 TX FSM polling helper
scsi: ufs: Move Versal2 M-PHY CREG access helpers into ufshcd-dwc
scsi: ufs: dwc: Export common clock divider and link status helpers
dt-bindings: ufs: Add compatibles for S32N79 Host Controller platform
driver
scsi: ufs: Add NXP S32N79 UFS host controller driver
arm64: dts: freescale: s32n79: Add UFS host controller
arm64: dts: freescale: s32n79-rdb: Enable UFS
MAINTAINERS: Add NXP S32N7 UFS host controller entry

.../bindings/ufs/nxp,s32n7-ufshc.yaml | 99 ++++
MAINTAINERS | 8 +
arch/arm64/boot/dts/freescale/s32n79-rdb.dts | 6 +
arch/arm64/boot/dts/freescale/s32n79.dtsi | 11 +
drivers/ufs/host/Kconfig | 12 +
drivers/ufs/host/Makefile | 1 +
drivers/ufs/host/ufs-amd-versal2.c | 89 +---
drivers/ufs/host/ufs-hisi.c | 48 +-
drivers/ufs/host/ufs-hisi.h | 6 -
drivers/ufs/host/ufs-nxp-s32n7.c | 464 ++++++++++++++++++
drivers/ufs/host/ufs-qcom.c | 42 +-
drivers/ufs/host/ufs-qcom.h | 2 -
drivers/ufs/host/ufshcd-dwc.c | 83 +++-
drivers/ufs/host/ufshcd-dwc.h | 36 +-
drivers/ufs/host/ufshcd-pltfrm.c | 79 +++
drivers/ufs/host/ufshcd-pltfrm.h | 2 +
include/ufs/unipro.h | 21 +
17 files changed, 817 insertions(+), 192 deletions(-)
create mode 100644 Documentation/devicetree/bindings/ufs/nxp,s32n7-ufshc.yaml
create mode 100644 drivers/ufs/host/ufs-nxp-s32n7.c

--
2.43.0