* [U-Boot] [PATCH v2] DW SPI: Allow to overload the management of the external CS
@ 2018-10-09 12:14 Gregory CLEMENT
2018-11-30 13:50 ` Gregory CLEMENT
0 siblings, 1 reply; 2+ messages in thread
From: Gregory CLEMENT @ 2018-10-09 12:14 UTC (permalink / raw)
To: u-boot
On some platforms, as the Ocelot ones, when wanting to control the CS
through software, it is not possible to do it through the GPIO
controller. Indeed, this signal is managed through a dedicated range of
registers inside the SoC..
By declaring the external_cs_manage function as weak, it is possible to
manage the CS at platform level and then using the appropriate registers.
Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
---
Changelog:
v1 -> v2
- Fix ocelot name
drivers/spi/designware_spi.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/spi/designware_spi.c b/drivers/spi/designware_spi.c
index d8b73ea326..1f47ea24c8 100644
--- a/drivers/spi/designware_spi.c
+++ b/drivers/spi/designware_spi.c
@@ -334,7 +334,13 @@ static int poll_transfer(struct dw_spi_priv *priv)
return 0;
}
-static void external_cs_manage(struct udevice *dev, bool on)
+/*
+ * We define external_cs_manage function as 'weak' as some targets
+ * (like MSCC Ocelot) don't control the external CS pin using a GPIO
+ * controller. These SoCs use specific registers to control by
+ * software the SPI pins (and especially the CS).
+ */
+__weak void external_cs_manage(struct udevice *dev, bool on)
{
#if defined(CONFIG_DM_GPIO) && !defined(CONFIG_SPL_BUILD)
struct dw_spi_priv *priv = dev_get_priv(dev->parent);
--
2.19.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [U-Boot] [PATCH v2] DW SPI: Allow to overload the management of the external CS
2018-10-09 12:14 [U-Boot] [PATCH v2] DW SPI: Allow to overload the management of the external CS Gregory CLEMENT
@ 2018-11-30 13:50 ` Gregory CLEMENT
0 siblings, 0 replies; 2+ messages in thread
From: Gregory CLEMENT @ 2018-11-30 13:50 UTC (permalink / raw)
To: u-boot
Hi Jagan,
On mar., oct. 09 2018, Gregory CLEMENT <gregory.clement@bootlin.com> wrote:
> On some platforms, as the Ocelot ones, when wanting to control the CS
> through software, it is not possible to do it through the GPIO
> controller. Indeed, this signal is managed through a dedicated range of
> registers inside the SoC..
>
> By declaring the external_cs_manage function as weak, it is possible to
> manage the CS at platform level and then using the appropriate registers.
>
I sent this v2 nearly 2 months ago and didn't have any objection about
it. So, Could you merge this patch please?
Thanks!
> Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
> ---
> Changelog:
> v1 -> v2
> - Fix ocelot name
>
> drivers/spi/designware_spi.c | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/spi/designware_spi.c b/drivers/spi/designware_spi.c
> index d8b73ea326..1f47ea24c8 100644
> --- a/drivers/spi/designware_spi.c
> +++ b/drivers/spi/designware_spi.c
> @@ -334,7 +334,13 @@ static int poll_transfer(struct dw_spi_priv *priv)
> return 0;
> }
>
> -static void external_cs_manage(struct udevice *dev, bool on)
> +/*
> + * We define external_cs_manage function as 'weak' as some targets
> + * (like MSCC Ocelot) don't control the external CS pin using a GPIO
> + * controller. These SoCs use specific registers to control by
> + * software the SPI pins (and especially the CS).
> + */
> +__weak void external_cs_manage(struct udevice *dev, bool on)
> {
> #if defined(CONFIG_DM_GPIO) && !defined(CONFIG_SPL_BUILD)
> struct dw_spi_priv *priv = dev_get_priv(dev->parent);
> --
> 2.19.1
>
--
Gregory Clement, Bootlin
Embedded Linux and Kernel engineering
http://bootlin.com
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2018-11-30 13:50 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-10-09 12:14 [U-Boot] [PATCH v2] DW SPI: Allow to overload the management of the external CS Gregory CLEMENT
2018-11-30 13:50 ` Gregory CLEMENT
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox