diff mbox

[1/3] ARM: DTS: da850: add node for spi0

Message ID 1460586628-25152-2-git-send-email-david@lechnology.com (mailing list archive)
State New, archived
Headers show

Commit Message

David Lechner April 13, 2016, 10:30 p.m. UTC
Adds device definition for soc spi0 and also a aux data that is needed
for clock matching.

Signed-off-by: David Lechner <david@lechnology.com>
---
 arch/arm/boot/dts/da850.dtsi     | 10 ++++++++++
 arch/arm/mach-davinci/da8xx-dt.c |  1 +
 2 files changed, 11 insertions(+)

Comments

Sekhar Nori April 15, 2016, 10:24 a.m. UTC | #1
On Thursday 14 April 2016 04:00 AM, David Lechner wrote:
> Adds device definition for soc spi0 and also a aux data that is needed
> for clock matching.
> 
> Signed-off-by: David Lechner <david@lechnology.com>
> ---
>  arch/arm/boot/dts/da850.dtsi     | 10 ++++++++++
>  arch/arm/mach-davinci/da8xx-dt.c |  1 +
>  2 files changed, 11 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/da850.dtsi b/arch/arm/boot/dts/da850.dtsi
> index bbe7dd6..92b5f3c 100644
> --- a/arch/arm/boot/dts/da850.dtsi
> +++ b/arch/arm/boot/dts/da850.dtsi
> @@ -295,6 +295,16 @@
>  			reg = <0x308000 0x80>;
>  			status = "disabled";
>  		};
> +		spi0: spi@41000 {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			compatible = "ti,da830-spi";
> +			reg = <0x41000 0x1000>;
> +			num-cs = <6>;

This made me notice that num-cs is populated wrongly for spi1. It
actually has 8 chip selects. This is fine though.

Also, it will be nice to add pinctrl entries for spi0 like it is done
for spi1. You will need those anyway for using the interface.

> +			ti,davinci-spi-intr-line = <1>;
> +			interrupts = <20>;
> +			status = "disabled";
> +		};
>  		spi1: spi@30e000 {
>  			#address-cells = <1>;
>  			#size-cells = <0>;
> diff --git a/arch/arm/mach-davinci/da8xx-dt.c b/arch/arm/mach-davinci/da8xx-dt.c
> index 64f3887..754f478 100644
> --- a/arch/arm/mach-davinci/da8xx-dt.c
> +++ b/arch/arm/mach-davinci/da8xx-dt.c
> @@ -28,6 +28,7 @@ static struct of_dev_auxdata da850_auxdata_lookup[] __initdata = {
>  	OF_DEV_AUXDATA("ti,da850-ecap", 0x01f06000, "ecap", NULL),
>  	OF_DEV_AUXDATA("ti,da850-ecap", 0x01f07000, "ecap", NULL),
>  	OF_DEV_AUXDATA("ti,da850-ecap", 0x01f08000, "ecap", NULL),
> +	OF_DEV_AUXDATA("ti,da830-spi", 0x01c41000, "spi_davinci.0", NULL),
>  	OF_DEV_AUXDATA("ti,da830-spi", 0x01f0e000, "spi_davinci.1", NULL),
>  	OF_DEV_AUXDATA("ns16550a", 0x01c42000, "serial8250.0", NULL),
>  	OF_DEV_AUXDATA("ns16550a", 0x01d0c000, "serial8250.1", NULL),

I prefer DT updates are patches of their own and not combined with code
updates like this. Can you please split this up?

Regards,
Sekhar
David Lechner April 15, 2016, 4:17 p.m. UTC | #2
On 04/15/2016 05:24 AM, Sekhar Nori wrote:

>
> This made me notice that num-cs is populated wrongly for spi1. It
> actually has 8 chip selects. This is fine though.

I might as well fix it since I have to make changes anyway. Don't 
remember how I came up with 6.

>
> Also, it will be nice to add pinctrl entries for spi0 like it is done
> for spi1. You will need those anyway for using the interface.

I omitted this on purpose. For my use case, I am using the SPI as 
write-only, so not using the SOMI pin, which is actually muxed as a GPIO 
for something else. So having a pinctl like spi1 is of no use to me. I 
figured if someone needs it, they can add it, otherwise it just is 
wasted space to me.
>
> I prefer DT updates are patches of their own and not combined with code
> updates like this. Can you please split this up?

Ack.
Valdis Klētnieks April 15, 2016, 8:16 p.m. UTC | #3
On Fri, 15 Apr 2016 11:17:55 -0500, David Lechner said:

> I omitted this on purpose. For my use case, I am using the SPI as
> write-only,

So your SPI accesses are fire-and-forget, and nothing ever comes back?
Seems a very dangerous way to design the use case, with no feedback if
something suddenly goes pear-shaped...

Or do you have ways to verify the status via some method other than SPI?
David Lechner April 15, 2016, 9:20 p.m. UTC | #4
On 04/15/2016 03:16 PM, Valdis.Kletnieks@vt.edu wrote:
> On Fri, 15 Apr 2016 11:17:55 -0500, David Lechner said:
>
>> I omitted this on purpose. For my use case, I am using the SPI as
>> write-only,
>
> So your SPI accesses are fire-and-forget, and nothing ever comes back?

Yes.

> Seems a very dangerous way to design the use case, with no feedback if
> something suddenly goes pear-shaped...

You should tell Sitronix. This is how their display controllers work.

>
> Or do you have ways to verify the status via some method other than SPI?
>

Nope.



I'm working with LEGO MINDSTORMS EV3, a mass-produced robotics system. 
It is what it is. And I have a logic analyzer for when things go 
pear-shaped. ;-)
Sekhar Nori April 18, 2016, 5:55 a.m. UTC | #5
On Friday 15 April 2016 09:47 PM, David Lechner wrote:
> On 04/15/2016 05:24 AM, Sekhar Nori wrote:
> 
>>
>> This made me notice that num-cs is populated wrongly for spi1. It
>> actually has 8 chip selects. This is fine though.
> 
> I might as well fix it since I have to make changes anyway. Don't
> remember how I came up with 6.

In section 3.7.7 of datasheet, there are 6 possible chip selects listed
for SPI0 and 8 possible chipselects for SPI1.

If you are fixing SPI1, please make that a separate patch.

>> Also, it will be nice to add pinctrl entries for spi0 like it is done
>> for spi1. You will need those anyway for using the interface.
> 
> I omitted this on purpose. For my use case, I am using the SPI as
> write-only, so not using the SOMI pin, which is actually muxed as a GPIO
> for something else. So having a pinctl like spi1 is of no use to me. I
> figured if someone needs it, they can add it, otherwise it just is
> wasted space to me.

Alright, makes sense.

Regards,
Sekhar
diff mbox

Patch

diff --git a/arch/arm/boot/dts/da850.dtsi b/arch/arm/boot/dts/da850.dtsi
index bbe7dd6..92b5f3c 100644
--- a/arch/arm/boot/dts/da850.dtsi
+++ b/arch/arm/boot/dts/da850.dtsi
@@ -295,6 +295,16 @@ 
 			reg = <0x308000 0x80>;
 			status = "disabled";
 		};
