Message ID | 20180516165118.16551-2-srinivas.kandagatla@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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.
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 > >
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. > + > +- 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? > + > +- 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? > +- 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>; > + }; > +}; > -- > 2.16.2 >
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
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. We also need this instance ID during powering it up using QMI. thanks, srini
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? If you mean to provide consistent numbering to userspace, then that's not a DT problem (nor one that Linux plans to solve). > We also need this instance ID during powering it up using QMI. Wouldn't that be a QMI ID? Rob
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 >
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>; + }; +};
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