linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: sr@denx.de (Stefan Roese)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2] spi: orion.c: Add direct access mode
Date: Thu, 24 Mar 2016 17:15:49 +0100	[thread overview]
Message-ID: <56F412B5.2080200@denx.de> (raw)
In-Reply-To: <3250653.vvT0RgK8yg@wuerfel>

On 24.03.2016 13:42, Arnd Bergmann wrote:
> On Thursday 24 March 2016 08:22:36 Stefan Roese wrote:
>>
>> Arnd, thanks for your comments.
>>
>> So we seem to agree, that one MBus window per SPI controller is the
>> way to go. Only how should this be described in the DT? I've come up
>> with these new DT properties in v2:
>>
>> +- da-reg : The physical memory area that will be used for the direct
>> +           access mode, if enabled in one of the SPI devices.
>> +
>> +Per SPI device:
>> +- da-target-attribute : The target and attribute value for a specific
>> +                        SPI-controller / SPI-device combination.
>> +                       E.g. <0x01 0x5e>: SPI0-CS1 target and attribute
>>
>> ...
>>
>> +Example with direct access mode:
>> +       spi at 10600 {
>> +               compatible = "marvell,orion-spi";
>> +               status = "okay";
>> +               da-reg = <0xf2000000 0x100000>;
>> +
>> +               spi-fpga at 1 {
>> +                       compatible = "altera,stratix-v";
>> +                       reg = <1>;
>> +                       /* 0x01 0x5e: SPI0-CS1 target and attribute */
>> +                       da-target-attribute = <0x01 0x5e>;
>> +               };
>> +       };
>>
>> I've added the "da-*" (Direct Access) properties to enable the
>> SPI driver to dynamically allocate the MBus windows. Do you find
>> these new bindings reasonable? Or do you have better suggestions for
>> this per-SPI-device dynamic MBus allocation, perhaps by using
>> MBUS_ID somehow?
>
> I was thinking it would be statically set up,

Really statically? Please see below.

> but then we have a
> problem with how it uses both internal-regs and and its own mbus
> based reg, so we probably have to move the spi node outside of
> the internal-regs node to achieve that, similar to how we handle
> the devbus devices:
>
>
> 	soc@ {
> 		spi0 {
>                         compatible = "marvell,armada-370-spi",
>                                      "marvell,orion-spi";
> 			reg = <MBUS_ID(0xf0, 0x01) 0x10600 0x28>,
> 			      <MBUS_ID(0x01, 0x5e) 0 0x100000>;
>                         #address-cells = <1>;
>                         #size-cells = <0>;
>                         pinctrl-0 = <&spi0_pins1>;
>                         pinctrl-names = "default";
>                         cell-index = <0>;
>                         interrupts = <30>;
>                         clocks = <&coreclk 0>;
>                         status = "disabled";
> 		};
> 	};

Do I understand this correctly, that you suggest to list all MBus
windows here, that the SoC supports (e.g. 8 for the Armada XP).
And let the SPI driver then extract and dynamically enable (map)
the one that is currently used?

We also need a per-SPI-device DT property to enable this direct
access mode for this specific SPI device. As not all SPI devices
support this mode - at least not yet. How about this one:

		flash0: flash at 0 {
			compatible = "m25p128";
			reg = <0>;
			direct-access-enable;
			...
		};

?

Thanks,
Stefan

  reply	other threads:[~2016-03-24 16:15 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-22 16:24 [PATCH v2] spi: orion.c: Add direct access mode Stefan Roese
2016-03-22 16:35 ` Thomas Petazzoni
2016-03-22 16:44   ` Stefan Roese
2016-03-23 11:33     ` Mark Brown
2016-03-23 11:59       ` Stefan Roese
2016-03-23 12:54         ` Mark Brown
2016-03-23 13:10           ` Stefan Roese
2016-03-23 13:26             ` Andrew Lunn
2016-03-23 13:36               ` Mark Brown
2016-03-23 13:56                 ` Andrew Lunn
2016-03-23 19:51                   ` Arnd Bergmann
2016-03-24  7:22                     ` Stefan Roese
2016-03-24 12:42                       ` Arnd Bergmann
2016-03-24 16:15                         ` Stefan Roese [this message]
2016-03-24 16:42                           ` Arnd Bergmann
2016-03-24 17:30                             ` Stefan Roese
2016-03-24 16:48                           ` Arnd Bergmann
2016-03-24 17:51                             ` Stefan Roese
2016-03-24 20:07                               ` Arnd Bergmann
2016-03-25 10:32                                 ` Mark Brown
2016-03-25 15:11                                   ` Arnd Bergmann
2016-03-25 15:50                                     ` Mark Brown
2016-03-25 20:58                                       ` Arnd Bergmann
2016-03-25 22:39                                         ` Mark Brown
2016-03-29 12:39                                           ` Arnd Bergmann
2016-03-29 16:47                                             ` Mark Brown
2016-03-29 19:49                                               ` Arnd Bergmann
2016-03-29 19:52                                                 ` Mark Brown
2016-03-29 20:04                                                   ` Arnd Bergmann
2016-03-29 21:00                                                     ` Mark Brown
2016-03-29 21:08                                                       ` Arnd Bergmann
2016-03-29 21:28                                                         ` Mark Brown
2016-03-29 22:04                                                           ` Arnd Bergmann
2016-04-05  7:11                                                             ` Stefan Roese
2016-04-05 13:15                                                               ` Andrew Lunn
2016-04-05 13:20                                                                 ` Stefan Roese
2016-04-05 13:31                                                                   ` Andrew Lunn
2016-03-23 13:27             ` Mark Brown
2016-03-23 17:25               ` Stefan Roese
2016-03-23 18:29                 ` Mark Brown
2016-03-23 18:39                 ` Andrew Lunn
2016-03-24  5:45                   ` Stefan Roese
2016-03-24 11:23                     ` Mark Brown
2016-03-24 12:05                       ` Stefan Roese
2016-03-22 17:39   ` Mark Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56F412B5.2080200@denx.de \
    --to=sr@denx.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).