linux-spi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] spi: cadence: Init HW after reading devicetree attributes
@ 2014-11-27 15:12 Lars-Peter Clausen
       [not found] ` <1417101138-2619-1-git-send-email-lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
  0 siblings, 1 reply; 5+ messages in thread
From: Lars-Peter Clausen @ 2014-11-27 15:12 UTC (permalink / raw)
  To: Mark Brown
  Cc: Michal Simek, Soren Brinkmann, linux-spi-u79uwXL29TY76Z2rM5mHXA,
	Paul Cercueil, Lars-Peter Clausen

From: Paul Cercueil <paul.cercueil-OyLXuOCK7orQT0dZR+AlfA@public.gmane.org>

This will make it possible to use the settings specified in the devicetree
to configure the hardware.

Signed-off-by: Paul Cercueil <paul.cercueil-OyLXuOCK7orQT0dZR+AlfA@public.gmane.org>
Signed-off-by: Lars-Peter Clausen <lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
---
 drivers/spi/spi-cadence.c | 24 +++++++++++-------------
 1 file changed, 11 insertions(+), 13 deletions(-)

diff --git a/drivers/spi/spi-cadence.c b/drivers/spi/spi-cadence.c
index 7b811e3..2404937 100644
--- a/drivers/spi/spi-cadence.c
+++ b/drivers/spi/spi-cadence.c
@@ -516,6 +516,17 @@ static int cdns_spi_probe(struct platform_device *pdev)
 		goto clk_dis_apb;
 	}
 
+	ret = of_property_read_u32(pdev->dev.of_node, "num-cs", &num_cs);
+	if (ret < 0)
+		master->num_chipselect = CDNS_SPI_DEFAULT_NUM_CS;
+	else
+		master->num_chipselect = num_cs;
+
+	ret = of_property_read_u32(pdev->dev.of_node, "is-decoded-cs",
+				   &xspi->is_decoded_cs);
+	if (ret < 0)
+		xspi->is_decoded_cs = 0;
+
 	/* SPI controller initializations */
 	cdns_spi_init_hw(xspi);
 
@@ -534,19 +545,6 @@ static int cdns_spi_probe(struct platform_device *pdev)
 		goto remove_master;
 	}
 
-	ret = of_property_read_u32(pdev->dev.of_node, "num-cs", &num_cs);
-
-	if (ret < 0)
-		master->num_chipselect = CDNS_SPI_DEFAULT_NUM_CS;
-	else
-		master->num_chipselect = num_cs;
-
-	ret = of_property_read_u32(pdev->dev.of_node, "is-decoded-cs",
-				   &xspi->is_decoded_cs);
-
-	if (ret < 0)
-		xspi->is_decoded_cs = 0;
-
 	master->prepare_transfer_hardware = cdns_prepare_transfer_hardware;
 	master->prepare_message = cdns_prepare_message;
 	master->transfer_one = cdns_transfer_one;
-- 
1.8.0

--
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

* [PATCH 2/2] spi: cadence: Fix 3-to-8 mux mode
       [not found] ` <1417101138-2619-1-git-send-email-lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
@ 2014-11-27 15:12   ` Lars-Peter Clausen
       [not found]     ` <1417101138-2619-2-git-send-email-lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
  2014-11-28  7:52   ` [PATCH 1/2] spi: cadence: Init HW after reading devicetree attributes Michal Simek
  2014-11-28 11:42   ` Mark Brown
  2 siblings, 1 reply; 5+ messages in thread
From: Lars-Peter Clausen @ 2014-11-27 15:12 UTC (permalink / raw)
  To: Mark Brown
  Cc: Michal Simek, Soren Brinkmann, linux-spi-u79uwXL29TY76Z2rM5mHXA,
	Lars-Peter Clausen

In 3-to-8 mux mode for the CS pins we need to set the PERI_SEL bit in the
control register. Currently the driver never sets this bit even when
configured for 3-to-8 mux mode. This patch adds code which sets the bit
during device initialization when necessary.

Signed-off-by: Lars-Peter Clausen <lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
---
 drivers/spi/spi-cadence.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/spi/spi-cadence.c b/drivers/spi/spi-cadence.c
