* [PATCH] dspi: config dspi master regmap with right mode depend on BE or LE
@ 2016-04-13 11:03 Po Liu
[not found] ` <1460545402-8162-1-git-send-email-po.liu-3arQi8VN3Tc@public.gmane.org>
2016-04-17 2:41 ` Scott Wood
0 siblings, 2 replies; 5+ messages in thread
From: Po Liu @ 2016-04-13 11:03 UTC (permalink / raw)
To: broonie-DgEjT+Ai2ygdnm+yROfE0A
Cc: linux-spi-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA, Po Liu
When kernel config with big endian mode, spi master need
to config regmap data value to be little endian mode. Or else,
the kernel boot will hang.
Signed-off-by: Po Liu <po.liu-3arQi8VN3Tc@public.gmane.org>
---
drivers/spi/spi-fsl-dspi.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/spi/spi-fsl-dspi.c b/drivers/spi/spi-fsl-dspi.c
index 39412c9..a1d893c 100644
--- a/drivers/spi/spi-fsl-dspi.c
+++ b/drivers/spi/spi-fsl-dspi.c
@@ -637,6 +637,9 @@ static const struct regmap_config dspi_regmap_config = {
.val_bits = 32,
.reg_stride = 4,
.max_register = 0x88,
+#ifdef CONFIG_CPU_BIG_ENDIAN
+ .val_format_endian = REGMAP_ENDIAN_LITTLE,
+#endif
};
static int dspi_probe(struct platform_device *pdev)
--
2.1.0.27.g96db324
--
To unsubscribe from this list: send the line "unsubscribe linux-spi" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 5+ messages in thread
[parent not found: <1460545402-8162-1-git-send-email-po.liu-3arQi8VN3Tc@public.gmane.org>]
* Re: [PATCH] dspi: config dspi master regmap with right mode depend on BE or LE
[not found] ` <1460545402-8162-1-git-send-email-po.liu-3arQi8VN3Tc@public.gmane.org>
@ 2016-04-13 14:06 ` Mark Brown
0 siblings, 0 replies; 5+ messages in thread
From: Mark Brown @ 2016-04-13 14:06 UTC (permalink / raw)
To: Po Liu
Cc: linux-spi-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA
[-- Attachment #1: Type: text/plain, Size: 401 bytes --]
On Wed, Apr 13, 2016 at 07:03:22PM +0800, Po Liu wrote:
> When kernel config with big endian mode, spi master need
> to config regmap data value to be little endian mode. Or else,
> the kernel boot will hang.
> +#ifdef CONFIG_CPU_BIG_ENDIAN
> + .val_format_endian = REGMAP_ENDIAN_LITTLE,
> +#endif
This should be unconditionally set to native endian if the IP changes
endianness along with the CPU.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 473 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] dspi: config dspi master regmap with right mode depend on BE or LE
2016-04-13 11:03 [PATCH] dspi: config dspi master regmap with right mode depend on BE or LE Po Liu
[not found] ` <1460545402-8162-1-git-send-email-po.liu-3arQi8VN3Tc@public.gmane.org>
@ 2016-04-17 2:41 ` Scott Wood
[not found] ` <DB5PR0401MB19281A317BFB1D9001F97ABB916A0-GXldUsIPo7Z/SeJcUcAJq43W/0Ik+aLCnBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
1 sibling, 1 reply; 5+ messages in thread
From: Scott Wood @ 2016-04-17 2:41 UTC (permalink / raw)
To: Po Liu, broonie@kernel.org
Cc: linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org
On 04/13/2016 06:12 AM, Po Liu wrote:
> When kernel config with big endian mode, spi master need
> to config regmap data value to be little endian mode. Or else,
> the kernel boot will hang.
>
> Signed-off-by: Po Liu <po.liu@nxp.com>
> ---
> drivers/spi/spi-fsl-dspi.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/spi/spi-fsl-dspi.c b/drivers/spi/spi-fsl-dspi.c
> index 39412c9..a1d893c 100644
> --- a/drivers/spi/spi-fsl-dspi.c
> +++ b/drivers/spi/spi-fsl-dspi.c
> @@ -637,6 +637,9 @@ static const struct regmap_config dspi_regmap_config = {
> .val_bits = 32,
> .reg_stride = 4,
> .max_register = 0x88,
> +#ifdef CONFIG_CPU_BIG_ENDIAN
> + .val_format_endian = REGMAP_ENDIAN_LITTLE,
> +#endif
Drop this ifdef. It's little endian regardless of what mode the CPU is in.
Are you sure this is correct on all platforms? E.g. ls1021a?
Looking more closely, the binding has a big-endian property. It says
the default if that property is absent is native endian, which is
insane. Fix the binding to say that little endian is the default (this
change shouldn't break any existing trees), and make sure that's what
the code implements. I think you need val_format_endian_default, not
val_format_endian.
-Scott
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2016-04-19 2:30 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-04-13 11:03 [PATCH] dspi: config dspi master regmap with right mode depend on BE or LE Po Liu
[not found] ` <1460545402-8162-1-git-send-email-po.liu-3arQi8VN3Tc@public.gmane.org>
2016-04-13 14:06 ` Mark Brown
2016-04-17 2:41 ` Scott Wood
[not found] ` <DB5PR0401MB19281A317BFB1D9001F97ABB916A0-GXldUsIPo7Z/SeJcUcAJq43W/0Ik+aLCnBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
2016-04-18 10:11 ` Mark Brown
[not found] ` <20160418101117.GP3217-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2016-04-19 2:30 ` Po Liu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).