[1/2] slimbus: ngd: dt-bindings: Add slim ngd dt bindings

Message ID 20180516165118.16551-2-srinivas.kandagatla@linaro.org
State New
Headers show
Series
  • slimbus: Add QCOM SLIMBus NGD driver
Related show

Commit Message

Srinivas Kandagatla May 16, 2018, 4:51 p.m.
This patch adds bindings for Qualcomm SLIMBus NGD controller found in
all new SoCs starting from B family.
SLIMBus NGD controller is a light-weight driver responsible for
communicating with SLIMBus slaves directly over the bus using messaging
interface and communicating with master component residing on ADSP for
bandwidth and data-channel management

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>

---
 .../bindings/slimbus/slim-ngd-qcom-ctrl.txt        | 70 ++++++++++++++++++++++
 1 file changed, 70 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/slimbus/slim-ngd-qcom-ctrl.txt

-- 
2.16.2

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Trilok Soni May 18, 2018, 8:47 p.m. | #1
Hi Srinivas

On 5/16/2018 9:51 AM, Srinivas Kandagatla wrote:
> This patch adds bindings for Qualcomm SLIMBus NGD controller found in

> all new SoCs starting from B family.


"X/Y/Z family" has no meaning here in upstream and just put the 
processor name from which you are adding the support or tested to start 
with.


-- 
---Trilok Soni
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a 
Linux Foundation Collaborative Project
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Srinivas Kandagatla May 21, 2018, 8:49 a.m. | #2
On 18/05/18 21:47, Trilok Soni wrote:
> Hi Srinivas

> 

> On 5/16/2018 9:51 AM, Srinivas Kandagatla wrote:

>> This patch adds bindings for Qualcomm SLIMBus NGD controller found in

>> all new SoCs starting from B family.

> 

> "X/Y/Z family" has no meaning here in upstream and just put the 

> processor name from which you are adding the support or tested to start 

> with.


Thanks, Will update this when I send new version of this patch.

thanks,
srini
> 

> 

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Srinivas Kandagatla May 23, 2018, 5:17 p.m. | #3
Thanks Rob for review,

On 23/05/18 17:40, Rob Herring wrote:
> On Wed, May 16, 2018 at 05:51:17PM +0100, Srinivas Kandagatla wrote:

>> This patch adds bindings for Qualcomm SLIMBus NGD controller found in

>> all new SoCs starting from B family.

>> SLIMBus NGD controller is a light-weight driver responsible for

>> communicating with SLIMBus slaves directly over the bus using messaging

>> interface and communicating with master component residing on ADSP for

>> bandwidth and data-channel management

>>

>> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>

>> ---

>>   .../bindings/slimbus/slim-ngd-qcom-ctrl.txt        | 70 ++++++++++++++++++++++

>>   1 file changed, 70 insertions(+)

>>   create mode 100644 Documentation/devicetree/bindings/slimbus/slim-ngd-qcom-ctrl.txt

>>

>> diff --git a/Documentation/devicetree/bindings/slimbus/slim-ngd-qcom-ctrl.txt b/Documentation/devicetree/bindings/slimbus/slim-ngd-qcom-ctrl.txt

>> new file mode 100644

>> index 000000000000..c948fb098819

>> --- /dev/null

>> +++ b/Documentation/devicetree/bindings/slimbus/slim-ngd-qcom-ctrl.txt

>> @@ -0,0 +1,70 @@

>> +Qualcomm SLIMBus Non Generic Device (NGD) Controller binding

>> +

>> +SLIMBus NGD controller is a light-weight driver responsible for communicating

>> +with SLIMBus slaves directly over the bus using messaging interface and

>> +communicating with master component residing on ADSP for bandwidth and

>> +data-channel management

>> +

>> +Please refer to slimbus/bus.txt for details of the common SLIMBus bindings.

>> +

>> +- compatible:

>> +	Usage: required

>> +	Value type: <stringlist>

>> +	Definition: must be "qcom,slim-ngd"

> 

> SoC specific compatible needed.


Yes, I will add that in v2.
> 

>> +

>> +- reg:

>> +	Usage: required

>> +	Value type: <prop-encoded-array>

>> +	Definition: must specify the base address and size of the controller

>> +		    register blocks.

> 

> blocks? Is there more than one? If so, how many?

Its just one. I will fix the text to reflect this.

> 

>> +

>> +- reg-names:

>> +	Usage: required

>> +	Value type: <stringlist>

>> +	Definition: must be "ctrl"

> 

> reg-names is pointless when there is only 1.

> 

>> +

>> +- qcom,ngd-id

>> +	Usage: required

>> +	Value type: <u32>

>> +	Definition: ngd instance id in the controller

> 

> Why do you need this?

I have removed this totally in my next version, which I will be posting 
soon.

Thanks,
srini
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Srinivas Kandagatla May 23, 2018, 8:01 p.m. | #4
On 23/05/18 20:28, Rob Herring wrote:
> On Wed, May 23, 2018 at 1:11 PM, Srinivas Kandagatla

> <srinivas.kandagatla@linaro.org> wrote:

>>

>>

>> On 23/05/18 17:40, Rob Herring wrote:

>>>>

>>>> +

>>>> +- qcom,ngd-id

>>>> +       Usage: required

>>>> +       Value type: <u32>

>>>> +       Definition: ngd instance id in the controller

>>>

>>> Why do you need this?

>>>

>> Please ignore my comment from previous reply.

>>

>> There are more than one instances of ngd in this slim controller.

>> We need this to make sure we are programming the correct one.

> 

> Doesn't the parent-child relationship of devices on the bus provide

> that? 

Thanks for the hint, that sounds like the actual problem here,
If I represent the node with proper parent-child relationship like this, 
it will remove the need of this property and would work perfectly in 
case we want to support multiple ngds in future!

slim@91c0000 {
	compatible = "qcom,msm8996-slim";
	reg = <0x91c0000 0x2C000>;
	interrupts = <0 163 0>;
	dmas = <&slimbam 3>, <&slimbam 4>;
	dma-names = "rx", "tx";
	#address-cells = <1>;
	#size-cells = <1>;
	ngd@1 {
		reg  = <1>;
		#address-cells = <1>;
		#size-cells = <1>;
		codec@1 {
			compatible = "slim217,1a0";
			reg  = <1 0>;
		};	
	};
};



If you mean to provide consistent numbering to userspace, then
> that's not a DT problem (nor one that Linux plans to solve).

> 

No, this is not problem am trying to solve.

>> We also need this instance ID during powering it up using QMI.

> 

> Wouldn't that be a QMI ID?


It is passed as parameter to SLIMBUS_QMI_SELECT_INSTANCE_REQ_V01 request.

thanks,
srini
> 

> Rob

> 

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/Documentation/devicetree/bindings/slimbus/slim-ngd-qcom-ctrl.txt b/Documentation/devicetree/bindings/slimbus/slim-ngd-qcom-ctrl.txt
new file mode 100644
index 000000000000..c948fb098819
--- /dev/null
+++ b/Documentation/devicetree/bindings/slimbus/slim-ngd-qcom-ctrl.txt
@@ -0,0 +1,70 @@ 
+Qualcomm SLIMBus Non Generic Device (NGD) Controller binding
+
+SLIMBus NGD controller is a light-weight driver responsible for communicating
+with SLIMBus slaves directly over the bus using messaging interface and
+communicating with master component residing on ADSP for bandwidth and
+data-channel management
+
+Please refer to slimbus/bus.txt for details of the common SLIMBus bindings.
+
+- compatible:
+	Usage: required
+	Value type: <stringlist>
+	Definition: must be "qcom,slim-ngd"
+
+- reg:
+	Usage: required
+	Value type: <prop-encoded-array>
+	Definition: must specify the base address and size of the controller
+		    register blocks.
+
+- reg-names:
+	Usage: required
+	Value type: <stringlist>
+	Definition: must be "ctrl"
+
+- qcom,ngd-id
+	Usage: required
+	Value type: <u32>
+	Definition: ngd instance id in the controller
+- dmas
+	Usage: required
+	Value type: <array of phandles>
+	Definition: List of rx and tx dma channels
+
+- dma-names
+	Usage: required
+	Value type: <stringlist>
+	Definition: must be "rx" and "tx".
+
+- interrupts:
+	Usage: required
+	Value type: <prop-encoded-array>
+	Definition: must list controller IRQ.
+
+#address-cells
+	Usage: required
+	Refer to slimbus/bus.txt for details of the common SLIMBus bindings.
+
+#size-cells
+	Usage: required
+	Refer to slimbus/bus.txt for details of the common SLIMBus bindings.
+
+= EXAMPLE
+
+slim@91c0000 {
+	compatible = "qcom,slim-ngd";
+	reg = <0x91c0000 0x2C000>;
+	reg-names = "ctrl";
+	interrupts = <0 163 0>;
+	qcom,ngd-id = <1>;
+	dmas =	<&slimbam 3>, <&slimbam 4>;
+	dma-names = "rx", "tx";
+
+	#address-cells = <1>;
+	#size-cells = <1>;
+	codec@1 {
+		compatible = "slim217,1a0";
+		reg  = <1 0>;
+	};
+};