index 2404937..5a67498 100644
--- a/drivers/spi/spi-cadence.c
+++ b/drivers/spi/spi-cadence.c
@@ -47,6 +47,7 @@
 #define CDNS_SPI_CR_CPHA_MASK		0x00000004 /* Clock Phase Control */
 #define CDNS_SPI_CR_CPOL_MASK		0x00000002 /* Clock Polarity Control */
 #define CDNS_SPI_CR_SSCTRL_MASK		0x00003C00 /* Slave Select Mask */
+#define CDNS_SPI_CR_PERI_SEL_MASK	0x00000200 /* Peripheral Select Decode */
 #define CDNS_SPI_CR_BAUD_DIV_MASK	0x00000038 /* Baud Rate Divisor Mask */
 #define CDNS_SPI_CR_MSTREN_MASK		0x00000001 /* Master Enable Mask */
 #define CDNS_SPI_CR_MANSTRTEN_MASK	0x00008000 /* Manual TX Enable Mask */
@@ -148,6 +149,11 @@ static inline void cdns_spi_write(struct cdns_spi *xspi, u32 offset, u32 val)
  */
 static void cdns_spi_init_hw(struct cdns_spi *xspi)
 {
+	u32 ctrl_reg = CDNS_SPI_CR_DEFAULT_MASK;
+
+	if (xspi->is_decoded_cs)
+		ctrl_reg |= CDNS_SPI_CR_PERI_SEL_MASK;
+
 	cdns_spi_write(xspi, CDNS_SPI_ER_OFFSET,
 		       CDNS_SPI_ER_DISABLE_MASK);
 	cdns_spi_write(xspi, CDNS_SPI_IDR_OFFSET,
@@ -160,8 +166,7 @@ static void cdns_spi_init_hw(struct cdns_spi *xspi)
 
 	cdns_spi_write(xspi, CDNS_SPI_ISR_OFFSET,
 		       CDNS_SPI_IXR_ALL_MASK);
-	cdns_spi_write(xspi, CDNS_SPI_CR_OFFSET,
-		       CDNS_SPI_CR_DEFAULT_MASK);
+	cdns_spi_write(xspi, CDNS_SPI_CR_OFFSET, ctrl_reg);
 	cdns_spi_write(xspi, CDNS_SPI_ER_OFFSET,
 		       CDNS_SPI_ER_ENABLE_MASK);
 }
-- 
1.8.0

--
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

* Re: [PATCH 2/2] spi: cadence: Fix 3-to-8 mux mode
       [not found]     ` <1417101138-2619-2-git-send-email-lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
@ 2014-11-28  6:52       ` Harini Katakam
  0 siblings, 0 replies; 5+ messages in thread
From: Harini Katakam @ 2014-11-28  6:52 UTC (permalink / raw)
  To: Lars-Peter Clausen; +Cc: Mark Brown, Michal Simek, Soren Brinkmann, linux-spi

On Thu, Nov 27, 2014 at 8:42 PM, Lars-Peter Clausen <lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org> wrote:
> In 3-to-8 mux mode for the CS pins we need to set the PERI_SEL bit in the
> control register. Currently the driver never sets this bit even when
> configured for 3-to-8 mux mode. This patch adds code which sets the bit
> during device initialization when necessary.
>
> Signed-off-by: Lars-Peter Clausen <lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>

Acked-by: Harini Katakam <harinik-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>

Regards,
Harini
--
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	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] spi: cadence: Init HW after reading devicetree attributes
       [not found] ` <1417101138-2619-1-git-send-email-lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
  2014-11-27 15:12   ` [PATCH 2/2] spi: cadence: Fix 3-to-8 mux mode Lars-Peter Clausen
@ 2014-11-28  7:52   ` Michal Simek
  2014-11-28 11:42   ` Mark Brown
  2 siblings, 0 replies; 5+ messages in thread
From: Michal Simek @ 2014-11-28  7:52 UTC (permalink / raw)
  To: Lars-Peter Clausen, Mark Brown
  Cc: Michal Simek, Soren Brinkmann, linux-spi-u79uwXL29TY76Z2rM5mHXA,
	Paul Cercueil

On 11/27/2014 04:12 PM, Lars-Peter Clausen wrote:
> From: Paul Cercueil <paul.cercueil-OyLXuOCK7orQT0dZR+AlfA@public.gmane.org>
> 
> This will make it possible to use the settings specified in the devicetree
> to configure the hardware.
> 
> Signed-off-by: Paul Cercueil <paul.cercueil-OyLXuOCK7orQT0dZR+AlfA@public.gmane.org>
> Signed-off-by: Lars-Peter Clausen <lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
> ---
>  drivers/spi/spi-cadence.c | 24 +++++++++++-------------
>  1 file changed, 11 insertions(+), 13 deletions(-)
> 
> diff --git a/drivers/spi/spi-cadence.c b/drivers/spi/spi-cadence.c
> index 7b811e3..2404937 100644
> --- a/drivers/spi/spi-cadence.c
> +++ b/drivers/spi/spi-cadence.c
> @@ -516,6 +516,17 @@ static int cdns_spi_probe(struct platform_device *pdev)
>  		goto clk_dis_apb;
>  	}
>  
> +	ret = of_property_read_u32(pdev->dev.of_node, "num-cs", &num_cs);
> +	if (ret < 0)
> +		master->num_chipselect = CDNS_SPI_DEFAULT_NUM_CS;
> +	else
> +		master->num_chipselect = num_cs;
> +
> +	ret = of_property_read_u32(pdev->dev.of_node, "is-decoded-cs",
> +				   &xspi->is_decoded_cs);
> +	if (ret < 0)
> +		xspi->is_decoded_cs = 0;
> +
>  	/* SPI controller initializations */
>  	cdns_spi_init_hw(xspi);
>  
> @@ -534,19 +545,6 @@ static int cdns_spi_probe(struct platform_device *pdev)
>  		goto remove_master;
>  	}
>  
> -	ret = of_property_read_u32(pdev->dev.of_node, "num-cs", &num_cs);
> -
> -	if (ret < 0)
> -		master->num_chipselect = CDNS_SPI_DEFAULT_NUM_CS;
> -	else
> -		master->num_chipselect = num_cs;
> -
> -	ret = of_property_read_u32(pdev->dev.of_node, "is-decoded-cs",
> -				   &xspi->is_decoded_cs);
> -
> -	if (ret < 0)
> -		xspi->is_decoded_cs = 0;
> -
>  	master->prepare_transfer_hardware = cdns_prepare_transfer_hardware;
>  	master->prepare_message = cdns_prepare_message;
>  	master->transfer_one = cdns_transfer_one;
> 

That's reasonable patch to do without any functional impact now.

Reviewed-by: Michal Simek <michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>

Thanks,
Michal

--
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	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] spi: cadence: Init HW after reading devicetree attributes
       [not found] ` <1417101138-2619-1-git-send-email-lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
  2014-11-27 15:12   ` [PATCH 2/2] spi: cadence: Fix 3-to-8 mux mode Lars-Peter Clausen
  2014-11-28  7:52   ` [PATCH 1/2] spi: cadence: Init HW after reading devicetree attributes Michal Simek
@ 2014-11-28 11:42   ` Mark Brown
  2 siblings, 0 replies; 5+ messages in thread
From: Mark Brown @ 2014-11-28 11:42 UTC (permalink / raw)
  To: Lars-Peter Clausen
  Cc: Michal Simek, Soren Brinkmann, linux-spi-u79uwXL29TY76Z2rM5mHXA,
	Paul Cercueil

[-- Attachment #1: Type: text/plain, Size: 285 bytes --]

On Thu, Nov 27, 2014 at 04:12:17PM +0100, Lars-Peter Clausen wrote:
> From: Paul Cercueil <paul.cercueil-OyLXuOCK7orQT0dZR+AlfA@public.gmane.org>
> 
> This will make it possible to use the settings specified in the devicetree
> to configure the hardware.

Applied both, thanks.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-11-28 11:42 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-27 15:12 [PATCH 1/2] spi: cadence: Init HW after reading devicetree attributes Lars-Peter Clausen
     [not found] ` <1417101138-2619-1-git-send-email-lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
2014-11-27 15:12   ` [PATCH 2/2] spi: cadence: Fix 3-to-8 mux mode Lars-Peter Clausen
     [not found]     ` <1417101138-2619-2-git-send-email-lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
2014-11-28  6:52       ` Harini Katakam
2014-11-28  7:52   ` [PATCH 1/2] spi: cadence: Init HW after reading devicetree attributes Michal Simek
2014-11-28 11:42   ` Mark Brown

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).