From nobody Wed Dec 17 08:52:26 2025 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3DCB428C87D for ; Thu, 22 May 2025 14:52:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747925565; cv=none; b=PbXcrVYLHOGvMghEk1kFBgW7p0N4kk635rauvnSrGdRY7VI2XABt3xtrVbm+0GlWPHivuWO50KrBAQ+QqBNpp5FRWaiitnJJxm7a9ZE1veF1eo4S5tqXbCHa+gMnzJqEzdvyuDtYlBWyS3Ed6GKysI2Vl2tFSrNUdH5MsfOlwm0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747925565; c=relaxed/simple; bh=yddrBEmi1RYqf8QMPGgBcWKQg/oZLwzcf2KAxCgTLyA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=d4dfXK8ZWNnyCa2pROaJ4QBgxJZ3jUdQlectIQxqGK3qxKhM1C0Db1iFHpo4FFeUgnynq/Fy5A9FxfJ41loUStd8CHlgaJ9pXA1kgrUlj/Jl2L/B/aEERe6eCt71nLlaVyfRllkuvseBoKcy1PhYqCePxGYTifj1DC8PaWZJE8Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=iNSBDOs+; arc=none smtp.client-ip=209.85.128.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="iNSBDOs+" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-442f9043f56so47676845e9.0 for ; Thu, 22 May 2025 07:52:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747925561; x=1748530361; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=bX8Np3nsOAVhGpGTczqX2XujPUCRtkdhb7ZQQUV9YcY=; b=iNSBDOs+MMhuiLuDAcRdu9I+vI7gHLrc9jXE+Dt9dNoNgHG75a2KmijfrlXHp+g3ee +F3X2zb10n4dp81Ubp12RctJPondXf1OJfpJDkOxWnY6AIi7SY+8SIm8rADC7pYXeEVg ecicqkTPEoc8vXOHsrPJiac+Q90nyhieAdLJz5hVXulBrGEMvJ5PejeLylIzLelPaIAH EP+qGdTiRnB8kzpIn+I7wUN3Vgbw65gpkb88b8P3umP+AOMLUdhDRXZbopebyaLyI6oj GJda2rjaus+SS+0rKkostd2tdluXWJVJzaqOC8SXffZIY5y1uF4btCke8iwQylPVBqCr arBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747925561; x=1748530361; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bX8Np3nsOAVhGpGTczqX2XujPUCRtkdhb7ZQQUV9YcY=; b=aUIrzCshjXx5v99R25qBRaF7fqNKoEgVoC5eKXhje5KDcpqfsFMqI4QRplABwT1OaS 1BD4Rgf4xsX8L57/yKzCkTyryi7tgclV2y8z0ye9L0hQfZqsxn9a0RbNbLQG/Xm483eC 34eWd5Eq41SLcDbTfbfwR0R0IzEb69uZX69B7RXeypOBn5BDlV6XLTET4r24urGLetR9 WkWwXoZS5sUK065HTxdc8HwF/3mOpCPux3/V4NHtCbmZKB86PL2/wINuQRP7TvxRS7pl BTRhZHb+sI+Mge5RXxKtc33gJtGLyh4MWZWJppm/TsJehiDsUPrAP+H16eHD40E1Y27k 1LAQ== X-Forwarded-Encrypted: i=1; AJvYcCVaFC0RPErxmcNxmDcTorVvLu663N0ARaeSea8K34WYeKwq5avdeZPNmTHr5YFgEHz7/PWEViZeNMIFkX4=@vger.kernel.org X-Gm-Message-State: AOJu0YyzQveNZzEYerQXVilWHgcD6eeePp09jtDYio+Y6m3L9OXbEs7l 0BPeqglo59VmnDsnNZPCtEIi183+vOZ0g/0SspO0fBB8sAU6Yx7/AIz5kZ+/lRLS4f8= X-Gm-Gg: ASbGncu3I5hnEcbmt+Eg+v707vXUt9i7DsQbrKFNLV8LF94RnWO8LT5NZbwSjR3QBQD l/5FYd40UOWhlm+UwjFCzRIxkN5dmXNIRUvrjgl8OxPbmL1aul7mp1O6Ql+2j5dZtKj3Azxzr5V Lj94DRUbCkLaelh+MXIeOwKcAAACE/4mR3oDNz8Sf8bhsLjXtshcBY3tBIRTTN+7gxMfinEIjQa +EA6pGuzKoqPdiJoArE91BihZcyjZ2zcdZUPcvihdtJK+ux0P8/sRxo3/tb1GINAcAplyhNvK5a wS8vtvDvqlpabEfIKZ/343LQ4+ggJZpX4J6tzytf2wcgWS+HnwJ53scV9clg X-Google-Smtp-Source: AGHT+IHkwaJ6gHJgvWiPzVxDv2dV6i3HHkhWCA1c5/mCAe/0o4MB5fUJzCgJeRD5hGESr2V3uBRYRg== X-Received: by 2002:a05:600c:4ed2:b0:43d:8ea:8d7a with SMTP id 5b1f17b1804b1-442fd67504emr191953925e9.28.1747925560426; Thu, 22 May 2025 07:52:40 -0700 (PDT) Received: from ho-tower-lan.lan ([37.18.136.128]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-447f78aeb56sm104965555e9.27.2025.05.22.07.52.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 May 2025 07:52:39 -0700 (PDT) From: James Clark Date: Thu, 22 May 2025 15:51:30 +0100 Subject: [PATCH v2 01/14] spi: spi-fsl-dspi: restrict register range for regmap access Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250522-james-nxp-spi-v2-1-bea884630cfb@linaro.org> References: <20250522-james-nxp-spi-v2-0-bea884630cfb@linaro.org> In-Reply-To: <20250522-james-nxp-spi-v2-0-bea884630cfb@linaro.org> To: Vladimir Oltean , Mark Brown , Rob Herring , Krzysztof Kozlowski , Matti Vaittinen Cc: Conor Dooley , Frank Li , Chester Lin , Matthias Brugger , Ghennadi Procopciuc , NXP S32 Linux Team , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Chao Fu , Xiubo Li , Lukasz Majewski , linux-spi@vger.kernel.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Vladimir Oltean , Dan Carpenter , Larisa Grigore , Xulin Sun , James Clark X-Mailer: b4 0.14.0 From: Larisa Grigore DSPI registers are NOT continuous, some registers are reserved and accessing them from userspace will trigger external abort, add regmap register access table to avoid below abort. For example on S32G: # cat /sys/kernel/debug/regmap/401d8000.spi/registers Internal error: synchronous external abort: 96000210 1 PREEMPT SMP ... Call trace: regmap_mmio_read32le+0x24/0x48 regmap_mmio_read+0x48/0x70 _regmap_bus_reg_read+0x38/0x48 _regmap_read+0x68/0x1b0 regmap_read+0x50/0x78 regmap_read_debugfs+0x120/0x338 Fixes: 1acbdeb92c87 ("spi/fsl-dspi: Convert to use regmap and add big-endia= n support") Co-developed-by: Xulin Sun Signed-off-by: Xulin Sun Signed-off-by: Larisa Grigore Signed-off-by: James Clark --- drivers/spi/spi-fsl-dspi.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/drivers/spi/spi-fsl-dspi.c b/drivers/spi/spi-fsl-dspi.c index 067c954cb6ea..effb460d436d 100644 --- a/drivers/spi/spi-fsl-dspi.c +++ b/drivers/spi/spi-fsl-dspi.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-2.0+ // // Copyright 2013 Freescale Semiconductor, Inc. -// Copyright 2020 NXP +// Copyright 2020-2025 NXP // // Freescale DSPI driver // This file contains a driver for the Freescale DSPI @@ -1167,6 +1167,20 @@ static int dspi_resume(struct device *dev) =20 static SIMPLE_DEV_PM_OPS(dspi_pm, dspi_suspend, dspi_resume); =20 +static const struct regmap_range dspi_yes_ranges[] =3D { + regmap_reg_range(SPI_MCR, SPI_MCR), + regmap_reg_range(SPI_TCR, SPI_CTAR(3)), + regmap_reg_range(SPI_SR, SPI_TXFR3), + regmap_reg_range(SPI_RXFR0, SPI_RXFR3), + regmap_reg_range(SPI_CTARE(0), SPI_CTARE(3)), + regmap_reg_range(SPI_SREX, SPI_SREX), +}; + +static const struct regmap_access_table dspi_access_table =3D { + .yes_ranges =3D dspi_yes_ranges, + .n_yes_ranges =3D ARRAY_SIZE(dspi_yes_ranges), +}; + static const struct regmap_range dspi_volatile_ranges[] =3D { regmap_reg_range(SPI_MCR, SPI_TCR), regmap_reg_range(SPI_SR, SPI_SR), @@ -1184,6 +1198,8 @@ static const struct regmap_config dspi_regmap_config = =3D { .reg_stride =3D 4, .max_register =3D 0x88, .volatile_table =3D &dspi_volatile_table, + .rd_table =3D &dspi_access_table, + .wr_table =3D &dspi_access_table, }; =20 static const struct regmap_range dspi_xspi_volatile_ranges[] =3D { @@ -1205,6 +1221,8 @@ static const struct regmap_config dspi_xspi_regmap_co= nfig[] =3D { .reg_stride =3D 4, .max_register =3D 0x13c, .volatile_table =3D &dspi_xspi_volatile_table, + .rd_table =3D &dspi_access_table, + .wr_table =3D &dspi_access_table, }, { .name =3D "pushr", --=20 2.34.1 From nobody Wed Dec 17 08:52:26 2025 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6EC9828D8C8 for ; Thu, 22 May 2025 14:52:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747925566; cv=none; b=KlM8RKYgSqznqKVlGMop1lwUAKc1H38l62/CCq5juERq7TuCAEWxTxoLCkzSl8SQfxCqw0zkb9Ll1llFobAb4syLNwt72iAwyiOO2WQ3k0pfP0Q6R2MjPnszbcf3HB3daVVA6GHj0P/YEvYowsURKj9ufX1ScfQ+wKcW93uvZIc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747925566; c=relaxed/simple; bh=Gr3cboO2VgYqQP244ZhA1hFWwPu7MtqcNmqMsKaVD4s=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=l0zyOg/PPnX19788tYgU7fv1H9iuYk8NGFJVMS6huyDpnSa9eKSx+bdEZFAEAwnRSX1wNjaPSdCnXg9rQ82rBljr+R+1oYkvfpVkjC06MkxwW549hj9dYZJ+oYQnElGPGZwp96uWIjFQm8qrB+2VJowvVssv8RSEtaDXZfeDqng= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=Q767goUG; arc=none smtp.client-ip=209.85.128.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="Q767goUG" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-441ab63a415so87078935e9.3 for ; Thu, 22 May 2025 07:52:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747925563; x=1748530363; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=WnsHBRMSS57g5A6Zsxv5fUehUSBOq6hPCzrwmSugvPA=; b=Q767goUGtzwsNUTnxze5UvPEBfG7fzoVJyLCED935FvsB6lwbzvWxuabklQDnHAl28 njMFvURZztaFUzhoFCktOd0OPgxcbYlzg3Yy8fEAn4fdB5DO72I/NmFKW68OLyhTa50K hk4LL81gPCLqUXWbicGlrnuBN+O64o5e5DFYYReH54Lvz3wYV/jAiVp01MnsASErLfnc ZUbvRh35WMNOSb+CgcY2jMn87HAm7dPfjV0BiQAKpHkMdIwQWgSH4JLmCvyblFrngcOC w1toT49CTW/05kn7v8i+niLSvtWdsOhPmnou1OYHkapOLkF7e4WEJJfkpDay+xCCPp/d 57RQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747925563; x=1748530363; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WnsHBRMSS57g5A6Zsxv5fUehUSBOq6hPCzrwmSugvPA=; b=sowygC5v0Bmo7R6WbPIansNd87+uyV2Qg/G8IkqRwfIN3tf8vFq2vUQiYnmsaprIkm Bh9bt/0nwRl/K0iT9krdBBWxfcTtR+LsEN0rAL7RXycNmWz4fY/WBv8a46T7mn90kiNr KkMd0UjDarAakYFUXP17BuIXfKVnUur0eorAG0CPYTDvYy04iDAsM05ZPSxfmaOEKh6f AEaAFd63LbajUo5hEC4Qq5Eto78D9YallcstmUeq7rmms8RZEgm8n+FjUv02TgipQxCQ rqtbL9IKCyvMfhfHak6am+A6M4XH+nSdW4jClLGQFA/eHiU2p3ZD/gBfzsAX79i5MGWF nZaA== X-Forwarded-Encrypted: i=1; AJvYcCXi4bUOQzSWNxJKmn+e2HOfrg1PV84yFGcZR7f0DiePmkrNpk3rXTkrlqsaMHZrEzaUNpogPxX2PRcIWyM=@vger.kernel.org X-Gm-Message-State: AOJu0Yzlp/aBrO7VtgRSmzcrjTk30I2t343yrLGVkGgsqMt1uyZ/D6iz NWLuF5VBZN6v9TrvRvg7I/vNhvuZPKH30jYnw68FFNb7aBl0+fjDUlKVCKg8/nX6HyI= X-Gm-Gg: ASbGnctyNxlTty1wwSZWb/20sqy4s6DsmdihnA6YsKS6TxhkQRmMNf6iAIa8KhOi/uc uLcRFcc6uU0NH0BgRPK7KIzSL2rUSS/2wS18UWH6l6hqD9/01XXoNNZtt2NVMKJ+iqsVmBwv+bi Zy0KgDE0AJTkVK8D0T3yn99wivGMusW+JxxQRO22s9Gby7OEMi5Ls4rdi0oqsQBlDULJQsZza3z rGrF5NX8IcAMR2v6CTYAkgF/ikylkRNwZ/v5B18jDDvlHMiywHXeZ+otWqhII4LKGYyk1m3Q5h3 BiZupzE6AWzsvsu/uN4UBwjpdyvZPl4tbKc6IlVFsy3GXOGm3TWkW51sQzRi X-Google-Smtp-Source: AGHT+IEm/t82lB7n4D+jawYNq22d+sbqAeLEow+7pvP2Bzn0+lqXr94xgdIsdIfmG8+O8swf/6lS3g== X-Received: by 2002:a05:600c:3112:b0:43b:c0fa:f9cd with SMTP id 5b1f17b1804b1-442fd606b99mr238110635e9.7.1747925562768; Thu, 22 May 2025 07:52:42 -0700 (PDT) Received: from ho-tower-lan.lan ([37.18.136.128]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-447f78aeb56sm104965555e9.27.2025.05.22.07.52.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 May 2025 07:52:41 -0700 (PDT) From: James Clark Date: Thu, 22 May 2025 15:51:31 +0100 Subject: [PATCH v2 02/14] spi: spi-fsl-dspi: Halt the module after a new message transfer Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250522-james-nxp-spi-v2-2-bea884630cfb@linaro.org> References: <20250522-james-nxp-spi-v2-0-bea884630cfb@linaro.org> In-Reply-To: <20250522-james-nxp-spi-v2-0-bea884630cfb@linaro.org> To: Vladimir Oltean , Mark Brown , Rob Herring , Krzysztof Kozlowski , Matti Vaittinen Cc: Conor Dooley , Frank Li , Chester Lin , Matthias Brugger , Ghennadi Procopciuc , NXP S32 Linux Team , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Chao Fu , Xiubo Li , Lukasz Majewski , linux-spi@vger.kernel.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Vladimir Oltean , Dan Carpenter , Bogdan-Gabriel Roman , Larisa Grigore , James Clark X-Mailer: b4 0.14.0 From: Bogdan-Gabriel Roman The XSPI mode implementation in this driver still uses the EOQ flag to signal the last word in a transmission and deassert the PCS signal. However, at speeds lower than ~200kHZ, the PCS signal seems to remain asserted even when SR[EOQF] =3D 1 indicates the end of a transmission. This is a problem for target devices which require the deassertation of the PCS signal between transfers. Hence, this commit 'forces' the deassertation of the PCS by stopping the module through MCR[HALT] after completing a new transfer. According to the reference manual, the module stops or transitions from the Running state to the Stopped state after the current frame, when any one of the following conditions exist: - The value of SR[EOQF] =3D 1. - The chip is in Debug mode and the value of MCR[FRZ] =3D 1. - The value of MCR[HALT] =3D 1. This shouldn't be done if the last transfer in the message has cs_change set. Fixes: ea93ed4c181b ("spi: spi-fsl-dspi: Use EOQ for last word in buffer ev= en for XSPI mode") Signed-off-by: Bogdan-Gabriel Roman Signed-off-by: Larisa Grigore Signed-off-by: James Clark --- drivers/spi/spi-fsl-dspi.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/drivers/spi/spi-fsl-dspi.c b/drivers/spi/spi-fsl-dspi.c index effb460d436d..1fa96e8189cf 100644 --- a/drivers/spi/spi-fsl-dspi.c +++ b/drivers/spi/spi-fsl-dspi.c @@ -62,6 +62,7 @@ #define SPI_SR_TFIWF BIT(18) #define SPI_SR_RFDF BIT(17) #define SPI_SR_CMDFFF BIT(16) +#define SPI_SR_TXRXS BIT(30) #define SPI_SR_CLEAR (SPI_SR_TCFQF | \ SPI_SR_TFUF | SPI_SR_TFFF | \ SPI_SR_CMDTCF | SPI_SR_SPEF | \ @@ -921,9 +922,20 @@ static int dspi_transfer_one_message(struct spi_contro= ller *ctlr, struct spi_transfer *transfer; bool cs =3D false; int status =3D 0; + u32 val =3D 0; + bool cs_change =3D false; =20 message->actual_length =3D 0; =20 + /* Put DSPI in running mode if halted. */ + regmap_read(dspi->regmap, SPI_MCR, &val); + if (val & SPI_MCR_HALT) { + regmap_update_bits(dspi->regmap, SPI_MCR, SPI_MCR_HALT, 0); + while (regmap_read(dspi->regmap, SPI_SR, &val) >=3D 0 && + !(val & SPI_SR_TXRXS)) + ; + } + list_for_each_entry(transfer, &message->transfers, transfer_list) { dspi->cur_transfer =3D transfer; dspi->cur_msg =3D message; @@ -953,6 +965,7 @@ static int dspi_transfer_one_message(struct spi_control= ler *ctlr, dspi->tx_cmd |=3D SPI_PUSHR_CMD_CONT; } =20 + cs_change =3D transfer->cs_change; dspi->tx =3D transfer->tx_buf; dspi->rx =3D transfer->rx_buf; dspi->len =3D transfer->len; @@ -988,6 +1001,15 @@ static int dspi_transfer_one_message(struct spi_contr= oller *ctlr, dspi_deassert_cs(spi, &cs); } =20 + if (status || !cs_change) { + /* Put DSPI in stop mode */ + regmap_update_bits(dspi->regmap, SPI_MCR, + SPI_MCR_HALT, SPI_MCR_HALT); + while (regmap_read(dspi->regmap, SPI_SR, &val) >=3D 0 && + val & SPI_SR_TXRXS) + ; + } + message->status =3D status; spi_finalize_current_message(ctlr); =20 @@ -1245,6 +1267,8 @@ static int dspi_init(struct fsl_dspi *dspi) if (!spi_controller_is_target(dspi->ctlr)) mcr |=3D SPI_MCR_HOST; =20 + mcr |=3D SPI_MCR_HALT; + regmap_write(dspi->regmap, SPI_MCR, mcr); regmap_write(dspi->regmap, SPI_SR, SPI_SR_CLEAR); =20 --=20 2.34.1 From nobody Wed Dec 17 08:52:26 2025 Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2FFA428D8EE for ; Thu, 22 May 2025 14:52:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747925568; cv=none; b=d7IRruLWil90FpHA5Q9vrGTHF/GjsWTn/RHahglN8sqc+dk4IsGi2oflRCGLFDO8ZZOFoy1fKgMgekluPOmhE6o5xR2+S8UWdSZIGArPc4lsE2YJlrRa3JtZIsCnLtn1hBz1gHuz+KSdMtztdztE0rlZjdsLHptya9yOvtorpX0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747925568; c=relaxed/simple; bh=9fyJpp5VN7ktj8kNm8ocfTEUoU4tl3GIpRNf4HxHppk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=rEuGh7N1H5w+s6mTlT7bHtoTXU2QtfaWoG0rr2rdLcu2r7cZIUEcd+ain3hY/isXisfBHuBH2fLNOG/bCEBP3W9iobW0thuSIRGyWIw0AZ1hdQY28TtHrqi2FYa5HDbFWGIWoJwAf8hHlQ/MToFpocDzDoWm+bE55vkzcVlA9c4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=CAySu8Ej; arc=none smtp.client-ip=209.85.221.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="CAySu8Ej" Received: by mail-wr1-f49.google.com with SMTP id ffacd0b85a97d-3a36748920cso5333220f8f.2 for ; Thu, 22 May 2025 07:52:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747925564; x=1748530364; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=dHewhTi8oRcJIXvkVA+zw1liGRuM2d0KooB3K/vBm40=; b=CAySu8Ej0gTfpGbz86l2HvjWIzIvhR73e1rRPVfYdl/JMfuRRzurIfZndQalGD5ZJ3 p3WiddU+Evde6gUYukBCv9mc3BIr2hXwyeVoA5OYKrahMiykQ7wLVtRCtR/30FQrqOfP 1v/VjpH9OSEMQBWefNixQBdQVwNNDQ0WMbTCcWBjh+ysJel0LYiiR0ZcA9ZlTdej8BTb loSi/hhgPH21ZcmlPeLO3INEBVQNmk9WqHU7+k5UhWJBYXUDdeD95iiRUMNkmCTay4ZB iBlJ15AknTUYvNFKwMMmkbTl2kx/bZYULbUCR7HNJAH4Ybm5GyzpbXuM7Uhk4ob99qh0 ImIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747925564; x=1748530364; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dHewhTi8oRcJIXvkVA+zw1liGRuM2d0KooB3K/vBm40=; b=LB5PsDSut1bXEkuMISK2XLK7w+4e5+9khstBCBwZj1FLdCEEH3eVs2GSqIJ7QH2o7n vZleXSPo5X9u0d3f+B1X9naCYhbPBJ1doWpDqDrSMelo01ROD4oyp7JyewTUZG14NZz0 6AqVAyCcgz9AAwMie6JdxrKPz7pSBVjO67xrSTDKsFKq8xAEM4IE4xjjUidjWQPuCuuL FdRQmbNx/Yr/lmz3+bEOUDXZ2CP6hj5C6roCBtQY1Pr3kZRHkH5LqNaDDmxlHe3Y7UDS CsJX7pbIW37z1AFAUjS9yR27bRJu1S7DaErTZuBmIIWt9C6m4KC8M4PaxBJ0lijs2ruB Op2A== X-Forwarded-Encrypted: i=1; AJvYcCV3KIjZhGNBBJC7OikadHCYjwZi4Uo0t7H9cjDSA4iBtCQZUt8n4Gkr8XD6mzL654Z0aNSCVWsQjV2zhjo=@vger.kernel.org X-Gm-Message-State: AOJu0YyMnqtNjDluU+ZYoB0qvXyKkkpzQugMzTaradSSjUHuEOjiiHKk o791E7n+xEv+NPt6330Qzvinz3YxDQljq45QPjyzYayOBdX3sAnfe56Fv2GrG0VA52E= X-Gm-Gg: ASbGncv4UsWUqmQMYPHt6hYPFnYbMqao6cbfEdQi+RZXyry8O4is7KwwEc7BHYfaKhu V9hcWn1JsGbiCPqthiEu1B+koNpkumEirFY6BwMoqWMxjSSBe29ZMqor4snApjzW/PtqejTmv5J HP6wqOq+f1E5BNWRmdMl0H3s74kTFoI5JHXsksC1kHUZU3k2nWD4wowybXB4xET2i09GWsQZuVf mx81oBNrs3UrdiRbrE7JxDYP1ImunXJu3/+wUy/xLluKiwZYWeg5/sgDkYX4kCp4xAhy30q5INR +cAY8wzgMFuTVN7d1lvnVfxqG8RiicZ+RUWY3I795FwfO3vuVg3sW9Kt1crS X-Google-Smtp-Source: AGHT+IGiCydEoZVMLu1W3WpDgmtDjO4iw8qiIAhfOUPDYq6buhqSWh3dCUK+1dZ+ss9slz1KiN0zOw== X-Received: by 2002:a5d:5888:0:b0:3a3:760c:81b7 with SMTP id ffacd0b85a97d-3a3760c82c6mr14137962f8f.57.1747925564162; Thu, 22 May 2025 07:52:44 -0700 (PDT) Received: from ho-tower-lan.lan ([37.18.136.128]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-447f78aeb56sm104965555e9.27.2025.05.22.07.52.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 May 2025 07:52:43 -0700 (PDT) From: James Clark Date: Thu, 22 May 2025 15:51:32 +0100 Subject: [PATCH v2 03/14] spi: spi-fsl-dspi: Reset SR flags before sending a new message Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250522-james-nxp-spi-v2-3-bea884630cfb@linaro.org> References: <20250522-james-nxp-spi-v2-0-bea884630cfb@linaro.org> In-Reply-To: <20250522-james-nxp-spi-v2-0-bea884630cfb@linaro.org> To: Vladimir Oltean , Mark Brown , Rob Herring , Krzysztof Kozlowski , Matti Vaittinen Cc: Conor Dooley , Frank Li , Chester Lin , Matthias Brugger , Ghennadi Procopciuc , NXP S32 Linux Team , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Chao Fu , Xiubo Li , Lukasz Majewski , linux-spi@vger.kernel.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Vladimir Oltean , Dan Carpenter , Larisa Grigore , James Clark X-Mailer: b4 0.14.0 From: Larisa Grigore If, in a previous transfer, the controller sends more data than expected by the DSPI target, SR.RFDF (RX FIFO is not empty) will remain asserted. When flushing the FIFOs at the beginning of a new transfer (writing 1 into MCR.CLR_TXF and MCR.CLR_RXF), SR.RFDF should also be cleared. Otherwise, when running in target mode with DMA, if SR.RFDF remains asserted, the DMA callback will be fired before the controller sends any data. Take this opportunity to reset all Status Register fields. Fixes: 5ce3cc567471 ("spi: spi-fsl-dspi: Provide support for DSPI slave mod= e operation (Vybryd vf610)") Signed-off-by: Larisa Grigore Signed-off-by: James Clark --- drivers/spi/spi-fsl-dspi.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/spi/spi-fsl-dspi.c b/drivers/spi/spi-fsl-dspi.c index 1fa96e8189cf..863781ba6c16 100644 --- a/drivers/spi/spi-fsl-dspi.c +++ b/drivers/spi/spi-fsl-dspi.c @@ -975,6 +975,8 @@ static int dspi_transfer_one_message(struct spi_control= ler *ctlr, SPI_MCR_CLR_TXF | SPI_MCR_CLR_RXF, SPI_MCR_CLR_TXF | SPI_MCR_CLR_RXF); =20 + regmap_write(dspi->regmap, SPI_SR, SPI_SR_CLEAR); + spi_take_timestamp_pre(dspi->ctlr, dspi->cur_transfer, dspi->progress, !dspi->irq); =20 --=20 2.34.1 From nobody Wed Dec 17 08:52:26 2025 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5ADDA28D8CA for ; Thu, 22 May 2025 14:52:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747925569; cv=none; b=IWD6mqPDHIwx1YHng2bn175TfVR+qrVhI6j/u0tCkxcekvpFHD5QiFENwizd+TKtGyNQWe6DTY8Tm4mUtGk366Ubm2UTic886FVPTGFfdPHCD30FkzXgfV6Lmp3chsb0iPiQrxA1ZeK50Y7H+kphMSdy4HXM9TQ+23mZJxTe+wQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747925569; c=relaxed/simple; bh=vEU6OoOW4QiG7DnelFnexzER5F3I/xGLtYoU/uX9NAc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=famZH7yIUaYweWur5jDfnQ72mJwX0QLkO1msjVnd98Uf2CVS1HS9c5O8JH0Clt8ACtUst20J+FsLLcGRdwHMz+3M+FxSmPfAF0LgGNxXdkI22RTq+CuSaVUh8ZN9Cm8a9qTnpPqKqN5e9k6a2hnk6S18XakE+kOcgaR5eLNAZpw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=kWLSo5Ln; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="kWLSo5Ln" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-43ea40a6e98so85556615e9.1 for ; Thu, 22 May 2025 07:52:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747925565; x=1748530365; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=5NSuSoLSh+LHiSs84RzlVPklfrqct9bYGikZDMbgQUs=; b=kWLSo5LnbyKT5XEPMXRRF1qHee9/oE3Ni7mHdjgcNB1Ssow8B3b5BQeKSCSoVDj8YA Wqvd8Lg3o4DcgdpbGH2HLIgDlZF7t45TF04w+GpQFaFGDIfUrx/f/bvRKTMfIJAETPeD GE9p5PK6NxegObEd+1V0CnLN+TOCUh8ZYhuUjrfKuzSomfi0U94TfLcx/nhUoXelW+Uk xiZqC1wDFLUssmUrhc6VWp86rYQ7+6/dJdqNxrJgW8Owa6iRMc43NGQqeO/uxNR2MxLS q/h7sbnabBzRbHFZXQpJ0jEwZRE20Zs7S2+J8Si8T/E0UMSf14NwWKPd2lcoaG4Jf804 l/kg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747925565; x=1748530365; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5NSuSoLSh+LHiSs84RzlVPklfrqct9bYGikZDMbgQUs=; b=a+SQdfxDoQHvfIA8OeQEfPBPcsva2Vj3n5Kux1ixDJ5AiSkLA5jxQCZXuPqmkra3jg 3SSPK5Jia6Wc/gPKCgwpsn4v/l7Yz285EtH19oVdRaNCeWPPgYT3RVj0DyUqd4HlXMk4 I2bHtzU8xp1+27lftvogK6+pK8qnFcRKoAH+DsbFATbkq2b9iG/R2tf9e9OjtbYTC1wp BSBNvU8VCZzXZCjApI5kkwkeq0i1RH8rjNLz0TYDmV4pQGEkRqO2KnCBtdLKE+mmtoUf XgznV6c9EL+fpR2i1wSm3s7HL4trdbVmXnCW9gl768BQdpw/yMO0B/glC0zuexEodMjD J/WQ== X-Forwarded-Encrypted: i=1; AJvYcCUPAgyjGTJrOaWDR1DMtaEEvlF9nBMaSYizvHAx1Tg7UjQ9J3M+VM8/l+QskClAB31N3hf5a+cqJLtmZXE=@vger.kernel.org X-Gm-Message-State: AOJu0YxdgmEoUdBTr44toNndyMLdQzF1V95rkpf3TvSmqBjGZ1JP2ETq Sr2ri8bWvNM4f0mHe9Ah5mdgTkfcztFaXcpZ55k1fagObhgvQFlB1lW5/E50Tp7mFBo= X-Gm-Gg: ASbGncvwfUbZcYX5wMzidOmoc+F1fTuftDh3o2BJUo3DySrnJCffC9nrVd68K+eU4np rBQ5eb/EyF5JeFb52v8gtubhf4WuVmlVuZgaPYvKmyU30h4vmMDTxycVPrwvZsbW4SQlgOc4cfy O92t8eG3xe1NNWN4OBgItWWlROz1Bn/Z5sVIviuf0xoGrRzyJdyRzzEkUozU4Opte4vK1PjQZEg iFsA+Nqz+pHSUUmMfBOq2Bw3086DJoyOsTyIVrqWnISQf3a4EMaO7Hoqm+1Lx1JJ2dv3E0U2/cz aIzLxZ3AA6LzqcSVhztG2SFGshtMlEOffSVZIbat15NdrM3O4U1iYc0DS127 X-Google-Smtp-Source: AGHT+IG7lHM8gO7TjtKSOgQg+mAp19Lx1pEqwgmpnkH4a719vOS4PONUqtAkN0R9pGn1dejyXRQUIQ== X-Received: by 2002:a05:600c:870e:b0:43c:ed61:2c26 with SMTP id 5b1f17b1804b1-44b0c60f240mr12764035e9.17.1747925565562; Thu, 22 May 2025 07:52:45 -0700 (PDT) Received: from ho-tower-lan.lan ([37.18.136.128]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-447f78aeb56sm104965555e9.27.2025.05.22.07.52.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 May 2025 07:52:45 -0700 (PDT) From: James Clark Date: Thu, 22 May 2025 15:51:33 +0100 Subject: [PATCH v2 04/14] spi: spi-fsl-dspi: Re-use one volatile regmap for both device types Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250522-james-nxp-spi-v2-4-bea884630cfb@linaro.org> References: <20250522-james-nxp-spi-v2-0-bea884630cfb@linaro.org> In-Reply-To: <20250522-james-nxp-spi-v2-0-bea884630cfb@linaro.org> To: Vladimir Oltean , Mark Brown , Rob Herring , Krzysztof Kozlowski , Matti Vaittinen Cc: Conor Dooley , Frank Li , Chester Lin , Matthias Brugger , Ghennadi Procopciuc , NXP S32 Linux Team , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Chao Fu , Xiubo Li , Lukasz Majewski , linux-spi@vger.kernel.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Vladimir Oltean , Dan Carpenter , James Clark X-Mailer: b4 0.14.0 max_register overrides anything in the volatile ranges, so we can get away with sharing the same one for both types. In a later commit we'll add more devices so this avoids adding even more duplication. Also replace the max_register magic numbers with their register definitions so it's clearer what's going on. No functional changes. Reviewed-by: Vladimir Oltean Signed-off-by: James Clark --- drivers/spi/spi-fsl-dspi.c | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/drivers/spi/spi-fsl-dspi.c b/drivers/spi/spi-fsl-dspi.c index 863781ba6c16..09b2b25ed274 100644 --- a/drivers/spi/spi-fsl-dspi.c +++ b/drivers/spi/spi-fsl-dspi.c @@ -1209,6 +1209,7 @@ static const struct regmap_range dspi_volatile_ranges= [] =3D { regmap_reg_range(SPI_MCR, SPI_TCR), regmap_reg_range(SPI_SR, SPI_SR), regmap_reg_range(SPI_PUSHR, SPI_RXFR3), + regmap_reg_range(SPI_SREX, SPI_SREX), }; =20 static const struct regmap_access_table dspi_volatile_table =3D { @@ -1220,31 +1221,19 @@ static const struct regmap_config dspi_regmap_confi= g =3D { .reg_bits =3D 32, .val_bits =3D 32, .reg_stride =3D 4, - .max_register =3D 0x88, + .max_register =3D SPI_RXFR3, .volatile_table =3D &dspi_volatile_table, .rd_table =3D &dspi_access_table, .wr_table =3D &dspi_access_table, }; =20 -static const struct regmap_range dspi_xspi_volatile_ranges[] =3D { - regmap_reg_range(SPI_MCR, SPI_TCR), - regmap_reg_range(SPI_SR, SPI_SR), - regmap_reg_range(SPI_PUSHR, SPI_RXFR3), - regmap_reg_range(SPI_SREX, SPI_SREX), -}; - -static const struct regmap_access_table dspi_xspi_volatile_table =3D { - .yes_ranges =3D dspi_xspi_volatile_ranges, - .n_yes_ranges =3D ARRAY_SIZE(dspi_xspi_volatile_ranges), -}; - static const struct regmap_config dspi_xspi_regmap_config[] =3D { { .reg_bits =3D 32, .val_bits =3D 32, .reg_stride =3D 4, - .max_register =3D 0x13c, - .volatile_table =3D &dspi_xspi_volatile_table, + .max_register =3D SPI_SREX, + .volatile_table =3D &dspi_volatile_table, .rd_table =3D &dspi_access_table, .wr_table =3D &dspi_access_table, }, --=20 2.34.1 From nobody Wed Dec 17 08:52:26 2025 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EA62C28D832 for ; Thu, 22 May 2025 14:52:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747925571; cv=none; b=L1GCLm/9nwxPSxzVNEGM51qs84aMjxbvG+RZ5m77J3KXFAFCMhgAMUrAev0Cm5yKM8Brn/nRUQSOjXAPXjICKnNi0ssoQpdf+apQYrmUyudz6lY613ahs2i+OLbPuHqOzMySG6ev0TP1uX7bbMKcMi7FsXnVSfcdyps8Dq807Sc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747925571; c=relaxed/simple; bh=kiQBHy4um6xwGZLFuEKIAnVqksfWdYA3KIeB0asDiB4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DIinPQfGLJSnDbl4knE87HtzISBRHDCVQkF5/8rAgsiQiSo1NGQ+BRHRAwriYbIzbctLGq1uIdB3kcaygnD4ucXVG4AiyOmxb5YYNDIwpKEMIJK6zt0UOpXGdXtXyHRQLI2JdpCujwWlMIDbF1zsbx92KpFg9EvAqYr+YQ3gTDg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=nfZbf+Ch; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="nfZbf+Ch" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-441d1ed82faso63729745e9.0 for ; Thu, 22 May 2025 07:52:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747925567; x=1748530367; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=ekxEvpWuS4igVbh6hI/u8pSgKuhpUkBiZlEGiziAPKA=; b=nfZbf+ChVFZ51K8/9doS+j4sHF5ONiAP7PT/WU9V60+8UIb8lD+0uNJr3OWEt9dff7 ChETsLPj+qFb20UJ7Ks4FF4WPBQu4abGT32QdBg243HWyIbu92daT4kbCB2Pvap0vvHY wJFCsvwiZzlH2viGPuvEU7L6CUIHf94LsN2tjen19DsaORZkZ+fsQPG/+T32L/eCtNdk gl6EkHb42+vvZ1DmOBHWp2VGrtIYDswyOVgz9xbQPqevnOfXbQ3fRGCEgGt0WK7dZvAK AAo3pJVKw+sD/76sHPAvg2lg8XwF9W/c/9FxXzNh1T8opS64euY3AALhpFXtjN6jdpnD CmQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747925567; x=1748530367; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ekxEvpWuS4igVbh6hI/u8pSgKuhpUkBiZlEGiziAPKA=; b=kBWqYZ+sPo+u3JkITN4Rvs45NwyHqAWAOcy8ScJ1VWNXkbOwK6hanxZ8duxNoEWhEI imBz25VuaNwd3Kk3opsDDH78b2RWS3Mqz+YQZloaa+VVEgfvBW2+s6qBrBkRBuN9AwIq xWSENez17TZCmq/3GLbP0Ve57Pau5F7aUJdj9xq1CSCzXsst4p/NWwfZlKZQ94LDSpO/ kQFcm+7SZjeAcBemaA7c/qn0xEPJxiYAMfrEKxHDcFjcfV4Ed0qzvxktpOh6MqSpk95r vtYtQ90eV/pbmrriEfzjGO0DgaTjDIPR5Yo8S3LsiEi+ky3/JSgAVdADqWDSlmwE+jnI PRcA== X-Forwarded-Encrypted: i=1; AJvYcCUfDXNKP+T2CSXE9csQqVNSw/p9mfDgDVXkDBTCxrMD6MtvYJul5/eZFj4a03VGWaxU2tCrm9XE3v3+vL8=@vger.kernel.org X-Gm-Message-State: AOJu0YxYZJ8uCbZMRGu2PmUOqaA++q/o+s+YtZ2MGg3k67y8UT/q6a8R qsFYVOiJqllRdHwZB/Kk+mJ0HYIO5UcgaAwKbkdVjdiiMCfDS+aC3/Rc4vquw2Kt/h8= X-Gm-Gg: ASbGncsHvk4szEz/aZ/XA68R3sEzrk6i9BK/JeqHasgg9pLWHf89KmRsbdXhiRtVpYu +aXUZl72O6ZbyEKUrUZMkHARHZxUnLpanlVpMZ3RfGW128/lfFYbSF7YR2X39yGteHrTxE2/CMM FArJvNjm3sVeb0xh5dVqUtv7zqg1dPqC5GmqYWESkt5L8h0Cv6Gl2U1cHS9mNVD0wuMPlnOKhUW 0tojUuZnSGShRS7SEaIYEHPU2rwiZPA+yZ3sA55dnkazrEAoCEg0wWpcSgmRCocMovcBspKiNAB PbKvPTe/J1A5T775KV1OYTZM9Ped8nphYIDumhE2Lz7cWxz5O2OKLrHe1WzW X-Google-Smtp-Source: AGHT+IEjdoLRI1UrwQMZZYK9VyQtOn7WHlwOVEzQNmbeaE/Kx2oQJzrZySZ4Otg4xaleKcsb0UIPug== X-Received: by 2002:a05:600c:3e84:b0:442:e9eb:1b48 with SMTP id 5b1f17b1804b1-442ff029b73mr227361635e9.24.1747925566943; Thu, 22 May 2025 07:52:46 -0700 (PDT) Received: from ho-tower-lan.lan ([37.18.136.128]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-447f78aeb56sm104965555e9.27.2025.05.22.07.52.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 May 2025 07:52:46 -0700 (PDT) From: James Clark Date: Thu, 22 May 2025 15:51:34 +0100 Subject: [PATCH v2 05/14] spi: spi-fsl-dspi: Define regmaps per device Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250522-james-nxp-spi-v2-5-bea884630cfb@linaro.org> References: <20250522-james-nxp-spi-v2-0-bea884630cfb@linaro.org> In-Reply-To: <20250522-james-nxp-spi-v2-0-bea884630cfb@linaro.org> To: Vladimir Oltean , Mark Brown , Rob Herring , Krzysztof Kozlowski , Matti Vaittinen Cc: Conor Dooley , Frank Li , Chester Lin , Matthias Brugger , Ghennadi Procopciuc , NXP S32 Linux Team , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Chao Fu , Xiubo Li , Lukasz Majewski , linux-spi@vger.kernel.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Vladimir Oltean , Dan Carpenter , James Clark X-Mailer: b4 0.14.0 Refactor the regmaps so they can be defined per device rather than programmatically. This will allow us to add two new regmaps for S32G in a later commit. No functional changes. Reviewed-by: Vladimir Oltean Signed-off-by: James Clark --- drivers/spi/spi-fsl-dspi.c | 136 ++++++++++++++++++++++++-----------------= ---- 1 file changed, 74 insertions(+), 62 deletions(-) diff --git a/drivers/spi/spi-fsl-dspi.c b/drivers/spi/spi-fsl-dspi.c index 09b2b25ed274..437a8db9fa2b 100644 --- a/drivers/spi/spi-fsl-dspi.c +++ b/drivers/spi/spi-fsl-dspi.c @@ -122,6 +122,7 @@ struct fsl_dspi_devtype_data { enum dspi_trans_mode trans_mode; u8 max_clock_factor; int fifo_size; + const struct regmap_config *regmap; }; =20 enum { @@ -137,60 +138,130 @@ enum { VF610, }; =20 +static const struct regmap_range dspi_yes_ranges[] =3D { + regmap_reg_range(SPI_MCR, SPI_MCR), + regmap_reg_range(SPI_TCR, SPI_CTAR(3)), + regmap_reg_range(SPI_SR, SPI_TXFR3), + regmap_reg_range(SPI_RXFR0, SPI_RXFR3), + regmap_reg_range(SPI_CTARE(0), SPI_CTARE(3)), + regmap_reg_range(SPI_SREX, SPI_SREX), +}; + +static const struct regmap_access_table dspi_access_table =3D { + .yes_ranges =3D dspi_yes_ranges, + .n_yes_ranges =3D ARRAY_SIZE(dspi_yes_ranges), +}; + +static const struct regmap_range dspi_volatile_ranges[] =3D { + regmap_reg_range(SPI_MCR, SPI_TCR), + regmap_reg_range(SPI_SR, SPI_SR), + regmap_reg_range(SPI_PUSHR, SPI_RXFR3), + regmap_reg_range(SPI_SREX, SPI_SREX), +}; + +static const struct regmap_access_table dspi_volatile_table =3D { + .yes_ranges =3D dspi_volatile_ranges, + .n_yes_ranges =3D ARRAY_SIZE(dspi_volatile_ranges), +}; + +enum { + DSPI_REGMAP, + DSPI_XSPI_REGMAP, + DSPI_PUSHR, +}; + +static const struct regmap_config dspi_regmap_config[] =3D { + [DSPI_REGMAP] =3D { + .reg_bits =3D 32, + .val_bits =3D 32, + .reg_stride =3D 4, + .max_register =3D SPI_RXFR3, + .volatile_table =3D &dspi_volatile_table, + .rd_table =3D &dspi_access_table, + .wr_table =3D &dspi_access_table, + }, + [DSPI_XSPI_REGMAP] =3D { + .reg_bits =3D 32, + .val_bits =3D 32, + .reg_stride =3D 4, + .max_register =3D SPI_SREX, + .volatile_table =3D &dspi_volatile_table, + .rd_table =3D &dspi_access_table, + .wr_table =3D &dspi_access_table, + }, + [DSPI_PUSHR] =3D { + .name =3D "pushr", + .reg_bits =3D 16, + .val_bits =3D 16, + .reg_stride =3D 2, + .max_register =3D 0x2, + }, +}; + static const struct fsl_dspi_devtype_data devtype_data[] =3D { [VF610] =3D { .trans_mode =3D DSPI_DMA_MODE, .max_clock_factor =3D 2, .fifo_size =3D 4, + .regmap =3D &dspi_regmap_config[DSPI_REGMAP], }, [LS1021A] =3D { /* Has A-011218 DMA erratum */ .trans_mode =3D DSPI_XSPI_MODE, .max_clock_factor =3D 8, .fifo_size =3D 4, + .regmap =3D &dspi_regmap_config[DSPI_XSPI_REGMAP], }, [LS1012A] =3D { /* Has A-011218 DMA erratum */ .trans_mode =3D DSPI_XSPI_MODE, .max_clock_factor =3D 8, .fifo_size =3D 16, + .regmap =3D &dspi_regmap_config[DSPI_XSPI_REGMAP], }, [LS1028A] =3D { .trans_mode =3D DSPI_XSPI_MODE, .max_clock_factor =3D 8, .fifo_size =3D 4, + .regmap =3D &dspi_regmap_config[DSPI_XSPI_REGMAP], }, [LS1043A] =3D { /* Has A-011218 DMA erratum */ .trans_mode =3D DSPI_XSPI_MODE, .max_clock_factor =3D 8, .fifo_size =3D 16, + .regmap =3D &dspi_regmap_config[DSPI_XSPI_REGMAP], }, [LS1046A] =3D { /* Has A-011218 DMA erratum */ .trans_mode =3D DSPI_XSPI_MODE, .max_clock_factor =3D 8, .fifo_size =3D 16, + .regmap =3D &dspi_regmap_config[DSPI_XSPI_REGMAP], }, [LS2080A] =3D { .trans_mode =3D DSPI_XSPI_MODE, .max_clock_factor =3D 8, .fifo_size =3D 4, + .regmap =3D &dspi_regmap_config[DSPI_XSPI_REGMAP], }, [LS2085A] =3D { .trans_mode =3D DSPI_XSPI_MODE, .max_clock_factor =3D 8, .fifo_size =3D 4, + .regmap =3D &dspi_regmap_config[DSPI_XSPI_REGMAP], }, [LX2160A] =3D { .trans_mode =3D DSPI_XSPI_MODE, .max_clock_factor =3D 8, .fifo_size =3D 4, + .regmap =3D &dspi_regmap_config[DSPI_XSPI_REGMAP], }, [MCF5441X] =3D { .trans_mode =3D DSPI_DMA_MODE, .max_clock_factor =3D 8, .fifo_size =3D 16, + .regmap =3D &dspi_regmap_config[DSPI_REGMAP], }, }; =20 @@ -1191,61 +1262,6 @@ static int dspi_resume(struct device *dev) =20 static SIMPLE_DEV_PM_OPS(dspi_pm, dspi_suspend, dspi_resume); =20 -static const struct regmap_range dspi_yes_ranges[] =3D { - regmap_reg_range(SPI_MCR, SPI_MCR), - regmap_reg_range(SPI_TCR, SPI_CTAR(3)), - regmap_reg_range(SPI_SR, SPI_TXFR3), - regmap_reg_range(SPI_RXFR0, SPI_RXFR3), - regmap_reg_range(SPI_CTARE(0), SPI_CTARE(3)), - regmap_reg_range(SPI_SREX, SPI_SREX), -}; - -static const struct regmap_access_table dspi_access_table =3D { - .yes_ranges =3D dspi_yes_ranges, - .n_yes_ranges =3D ARRAY_SIZE(dspi_yes_ranges), -}; - -static const struct regmap_range dspi_volatile_ranges[] =3D { - regmap_reg_range(SPI_MCR, SPI_TCR), - regmap_reg_range(SPI_SR, SPI_SR), - regmap_reg_range(SPI_PUSHR, SPI_RXFR3), - regmap_reg_range(SPI_SREX, SPI_SREX), -}; - -static const struct regmap_access_table dspi_volatile_table =3D { - .yes_ranges =3D dspi_volatile_ranges, - .n_yes_ranges =3D ARRAY_SIZE(dspi_volatile_ranges), -}; - -static const struct regmap_config dspi_regmap_config =3D { - .reg_bits =3D 32, - .val_bits =3D 32, - .reg_stride =3D 4, - .max_register =3D SPI_RXFR3, - .volatile_table =3D &dspi_volatile_table, - .rd_table =3D &dspi_access_table, - .wr_table =3D &dspi_access_table, -}; - -static const struct regmap_config dspi_xspi_regmap_config[] =3D { - { - .reg_bits =3D 32, - .val_bits =3D 32, - .reg_stride =3D 4, - .max_register =3D SPI_SREX, - .volatile_table =3D &dspi_volatile_table, - .rd_table =3D &dspi_access_table, - .wr_table =3D &dspi_access_table, - }, - { - .name =3D "pushr", - .reg_bits =3D 16, - .val_bits =3D 16, - .reg_stride =3D 2, - .max_register =3D 0x2, - }, -}; - static int dspi_init(struct fsl_dspi *dspi) { unsigned int mcr; @@ -1305,7 +1321,6 @@ static int dspi_target_abort(struct spi_controller *h= ost) static int dspi_probe(struct platform_device *pdev) { struct device_node *np =3D pdev->dev.of_node; - const struct regmap_config *regmap_config; struct fsl_dspi_platform_data *pdata; struct spi_controller *ctlr; int ret, cs_num, bus_num =3D -1; @@ -1388,11 +1403,8 @@ static int dspi_probe(struct platform_device *pdev) goto out_ctlr_put; } =20 - if (dspi->devtype_data->trans_mode =3D=3D DSPI_XSPI_MODE) - regmap_config =3D &dspi_xspi_regmap_config[0]; - else - regmap_config =3D &dspi_regmap_config; - dspi->regmap =3D devm_regmap_init_mmio(&pdev->dev, base, regmap_config); + dspi->regmap =3D devm_regmap_init_mmio(&pdev->dev, base, + dspi->devtype_data->regmap); if (IS_ERR(dspi->regmap)) { dev_err(&pdev->dev, "failed to init regmap: %ld\n", PTR_ERR(dspi->regmap)); @@ -1403,7 +1415,7 @@ static int dspi_probe(struct platform_device *pdev) if (dspi->devtype_data->trans_mode =3D=3D DSPI_XSPI_MODE) { dspi->regmap_pushr =3D devm_regmap_init_mmio( &pdev->dev, base + SPI_PUSHR, - &dspi_xspi_regmap_config[1]); + &dspi_regmap_config[DSPI_PUSHR]); if (IS_ERR(dspi->regmap_pushr)) { dev_err(&pdev->dev, "failed to init pushr regmap: %ld\n", --=20 2.34.1 From nobody Wed Dec 17 08:52:26 2025 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ECBB728DF29 for ; Thu, 22 May 2025 14:52:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747925573; cv=none; b=fxJIF9GluS34/ZcdXwyV4O7L0B4SIMKewbaKrUBQOL2JqwtbDxVoJPSnrVzl3kiEn51XjkflfHL9m88NqMDDemo82TPhDD3SoccJh9y3MwaHqmaG/ThwPcZ0FwRIw1ziP9gx+lZYuKznLqSLi1bbxXVAbAvOKo64DhzH3aDV9K4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747925573; c=relaxed/simple; bh=1jgVYXcuSQUYEU1dVAp9lFPNyoIv4PIWXjFIMl5Vkvo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=AIbzlD5TwgnDNvP6fu3auDb/RV/hXltMJEw73sS1JoNf96hRyv5VLCjirhx4M6tObI+H8FwnE3SBkDph1K9gSgZ1bi7bngAEspP/CVlp2MCJxz4qTkxS+34GdzifLc3z1+04/IlT5qxu+ENzWNR19wRPHOjd7wNhbgF/1McT8UM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=XAwl34Qg; arc=none smtp.client-ip=209.85.128.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="XAwl34Qg" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-442f9043f56so47678105e9.0 for ; Thu, 22 May 2025 07:52:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747925569; x=1748530369; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=0z6hcyVZAe0X+PJjkOMiFN3VGBYDX0qmANiIo/JWNSc=; b=XAwl34Qgvi1u2n/yPt7ihl7suWKBdzFD2ClY1Y8LOLtx6YDvx6IGPjWaU03A7heRn3 4sQw8vJZ7kEZfUgNci88e+lXKxYwGR+5HLV+T8ghyCUtTys0RUSZ+KIakbzBmM1+h5iW DpzVFB52m15Kg+gldFTil/bX83lvHNAaYaFyXfYBBoAw0WezwPi/w/ZCcqzGh3W60gzK IduXjTbmfG+pFis0cxCG49U9H0nMTOHILTMY/aJH8PPiHyyDEKsbYotzKeAIwiogayHv c5MLpvngRZWbKM06HPMyPdjGlr5LbDRVh9XqM15WRhe10493v95Yn1lDSjvRAguKbsMy cG0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747925569; x=1748530369; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0z6hcyVZAe0X+PJjkOMiFN3VGBYDX0qmANiIo/JWNSc=; b=cVSx96SvuFVH0O59LGiGh5IbMjTY+/QZRjPvd6BssAJryCXafTj03eIUYQbfIXPta+ e4yTwACQ0TSsjV1cGCxXzB15aznTR14Sx5xK/so4BKI9mQ1r7eKlnDlRmM7QNVNzNhA5 qG4aDEihWd4kIVHzC36cVdUU6/Xmg/znWqmEf7GKW35IYrZaq1QBW9u33fbSSc0AnKS6 DeQWppIQyKZ1coeFZramxG6V8WspmYRjg3s3/3195LmGQanCHNrCOcKmRFBMz/WZMSjV poUCWiCkmAwlppp3+8piZEPFxmQxVJU+2oMMe7hTKxGpDeFrVShjMcq0QgvCRS2kevHR GPEg== X-Forwarded-Encrypted: i=1; AJvYcCUpMmNaWlGqmxBCeoX2vuyiZnU4E/AgOf7OB2Lrhgq4VAHv3o5mLvexv+0kDIhl3RdhPchdZ9qeyzL/B5A=@vger.kernel.org X-Gm-Message-State: AOJu0YxQYyrdfXQbmF7inWILdZWJgS2l98GIZz/XrZE0h7pbFpzWAwkD kQ561xLyoJTtGNSuySPFf5G3YizAZklLEOTYoEfK0z3hvXTEKjkk6gMlVp6wn6gwxWY= X-Gm-Gg: ASbGncs9XCqcIZmZLtsSrNVEUkRpemfWOdDejPkmcw+6ubDw985C5zQ5A1e2bYWGYai VjrXhYYidXACqRmLxR9zFlvokG0QzemxMbrL5EcqZY4+rAhdOXzzmKwYhJjEGeQYUMIkwAslYDG MEdsjQgZn4W1hy1fg+9MYjMiV947oA0/ExpiedAS1fI/j6/1lgFjfBlg9T6IkY0E/IRTcw5d5q7 VO4E/b0nUEfwPFSYc6AhWzP1w80EaFmUnHALHZOMituHNSwRULGVClwZPQRpH27SB1khxCfcpk7 rUJ+x6URIOc7YqE1K5/62l0e1OZluuyzsq4hoeooaBRYi2PLYXjXHCNFH7rPVtvMKbCPtFQ= X-Google-Smtp-Source: AGHT+IHLLDacG6DJNXNgMnaF7nWhkFGvXH5XjtvmKDssa24rTSeprfh0E2gKpdqYxF8Xn+tcyTPTow== X-Received: by 2002:a05:600c:c0d2:20b0:43c:f597:d589 with SMTP id 5b1f17b1804b1-442fda2e7d3mr147957455e9.27.1747925569155; Thu, 22 May 2025 07:52:49 -0700 (PDT) Received: from ho-tower-lan.lan ([37.18.136.128]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-447f78aeb56sm104965555e9.27.2025.05.22.07.52.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 May 2025 07:52:48 -0700 (PDT) From: James Clark Date: Thu, 22 May 2025 15:51:35 +0100 Subject: [PATCH v2 06/14] spi: spi-fsl-dspi: Add config and regmaps for S32G platforms Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250522-james-nxp-spi-v2-6-bea884630cfb@linaro.org> References: <20250522-james-nxp-spi-v2-0-bea884630cfb@linaro.org> In-Reply-To: <20250522-james-nxp-spi-v2-0-bea884630cfb@linaro.org> To: Vladimir Oltean , Mark Brown , Rob Herring , Krzysztof Kozlowski , Matti Vaittinen Cc: Conor Dooley , Frank Li , Chester Lin , Matthias Brugger , Ghennadi Procopciuc , NXP S32 Linux Team , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Chao Fu , Xiubo Li , Lukasz Majewski , linux-spi@vger.kernel.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Vladimir Oltean , Dan Carpenter , Larisa Grigore , James Clark X-Mailer: b4 0.14.0 From: Larisa Grigore S32G adds SPI_{T,R}XFR4 and extends SPI_CTAR registers to 5. Add the new regmaps, configs and bits. dspi_volatile_ranges gets SPI_{T,R}XFR4 added which affects all platforms, however they are further limited by dspi_yes_ranges. Signed-off-by: Larisa Grigore Signed-off-by: James Clark --- drivers/spi/spi-fsl-dspi.c | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/drivers/spi/spi-fsl-dspi.c b/drivers/spi/spi-fsl-dspi.c index 437a8db9fa2b..10e511ba1cd8 100644 --- a/drivers/spi/spi-fsl-dspi.c +++ b/drivers/spi/spi-fsl-dspi.c @@ -35,7 +35,7 @@ #define SPI_TCR 0x08 #define SPI_TCR_GET_TCNT(x) (((x) & GENMASK(31, 16)) >> 16) =20 -#define SPI_CTAR(x) (0x0c + (((x) & GENMASK(1, 0)) * 4)) +#define SPI_CTAR(x) (0x0c + (((x) & GENMASK(2, 0)) * 4)) #define SPI_CTAR_FMSZ(x) (((x) << 27) & GENMASK(30, 27)) #define SPI_CTAR_CPOL BIT(26) #define SPI_CTAR_CPHA BIT(25) @@ -93,12 +93,14 @@ #define SPI_TXFR1 0x40 #define SPI_TXFR2 0x44 #define SPI_TXFR3 0x48 +#define SPI_TXFR4 0x4C #define SPI_RXFR0 0x7c #define SPI_RXFR1 0x80 #define SPI_RXFR2 0x84 #define SPI_RXFR3 0x88 +#define SPI_RXFR4 0x8C =20 -#define SPI_CTARE(x) (0x11c + (((x) & GENMASK(1, 0)) * 4)) +#define SPI_CTARE(x) (0x11c + (((x) & GENMASK(2, 0)) * 4)) #define SPI_CTARE_FMSZE(x) (((x) & 0x1) << 16) #define SPI_CTARE_DTCP(x) ((x) & 0x7ff) =20 @@ -136,6 +138,7 @@ enum { LX2160A, MCF5441X, VF610, + S32G, }; =20 static const struct regmap_range dspi_yes_ranges[] =3D { @@ -147,15 +150,29 @@ static const struct regmap_range dspi_yes_ranges[] = =3D { regmap_reg_range(SPI_SREX, SPI_SREX), }; =20 +static const struct regmap_range s32g_dspi_yes_ranges[] =3D { + regmap_reg_range(SPI_MCR, SPI_MCR), + regmap_reg_range(SPI_TCR, SPI_CTAR(5)), + regmap_reg_range(SPI_SR, SPI_TXFR4), + regmap_reg_range(SPI_RXFR0, SPI_RXFR4), + regmap_reg_range(SPI_CTARE(0), SPI_CTARE(5)), + regmap_reg_range(SPI_SREX, SPI_SREX), +}; + static const struct regmap_access_table dspi_access_table =3D { .yes_ranges =3D dspi_yes_ranges, .n_yes_ranges =3D ARRAY_SIZE(dspi_yes_ranges), }; =20 +static const struct regmap_access_table s32g_dspi_access_table =3D { + .yes_ranges =3D s32g_dspi_yes_ranges, + .n_yes_ranges =3D ARRAY_SIZE(s32g_dspi_yes_ranges), +}; + static const struct regmap_range dspi_volatile_ranges[] =3D { regmap_reg_range(SPI_MCR, SPI_TCR), regmap_reg_range(SPI_SR, SPI_SR), - regmap_reg_range(SPI_PUSHR, SPI_RXFR3), + regmap_reg_range(SPI_PUSHR, SPI_RXFR4), regmap_reg_range(SPI_SREX, SPI_SREX), }; =20 @@ -167,6 +184,7 @@ static const struct regmap_access_table dspi_volatile_t= able =3D { enum { DSPI_REGMAP, DSPI_XSPI_REGMAP, + S32G_DSPI_XSPI_REGMAP, DSPI_PUSHR, }; =20 @@ -189,6 +207,15 @@ static const struct regmap_config dspi_regmap_config[]= =3D { .rd_table =3D &dspi_access_table, .wr_table =3D &dspi_access_table, }, + [S32G_DSPI_XSPI_REGMAP] =3D { + .reg_bits =3D 32, + .val_bits =3D 32, + .reg_stride =3D 4, + .max_register =3D SPI_SREX, + .volatile_table =3D &dspi_volatile_table, + .wr_table =3D &s32g_dspi_access_table, + .rd_table =3D &s32g_dspi_access_table, + }, [DSPI_PUSHR] =3D { .name =3D "pushr", .reg_bits =3D 16, @@ -263,6 +290,12 @@ static const struct fsl_dspi_devtype_data devtype_data= [] =3D { .fifo_size =3D 16, .regmap =3D &dspi_regmap_config[DSPI_REGMAP], }, + [S32G] =3D { + .trans_mode =3D DSPI_XSPI_MODE, + .max_clock_factor =3D 1, + .fifo_size =3D 5, + .regmap =3D &dspi_regmap_config[S32G_DSPI_XSPI_REGMAP], + }, }; =20 struct fsl_dspi_dma { --=20 2.34.1 From nobody Wed Dec 17 08:52:26 2025 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 920AF28DF5D for ; Thu, 22 May 2025 14:52:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747925574; cv=none; b=ep1SM1BqHRKP8kUTH8FQGqWPnU3sRM3zeFy0uBjL9pFErjdjK89w1CSvqG6hA5PK9pKa6gVpMqMLqJtMVOjNKpaQQSO1C3IkfSoL2bccgdeDnSrekllvac9CoenNLeQtj7ZztB4qCMeL8cXwDI+kXb1kL9ZLyzS3E9l2GdtAUas= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747925574; c=relaxed/simple; bh=0e0G7GONBUQeocyCnkkONaSF+xI1QoW7NjnPoRRusIo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=B8BJ9Zg4E7ZQ1u+HyCtOTfBjWTeASnPYwesPUfA7moXZ9Rtc8nLzmi0OYPhBRkAOyQ8E9m5GBLZIufPwjdbnnHgGrtnsCkrJN10znTeNkLncWgkNPVlcoYjoPHuzFTGtpXBV4BS7pBp9Y36lzWce8pgPQlmZHJXy42QxjFLcJXI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=ZgNiAQm8; arc=none smtp.client-ip=209.85.128.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="ZgNiAQm8" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-440685d6afcso86312375e9.0 for ; Thu, 22 May 2025 07:52:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747925571; x=1748530371; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=N4sEJM+871Hq7BueZc9qSjjVinOO/X+0tYY6aaq4Jkg=; b=ZgNiAQm8a9BNLT9LZfOQCKWPb6DA+EevGOGOGdOgk+ze3aypACKwK5YHsVGT2urfyB YqwFW2gHAuAVD76fjkTqccUhFXAKlfF0fxd9joOjNqk43E/UvAt+sZD8VqOllb4eHY/o 1ga9wtzEkMq1FjtgDG+gvZwHWwYnPokoeXgF1B7ZHqHWcOkI8WL+lOSQP9WgKwzraXHc Qa1Ut2zqkGYxSqj4vMHw4FqQXTfLBGKkRy94Om2vVIcx3g5zCN0luLYBiRacYljxXT8U 9Xu5/n4DjYGOqKwimcpmyLBzqmjGera0LvDubtsWuJm752n4soVFJA2jsF2bxJbAQNhI qoBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747925571; x=1748530371; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=N4sEJM+871Hq7BueZc9qSjjVinOO/X+0tYY6aaq4Jkg=; b=vs0avSNxPolHvDBVwwAZZzyVENVrdzTkstpmb8+s4GRLNfhQ6gf7ciSLq+A/o0viWT bSZoJDBkIL8OPyGlaZLSPcBBxf/UCONq4a8kNPjy9L6dlyeEedqUmjwL/Xt3G5mlWDc9 kcZkRYq1iZ6Vy3R/UZJsLVkmtnkXAU8TIgawThSRjBglyrt3URLVRiM4pZ8MhKfs8rai H63qj/tGjFV2Az2tDwm6Ers1x9Nx/cLF5qP85ZQ3T5n5X0bJznePhPFanoLfHEB0f4UV YtGC4/hGY4ZLQv6ypE8zSx1iKCi+ngMO7MW7bdQJWwCWL8UQPufOnZUfHN3NG58N5GYA d+zA== X-Forwarded-Encrypted: i=1; AJvYcCW81o443ahrm9BeKizpUHYfRIfU4rcH9RtMB8g6y8gObM9mRkgKFyTM2AWS/b0aqRXjtbHVbMpjKNQzQgs=@vger.kernel.org X-Gm-Message-State: AOJu0YyUMusN6oD5eRa/WzhRgJdkiinl1BNkxbH3Q+IueF2/AMNWlEtW LBWkYOL9mEYxQBP5MMIyHv4Exnr5+QNTuiUdyan5siuZ0MEsWccoKeFQNcTju0eRa7M= X-Gm-Gg: ASbGncvSwD+Ml9yVcr1/piYSHsfxUxVtAYtx782HO+rK1BJKJw8N+0Q2kiNUUO5h336 41sbzJ0HxCH/W5X6aLdoEsO2ile/Zt/syKOlPCHvHMqvLfLY7KbZDSFT9vsnVsfSQQnRl8OLfw2 GaktDhar19zR9tsJy0RdJdnz8mf0qpvDiVlBPmA2Q4G7CuZgyac48IybnXWEfoOwGeWFiGXzm+k dtGDbHooLgnbu+hepEhyhhIwM/q/tdy+GFA2gpyrQ8UPwPm9V0cFLjXquFBXerM0uN5Rqc+2jpx QhRAvFFAsHlSE0twbdB01BhijNk7J+6aVFPLaiYSlXdo8i7HEQcXiU+kw2cP X-Google-Smtp-Source: AGHT+IF7HwvFx4mEXB3EyW4Q7v2VjPs8dvE+4oPy+CvCTPqUtNiIogBefTp2+DWncfUrub+h4prcpg== X-Received: by 2002:a05:600c:3d8e:b0:43c:f87c:24ce with SMTP id 5b1f17b1804b1-442ff031845mr220598755e9.21.1747925570681; Thu, 22 May 2025 07:52:50 -0700 (PDT) Received: from ho-tower-lan.lan ([37.18.136.128]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-447f78aeb56sm104965555e9.27.2025.05.22.07.52.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 May 2025 07:52:50 -0700 (PDT) From: James Clark Date: Thu, 22 May 2025 15:51:36 +0100 Subject: [PATCH v2 07/14] spi: spi-fsl-dspi: Use spi_alloc_target for target Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250522-james-nxp-spi-v2-7-bea884630cfb@linaro.org> References: <20250522-james-nxp-spi-v2-0-bea884630cfb@linaro.org> In-Reply-To: <20250522-james-nxp-spi-v2-0-bea884630cfb@linaro.org> To: Vladimir Oltean , Mark Brown , Rob Herring , Krzysztof Kozlowski , Matti Vaittinen Cc: Conor Dooley , Frank Li , Chester Lin , Matthias Brugger , Ghennadi Procopciuc , NXP S32 Linux Team , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Chao Fu , Xiubo Li , Lukasz Majewski , linux-spi@vger.kernel.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Vladimir Oltean , Dan Carpenter , Marius Trifu , Larisa Grigore , James Clark X-Mailer: b4 0.14.0 From: Marius Trifu spi_alloc_target should be used for target devices. This also sets ctlr->target automatically so delete that line. Signed-off-by: Marius Trifu Signed-off-by: Larisa Grigore Signed-off-by: James Clark --- drivers/spi/spi-fsl-dspi.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/spi/spi-fsl-dspi.c b/drivers/spi/spi-fsl-dspi.c index 10e511ba1cd8..814a92b8064e 100644 --- a/drivers/spi/spi-fsl-dspi.c +++ b/drivers/spi/spi-fsl-dspi.c @@ -1366,7 +1366,10 @@ static int dspi_probe(struct platform_device *pdev) if (!dspi) return -ENOMEM; =20 - ctlr =3D spi_alloc_host(&pdev->dev, 0); + if (of_property_read_bool(np, "spi-slave")) + ctlr =3D spi_alloc_target(&pdev->dev, 0); + else + ctlr =3D spi_alloc_host(&pdev->dev, 0); if (!ctlr) return -ENOMEM; =20 @@ -1405,9 +1408,6 @@ static int dspi_probe(struct platform_device *pdev) of_property_read_u32(np, "bus-num", &bus_num); ctlr->bus_num =3D bus_num; =20 - if (of_property_read_bool(np, "spi-slave")) - ctlr->target =3D true; - dspi->devtype_data =3D of_device_get_match_data(&pdev->dev); if (!dspi->devtype_data) { dev_err(&pdev->dev, "can't get devtype_data\n"); --=20 2.34.1 From nobody Wed Dec 17 08:52:26 2025 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 31BD928E587 for ; Thu, 22 May 2025 14:52:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747925576; cv=none; b=hg8hoAghnDWw6hoaV4BDj+yuXTZb3L8rNbwJCphcsF1GfS3prDRDI1ux6ctlIbWf0ZYDKGG3D+fkHn7ioFAeP6vfje2SjeoEMrBFvLm0OvwQya01UhLaMhKXBqQTa2yI8HZ60eJ9gKexTulIw6HBf8bbgFTfTrxMPdQDGwGpxBA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747925576; c=relaxed/simple; bh=B3dXYhnsY4/0kljLpB/bLo4GhIKCEopk2hHBZ0Y/nJ0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RZ8NasJAcqH0diZ7LXp66Y2byc0BFJuFEZWd8LWlpieHiaOwT6hdr2IydCK8TQuG/3aa42kdjVS9rNnAks62yqjTefKCoouvIbMIerzcdwLixzAvJb78KNaE/Na1ez5qb89khJLu4cRDNTI2YnzE4FZEjwQ2UpqutyRmmGyG4qA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=ULRVcpal; arc=none smtp.client-ip=209.85.128.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="ULRVcpal" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-44b1ff82597so1981995e9.3 for ; Thu, 22 May 2025 07:52:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747925572; x=1748530372; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=3kblZ/H5EWoCAOqhxMxQVEOgjozeVyetn7b4EPGEonA=; b=ULRVcpald/1+4g7roxRZjfA0Jft+hTHUqp8VZyWYlNoasNqU4UqoCyE5Qetclccfo1 29jRxGgaYCk4a6Yb6B3ZX0axj6zvQqqzqEORYvppVE1RUUJQAG7hL+zX7l+7FAISinNL MT2sgBxa0MZi/ksEQdAz/mUxn2MYMVyQoZngZcbIRXmNoM+mQVSFgebmInERgdq/wz1F qiXZCCBOyDMMVfxkOz9RSy4bZnW5MoOeiXE2hR4bZXCdVPh44wP7I2n34o0LMnmcBERP AnA2QlzhE7Dc6GFr3PeDh4zRw8yJA3jm+25qMTDDpXEGoBMWPoZOspJUy3g85x5ERvd+ w4Yw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747925572; x=1748530372; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3kblZ/H5EWoCAOqhxMxQVEOgjozeVyetn7b4EPGEonA=; b=NrTlE9B5/xPlXGL58q6WJ2NsRTDmYhi7pIvxTFvIs/a6GvOogDhgXyEf0qkVYuzwqW RnplXtuo8hBKAK/m8qZvaJn2bmZBJ6hWuJ6gl9Wnf2CdxFHcU6FziZ0zU88mzRaL3j/b OCHq5sHplTyvsksEqkkQQ41+FXFygl6Y4WN01zVmIY4ppHaguVBp/BNX0uV5sc8JnBmQ BtGgT2m0tGRA0VcrKzb9vTuNjnIdIb+A9hlRseKs0Lk4ZOF8sWDuowdWsl/EnHmOWuVz EowmwN/79nw+UJlN2+p+pBIZbNM6SI8YuAagbc4Rb5SnpB2yTCzCOHlLryOKnr+Zl0ys Wb1w== X-Forwarded-Encrypted: i=1; AJvYcCXih87mm/Zex+VREUS1zoDMpg8ONk2HZbdSOjIHV8KXBZHdx7ANJxLJmWVyvacEvYE0wHGSzlN0CB7qcFo=@vger.kernel.org X-Gm-Message-State: AOJu0Ywz9O/XP6/ENFDKbv88M6ryvf5eEMqmosqiK38+rWcg22eH1NIe WADuHTLY6u8aa2ax0t4piPkT8JYW1owdXoxFvs26Upzuvla3FZ61PhzCWbeSNvB4T9k= X-Gm-Gg: ASbGncsRd3R4ckPAahSw44PrjRjXEkyZqBgtzN0z6mS88gJN5VNe7TXN92pWAdmZdOc Gwye/jKFQ5IuKj1fJXId6HQUaWFaME8Eeu2NdiMfmBqgnOYlKy5pwS/mfjCilDwnPlMVFwRvwrG 8J5u261CDE4bevN1yh/5oLgOso88Tqvwj506d6MWbfs05fgsQUSQxJXFu327sgHO4RwofsviafX Ep8I17fQdu486nUXR6gKaIFMXS6b7+zrU8pVofHenddIFJ/iNdh9BGpsoRGZKPGLsnCnAGapP3R GbIvS1W+q0WvAyMH3+BNBIp928MRMDbHer9z5P2PECZOemrENyfBewo0NQj4 X-Google-Smtp-Source: AGHT+IFXkX4C/vZh8avS6z8fsiCozz6p4hPupyXcDJ2YtFvJ/AEXd7sGhYG628mq6mJY77AcpW4q9A== X-Received: by 2002:a05:600c:1e1c:b0:442:c98f:d8cf with SMTP id 5b1f17b1804b1-44302934f7bmr251165455e9.16.1747925572152; Thu, 22 May 2025 07:52:52 -0700 (PDT) Received: from ho-tower-lan.lan ([37.18.136.128]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-447f78aeb56sm104965555e9.27.2025.05.22.07.52.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 May 2025 07:52:51 -0700 (PDT) From: James Clark Date: Thu, 22 May 2025 15:51:37 +0100 Subject: [PATCH v2 08/14] spi: spi-fsl-dspi: Avoid setup_accel logic for DMA transfers Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250522-james-nxp-spi-v2-8-bea884630cfb@linaro.org> References: <20250522-james-nxp-spi-v2-0-bea884630cfb@linaro.org> In-Reply-To: <20250522-james-nxp-spi-v2-0-bea884630cfb@linaro.org> To: Vladimir Oltean , Mark Brown , Rob Herring , Krzysztof Kozlowski , Matti Vaittinen Cc: Conor Dooley , Frank Li , Chester Lin , Matthias Brugger , Ghennadi Procopciuc , NXP S32 Linux Team , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Chao Fu , Xiubo Li , Lukasz Majewski , linux-spi@vger.kernel.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Vladimir Oltean , Dan Carpenter , Larisa Grigore , James Clark X-Mailer: b4 0.14.0 From: Larisa Grigore Repacking multiple smaller words into larger ones to make use of the full FIFO doesn't save anything in DMA mode, so don't bother doing it. Signed-off-by: Larisa Grigore Signed-off-by: James Clark --- drivers/spi/spi-fsl-dspi.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/spi/spi-fsl-dspi.c b/drivers/spi/spi-fsl-dspi.c index 814a92b8064e..24a51267cb4d 100644 --- a/drivers/spi/spi-fsl-dspi.c +++ b/drivers/spi/spi-fsl-dspi.c @@ -850,8 +850,12 @@ static void dspi_setup_accel(struct fsl_dspi *dspi) struct spi_transfer *xfer =3D dspi->cur_transfer; bool odd =3D !!(dspi->len & 1); =20 - /* No accel for frames not multiple of 8 bits at the moment */ - if (xfer->bits_per_word % 8) + /* + * No accel for DMA transfers or frames not multiples of 8 bits at the + * moment. + */ + if (dspi->devtype_data->trans_mode =3D=3D DSPI_DMA_MODE || + xfer->bits_per_word % 8) goto no_accel; =20 if (!odd && dspi->len <=3D dspi->devtype_data->fifo_size * 2) { @@ -860,10 +864,7 @@ static void dspi_setup_accel(struct fsl_dspi *dspi) dspi->oper_bits_per_word =3D 8; } else { /* Start off with maximum supported by hardware */ - if (dspi->devtype_data->trans_mode =3D=3D DSPI_XSPI_MODE) - dspi->oper_bits_per_word =3D 32; - else - dspi->oper_bits_per_word =3D 16; + dspi->oper_bits_per_word =3D 32; =20 /* * And go down only if the buffer can't be sent with --=20 2.34.1 From nobody Wed Dec 17 08:52:26 2025 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 98FD928E5FF for ; Thu, 22 May 2025 14:52:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747925580; cv=none; b=tOtCdPnKPZFUGRhJX/TDMqWHIQN0qbE6d0AacMqMQLs09oVbf12+wZEQfWYyEYlJBD38a4/hYN3/D3Ah4nafMfEN3WjiI434cOJmir/be3dkWdSgEFt0KELTQ9ndWu3A7AdRe21My4Lmj9Suh0wxgAVnavjdkPM8lNagXVmyOK0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747925580; c=relaxed/simple; bh=elThI93HwB4PxLZjW2S1nGNED80rFcrhaDTiQgygkCE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=CSH7QPSzcXzx37nb/HgwlKRHJxSjgvcZRD0HmxIL6SNKXeTgBJVGbKPEe4sp0qRC7tnYCSEAfIZ1O79suGpccDuNzXCJ7Y2szvkftL369kNnKHgEzP4r6Kqkee7/MJ9rfaQOvs6VPCzBwJyd1GEVpHmkVFop3g2RIAwu7sk/8Ek= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=Sj7pAaf6; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="Sj7pAaf6" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-43cf680d351so55577185e9.0 for ; Thu, 22 May 2025 07:52:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747925574; x=1748530374; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=GQcMbg+mj75exB6fMqaj4+6mofUOuhQ1ONizqDxy1LQ=; b=Sj7pAaf6CjWXFhuohXHo/iest4HI0rE3o6T+j5or0vQhuf1CWfHunZEBcrhJC4zRYu PmZK5EIjK6Ey1+G5V6OepQ2KichrrD+MUtKKrV6HPQ1UNBXq702OgiHMhetQYWAs6wC2 5ao5z+lsyykvyVq9DgcegaUwEpe37pR/ZA8x7No9VODQZlgIGbhdk//HRleapUk28x3/ qhaXFOW8kYyc2hX/Su5ZwWV4CtJRuFiS5Sm8IxfIPe1mpn4F5bIWF+zmaBsAFdHUSS4y GEDV/pJag4bvsnOLLY/mqGOnU+UijJbjSPUwdZrweMeSiosKy7BcTTMpAimvAmfl84Nh D/Og== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747925574; x=1748530374; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=GQcMbg+mj75exB6fMqaj4+6mofUOuhQ1ONizqDxy1LQ=; b=CynFwQWUGo0Hwj0U6w8pPRFk0gSDEWnBOkJNPlgoUs/4Cv6XFpy4FzNbrlUN3v08hg CJKIYvvi1Mn0G4hRTbu6PJ/Y3mTWXgl0AVr3iILT8yCBca0xGEjOVLD4EDuixJzabOPx TbNT11jX5mDV/mquCQF5mUGnBWb3zjhPzX1mMGY9xm9c1XoOoLXbu1uUyEAaupyDdN7u aPFh+M+I3E4/C9W+612C7LxvjN4eBqAAr379yFLaQOPZGN+9zf3FLUMV0cM9Jg2yZWgG fqnjd8y9etHq9QZV3yiF7pDih7ALr2YL63Ksf5p1iCMFX/W3gE2koRUfkRMh8Nu9fD9q xaUA== X-Forwarded-Encrypted: i=1; AJvYcCXDwfPQF13grc5EPfWuwdEd4VTpzOKDh5TKTGZnA0OVmXThqhCFJoj9H3+cQyhRk8m9wk+QM9bBg7VP2Ps=@vger.kernel.org X-Gm-Message-State: AOJu0YynI4lCvn69OLBT37xXJLmu+Z9Fq4kRJXMVtVzdqtjWwuxxnD3X djXNpwQ7M6t0fm7rURXN+kNvLvKvS+c3JcnwEe58rGnkRtga7dL3v5vF+7LuDE3oxTiP0ukTC1P 8RU2QUPGBXw== X-Gm-Gg: ASbGncv9p6AoPy+Nf7xjshRp+zE1YyHBI3mXSe+uyeX2SbBZ8l5217IDfje1wM3dO5/ SdvAKTEaBFlUkOZELeiL3ict9UIuv/UDgIaNqz/4Q+7N0ABcEfh2BQXEdQZvr9NCGpywQYNIwCA tCCpdWGmozYvCVkmoWiQqAytMuolWmlt89t1Q1c+iXLFGc+2HL5HUy4RVkTQ5Owz/+iiOfsggYJ KCLzSBQr6zbb1Kgryvq7l0uwMwrAXsMkZJCMfxqCOcOKQ2ofcvj+z7ji0uvNQwQbvr2OXa+gYn6 dX0ipFzAhQTBpQga4mub6gv3qhpQ4elNkCYqafpxxj8mD/dcYahGJZkDThBvUTnMSPUtfYs= X-Google-Smtp-Source: AGHT+IFcpjDviXjWNB7+EBIbhpiq2tpPR7sQlo7rFyrWtoBHLAjxGUQNW2PIVbs7fj19J7u5oXlJ7g== X-Received: by 2002:a05:600c:a40a:b0:43b:c592:7e16 with SMTP id 5b1f17b1804b1-442f84c2092mr260241495e9.3.1747925573711; Thu, 22 May 2025 07:52:53 -0700 (PDT) Received: from ho-tower-lan.lan ([37.18.136.128]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-447f78aeb56sm104965555e9.27.2025.05.22.07.52.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 May 2025 07:52:53 -0700 (PDT) From: James Clark Date: Thu, 22 May 2025 15:51:38 +0100 Subject: [PATCH v2 09/14] spi: spi-fsl-dspi: Use DMA for S32G controller in target mode Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250522-james-nxp-spi-v2-9-bea884630cfb@linaro.org> References: <20250522-james-nxp-spi-v2-0-bea884630cfb@linaro.org> In-Reply-To: <20250522-james-nxp-spi-v2-0-bea884630cfb@linaro.org> To: Vladimir Oltean , Mark Brown , Rob Herring , Krzysztof Kozlowski , Matti Vaittinen Cc: Conor Dooley , Frank Li , Chester Lin , Matthias Brugger , Ghennadi Procopciuc , NXP S32 Linux Team , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Chao Fu , Xiubo Li , Lukasz Majewski , linux-spi@vger.kernel.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Vladimir Oltean , Dan Carpenter , Larisa Grigore , Ciprian Marian Costea , James Clark X-Mailer: b4 0.14.0 From: Larisa Grigore Switch to DMA for target mode otherwise the controller is too slow to feed TX FIFO and UNDERFLOW occurs frequently. DMA can work only with 8 and 16 bits per word. 32bits per word is not supported, this is a hardware limitation, so we keep the controller mode in TCFQ mode. Signed-off-by: Larisa Grigore Signed-off-by: Ciprian Marian Costea Signed-off-by: James Clark --- drivers/spi/spi-fsl-dspi.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/drivers/spi/spi-fsl-dspi.c b/drivers/spi/spi-fsl-dspi.c index 24a51267cb4d..db5a2ed66f68 100644 --- a/drivers/spi/spi-fsl-dspi.c +++ b/drivers/spi/spi-fsl-dspi.c @@ -139,6 +139,7 @@ enum { MCF5441X, VF610, S32G, + S32G_TARGET, }; =20 static const struct regmap_range dspi_yes_ranges[] =3D { @@ -183,6 +184,7 @@ static const struct regmap_access_table dspi_volatile_t= able =3D { =20 enum { DSPI_REGMAP, + S32G_DSPI_REGMAP, DSPI_XSPI_REGMAP, S32G_DSPI_XSPI_REGMAP, DSPI_PUSHR, @@ -198,6 +200,15 @@ static const struct regmap_config dspi_regmap_config[]= =3D { .rd_table =3D &dspi_access_table, .wr_table =3D &dspi_access_table, }, + [S32G_DSPI_REGMAP] =3D { + .reg_bits =3D 32, + .val_bits =3D 32, + .reg_stride =3D 4, + .max_register =3D SPI_RXFR4, + .volatile_table =3D &dspi_volatile_table, + .wr_table =3D &s32g_dspi_access_table, + .rd_table =3D &s32g_dspi_access_table, + }, [DSPI_XSPI_REGMAP] =3D { .reg_bits =3D 32, .val_bits =3D 32, @@ -296,6 +307,12 @@ static const struct fsl_dspi_devtype_data devtype_data= [] =3D { .fifo_size =3D 5, .regmap =3D &dspi_regmap_config[S32G_DSPI_XSPI_REGMAP], }, + [S32G_TARGET] =3D { + .trans_mode =3D DSPI_DMA_MODE, + .max_clock_factor =3D 1, + .fifo_size =3D 5, + .regmap =3D &dspi_regmap_config[S32G_DSPI_REGMAP], + }, }; =20 struct fsl_dspi_dma { @@ -351,6 +368,12 @@ struct fsl_dspi { void (*dev_to_host)(struct fsl_dspi *dspi, u32 rxdata); }; =20 +static bool is_s32g_dspi(struct fsl_dspi *data) +{ + return data->devtype_data =3D=3D &devtype_data[S32G] || + data->devtype_data =3D=3D &devtype_data[S32G_TARGET]; +} + static void dspi_native_host_to_dev(struct fsl_dspi *dspi, u32 *txdata) { switch (dspi->oper_word_size) { @@ -1426,6 +1449,9 @@ static int dspi_probe(struct platform_device *pdev) dspi->pushr_tx =3D 0; } =20 + if (spi_controller_is_target(ctlr) && is_s32g_dspi(dspi)) + dspi->devtype_data =3D &devtype_data[S32G_TARGET]; + if (dspi->devtype_data->trans_mode =3D=3D DSPI_XSPI_MODE) ctlr->bits_per_word_mask =3D SPI_BPW_RANGE_MASK(4, 32); else --=20 2.34.1 From nobody Wed Dec 17 08:52:26 2025 Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EBB4728EA51 for ; Thu, 22 May 2025 14:52:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747925579; cv=none; b=r84Mc4fHVjqrNtC+TQkDjGcSeOa3WRMOhcLyGeRlF7APD9YWgNI+Rt1eIhDEFH7mNQnGHbtkljmZ+EqAtcSGMUEyUqmm0uR8A2VM9ApRRRKXg4TWpDTcoxgkBaWo0nH5mwPW1SD8A0hRG88gOE4Ff7rOpnPBYXi2euuSlwatmKU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747925579; c=relaxed/simple; bh=k0PcdAJ0HJ4xwSr8Ni1t6OBhIXBRFHDlIiZHG4Apiiw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DGHaCPgzBCicTBBtHf70GfxUD7yWCU9HCSmXWDoMNXDrqmoSKiUqJ0VN7rF1ZvF11SlBM/KgANCrVMXMqXk+2uo/Cq9BG0to+SXOSrMFbpgpxOdyEAA1QOil/X97nt8xeqeXe5gKECc06nG0OXPioOc4c7PQTYadixVhXJgjzE8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=xEniJUFD; arc=none smtp.client-ip=209.85.221.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="xEniJUFD" Received: by mail-wr1-f47.google.com with SMTP id ffacd0b85a97d-3a4bdee0bf7so610018f8f.1 for ; Thu, 22 May 2025 07:52:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747925575; x=1748530375; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=rLFyEyvP8ZFrDRQwCY+ktHxPM5O5euwpWz07D5k+81M=; b=xEniJUFDXmGi6teLblwVfwo5TaN+v/muwN7FVywq86Vz4XABnHuN80Plj4xyCsMecO E/Jl4gwTKdJJl693OKP8tE76sbUbCn8tzQEMXjIppktCUh0SGbT0MeHowd/bvhKmto1X 0MJ/buiJR4iU6/s9t4rkrcH230R9MrPjmipyMw/uTKeJcV7ebeaeKe9LkHgblio3FvlN veLjLUAbjamzZ1bBk7wYKt99GyMbx4qcI3+JqyqWMetkRDTUA7aAwV81WpZh/aN9v27j 166pgmd5fTDP9xhBjJhUCcosJrAl10FPzmWn89EWhTRcdpVaalNLPP8QhnIUAOhciQlE lylA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747925575; x=1748530375; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rLFyEyvP8ZFrDRQwCY+ktHxPM5O5euwpWz07D5k+81M=; b=EQdVZWreve1eFB2e88beBK+qEF1jv6Rq+EyAXx/ezWdazZo3jqVxZ5beVCUtX0JZwp xN1wH1jwdZ6z68x64KgU+OfvyUrb0FiN8hpfvm4WdkYfBEJX3OaTb2Y8gqFDM6aNYuUP rha32n7erWFCPN9d9bytYNn4mparGFwdByVO3bI9YsdMCIENR/e9MQrhe9T9SIDAm8xA JtIwQBYacEcFMk23CFJVR3mSS2r5fL8HlND4PLApPIRTTcFtqLUS2oPB7wNC5GEn+l2h AVWeeSsY5KSZtgRAupkUOBV/TJ+AGzChVb9c2hpkz7eDUA2qeDCOhX2wZbtJo0le8OMs /fJw== X-Forwarded-Encrypted: i=1; AJvYcCUZXCParo5v87MKVDKLAStq51Lk7LSb4X3nBqOVhTP2Mb9D7gh1mXH50NT/AxZgT1lI/mORaHbYIVb6AVU=@vger.kernel.org X-Gm-Message-State: AOJu0YytEkLVjKf7bSjewU4FCDqtFyT1YFkM4v8UMVAbltxegGhN1AUm /QURM/iO8XjxHfxrfm/zoxpEDvAPw5KN2bcdvSE97s5BUaraGykYClezsWu6n8V6k40= X-Gm-Gg: ASbGncslcA+mQIBWtEBTrtXhGG0iuM1y1I5b0ZzyvlqfEprm5XX39R99qT5XOStjTaI thY4+Ubx4Y4JOiEyBgj1tMQbq7hGkdRVuV7WzIHQc1MVEzGaM1yMmkAaokiCHWFXZ88oh4neJ6/ 6fGhlgNu6Q845BOkqtVIysrpvjO6SAjQTXpImjHsxlghn8EMSTLrRL4OFrKHx2S0YmDQldsU1za 9ytjs11ceTfStdW4cTlt9FVpnSvngPCAgURM/uRQMMMVPU6OMDxRUJyjjkWgzKQHC7o2fCiO6Zo bDBuznUItAG9s1kdkdnYK/0Vw3ZV5y6QZaOkxn/S7adz/d3Pgn5EOamC5v8U X-Google-Smtp-Source: AGHT+IHpujM/0/34jM6P3ZaQZmGH/9lm4oq4PRVyuyvqdp8HN5RGOmpnF0//KC96gVkhdqXMaCEYdg== X-Received: by 2002:a05:6000:1889:b0:3a3:7e01:d2fa with SMTP id ffacd0b85a97d-3a37e01d307mr9061150f8f.28.1747925575135; Thu, 22 May 2025 07:52:55 -0700 (PDT) Received: from ho-tower-lan.lan ([37.18.136.128]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-447f78aeb56sm104965555e9.27.2025.05.22.07.52.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 May 2025 07:52:54 -0700 (PDT) From: James Clark Date: Thu, 22 May 2025 15:51:39 +0100 Subject: [PATCH v2 10/14] spi: spi-fsl-dspi: Reinitialize DSPI regs after resuming for S32G Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250522-james-nxp-spi-v2-10-bea884630cfb@linaro.org> References: <20250522-james-nxp-spi-v2-0-bea884630cfb@linaro.org> In-Reply-To: <20250522-james-nxp-spi-v2-0-bea884630cfb@linaro.org> To: Vladimir Oltean , Mark Brown , Rob Herring , Krzysztof Kozlowski , Matti Vaittinen Cc: Conor Dooley , Frank Li , Chester Lin , Matthias Brugger , Ghennadi Procopciuc , NXP S32 Linux Team , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Chao Fu , Xiubo Li , Lukasz Majewski , linux-spi@vger.kernel.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Vladimir Oltean , Dan Carpenter , Larisa Grigore , James Clark X-Mailer: b4 0.14.0 From: Larisa Grigore After resuming, DSPI registers (MCR and SR) need to be reinitialized for S32G platforms. Signed-off-by: Larisa Grigore Signed-off-by: James Clark --- drivers/spi/spi-fsl-dspi.c | 77 +++++++++++++++++++++++++-----------------= ---- 1 file changed, 42 insertions(+), 35 deletions(-) diff --git a/drivers/spi/spi-fsl-dspi.c b/drivers/spi/spi-fsl-dspi.c index db5a2ed66f68..a3efe1bd3b37 100644 --- a/drivers/spi/spi-fsl-dspi.c +++ b/drivers/spi/spi-fsl-dspi.c @@ -1284,41 +1284,6 @@ static const struct of_device_id fsl_dspi_dt_ids[] = =3D { }; MODULE_DEVICE_TABLE(of, fsl_dspi_dt_ids); =20 -#ifdef CONFIG_PM_SLEEP -static int dspi_suspend(struct device *dev) -{ - struct fsl_dspi *dspi =3D dev_get_drvdata(dev); - - if (dspi->irq) - disable_irq(dspi->irq); - spi_controller_suspend(dspi->ctlr); - clk_disable_unprepare(dspi->clk); - - pinctrl_pm_select_sleep_state(dev); - - return 0; -} - -static int dspi_resume(struct device *dev) -{ - struct fsl_dspi *dspi =3D dev_get_drvdata(dev); - int ret; - - pinctrl_pm_select_default_state(dev); - - ret =3D clk_prepare_enable(dspi->clk); - if (ret) - return ret; - spi_controller_resume(dspi->ctlr); - if (dspi->irq) - enable_irq(dspi->irq); - - return 0; -} -#endif /* CONFIG_PM_SLEEP */ - -static SIMPLE_DEV_PM_OPS(dspi_pm, dspi_suspend, dspi_resume); - static int dspi_init(struct fsl_dspi *dspi) { unsigned int mcr; @@ -1354,6 +1319,48 @@ static int dspi_init(struct fsl_dspi *dspi) return 0; } =20 +#ifdef CONFIG_PM_SLEEP +static int dspi_suspend(struct device *dev) +{ + struct fsl_dspi *dspi =3D dev_get_drvdata(dev); + + if (dspi->irq) + disable_irq(dspi->irq); + spi_controller_suspend(dspi->ctlr); + clk_disable_unprepare(dspi->clk); + + pinctrl_pm_select_sleep_state(dev); + + return 0; +} + +static int dspi_resume(struct device *dev) +{ + struct fsl_dspi *dspi =3D dev_get_drvdata(dev); + int ret; + + pinctrl_pm_select_default_state(dev); + + ret =3D clk_prepare_enable(dspi->clk); + if (ret) + return ret; + spi_controller_resume(dspi->ctlr); + + ret =3D dspi_init(dspi); + if (ret) { + dev_err(dev, "failed to initialize dspi during resume\n"); + return ret; + } + + if (dspi->irq) + enable_irq(dspi->irq); + + return 0; +} +#endif /* CONFIG_PM_SLEEP */ + +static SIMPLE_DEV_PM_OPS(dspi_pm, dspi_suspend, dspi_resume); + static int dspi_target_abort(struct spi_controller *host) { struct fsl_dspi *dspi =3D spi_controller_get_devdata(host); --=20 2.34.1 From nobody Wed Dec 17 08:52:26 2025 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EA25D28ECC2 for ; Thu, 22 May 2025 14:52:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747925580; cv=none; b=YVb190BGRXSApOxz4ngINIgBpS88YSvsOhS83qPw0pIFe/bk9WMn2g++LnwYxB2m2y3Z7xCGJTHSCFUPop0nAQ8TUjOQ8Ty1iX3j8qoHpQgzLLVSihiVAhr7r1bcZ8dLkyeh7kFzViQ/p30lqf89KeU0JePJgqrE+9ZwUvsp8jQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747925580; c=relaxed/simple; bh=/P+b4YGOi1nleKTVzzh5Y6DcchLQUsvvU1yJkq6qFw0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Ie3ppHp3cNuHPdlMTWytGDv8PRvyR48613Q/hXLG4skg8Ro/n8sX2uvWPeQSVGuXvFtZrVi1d0asUTAerlF0nsCDTc8g+gR9aBVGm5f5ETJQWjY/sP9ZtI1CsUIN2dmUdTLpSgjQEeBz7owDWbFY3a/9oh/53Lh1W2ZQ2n9l6rk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=rLZjU4GZ; arc=none smtp.client-ip=209.85.128.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="rLZjU4GZ" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-43cf680d351so55577565e9.0 for ; Thu, 22 May 2025 07:52:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747925577; x=1748530377; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Nr/NDCyDgVLU7UV6iODdNqGZbsP83lb1uZk463tdmVs=; b=rLZjU4GZ7nB4HU0i5Y8o5jR6EEzjytqtGQXH0son65msLophoPKw3GFZnefaXUPqru 7fJ2QJZBv0CfXJsiK40Zz5UUHc05qlEbFuD45LKRx9mNEemKWNTmRcqOvkPJ3mtuJFja l5rWVeiZerX6Ad4Yvlsd510lx1X+QCOtsdapdYTfxVLL99/gJbbKBmdTy8R8T//GhHMO mMeZJ1n/qTaW/KrcEuOyNw1mo41tQ0I45epokojUjGk+bHmCL+FCpHFOMWauUkj+dZML Ydkz3CAPuUsOWmmCdEnbfE5qmVf7E851FnSXQxrA95Vxgy5m24F4Z0dRYfaHZ6snAN3x w4qg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747925577; x=1748530377; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Nr/NDCyDgVLU7UV6iODdNqGZbsP83lb1uZk463tdmVs=; b=GiWumlVDF3kiaC5i4BgLi8VgVQcAWL1Yv7RSo4K2qzGYGMomOKW5kH6aQzrNSI3V1A qKrqabAG0Mt2ky+X4nwrJb9TMmYdSpuohu+lHPOPH1oM8Lydk9NFl/XmTfEDWcsEzZLy VtgNE0IkfoE+Y42ackVtQ5WiFOuV7wYjnbJ1AA9oqLlOvi+RyJcn3BIqqOqtQ/NCtEB5 D7cHAqEU996eAu1xzpTJ8q6WfUHEg23lXLuvWr+VU1bo1hMR9xHCZuryHl1w9YlkZx2U nLedqgQXYB8/6YpyHhEB6rHM6uBegvjfhy0IXHK+xSPAbD0HdNr6K1+P+wHtOQbotxfK E2qA== X-Forwarded-Encrypted: i=1; AJvYcCUcaBYjGpt9yR7LIrDGYoNiMY+VUYPCgKUV9WL3SZC1NpWVd+qd0kv3ppQ7Jch40c5uhZHPYizn7CPXEU8=@vger.kernel.org X-Gm-Message-State: AOJu0YyudQlUb+bYxPpY4tly/21AFM9S81NPpOkbxzpFGeV4InVSHqme oUP5vCG3bid17Prx9rCBr2UgkXOV1zcJxYujnJ6n+x6e7ICpqQWbrKbDFekcrJOEUYg= X-Gm-Gg: ASbGncvChEepjXskPujkkbdAcMskP5+bZkT9P8IC4XXJKmEUpWaZf7ZSb+pYd7qRwLE 6qQeAa24Ym98jobtoocQBEm6umngeVeMqBH9gIoKV/WOjduYQM9L1LsPLLfgcVCitVhSz1O1DBG ECxlb/Ail4mbGg4Uif+1S+ze0Ec0lWOiP2smz3E/nZQJCgKhm3uMEI79ty7mz9vFkJnqvLl0VBQ wGnnmLrYHwaZjOaFjjDIjqDP9pVGLO80mhF4Zi79RKkueGG8tM6m3/kLsDjMWDBi5xi4Fb0RxfB eQk8V/F1tVkV7GD2iD17T8JFDuEnVdT6NiQtW/wfrFM4Uh2TYAcnsw+3uhZNMALbGH3meWo= X-Google-Smtp-Source: AGHT+IG/V3Opgz2PDL+bVOZGX8atJ6mbWrBQT/ugzNjANyQS6gfJjv43GgKxrWWCOwUGCfdzPvI8vg== X-Received: by 2002:a5d:5f8a:0:b0:3a3:6b16:3bb3 with SMTP id ffacd0b85a97d-3a36b163d10mr15401385f8f.3.1747925577440; Thu, 22 May 2025 07:52:57 -0700 (PDT) Received: from ho-tower-lan.lan ([37.18.136.128]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-447f78aeb56sm104965555e9.27.2025.05.22.07.52.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 May 2025 07:52:56 -0700 (PDT) From: James Clark Date: Thu, 22 May 2025 15:51:40 +0100 Subject: [PATCH v2 11/14] spi: spi-fsl-dspi: Enable modified transfer protocol on S32G Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250522-james-nxp-spi-v2-11-bea884630cfb@linaro.org> References: <20250522-james-nxp-spi-v2-0-bea884630cfb@linaro.org> In-Reply-To: <20250522-james-nxp-spi-v2-0-bea884630cfb@linaro.org> To: Vladimir Oltean , Mark Brown , Rob Herring , Krzysztof Kozlowski , Matti Vaittinen Cc: Conor Dooley , Frank Li , Chester Lin , Matthias Brugger , Ghennadi Procopciuc , NXP S32 Linux Team , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Chao Fu , Xiubo Li , Lukasz Majewski , linux-spi@vger.kernel.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Vladimir Oltean , Dan Carpenter , Andra-Teodora Ilie , Bogdan-Gabriel Roman , Larisa Grigore , James Clark X-Mailer: b4 0.14.0 From: Andra-Teodora Ilie S32G supports modified transfer protocol where both host and target devices sample later in the SCK period than in Classic SPI mode to allow the logic to tolerate more delays in device pads and board traces. Set MTFE bit in MCR register for frequencies higher than 25MHz. Signed-off-by: Andra-Teodora Ilie Signed-off-by: Bogdan-Gabriel Roman Signed-off-by: Larisa Grigore Signed-off-by: James Clark --- drivers/spi/spi-fsl-dspi.c | 45 ++++++++++++++++++++++++++++++++++++++++++= --- 1 file changed, 42 insertions(+), 3 deletions(-) diff --git a/drivers/spi/spi-fsl-dspi.c b/drivers/spi/spi-fsl-dspi.c index a3efe1bd3b37..01af641fa757 100644 --- a/drivers/spi/spi-fsl-dspi.c +++ b/drivers/spi/spi-fsl-dspi.c @@ -24,6 +24,7 @@ =20 #define SPI_MCR 0x00 #define SPI_MCR_HOST BIT(31) +#define SPI_MCR_MTFE BIT(26) #define SPI_MCR_PCSIS(x) ((x) << 16) #define SPI_MCR_CLR_TXF BIT(11) #define SPI_MCR_CLR_RXF BIT(10) @@ -37,6 +38,7 @@ =20 #define SPI_CTAR(x) (0x0c + (((x) & GENMASK(2, 0)) * 4)) #define SPI_CTAR_FMSZ(x) (((x) << 27) & GENMASK(30, 27)) +#define SPI_CTAR_DBR BIT(31) #define SPI_CTAR_CPOL BIT(26) #define SPI_CTAR_CPHA BIT(25) #define SPI_CTAR_LSBFE BIT(24) @@ -111,6 +113,8 @@ =20 #define DMA_COMPLETION_TIMEOUT msecs_to_jiffies(3000) =20 +#define SPI_25MHZ 25000000 + struct chip_data { u32 ctar_val; }; @@ -346,6 +350,7 @@ struct fsl_dspi { const void *tx; void *rx; u16 tx_cmd; + bool mtf_enabled; const struct fsl_dspi_devtype_data *devtype_data; =20 struct completion xfer_done; @@ -722,7 +727,7 @@ static void dspi_release_dma(struct fsl_dspi *dspi) } =20 static void hz_to_spi_baud(char *pbr, char *br, int speed_hz, - unsigned long clkrate) + unsigned long clkrate, bool mtf_enabled) { /* Valid baud rate pre-scaler values */ int pbr_tbl[4] =3D {2, 3, 5, 7}; @@ -739,7 +744,13 @@ static void hz_to_spi_baud(char *pbr, char *br, int sp= eed_hz, =20 for (i =3D 0; i < ARRAY_SIZE(brs); i++) for (j =3D 0; j < ARRAY_SIZE(pbr_tbl); j++) { - scale =3D brs[i] * pbr_tbl[j]; + if (mtf_enabled) { + /* In MTF mode DBR=3D1 so frequency is doubled */ + scale =3D (brs[i] * pbr_tbl[j]) / 2; + } else { + scale =3D brs[i] * pbr_tbl[j]; + } + if (scale >=3D scale_needed) { if (scale < minscale) { minscale =3D scale; @@ -1146,6 +1157,20 @@ static int dspi_transfer_one_message(struct spi_cont= roller *ctlr, return status; } =20 +static int dspi_set_mtf(struct fsl_dspi *dspi) +{ + if (spi_controller_is_target(dspi->ctlr)) + return 0; + + if (dspi->mtf_enabled) + regmap_update_bits(dspi->regmap, SPI_MCR, SPI_MCR_MTFE, + SPI_MCR_MTFE); + else + regmap_update_bits(dspi->regmap, SPI_MCR, SPI_MCR_MTFE, 0); + + return 0; +} + static int dspi_setup(struct spi_device *spi) { struct fsl_dspi *dspi =3D spi_controller_get_devdata(spi->controller); @@ -1204,7 +1229,16 @@ static int dspi_setup(struct spi_device *spi) cs_sck_delay, sck_cs_delay); =20 clkrate =3D clk_get_rate(dspi->clk); - hz_to_spi_baud(&pbr, &br, spi->max_speed_hz, clkrate); + + if (is_s32g_dspi(dspi) && spi->max_speed_hz > SPI_25MHZ) + dspi->mtf_enabled =3D true; + else + dspi->mtf_enabled =3D false; + + dspi_set_mtf(dspi); + + hz_to_spi_baud(&pbr, &br, spi->max_speed_hz, clkrate, + dspi->mtf_enabled); =20 /* Set PCS to SCK delay scale values */ ns_delay_scale(&pcssck, &cssck, cs_sck_delay, clkrate); @@ -1226,6 +1260,9 @@ static int dspi_setup(struct spi_device *spi) SPI_CTAR_PBR(pbr) | SPI_CTAR_BR(br); =20 + if (dspi->mtf_enabled) + chip->ctar_val |=3D SPI_CTAR_DBR; + if (spi->mode & SPI_LSB_FIRST) chip->ctar_val |=3D SPI_CTAR_LSBFE; } @@ -1352,6 +1389,8 @@ static int dspi_resume(struct device *dev) return ret; } =20 + dspi_set_mtf(dspi); + if (dspi->irq) enable_irq(dspi->irq); =20 --=20 2.34.1 From nobody Wed Dec 17 08:52:26 2025 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B154F28ECDA for ; Thu, 22 May 2025 14:53:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747925582; cv=none; b=M4453vYmFhrE0PwWJ1MksH5JTIFALJEaZ2ojCXTRL2PPMarSKd72qVfxG99Weze+KlEExw8P1Ckc5VmpdfOJ2IMSZ1upZBn6C6dIpHpEES6dwHrP8VpswvEVcuUgYV1ez/Y2wc6AL6JKI/rPwt/Alii3VunxVhzS/AFX/F2b7YE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747925582; c=relaxed/simple; bh=6rY5jl63nY3/JfWeYRv5XBTxDAeF2jM1LlH7p8EvP6g=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Khf+H18vdfDisU4Qk1MSHoTiVcd0NceMKC120GGLeI58eoafkktVpEOi6N13g7SLDaJoHhIa68IbRPbC98hlTHhCFIFdsoSPAxcQgeAGIGhkt/7SjQ9kS/A/MPS4SPgUUB7QGIiWzQaR+JLPgLyDREQNQAFROpypw8inVL9LiMo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=zdEcrcjL; arc=none smtp.client-ip=209.85.128.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="zdEcrcjL" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-44b1f5b917fso1397455e9.3 for ; Thu, 22 May 2025 07:53:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747925579; x=1748530379; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=6fk8IPoQziwfYwbuUI7UFNnBkSt01Uwd7OzuOBIvOZw=; b=zdEcrcjLIDVb1q2E0q5SEvkG75uin9EpaxQffYUo1UvE6WszSXJnuyAilAS3F+PJW+ D0ux3yqnMfWTQ94SXrWtOkqEx5XF0+0dSuMd2tUV/K7Xx72beIrJsJLp1cisWLP0sm4M GxUaXoHyBOTP+tSltvtXtbkvs7MuX5kco6zn2U7WkUvl8QULsBP9BDepDxGjalNcmXmZ AM2RGlIu4llm0FNl0GUsjm1j/o4jK9XzJ9CF8jEV44u3F5BSuqb73lUqlVIdwpooSfam yUw+OPFKhsARS1nv0feJ0EWcda7mh4aglWHS5jrSuS7yh7qD1g2h6Sw68Xu7gzlSE1BF vnzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747925579; x=1748530379; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6fk8IPoQziwfYwbuUI7UFNnBkSt01Uwd7OzuOBIvOZw=; b=V88uKcV9bAXIoJBjOd1p3I8xqNh5C5vB0wD25/JfmL5YNjp8yLhayfN17++UQeFpi4 k546sWDQGHGzFSbXthgYB88lhcKsoMkWSlBSN+WbXFYIHUPeECRTQ9xD5wVhoQHVJmG9 T+0v3eAjShfdxLjJCV2iHnhiHhL+9a7RakwoHs3+Rkc855BGcljut5crfgeHO7pDuRle l6tKU/M6nv9iA5FmeBMYwVIk2Z5x+sA0dCiiq7J6lhn7hkQDvo1vcebZpR+bR87U3rUK Xju4VqjSH2pWLL/wGZBFU4HK76j69hcy3k8xoAm0/JwLkl4+Eyo3+sfJnbf8/QcwIwJV E1RQ== X-Forwarded-Encrypted: i=1; AJvYcCW7QEvYfQt17GYkITS2ERhQBbsWfnWsVd6NSkzKwEypTAbe4e5BVhIqBzwFVsI9hAeHtJfnwBbNaQZGqAQ=@vger.kernel.org X-Gm-Message-State: AOJu0YyP3na1F1goCy7bF//KaovJNzuwCELSV8rwI3+d0fNQxe3OLlQm DwfSAoGvXGioOUQaednwzrlBlR2rJbzac7dhVbov1lOvr+CMQ+OWVkXAClVSZemg47s= X-Gm-Gg: ASbGncusRuNuyO0I/9cxyMZ6yP9h01Hu/+erjXby9Zuc3lzXO0qR8tc1okFQCH6+Tur LZgPwdO+KiZbleqEo9Sq+NpjkNlRZ6Wqz1cleeEv30fDBvHQKHGVTRFGALeRfkh7ApEu+B2Kc8C ib04+wzJcVuzk7EEMdzbvrKYtu2Qfr8qH3HBJml0TpGd+53mU/PKjd5fOkUSTYXe7fPRKgjBtku EjHE+vxeTJrptI7hARk6SFG/0nQc7KfYjHrj8CmayKMjfCqFw/OxLhYezLTvYPwF86tt2KgnXZG IBP3aRdPpy9leXdwi8OiofaMM1qRRc8XJqHrKqlPVjjr/cUwExCqr/ydpIrn X-Google-Smtp-Source: AGHT+IGFpmPzY89cA+sps7xchhXwbvS4hLuhbFCBxUqce+aMcHX4nBXLpUwuU9xg1nYZbcfMggR6Bw== X-Received: by 2002:a05:600c:530c:b0:442:f4a3:8c5c with SMTP id 5b1f17b1804b1-442fd6272f8mr316774415e9.10.1747925578910; Thu, 22 May 2025 07:52:58 -0700 (PDT) Received: from ho-tower-lan.lan ([37.18.136.128]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-447f78aeb56sm104965555e9.27.2025.05.22.07.52.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 May 2025 07:52:58 -0700 (PDT) From: James Clark Date: Thu, 22 May 2025 15:51:41 +0100 Subject: [PATCH v2 12/14] dt-bindings: spi: dspi: Add S32G support Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250522-james-nxp-spi-v2-12-bea884630cfb@linaro.org> References: <20250522-james-nxp-spi-v2-0-bea884630cfb@linaro.org> In-Reply-To: <20250522-james-nxp-spi-v2-0-bea884630cfb@linaro.org> To: Vladimir Oltean , Mark Brown , Rob Herring , Krzysztof Kozlowski , Matti Vaittinen Cc: Conor Dooley , Frank Li , Chester Lin , Matthias Brugger , Ghennadi Procopciuc , NXP S32 Linux Team , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Chao Fu , Xiubo Li , Lukasz Majewski , linux-spi@vger.kernel.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Vladimir Oltean , Dan Carpenter , Ciprian Marian Costea , Krzysztof Kozlowski , Larisa Grigore , James Clark X-Mailer: b4 0.14.0 From: Ciprian Marian Costea Document S32G compatible strings. 's32g2' and 's32g3' use the same driver so 's32g2' must follow 's32g3'. The SPI controller supports target mode when the "spi-slave" flag is used so add an example. Reviewed-by: Krzysztof Kozlowski Signed-off-by: Ciprian Marian Costea Signed-off-by: Larisa Grigore Signed-off-by: James Clark --- Documentation/devicetree/bindings/spi/fsl,dspi.yaml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Documentation/devicetree/bindings/spi/fsl,dspi.yaml b/Document= ation/devicetree/bindings/spi/fsl,dspi.yaml index 7ca8fceda717..63f4b779a255 100644 --- a/Documentation/devicetree/bindings/spi/fsl,dspi.yaml +++ b/Documentation/devicetree/bindings/spi/fsl,dspi.yaml @@ -23,6 +23,7 @@ properties: - fsl,ls2080a-dspi - fsl,ls2085a-dspi - fsl,lx2160a-dspi + - nxp,s32g2-dspi - items: - enum: - fsl,ls1012a-dspi @@ -37,6 +38,9 @@ properties: - items: - const: fsl,lx2160a-dspi - const: fsl,ls2085a-dspi + - items: + - const: nxp,s32g3-dspi + - const: nxp,s32g2-dspi =20 reg: maxItems: 1 @@ -114,3 +118,17 @@ examples: spi-cs-hold-delay-ns =3D <50>; }; }; + # S32G3 in target mode + - | + spi@401d4000 { + compatible =3D "nxp,s32g3-dspi", "nxp,s32g2-dspi"; + reg =3D <0x401d4000 0x1000>; + interrupts =3D ; + clocks =3D <&clks 26>; + clock-names =3D "dspi"; + spi-num-chipselects =3D <8>; + bus-num =3D <0>; + dmas =3D <&edma0 0 7>, <&edma0 0 8>; + dma-names =3D "tx", "rx"; + spi-slave; + }; --=20 2.34.1 From nobody Wed Dec 17 08:52:26 2025 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4A14828D8E3 for ; Thu, 22 May 2025 14:53:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747925584; cv=none; b=LUZIoeSP9GRs5ydsuQ0g13A6GokPz1fiIQsOtWFmJZQyxdD40+nyhsrL0/3eWgXE7VvmSlCMG5nk+LGjYJZKzw3Al30lkwiz9vTWNIINBKNRQHc13OrojQFrw9Fh0znPpFJ5fET7BqgqX9S9whqxEz4nG9k1LXbLXzKHlfhNf/s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747925584; c=relaxed/simple; bh=92hGTnTOgw+qrBuRhXzTVXcHw+H/usL3iGRcHSlTmfU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=JIGlWrRUJmjPKeHSAViLXWdIMbkk5ZY94Sh0uHp0SE0y7cLOcbWLwQ8SnnBYhIxOscB3RhhdO27M372QLUBnIsBG5gi/eCToYK8tvAWMYgL1f9rSbC9zIkNeX8ECjEKOaBNiPVFlK1R9p2s7YEaSpVG0NpoMkRzktzIxpN9MJw0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=o6diGKi8; arc=none smtp.client-ip=209.85.128.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="o6diGKi8" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-442f4a3a4d6so52998945e9.0 for ; Thu, 22 May 2025 07:53:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747925580; x=1748530380; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=fJIIfru2scNsoUvLKp5rkkh2CkzNDRkWDJuYnMI9SSw=; b=o6diGKi8Ues8vrSxkxvVypH7D4tr/deJt06TtSd2ZHOjkRdYI1BWAKixLvKADAWWr3 ddELtzXA3XVEknj94GYevKcK7DITSaT9+8Oxdy6WlAUSUp+EcFozYc6ZHUFf2gd5cwus 0tBZBVyf42NGQbNvQX74IJGb2aSrTU6xl1uT+9KqVO9IqOCTmPReuUdljdUnAomHm3+4 2OfTp7vB/rQKYSofaGe+XRzPvse3wVwnc79zKCx8ckrpZ2IX+QMs4kkZHQy9EtXM60Wv 1ZUh/5WmkSMEJt2Wl1r+d5m9DGuioR6Y7AUsxFZTSJhzmTXCKFQliBT0zToO2EYIAH/g OkXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747925580; x=1748530380; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fJIIfru2scNsoUvLKp5rkkh2CkzNDRkWDJuYnMI9SSw=; b=sv/INQ7H1gLPzIFN3t9yzFZavMv30jt5fRTW9G640T0OyUORa7RfpW+CMA73vwAh/e eNQEZ38SjMxqmkG2FBeVDkEhBgplWYur99AnJCJu7KNeUxxWtRxhZ35S3rraxnlWXP2/ 7FCDGV9REfkX4w8jOYqnInttk92BIs6t4YzTXDGiifdlQ0HZPLQMrr+w9vb6xv+m/OE9 SDlFvNLJZXq0KbSChwTw8TTD+AixZCmrGBHR/rCzi8DyPziFTC9gWvrZ63VBUbUkAP8R 3YlpLSXUOfD7i05zixyR5RLUcWe6iUIlnUOQOF7Sc2NHG4XUaA4Yj2uU/VYjO8CaqhQi qbzg== X-Forwarded-Encrypted: i=1; AJvYcCUrEhfrhlGbkZMIsU16UT5AbsNSWXzSrQtgrdcagDATl5fyjdWfe9OGdKBM9F6E/mts+r3axVA5nRLUw5A=@vger.kernel.org X-Gm-Message-State: AOJu0YwgmxYgmPnUXWPYqXikj4g1T3nDfh1H81eeOPgyxAKDcuRFKiZn SXuqFYzWC2BzNYT8ckfnPbNdFepQLiMNrPrBdq9QQyOJ3cx50npOpAUnTlb1F5LYL80= X-Gm-Gg: ASbGncurB69nru5+fEofd6KfZZpkp3Sjni2M1NWIDSX+yLVXvH6g24AKLoU+c3oV55Q hOByfVjXb2BRAh+vSTeleDN0K/RXkupeprQKwTpoukN3txlqwyYJe0RlrApidKYpH1VlHKg9qcE vWQ40Z8cQdb2+DjU4bZpmBNDWGJXmQW5syk5/zmqBr7orULGjwED9RiNJdN+GqDRcj8lyA8iCan XQP61NabsBGLe1o4m23iP7GlQCOG7zEGR/kykOivJ/H11S/4QKRX+QCkbIs89jHiUIqPW7xkS2o hJJDlpQvmQ+jj2msfxRHmXqHXAo6wfhgCcCqmkGqqKNzhIl8ay2gPZ0nUAEA X-Google-Smtp-Source: AGHT+IGKSX/g08qT9uRPihxiVfgN5hqQC7JQm68hkcjFhtYvodzbfGfpy0Z0MOE5bK4aqE+Du9TaVA== X-Received: by 2002:a05:600c:46c7:b0:439:4b23:9e8e with SMTP id 5b1f17b1804b1-442fd93d0a1mr262843345e9.3.1747925580466; Thu, 22 May 2025 07:53:00 -0700 (PDT) Received: from ho-tower-lan.lan ([37.18.136.128]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-447f78aeb56sm104965555e9.27.2025.05.22.07.52.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 May 2025 07:53:00 -0700 (PDT) From: James Clark Date: Thu, 22 May 2025 15:51:42 +0100 Subject: [PATCH v2 13/14] spi: spi-fsl-dspi: Enable support for S32G platforms Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250522-james-nxp-spi-v2-13-bea884630cfb@linaro.org> References: <20250522-james-nxp-spi-v2-0-bea884630cfb@linaro.org> In-Reply-To: <20250522-james-nxp-spi-v2-0-bea884630cfb@linaro.org> To: Vladimir Oltean , Mark Brown , Rob Herring , Krzysztof Kozlowski , Matti Vaittinen Cc: Conor Dooley , Frank Li , Chester Lin , Matthias Brugger , Ghennadi Procopciuc , NXP S32 Linux Team , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Chao Fu , Xiubo Li , Lukasz Majewski , linux-spi@vger.kernel.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Vladimir Oltean , Dan Carpenter , Ciprian Marian Costea , Stoica Cosmin-Stefan , Dan Nica , Larisa Grigore , Stefan-Gabriel Mirea , James Clark X-Mailer: b4 0.14.0 From: Ciprian Marian Costea Add compatible for S32G platforms, allowing DSPI to be used. Add a depends for ARCH_NXP which can replace LAYERSCAPE and also includes the new ARCH_S32 for S32G. Similarly, ARCH_MXC can replace SOC_VF610 || SOC_LS1021A which should avoid updating this for every new sub-platform in the future. Signed-off-by: Ciprian Marian Costea Signed-off-by: Stoica Cosmin-Stefan Signed-off-by: Dan Nica Signed-off-by: Larisa Grigore Signed-off-by: Stefan-Gabriel Mirea Signed-off-by: James Clark --- drivers/spi/Kconfig | 4 ++-- drivers/spi/spi-fsl-dspi.c | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig index ed38f6d41f47..ff26be07226b 100644 --- a/drivers/spi/Kconfig +++ b/drivers/spi/Kconfig @@ -647,10 +647,10 @@ config SPI_FSL_SPI config SPI_FSL_DSPI tristate "Freescale DSPI controller" select REGMAP_MMIO - depends on SOC_VF610 || SOC_LS1021A || ARCH_LAYERSCAPE || M5441x || COMPI= LE_TEST + depends on ARCH_MXC || ARCH_NXP || M54541x || COMPILE_TEST help This enables support for the Freescale DSPI controller in master - mode. VF610, LS1021A and ColdFire platforms uses the controller. + mode. S32, VF610, LS1021A and ColdFire platforms uses the controller. =20 config SPI_FSL_ESPI tristate "Freescale eSPI controller" diff --git a/drivers/spi/spi-fsl-dspi.c b/drivers/spi/spi-fsl-dspi.c index 01af641fa757..04c88d090c4d 100644 --- a/drivers/spi/spi-fsl-dspi.c +++ b/drivers/spi/spi-fsl-dspi.c @@ -1316,6 +1316,9 @@ static const struct of_device_id fsl_dspi_dt_ids[] = =3D { }, { .compatible =3D "fsl,lx2160a-dspi", .data =3D &devtype_data[LX2160A], + }, { + .compatible =3D "nxp,s32g2-dspi", + .data =3D &devtype_data[S32G], }, { /* sentinel */ } }; --=20 2.34.1 From nobody Wed Dec 17 08:52:26 2025 Received: from mail-wm1-f65.google.com (mail-wm1-f65.google.com [209.85.128.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CFA1328F933 for ; Thu, 22 May 2025 14:53:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.65 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747925586; cv=none; b=qJXQN3hDRLRH85ZmvZJuO6q0sUdoRzgoopvbNs3agdLp3mUSOcS2dc9nG3pVMAMTdSlaGoyEDly6ZQrH/XN4JfkxWsrVB+fBcIFE8262/ebqty8VB53bZ2k1I4N+lIvjlPkQvl9AW3X0XUTngRBeC4np7qrvXb4hyQlUeq86nN8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747925586; c=relaxed/simple; bh=voHIdnek2rVWq11x4dHxBsrRBa2u2uSDVw8eZR/HomA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=d2OV8wa1XJhQpB38NxIsJzM5sZVo02MlwrB4OGWJSpdwT8Ny4LlzcM/UexS0LTJzPVTCMNMqdDFEucAVj067sdkigZfl04fdve4A9FdzUcIaZZLYUO2OcUJairQZTKFWpBKCOXW1YRfWkYqBl0nS6420pXFeNYs3+EA9NKbWGMA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=D5ajLTTK; arc=none smtp.client-ip=209.85.128.65 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="D5ajLTTK" Received: by mail-wm1-f65.google.com with SMTP id 5b1f17b1804b1-442f5b3c710so67557355e9.1 for ; Thu, 22 May 2025 07:53:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747925582; x=1748530382; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=WYaZ4ifiuCk5/DWThGzMkIsPWpqlx/A/4VaIeK3abLc=; b=D5ajLTTKu8QEqrtLRO6VOCD8MIN5KJau9dhvjrtmEMucEh1BMlinC1U5+KngRyZjNX vU6Y83X/9lCUN3Pi+K16aYjp8zS1Fd+taddD6iJn97SCIs1c8h7OfiQd/8LwWrD+id40 NiQTbaKJMx/r3UT3HxPimfac+ws3btuzcDDz4cMeiDS/J8lCIFnF5BArOIsgN0XUT8kM eDpf3UKp1tF/mbyz2GXOhTLCUvde12laoL8bC8TBEQvcMp+atNGpPEhF0jm3/CARVBnp 0gWXVzqe0YazQq9bRggpv6XSoqwacOXsb7+hQHapxyvizoWTV7tNaY+IROLAJ0KHAVpj YSbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747925582; x=1748530382; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WYaZ4ifiuCk5/DWThGzMkIsPWpqlx/A/4VaIeK3abLc=; b=ltzY1mB97Am7Udt7/2Bau4wwUPqRlVKfdxC7JHDMJxDRgQVrZLvWfGSy85OeE7l/WH 0PNgU+Se+4RtRtb7lBUSyq8DMqOzbm05niah0o073zPngvUGSZVhtRCJSr0y00oa0nW4 Hu/BW83zdiBL6aueBrVFO3crHuBSHcLzpZmdC8YnW6iLTYL5W+w7jroi8VZGZMXyUBZ6 Vtb+jFZTJAqb+Ex8yxulPaL8uUVNmFc7FDCYBqHyIL50t7rT3NTpT1fzu0pI49SfpCxN XAU9T7lcBMJHkiDYjGVzJKwx6/hI0oBAwuTdGl85CY7sEsZJcGkxrfzpvZUX/z1EyQPm I1qQ== X-Forwarded-Encrypted: i=1; AJvYcCVSq3hZRDCeyzxDF+72TdsgAWC7mEYIj1nt/0WvK2L6cUzKMVmRMolYKDJEaeZ7810kNOvcwnEOCjVLhP0=@vger.kernel.org X-Gm-Message-State: AOJu0YwdhkQDIYuJlavpJX3CfgqQtMhjYfS3kMWHIsTPgRdA1uk7mgzA 8/Six48gA0k6PYuoCuH+/6mz31cAXe66UylhPp4FDBqtI1TIobHoNMZU1DjOecqrUIo= X-Gm-Gg: ASbGncvUHEh6wJiX5Pv2qYtGCbkQg2H0o7fz32EZ4wtLnL7N6nhIZcyBPoBzJbloAXf 4ZDsAo2tJ8LEnX9ArbWbR1+robUGvw8GZqVoGrh7Ezjpmsu5j4xc7VxqeEfP2uP6QgZKR9n7rfK hIC6p5ds6JuX7htlKtQ1TaOYybeZYbzmuuKg315Yr0XZiFSSNPWtZDEz3/cEiPTW+OT0YhI8zYK X24JCF7hIysY8GtmlFx2h8XSr7Bj514+dlG59iJuuLwQgidKp33bYEPuVaaSDCM2MMFVfX9nlxt ftBcXCD8NXna+zf6WMMQOyM6An09EwLjBICUqwPfXQ2WwM7QQ1CMqxQ1EIw1 X-Google-Smtp-Source: AGHT+IHCGO08iUjDoKaqKd1XsFoF23FK31du7ZihSX97aKyIlXUv+uhNYjl/lS+O32YNy8OUI/RSbg== X-Received: by 2002:a05:600c:4f42:b0:442:f4d4:522 with SMTP id 5b1f17b1804b1-442fd60a5bemr233790665e9.5.1747925582001; Thu, 22 May 2025 07:53:02 -0700 (PDT) Received: from ho-tower-lan.lan ([37.18.136.128]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-447f78aeb56sm104965555e9.27.2025.05.22.07.53.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 May 2025 07:53:01 -0700 (PDT) From: James Clark Date: Thu, 22 May 2025 15:51:43 +0100 Subject: [PATCH v2 14/14] arm64: dts: Add DSPI entries for S32G platforms Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250522-james-nxp-spi-v2-14-bea884630cfb@linaro.org> References: <20250522-james-nxp-spi-v2-0-bea884630cfb@linaro.org> In-Reply-To: <20250522-james-nxp-spi-v2-0-bea884630cfb@linaro.org> To: Vladimir Oltean , Mark Brown , Rob Herring , Krzysztof Kozlowski , Matti Vaittinen Cc: Conor Dooley , Frank Li , Chester Lin , Matthias Brugger , Ghennadi Procopciuc , NXP S32 Linux Team , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Chao Fu , Xiubo Li , Lukasz Majewski , linux-spi@vger.kernel.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Vladimir Oltean , Dan Carpenter , Larisa Grigore , "Radu Pirea (NXP OSS)" , Larisa Grigore , James Clark X-Mailer: b4 0.14.0 From: Larisa Grigore S32G3 and S32G2 have the same 6 SPI devices, add the DT entries. Devices are all the same except spi0 has 8 chip selects instead of 5. Clock settings for the chip rely on ATF Firmware [1]. [1]: https://github.com/nxp-auto-linux/arm-trusted-firmware Co-developed-by: Radu Pirea (NXP OSS) Signed-off-by: Radu Pirea (NXP OSS) Signed-off-by: Larisa Grigore Signed-off-by: James Clark --- arch/arm64/boot/dts/freescale/s32g2.dtsi | 78 +++++++++++++++++++++= ++ arch/arm64/boot/dts/freescale/s32g3.dtsi | 78 +++++++++++++++++++++= ++ arch/arm64/boot/dts/freescale/s32gxxxa-evb.dtsi | 83 +++++++++++++++++++++= ++++ arch/arm64/boot/dts/freescale/s32gxxxa-rdb.dtsi | 83 +++++++++++++++++++++= ++++ 4 files changed, 322 insertions(+) diff --git a/arch/arm64/boot/dts/freescale/s32g2.dtsi b/arch/arm64/boot/dts= /freescale/s32g2.dtsi index ea1456d361a3..68848575bf81 100644 --- a/arch/arm64/boot/dts/freescale/s32g2.dtsi +++ b/arch/arm64/boot/dts/freescale/s32g2.dtsi @@ -376,6 +376,45 @@ uart1: serial@401cc000 { status =3D "disabled"; }; =20 + spi0: spi@401d4000 { + compatible =3D "nxp,s32g2-dspi"; + reg =3D <0x401d4000 0x1000>; + interrupts =3D ; + clocks =3D <&clks 26>; + clock-names =3D "dspi"; + spi-num-chipselects =3D <8>; + bus-num =3D <0>; + dmas =3D <&edma0 0 7>, <&edma0 0 8>; + dma-names =3D "tx", "rx"; + status =3D "disabled"; + }; + + spi1: spi@401d8000 { + compatible =3D "nxp,s32g2-dspi"; + reg =3D <0x401d8000 0x1000>; + interrupts =3D ; + clocks =3D <&clks 26>; + clock-names =3D "dspi"; + spi-num-chipselects =3D <5>; + bus-num =3D <1>; + dmas =3D <&edma0 0 10>, <&edma0 0 11>; + dma-names =3D "tx", "rx"; + status =3D "disabled"; + }; + + spi2: spi@401dc000 { + compatible =3D "nxp,s32g2-dspi"; + reg =3D <0x401dc000 0x1000>; + interrupts =3D ; + clocks =3D <&clks 26>; + clock-names =3D "dspi"; + spi-num-chipselects =3D <5>; + bus-num =3D <2>; + dmas =3D <&edma0 0 13>, <&edma0 0 14>; + dma-names =3D "tx", "rx"; + status =3D "disabled"; + }; + i2c0: i2c@401e4000 { compatible =3D "nxp,s32g2-i2c"; reg =3D <0x401e4000 0x1000>; @@ -460,6 +499,45 @@ uart2: serial@402bc000 { status =3D "disabled"; }; =20 + spi3: spi@402c8000 { + compatible =3D "nxp,s32g2-dspi"; + reg =3D <0x402c8000 0x1000>; + interrupts =3D ; + clocks =3D <&clks 26>; + clock-names =3D "dspi"; + spi-num-chipselects =3D <5>; + bus-num =3D <3>; + dmas =3D <&edma0 1 7>, <&edma0 1 8>; + dma-names =3D "tx", "rx"; + status =3D "disabled"; + }; + + spi4: spi@402cc000 { + compatible =3D "nxp,s32g2-dspi"; + reg =3D <0x402cc000 0x1000>; + interrupts =3D ; + clocks =3D <&clks 26>; + clock-names =3D "dspi"; + spi-num-chipselects =3D <5>; + bus-num =3D <4>; + dmas =3D <&edma0 1 10>, <&edma0 1 11>; + dma-names =3D "tx", "rx"; + status =3D "disabled"; + }; + + spi5: spi@402d0000 { + compatible =3D "nxp,s32g2-dspi"; + reg =3D <0x402d0000 0x1000>; + interrupts =3D ; + clocks =3D <&clks 26>; + clock-names =3D "dspi"; + spi-num-chipselects =3D <5>; + bus-num =3D <5>; + dmas =3D <&edma0 1 13>, <&edma0 1 14>; + dma-names =3D "tx", "rx"; + status =3D "disabled"; + }; + i2c3: i2c@402d8000 { compatible =3D "nxp,s32g2-i2c"; reg =3D <0x402d8000 0x1000>; diff --git a/arch/arm64/boot/dts/freescale/s32g3.dtsi b/arch/arm64/boot/dts= /freescale/s32g3.dtsi index 991dbfbfa203..4f883b1a50ad 100644 --- a/arch/arm64/boot/dts/freescale/s32g3.dtsi +++ b/arch/arm64/boot/dts/freescale/s32g3.dtsi @@ -435,6 +435,45 @@ uart1: serial@401cc000 { status =3D "disabled"; }; =20 + spi0: spi@401d4000 { + compatible =3D "nxp,s32g3-dspi", "nxp,s32g2-dspi"; + reg =3D <0x401d4000 0x1000>; + interrupts =3D ; + clocks =3D <&clks 26>; + clock-names =3D "dspi"; + spi-num-chipselects =3D <8>; + bus-num =3D <0>; + dmas =3D <&edma0 0 7>, <&edma0 0 8>; + dma-names =3D "tx", "rx"; + status =3D "disabled"; + }; + + spi1: spi@401d8000 { + compatible =3D "nxp,s32g3-dspi", "nxp,s32g2-dspi"; + reg =3D <0x401d8000 0x1000>; + interrupts =3D ; + clocks =3D <&clks 26>; + clock-names =3D "dspi"; + spi-num-chipselects =3D <5>; + bus-num =3D <1>; + dmas =3D <&edma0 0 10>, <&edma0 0 11>; + dma-names =3D "tx", "rx"; + status =3D "disabled"; + }; + + spi2: spi@401dc000 { + compatible =3D "nxp,s32g3-dspi", "nxp,s32g2-dspi"; + reg =3D <0x401dc000 0x1000>; + interrupts =3D ; + clocks =3D <&clks 26>; + clock-names =3D "dspi"; + spi-num-chipselects =3D <5>; + bus-num =3D <2>; + dmas =3D <&edma0 0 13>, <&edma0 0 14>; + dma-names =3D "tx", "rx"; + status =3D "disabled"; + }; + i2c0: i2c@401e4000 { compatible =3D "nxp,s32g3-i2c", "nxp,s32g2-i2c"; @@ -524,6 +563,45 @@ uart2: serial@402bc000 { status =3D "disabled"; }; =20 + spi3: spi@402c8000 { + compatible =3D "nxp,s32g3-dspi", "nxp,s32g2-dspi"; + reg =3D <0x402c8000 0x1000>; + interrupts =3D ; + clocks =3D <&clks 26>; + clock-names =3D "dspi"; + spi-num-chipselects =3D <5>; + bus-num =3D <3>; + dmas =3D <&edma0 1 7>, <&edma0 1 8>; + dma-names =3D "tx", "rx"; + status =3D "disabled"; + }; + + spi4: spi@402cc000 { + compatible =3D "nxp,s32g3-dspi", "nxp,s32g2-dspi"; + reg =3D <0x402cc000 0x1000>; + interrupts =3D ; + clocks =3D <&clks 26>; + clock-names =3D "dspi"; + spi-num-chipselects =3D <5>; + bus-num =3D <4>; + dmas =3D <&edma0 1 10>, <&edma0 1 11>; + dma-names =3D "tx", "rx"; + status =3D "disabled"; + }; + + spi5: spi@402d0000 { + compatible =3D "nxp,s32g3-dspi", "nxp,s32g2-dspi"; + reg =3D <0x402d0000 0x1000>; + interrupts =3D ; + clocks =3D <&clks 26>; + clock-names =3D "dspi"; + spi-num-chipselects =3D <5>; + bus-num =3D <5>; + dmas =3D <&edma0 1 13>, <&edma0 1 14>; + dma-names =3D "tx", "rx"; + status =3D "disabled"; + }; + i2c3: i2c@402d8000 { compatible =3D "nxp,s32g3-i2c", "nxp,s32g2-i2c"; diff --git a/arch/arm64/boot/dts/freescale/s32gxxxa-evb.dtsi b/arch/arm64/b= oot/dts/freescale/s32gxxxa-evb.dtsi index d26af0fb8be7..d8bf734aa267 100644 --- a/arch/arm64/boot/dts/freescale/s32gxxxa-evb.dtsi +++ b/arch/arm64/boot/dts/freescale/s32gxxxa-evb.dtsi @@ -173,6 +173,77 @@ i2c4-gpio-grp1 { pinmux =3D <0x2d40>, <0x2d30>; }; }; + + dspi1_pins: dspi1-pins { + dspi1-grp0 { + pinmux =3D <0x72>; + output-enable; + input-enable; + slew-rate =3D <150>; + bias-pull-up; + }; + + dspi1-grp1 { + pinmux =3D <0x62>; + output-enable; + slew-rate =3D <150>; + }; + + dspi1-grp2 { + pinmux =3D <0x83>; + output-enable; + input-enable; + slew-rate =3D <150>; + }; + + dspi1-grp3 { + pinmux =3D <0x5F0>; + input-enable; + slew-rate =3D <150>; + bias-pull-up; + }; + + dspi1-grp4 { + pinmux =3D <0x3D92>, + <0x3DA2>, + <0x3DB2>; + }; + }; + + dspi5_pins: dspi5-pins { + dspi5-grp0 { + pinmux =3D <0x93>; + output-enable; + input-enable; + slew-rate =3D <150>; + }; + + dspi5-grp1 { + pinmux =3D <0xA0>; + input-enable; + slew-rate =3D <150>; + bias-pull-up; + }; + + dspi5-grp2 { + pinmux =3D <0x3ED2>, + <0x3EE2>, + <0x3EF2>; + }; + + dspi5-grp3 { + pinmux =3D <0xB3>; + output-enable; + slew-rate =3D <150>; + }; + dspi5-grp4 { + pinmux =3D <0xC3>; + output-enable; + input-enable; + slew-rate =3D <150>; + bias-pull-up; + }; + }; }; =20 &can0 { @@ -220,3 +291,15 @@ &i2c4 { pinctrl-1 =3D <&i2c4_gpio_pins>; status =3D "okay"; }; + +&spi1 { + pinctrl-0 =3D <&dspi1_pins>; + pinctrl-names =3D "default"; + status =3D "okay"; +}; + +&spi5 { + pinctrl-0 =3D <&dspi5_pins>; + pinctrl-names =3D "default"; + status =3D "okay"; +}; diff --git a/arch/arm64/boot/dts/freescale/s32gxxxa-rdb.dtsi b/arch/arm64/b= oot/dts/freescale/s32gxxxa-rdb.dtsi index ba53ec622f0b..b0a21e4468da 100644 --- a/arch/arm64/boot/dts/freescale/s32gxxxa-rdb.dtsi +++ b/arch/arm64/boot/dts/freescale/s32gxxxa-rdb.dtsi @@ -127,6 +127,77 @@ i2c4-gpio-grp1 { pinmux =3D <0x2d40>, <0x2d30>; }; }; + + dspi1_pins: dspi1-pins { + dspi1-grp0 { + pinmux =3D <0x72>; + output-enable; + input-enable; + slew-rate =3D <150>; + bias-pull-up; + }; + + dspi1-grp1 { + pinmux =3D <0x62>; + output-enable; + slew-rate =3D <150>; + }; + + dspi1-grp2 { + pinmux =3D <0x83>; + output-enable; + input-enable; + slew-rate =3D <150>; + }; + + dspi1-grp3 { + pinmux =3D <0x5F0>; + input-enable; + slew-rate =3D <150>; + bias-pull-up; + }; + + dspi1-grp4 { + pinmux =3D <0x3D92>, + <0x3DA2>, + <0x3DB2>; + }; + }; + + dspi5_pins: dspi5-pins { + dspi5-grp0 { + pinmux =3D <0x93>; + output-enable; + input-enable; + slew-rate =3D <150>; + }; + + dspi5-grp1 { + pinmux =3D <0xA0>; + input-enable; + slew-rate =3D <150>; + bias-pull-up; + }; + + dspi5-grp2 { + pinmux =3D <0x3ED2>, + <0x3EE2>, + <0x3EF2>; + }; + + dspi5-grp3 { + pinmux =3D <0xB3>; + output-enable; + slew-rate =3D <150>; + }; + dspi5-grp4 { + pinmux =3D <0xC3>; + output-enable; + input-enable; + slew-rate =3D <150>; + bias-pull-up; + }; + }; }; =20 &can0 { @@ -155,6 +226,18 @@ pcal6524: gpio-expander@22 { }; }; =20 +&spi1 { + pinctrl-0 =3D <&dspi1_pins>; + pinctrl-names =3D "default"; + status =3D "okay"; +}; + +&spi5 { + pinctrl-0 =3D <&dspi5_pins>; + pinctrl-names =3D "default"; + status =3D "okay"; +}; + &i2c2 { pinctrl-names =3D "default", "gpio"; pinctrl-0 =3D <&i2c2_pins>; --=20 2.34.1