devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
To: Rob Herring <robh@kernel.org>
Cc: vkoul@kernel.org, broonie@kernel.org, bgoswami@codeaurora.org,
	plai@codeaurora.org, pierre-louis.bossart@linux.intel.com,
	devicetree@vger.kernel.org, lgirdwood@gmail.com,
	alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 1/4] dt-bindings: soundwire: add slave bindings
Date: Thu, 22 Aug 2019 11:12:07 +0100	[thread overview]
Message-ID: <0272eafd-0aa5-f695-64e4-f6ad7157a3a6@linaro.org> (raw)
In-Reply-To: <20190821214436.GA13936@bogus>



On 21/08/2019 22:44, Rob Herring wrote:
> On Fri, Aug 09, 2019 at 02:34:04PM +0100, Srinivas Kandagatla wrote:
>> This patch adds bindings for Soundwire Slave devices that includes how
>> SoundWire enumeration address and Link ID are used to represented in
>> SoundWire slave device tree nodes.
>>
>> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
>> ---
>>   .../devicetree/bindings/soundwire/slave.txt   | 51 +++++++++++++++++++
>>   1 file changed, 51 insertions(+)
>>   create mode 100644 Documentation/devicetree/bindings/soundwire/slave.txt
> 
> Can you convert this to DT schema given it is a common binding.
> 

I will give that a go in next version!

> What does the host controller look like? You need to define the node
> hierarchy. Bus controller schemas should then include the bus schema.
> See spi-controller.yaml.

Host controller is always parent of these devices which is represented 
in the example.

In my previous patches, i did put this slave bindings in bus.txt, but 
Vinod suggested to move it to slave.txt.

Are you suggesting to add two yamls here, one for slave and one for bus
Or just document this in one bus bindings?


> 
>>
>> diff --git a/Documentation/devicetree/bindings/soundwire/slave.txt b/Documentation/devicetree/bindings/soundwire/slave.txt
>> new file mode 100644
>> index 000000000000..201f65d2fafa
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/soundwire/slave.txt
>> @@ -0,0 +1,51 @@
>> +SoundWire slave device bindings.
>> +
>> +SoundWire is a 2-pin multi-drop interface with data and clock line.
>> +It facilitates development of low cost, efficient, high performance systems.
>> +
>> +SoundWire slave devices:
>> +Every SoundWire controller node can contain zero or more child nodes
>> +representing slave devices on the bus. Every SoundWire slave device is
>> +uniquely determined by the enumeration address containing 5 fields:
>> +SoundWire Version, Instance ID, Manufacturer ID, Part ID
>> +and Class ID for a device. Addition to below required properties,
>> +child nodes can have device specific bindings.
>> +
>> +Required properties:
>> +- compatible:	 "sdw<LinkID><VersionID><InstanceID><MFD><PID><CID>".
>> +		  Is the textual representation of SoundWire Enumeration
>> +		  address along with Link ID. compatible string should contain
>> +		  SoundWire Link ID, SoundWire Version ID, Instance ID,
>> +		  Manufacturer ID, Part ID and Class ID in order
>> +		  represented as above and shall be in lower-case hexadecimal
>> +		  with leading zeroes. Vaild sizes of these fields are
>> +		  LinkID is 1 nibble,
>> +		  Version ID is 1 nibble
>> +		  Instance ID in 1 nibble
>> +		  MFD in 4 nibbles
>> +		  PID in 4 nibbles
>> +		  CID is 2 nibbles
>> +
>> +		  Version number '0x1' represents SoundWire 1.0
>> +		  Version number '0x2' represents SoundWire 1.1
> 
> This can all be a regex.
> 
>> +		  ex: "sdw0110217201000" represents 0 LinkID,
>> +		  SoundWire 1.0 version slave with Instance ID 1.
>> +		  More Information on detail of encoding of these fields can be
>> +		  found in MIPI Alliance DisCo & SoundWire 1.0 Specifications.
>> +
>> +SoundWire example for Qualcomm's SoundWire controller:
>> +
>> +soundwire@c2d0000 {
>> +	compatible = "qcom,soundwire-v1.5.0"
>> +	reg = <0x0c2d0000 0x2000>;
>> +
>> +	spkr_left:wsa8810-left{
>> +		compatible = "sdw0110217201000";
>> +		...
>> +	};
>> +
>> +	spkr_right:wsa8810-right{
>> +		compatible = "sdw0120217201000";
> 
> The normal way to distinguish instances is with 'reg'. So I think you
> need 'reg' with Instance ID moved there at least. Just guessing, but
> perhaps Link ID, too? And for 2 different classes of device is that
> enough?

In previous bindings ( https://lists.gt.net/linux/kernel/3403276 ) we 
did have instance-id as different property, however Pierre had some good 
suggestion to make it align with _ADR encoding as per MIPI DisCo spec.

Do you still think that we should split the instance id to reg property?

Thanks,
srini

> 
> Rob
> 

  reply	other threads:[~2019-08-22 10:12 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-09 13:34 [PATCH v3 0/4] ASoC: codecs: Add WSA881x Smart Speaker amplifier support Srinivas Kandagatla
2019-08-09 13:34 ` [PATCH v3 1/4] dt-bindings: soundwire: add slave bindings Srinivas Kandagatla
2019-08-21  9:09   ` Vinod Koul
2019-08-21 21:44   ` Rob Herring
2019-08-22 10:12     ` Srinivas Kandagatla [this message]
2019-08-22 11:06       ` Vinod Koul
2019-08-22 12:36       ` Rob Herring
2019-08-22 12:51         ` Vinod Koul
2019-08-22 12:56         ` Srinivas Kandagatla
2019-08-22 16:11           ` Rob Herring
2019-08-09 13:34 ` [PATCH v3 2/4] soundwire: core: add device tree support for slave devices Srinivas Kandagatla
2019-08-09 13:34 ` [PATCH v3 3/4] dt-bindings: ASoC: Add WSA881x bindings Srinivas Kandagatla
2019-08-09 13:34 ` [PATCH v3 4/4] ASoC: codecs: add wsa881x amplifier support Srinivas Kandagatla
2019-08-12  2:46   ` kbuild test robot
2019-08-12  9:05     ` Srinivas Kandagatla

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=0272eafd-0aa5-f695-64e4-f6ad7157a3a6@linaro.org \
    --to=srinivas.kandagatla@linaro.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=bgoswami@codeaurora.org \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pierre-louis.bossart@linux.intel.com \
    --cc=plai@codeaurora.org \
    --cc=robh@kernel.org \
    --cc=vkoul@kernel.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).