+		spi0: spi@41000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "ti,da830-spi";
+			reg = <0x41000 0x1000>;
+			num-cs = <6>;
+			ti,davinci-spi-intr-line = <1>;
+			interrupts = <20>;
+			status = "disabled";
+		};
 		spi1: spi@30e000 {
 			#address-cells = <1>;
 			#size-cells = <0>;
diff --git a/arch/arm/mach-davinci/da8xx-dt.c b/arch/arm/mach-davinci/da8xx-dt.c
index 64f3887..754f478 100644
--- a/arch/arm/mach-davinci/da8xx-dt.c
+++ b/arch/arm/mach-davinci/da8xx-dt.c
@@ -28,6 +28,7 @@  static struct of_dev_auxdata da850_auxdata_lookup[] __initdata = {
 	OF_DEV_AUXDATA("ti,da850-ecap", 0x01f06000, "ecap", NULL),
 	OF_DEV_AUXDATA("ti,da850-ecap", 0x01f07000, "ecap", NULL),
 	OF_DEV_AUXDATA("ti,da850-ecap", 0x01f08000, "ecap", NULL),
+	OF_DEV_AUXDATA("ti,da830-spi", 0x01c41000, "spi_davinci.0", NULL),
 	OF_DEV_AUXDATA("ti,da830-spi", 0x01f0e000, "spi_davinci.1", NULL),
 	OF_DEV_AUXDATA("ns16550a", 0x01c42000, "serial8250.0", NULL),
 	OF_DEV_AUXDATA("ns16550a", 0x01d0c000, "serial8250.1", NULL),