[v2] ARM: zynq: Add #io-channel-cells to (x)adc node for iio-hwmon

Message ID 1489003884-2489-1-git-send-email-mdf@kernel.org
State New
Headers show

Commit Message

Moritz Fischer March 8, 2017, 8:11 p.m.
Fix

OF: /iio_hwmon: could not get #io-channel-cells for
/amba/adc@f8007100
OF: /iio_hwmon: could not get #io-channel-cells for
/amba/adc@f8007100
OF: /iio_hwmon: could not get #io-channel-cells for
/amba/adc@f8007100

by adding the #io-channel-cells property.

Signed-off-by: Moritz Fischer <mdf@kernel.org>
Cc: Michal Simek <michal.simek@xilinx.com>
Cc: Sören Brinkmann <soren.brinkmann@xilinx.com>
Cc: Julia Cartwright <julia@ni.com>
Cc: linux-kernel@vger.kernel.org
Cc: devicetree@vger.kernel.org
---

Changes from v1:
- fix messed up commit message
---
 arch/arm/boot/dts/zynq-7000.dtsi | 1 +
 1 file changed, 1 insertion(+)

Comments

Michal Simek March 16, 2017, 4:16 p.m. | #1
Hi,

On 8.3.2017 21:11, Moritz Fischer wrote:
> Fix
> 
> OF: /iio_hwmon: could not get #io-channel-cells for
> /amba/adc@f8007100
> OF: /iio_hwmon: could not get #io-channel-cells for
> /amba/adc@f8007100
> OF: /iio_hwmon: could not get #io-channel-cells for
> /amba/adc@f8007100
> 
> by adding the #io-channel-cells property.
> 
> Signed-off-by: Moritz Fischer <mdf@kernel.org>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: Sören Brinkmann <soren.brinkmann@xilinx.com>
> Cc: Julia Cartwright <julia@ni.com>
> Cc: linux-kernel@vger.kernel.org
> Cc: devicetree@vger.kernel.org
> ---
> 
> Changes from v1:
> - fix messed up commit message
> ---
>  arch/arm/boot/dts/zynq-7000.dtsi | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/arch/arm/boot/dts/zynq-7000.dtsi b/arch/arm/boot/dts/zynq-7000.dtsi
> index f3ac9bf..98233a8 100644
> --- a/arch/arm/boot/dts/zynq-7000.dtsi
> +++ b/arch/arm/boot/dts/zynq-7000.dtsi
> @@ -72,6 +72,7 @@
>  			interrupts = <0 7 4>;
>  			interrupt-parent = <&intc>;
>  			clocks = <&clkc 12>;
> +			#io-channel-cells = <1>;
>  		};
>  
>  		can0: can@e0008000 {
> 

I think it will be good to the next step too.
It means also add iio-hwmon node too.

What do you think?

Thanks,
Michal
Moritz Fischer March 16, 2017, 4:39 p.m. | #2
On Thu, Mar 16, 2017 at 9:16 AM, Michal Simek <michal.simek@xilinx.com> wrote:
> Hi,
>
> On 8.3.2017 21:11, Moritz Fischer wrote:
>> Fix
>>
>> OF: /iio_hwmon: could not get #io-channel-cells for
>> /amba/adc@f8007100
>> OF: /iio_hwmon: could not get #io-channel-cells for
>> /amba/adc@f8007100
>> OF: /iio_hwmon: could not get #io-channel-cells for
>> /amba/adc@f8007100
>>
>> by adding the #io-channel-cells property.
>>
>> Signed-off-by: Moritz Fischer <mdf@kernel.org>
>> Cc: Michal Simek <michal.simek@xilinx.com>
>> Cc: Sören Brinkmann <soren.brinkmann@xilinx.com>
>> Cc: Julia Cartwright <julia@ni.com>
>> Cc: linux-kernel@vger.kernel.org
>> Cc: devicetree@vger.kernel.org
>> ---
>>
>> Changes from v1:
>> - fix messed up commit message
>> ---
>>  arch/arm/boot/dts/zynq-7000.dtsi | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/arch/arm/boot/dts/zynq-7000.dtsi b/arch/arm/boot/dts/zynq-7000.dtsi
>> index f3ac9bf..98233a8 100644
>> --- a/arch/arm/boot/dts/zynq-7000.dtsi
>> +++ b/arch/arm/boot/dts/zynq-7000.dtsi
>> @@ -72,6 +72,7 @@
>>                       interrupts = <0 7 4>;
>>                       interrupt-parent = <&intc>;
>>                       clocks = <&clkc 12>;
>> +                     #io-channel-cells = <1>;
>>               };
>>
>>               can0: can@e0008000 {
>>
>
> I think it will be good to the next step too.
> It means also add iio-hwmon node too.
>
> What do you think?

I hadn't put it in there since dts is supposed to describe hw,
but obviously putting the actual hwmon in there makes it more useful.

I can resubmit with the hwmon node in there.

Cheers,
Moritz
Michal Simek March 16, 2017, 4:45 p.m. | #3
On 16.3.2017 17:39, Moritz Fischer wrote:
> On Thu, Mar 16, 2017 at 9:16 AM, Michal Simek <michal.simek@xilinx.com> wrote:
>> Hi,
>>
>> On 8.3.2017 21:11, Moritz Fischer wrote:
>>> Fix
>>>
>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>> /amba/adc@f8007100
>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>> /amba/adc@f8007100
>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>> /amba/adc@f8007100
>>>
>>> by adding the #io-channel-cells property.
>>>
>>> Signed-off-by: Moritz Fischer <mdf@kernel.org>
>>> Cc: Michal Simek <michal.simek@xilinx.com>
>>> Cc: Sören Brinkmann <soren.brinkmann@xilinx.com>
>>> Cc: Julia Cartwright <julia@ni.com>
>>> Cc: linux-kernel@vger.kernel.org
>>> Cc: devicetree@vger.kernel.org
>>> ---
>>>
>>> Changes from v1:
>>> - fix messed up commit message
>>> ---
>>>  arch/arm/boot/dts/zynq-7000.dtsi | 1 +
>>>  1 file changed, 1 insertion(+)
>>>
>>> diff --git a/arch/arm/boot/dts/zynq-7000.dtsi b/arch/arm/boot/dts/zynq-7000.dtsi
>>> index f3ac9bf..98233a8 100644
>>> --- a/arch/arm/boot/dts/zynq-7000.dtsi
>>> +++ b/arch/arm/boot/dts/zynq-7000.dtsi
>>> @@ -72,6 +72,7 @@
>>>                       interrupts = <0 7 4>;
>>>                       interrupt-parent = <&intc>;
>>>                       clocks = <&clkc 12>;
>>> +                     #io-channel-cells = <1>;
>>>               };
>>>
>>>               can0: can@e0008000 {
>>>
>>
>> I think it will be good to the next step too.
>> It means also add iio-hwmon node too.
>>
>> What do you think?
> 
> I hadn't put it in there since dts is supposed to describe hw,
> but obviously putting the actual hwmon in there makes it more useful.

I had one discussion about this with Grant in past and it is common
mistake. It is simplification of purpose of dts.

> 
> I can resubmit with the hwmon node in there.

If you grep kernel tree you will see that others are using it too.
Also there is accepted binding for that that's why I can't see big
problem with it.

Thanks,
Michal
Lars-Peter Clausen March 16, 2017, 4:51 p.m. | #4
On 03/16/2017 05:45 PM, Michal Simek wrote:
> On 16.3.2017 17:39, Moritz Fischer wrote:
>> On Thu, Mar 16, 2017 at 9:16 AM, Michal Simek <michal.simek@xilinx.com> wrote:
>>> Hi,
>>>
>>> On 8.3.2017 21:11, Moritz Fischer wrote:
>>>> Fix
>>>>
>>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>>> /amba/adc@f8007100
>>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>>> /amba/adc@f8007100
>>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>>> /amba/adc@f8007100
>>>>
>>>> by adding the #io-channel-cells property.
>>>>
>>>> Signed-off-by: Moritz Fischer <mdf@kernel.org>
>>>> Cc: Michal Simek <michal.simek@xilinx.com>
>>>> Cc: Sören Brinkmann <soren.brinkmann@xilinx.com>
>>>> Cc: Julia Cartwright <julia@ni.com>
>>>> Cc: linux-kernel@vger.kernel.org
>>>> Cc: devicetree@vger.kernel.org
>>>> ---
>>>>
>>>> Changes from v1:
>>>> - fix messed up commit message
>>>> ---
>>>>  arch/arm/boot/dts/zynq-7000.dtsi | 1 +
>>>>  1 file changed, 1 insertion(+)
>>>>
>>>> diff --git a/arch/arm/boot/dts/zynq-7000.dtsi b/arch/arm/boot/dts/zynq-7000.dtsi
>>>> index f3ac9bf..98233a8 100644
>>>> --- a/arch/arm/boot/dts/zynq-7000.dtsi
>>>> +++ b/arch/arm/boot/dts/zynq-7000.dtsi
>>>> @@ -72,6 +72,7 @@
>>>>                       interrupts = <0 7 4>;
>>>>                       interrupt-parent = <&intc>;
>>>>                       clocks = <&clkc 12>;
>>>> +                     #io-channel-cells = <1>;
>>>>               };
>>>>
>>>>               can0: can@e0008000 {
>>>>
>>>
>>> I think it will be good to the next step too.
>>> It means also add iio-hwmon node too.
>>>
>>> What do you think?
>>
>> I hadn't put it in there since dts is supposed to describe hw,
>> but obviously putting the actual hwmon in there makes it more useful.
> 
> I had one discussion about this with Grant in past and it is common
> mistake. It is simplification of purpose of dts.
> 

If the iio-hwmon binding had gone through review it would have been rejected.

>>
>> I can resubmit with the hwmon node in there.
> 
> If you grep kernel tree you will see that others are using it too.
> Also there is accepted binding for that that's why I can't see big
> problem with it.

Since this is an application specific binding I wouldn't put it in the
generic DT include file. It's a bit like adding a gpio-key binding for each
of the GPIOs just in case somebody wants to use it.
Moritz Fischer March 16, 2017, 5:54 p.m. | #5
Hi Lars,

On Thu, Mar 16, 2017 at 9:51 AM, Lars-Peter Clausen <lars@metafoo.de> wrote:
> On 03/16/2017 05:45 PM, Michal Simek wrote:
>> On 16.3.2017 17:39, Moritz Fischer wrote:
>>> On Thu, Mar 16, 2017 at 9:16 AM, Michal Simek <michal.simek@xilinx.com> wrote:
>>>> Hi,
>>>>
>>>> On 8.3.2017 21:11, Moritz Fischer wrote:
>>>>> Fix
>>>>>
>>>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>>>> /amba/adc@f8007100
>>>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>>>> /amba/adc@f8007100
>>>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>>>> /amba/adc@f8007100
>>>>>
>>>>> by adding the #io-channel-cells property.
>>>>>
>>>>> Signed-off-by: Moritz Fischer <mdf@kernel.org>
>>>>> Cc: Michal Simek <michal.simek@xilinx.com>
>>>>> Cc: Sören Brinkmann <soren.brinkmann@xilinx.com>
>>>>> Cc: Julia Cartwright <julia@ni.com>
>>>>> Cc: linux-kernel@vger.kernel.org
>>>>> Cc: devicetree@vger.kernel.org
>>>>> ---
>>>>>
>>>>> Changes from v1:
>>>>> - fix messed up commit message
>>>>> ---
>>>>>  arch/arm/boot/dts/zynq-7000.dtsi | 1 +
>>>>>  1 file changed, 1 insertion(+)
>>>>>
>>>>> diff --git a/arch/arm/boot/dts/zynq-7000.dtsi b/arch/arm/boot/dts/zynq-7000.dtsi
>>>>> index f3ac9bf..98233a8 100644
>>>>> --- a/arch/arm/boot/dts/zynq-7000.dtsi
>>>>> +++ b/arch/arm/boot/dts/zynq-7000.dtsi
>>>>> @@ -72,6 +72,7 @@
>>>>>                       interrupts = <0 7 4>;
>>>>>                       interrupt-parent = <&intc>;
>>>>>                       clocks = <&clkc 12>;
>>>>> +                     #io-channel-cells = <1>;
>>>>>               };
>>>>>
>>>>>               can0: can@e0008000 {
>>>>>
>>>>
>>>> I think it will be good to the next step too.
>>>> It means also add iio-hwmon node too.
>>>>
>>>> What do you think?
>>>
>>> I hadn't put it in there since dts is supposed to describe hw,
>>> but obviously putting the actual hwmon in there makes it more useful.
>>
>> I had one discussion about this with Grant in past and it is common
>> mistake. It is simplification of purpose of dts.
>>
>
> If the iio-hwmon binding had gone through review it would have been rejected.
>
>>>
>>> I can resubmit with the hwmon node in there.
>>
>> If you grep kernel tree you will see that others are using it too.
>> Also there is accepted binding for that that's why I can't see big
>> problem with it.
>
> Since this is an application specific binding I wouldn't put it in the
> generic DT include file. It's a bit like adding a gpio-key binding for each
> of the GPIOs just in case somebody wants to use it.

So is your suggestion to move the whole thing from .dtsi -> .dts?

Thanks,

Moritz
Michal Simek March 16, 2017, 6:06 p.m. | #6
On 16.3.2017 17:51, Lars-Peter Clausen wrote:
> On 03/16/2017 05:45 PM, Michal Simek wrote:
>> On 16.3.2017 17:39, Moritz Fischer wrote:
>>> On Thu, Mar 16, 2017 at 9:16 AM, Michal Simek <michal.simek@xilinx.com> wrote:
>>>> Hi,
>>>>
>>>> On 8.3.2017 21:11, Moritz Fischer wrote:
>>>>> Fix
>>>>>
>>>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>>>> /amba/adc@f8007100
>>>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>>>> /amba/adc@f8007100
>>>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>>>> /amba/adc@f8007100
>>>>>
>>>>> by adding the #io-channel-cells property.
>>>>>
>>>>> Signed-off-by: Moritz Fischer <mdf@kernel.org>
>>>>> Cc: Michal Simek <michal.simek@xilinx.com>
>>>>> Cc: Sören Brinkmann <soren.brinkmann@xilinx.com>
>>>>> Cc: Julia Cartwright <julia@ni.com>
>>>>> Cc: linux-kernel@vger.kernel.org
>>>>> Cc: devicetree@vger.kernel.org
>>>>> ---
>>>>>
>>>>> Changes from v1:
>>>>> - fix messed up commit message
>>>>> ---
>>>>>  arch/arm/boot/dts/zynq-7000.dtsi | 1 +
>>>>>  1 file changed, 1 insertion(+)
>>>>>
>>>>> diff --git a/arch/arm/boot/dts/zynq-7000.dtsi b/arch/arm/boot/dts/zynq-7000.dtsi
>>>>> index f3ac9bf..98233a8 100644
>>>>> --- a/arch/arm/boot/dts/zynq-7000.dtsi
>>>>> +++ b/arch/arm/boot/dts/zynq-7000.dtsi
>>>>> @@ -72,6 +72,7 @@
>>>>>                       interrupts = <0 7 4>;
>>>>>                       interrupt-parent = <&intc>;
>>>>>                       clocks = <&clkc 12>;
>>>>> +                     #io-channel-cells = <1>;
>>>>>               };
>>>>>
>>>>>               can0: can@e0008000 {
>>>>>
>>>>
>>>> I think it will be good to the next step too.
>>>> It means also add iio-hwmon node too.
>>>>
>>>> What do you think?
>>>
>>> I hadn't put it in there since dts is supposed to describe hw,
>>> but obviously putting the actual hwmon in there makes it more useful.
>>
>> I had one discussion about this with Grant in past and it is common
>> mistake. It is simplification of purpose of dts.
>>
> 
> If the iio-hwmon binding had gone through review it would have been rejected.

Isn't it a time to deprecate it?

> 
>>>
>>> I can resubmit with the hwmon node in there.
>>
>> If you grep kernel tree you will see that others are using it too.
>> Also there is accepted binding for that that's why I can't see big
>> problem with it.
> 
> Since this is an application specific binding I wouldn't put it in the
> generic DT include file. It's a bit like adding a gpio-key binding for each
> of the GPIOs just in case somebody wants to use it.

psci is system specific too.

IIRC this driver for zynq was written by ADI or with ADI help that's why
you know much better than I what's the correct configuration.

This targets PS IP which should be present in the hw all the time.
Not sure if for all configuration but I expect at least the part of it
is there all them time.

If binding is incorrect then please remove it with removing from all
dts/dtsi files which have this. The same is for of probe function in the
driver itself.
If this is not done then this is just +1 case.

If you still insist that we shouldn't do it then please at least extend
commit message and put there example how to wire it on zynq.

Thanks,
Michal
Lars-Peter Clausen March 16, 2017, 9:20 p.m. | #7
On 03/16/2017 07:06 PM, Michal Simek wrote:
> On 16.3.2017 17:51, Lars-Peter Clausen wrote:
>> On 03/16/2017 05:45 PM, Michal Simek wrote:
>>> On 16.3.2017 17:39, Moritz Fischer wrote:
>>>> On Thu, Mar 16, 2017 at 9:16 AM, Michal Simek <michal.simek@xilinx.com> wrote:
>>>>> Hi,
>>>>>
>>>>> On 8.3.2017 21:11, Moritz Fischer wrote:
>>>>>> Fix
>>>>>>
>>>>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>>>>> /amba/adc@f8007100
>>>>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>>>>> /amba/adc@f8007100
>>>>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>>>>> /amba/adc@f8007100
>>>>>>
>>>>>> by adding the #io-channel-cells property.
>>>>>>
>>>>>> Signed-off-by: Moritz Fischer <mdf@kernel.org>
>>>>>> Cc: Michal Simek <michal.simek@xilinx.com>
>>>>>> Cc: Sören Brinkmann <soren.brinkmann@xilinx.com>
>>>>>> Cc: Julia Cartwright <julia@ni.com>
>>>>>> Cc: linux-kernel@vger.kernel.org
>>>>>> Cc: devicetree@vger.kernel.org
>>>>>> ---
>>>>>>
>>>>>> Changes from v1:
>>>>>> - fix messed up commit message
>>>>>> ---
>>>>>>  arch/arm/boot/dts/zynq-7000.dtsi | 1 +
>>>>>>  1 file changed, 1 insertion(+)
>>>>>>
>>>>>> diff --git a/arch/arm/boot/dts/zynq-7000.dtsi b/arch/arm/boot/dts/zynq-7000.dtsi
>>>>>> index f3ac9bf..98233a8 100644
>>>>>> --- a/arch/arm/boot/dts/zynq-7000.dtsi
>>>>>> +++ b/arch/arm/boot/dts/zynq-7000.dtsi
>>>>>> @@ -72,6 +72,7 @@
>>>>>>                       interrupts = <0 7 4>;
>>>>>>                       interrupt-parent = <&intc>;
>>>>>>                       clocks = <&clkc 12>;
>>>>>> +                     #io-channel-cells = <1>;
>>>>>>               };
>>>>>>
>>>>>>               can0: can@e0008000 {
>>>>>>
>>>>>
>>>>> I think it will be good to the next step too.
>>>>> It means also add iio-hwmon node too.
>>>>>
>>>>> What do you think?
>>>>
>>>> I hadn't put it in there since dts is supposed to describe hw,
>>>> but obviously putting the actual hwmon in there makes it more useful.
>>>
>>> I had one discussion about this with Grant in past and it is common
>>> mistake. It is simplification of purpose of dts.
>>>
>>
>> If the iio-hwmon binding had gone through review it would have been rejected.
> 
> Isn't it a time to deprecate it?

Well, it's ABI now and has to stay forever. Deprecating it makes only sense
if there is a replacement, which there is not. The iio-hwmon bridge has its
usecases it's just instantiating it via devicetree which is not so nice.

> 
>>
>>>>
>>>> I can resubmit with the hwmon node in there.
>>>
>>> If you grep kernel tree you will see that others are using it too.
>>> Also there is accepted binding for that that's why I can't see big
>>> problem with it.
>>
>> Since this is an application specific binding I wouldn't put it in the
>> generic DT include file. It's a bit like adding a gpio-key binding for each
>> of the GPIOs just in case somebody wants to use it.
> 
> psci is system specific too.
> 
> IIRC this driver for zynq was written by ADI or with ADI help that's why
> you know much better than I what's the correct configuration.
> 
> This targets PS IP which should be present in the hw all the time.
> Not sure if for all configuration but I expect at least the part of it
> is there all them time.
> 
> If binding is incorrect then please remove it with removing from all
> dts/dtsi files which have this. The same is for of probe function in the
> driver itself.
> If this is not done then this is just +1 case.
> 
> If you still insist that we shouldn't do it then please at least extend
> commit message and put there example how to wire it on zynq.

There is a IIO driver for the XADC, this driver has a userspace interface
that exposes the measurements provided by the hardware. Using the hwmon
bridge will expose the same information just through a hwmon interface.

One reason for using the iio-hwmon bridge is because you have a legacy
application that expects the a hwmon interface. But new applications that
want to access the XADC should really use the IIO interface if possible.

In my opinion instantiating the hwmon bridge by default will only cause
confusion. There are now redundant interfaces and users will wonder what is
the difference between the two. Is it the same data, is it different data?
Which is the preferred interface? Which one is 'better'?
Lars-Peter Clausen March 16, 2017, 9:23 p.m. | #8
On 03/16/2017 06:54 PM, Moritz Fischer wrote:
> Hi Lars,
> 
> On Thu, Mar 16, 2017 at 9:51 AM, Lars-Peter Clausen <lars@metafoo.de> wrote:
>> On 03/16/2017 05:45 PM, Michal Simek wrote:
>>> On 16.3.2017 17:39, Moritz Fischer wrote:
>>>> On Thu, Mar 16, 2017 at 9:16 AM, Michal Simek <michal.simek@xilinx.com> wrote:
>>>>> Hi,
>>>>>
>>>>> On 8.3.2017 21:11, Moritz Fischer wrote:
>>>>>> Fix
>>>>>>
>>>>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>>>>> /amba/adc@f8007100
>>>>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>>>>> /amba/adc@f8007100
>>>>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>>>>> /amba/adc@f8007100
>>>>>>
>>>>>> by adding the #io-channel-cells property.
>>>>>>
>>>>>> Signed-off-by: Moritz Fischer <mdf@kernel.org>
>>>>>> Cc: Michal Simek <michal.simek@xilinx.com>
>>>>>> Cc: Sören Brinkmann <soren.brinkmann@xilinx.com>
>>>>>> Cc: Julia Cartwright <julia@ni.com>
>>>>>> Cc: linux-kernel@vger.kernel.org
>>>>>> Cc: devicetree@vger.kernel.org
>>>>>> ---
>>>>>>
>>>>>> Changes from v1:
>>>>>> - fix messed up commit message
>>>>>> ---
>>>>>>  arch/arm/boot/dts/zynq-7000.dtsi | 1 +
>>>>>>  1 file changed, 1 insertion(+)
>>>>>>
>>>>>> diff --git a/arch/arm/boot/dts/zynq-7000.dtsi b/arch/arm/boot/dts/zynq-7000.dtsi
>>>>>> index f3ac9bf..98233a8 100644
>>>>>> --- a/arch/arm/boot/dts/zynq-7000.dtsi
>>>>>> +++ b/arch/arm/boot/dts/zynq-7000.dtsi
>>>>>> @@ -72,6 +72,7 @@
>>>>>>                       interrupts = <0 7 4>;
>>>>>>                       interrupt-parent = <&intc>;
>>>>>>                       clocks = <&clkc 12>;
>>>>>> +                     #io-channel-cells = <1>;
>>>>>>               };
>>>>>>
>>>>>>               can0: can@e0008000 {
>>>>>>
>>>>>
>>>>> I think it will be good to the next step too.
>>>>> It means also add iio-hwmon node too.
>>>>>
>>>>> What do you think?
>>>>
>>>> I hadn't put it in there since dts is supposed to describe hw,
>>>> but obviously putting the actual hwmon in there makes it more useful.
>>>
>>> I had one discussion about this with Grant in past and it is common
>>> mistake. It is simplification of purpose of dts.
>>>
>>
>> If the iio-hwmon binding had gone through review it would have been rejected.
>>
>>>>
>>>> I can resubmit with the hwmon node in there.
>>>
>>> If you grep kernel tree you will see that others are using it too.
>>> Also there is accepted binding for that that's why I can't see big
>>> problem with it.
>>
>> Since this is an application specific binding I wouldn't put it in the
>> generic DT include file. It's a bit like adding a gpio-key binding for each
>> of the GPIOs just in case somebody wants to use it.
> 
> So is your suggestion to move the whole thing from .dtsi -> .dts?

The #io-channels-cells can go into the dtsi, that's a sensible thing to do.
The number of cells is part of the binding specification for the XADC and
wont change.

The hwmon bridge on the other hand I wouldn't put into any default
devicetree. In my opinion is should only used if and only if there are
legacy applications on a specific system that need to use the hwmon interface.
Michal Simek March 17, 2017, 6:46 a.m. | #9
On 16.3.2017 22:20, Lars-Peter Clausen wrote:
> On 03/16/2017 07:06 PM, Michal Simek wrote:
>> On 16.3.2017 17:51, Lars-Peter Clausen wrote:
>>> On 03/16/2017 05:45 PM, Michal Simek wrote:
>>>> On 16.3.2017 17:39, Moritz Fischer wrote:
>>>>> On Thu, Mar 16, 2017 at 9:16 AM, Michal Simek <michal.simek@xilinx.com> wrote:
>>>>>> Hi,
>>>>>>
>>>>>> On 8.3.2017 21:11, Moritz Fischer wrote:
>>>>>>> Fix
>>>>>>>
>>>>>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>>>>>> /amba/adc@f8007100
>>>>>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>>>>>> /amba/adc@f8007100
>>>>>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>>>>>> /amba/adc@f8007100
>>>>>>>
>>>>>>> by adding the #io-channel-cells property.
>>>>>>>
>>>>>>> Signed-off-by: Moritz Fischer <mdf@kernel.org>
>>>>>>> Cc: Michal Simek <michal.simek@xilinx.com>
>>>>>>> Cc: Sören Brinkmann <soren.brinkmann@xilinx.com>
>>>>>>> Cc: Julia Cartwright <julia@ni.com>
>>>>>>> Cc: linux-kernel@vger.kernel.org
>>>>>>> Cc: devicetree@vger.kernel.org
>>>>>>> ---
>>>>>>>
>>>>>>> Changes from v1:
>>>>>>> - fix messed up commit message
>>>>>>> ---
>>>>>>>  arch/arm/boot/dts/zynq-7000.dtsi | 1 +
>>>>>>>  1 file changed, 1 insertion(+)
>>>>>>>
>>>>>>> diff --git a/arch/arm/boot/dts/zynq-7000.dtsi b/arch/arm/boot/dts/zynq-7000.dtsi
>>>>>>> index f3ac9bf..98233a8 100644
>>>>>>> --- a/arch/arm/boot/dts/zynq-7000.dtsi
>>>>>>> +++ b/arch/arm/boot/dts/zynq-7000.dtsi
>>>>>>> @@ -72,6 +72,7 @@
>>>>>>>                       interrupts = <0 7 4>;
>>>>>>>                       interrupt-parent = <&intc>;
>>>>>>>                       clocks = <&clkc 12>;
>>>>>>> +                     #io-channel-cells = <1>;
>>>>>>>               };
>>>>>>>
>>>>>>>               can0: can@e0008000 {
>>>>>>>
>>>>>>
>>>>>> I think it will be good to the next step too.
>>>>>> It means also add iio-hwmon node too.
>>>>>>
>>>>>> What do you think?
>>>>>
>>>>> I hadn't put it in there since dts is supposed to describe hw,
>>>>> but obviously putting the actual hwmon in there makes it more useful.
>>>>
>>>> I had one discussion about this with Grant in past and it is common
>>>> mistake. It is simplification of purpose of dts.
>>>>
>>>
>>> If the iio-hwmon binding had gone through review it would have been rejected.
>>
>> Isn't it a time to deprecate it?
> 
> Well, it's ABI now and has to stay forever. Deprecating it makes only sense
> if there is a replacement, which there is not. The iio-hwmon bridge has its
> usecases it's just instantiating it via devicetree which is not so nice.
> 
>>
>>>
>>>>>
>>>>> I can resubmit with the hwmon node in there.
>>>>
>>>> If you grep kernel tree you will see that others are using it too.
>>>> Also there is accepted binding for that that's why I can't see big
>>>> problem with it.
>>>
>>> Since this is an application specific binding I wouldn't put it in the
>>> generic DT include file. It's a bit like adding a gpio-key binding for each
>>> of the GPIOs just in case somebody wants to use it.
>>
>> psci is system specific too.
>>
>> IIRC this driver for zynq was written by ADI or with ADI help that's why
>> you know much better than I what's the correct configuration.
>>
>> This targets PS IP which should be present in the hw all the time.
>> Not sure if for all configuration but I expect at least the part of it
>> is there all them time.
>>
>> If binding is incorrect then please remove it with removing from all
>> dts/dtsi files which have this. The same is for of probe function in the
>> driver itself.
>> If this is not done then this is just +1 case.
>>
>> If you still insist that we shouldn't do it then please at least extend
>> commit message and put there example how to wire it on zynq.
> 
> There is a IIO driver for the XADC, this driver has a userspace interface
> that exposes the measurements provided by the hardware. Using the hwmon
> bridge will expose the same information just through a hwmon interface.
> 
> One reason for using the iio-hwmon bridge is because you have a legacy
> application that expects the a hwmon interface. But new applications that
> want to access the XADC should really use the IIO interface if possible.
> 
> In my opinion instantiating the hwmon bridge by default will only cause
> confusion. There are now redundant interfaces and users will wonder what is
> the difference between the two. Is it the same data, is it different data?
> Which is the preferred interface? Which one is 'better'?

IMHO this should be covered by documentation. One paragraph in iio-hwmon
binding can have answers for this and it will be very clear what people
should use.

Thanks,
Michal
Michal Simek March 20, 2017, 3:33 p.m. | #10
On 17.3.2017 07:46, Michal Simek wrote:
> On 16.3.2017 22:20, Lars-Peter Clausen wrote:
>> On 03/16/2017 07:06 PM, Michal Simek wrote:
>>> On 16.3.2017 17:51, Lars-Peter Clausen wrote:
>>>> On 03/16/2017 05:45 PM, Michal Simek wrote:
>>>>> On 16.3.2017 17:39, Moritz Fischer wrote:
>>>>>> On Thu, Mar 16, 2017 at 9:16 AM, Michal Simek <michal.simek@xilinx.com> wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> On 8.3.2017 21:11, Moritz Fischer wrote:
>>>>>>>> Fix
>>>>>>>>
>>>>>>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>>>>>>> /amba/adc@f8007100
>>>>>>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>>>>>>> /amba/adc@f8007100
>>>>>>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>>>>>>> /amba/adc@f8007100
>>>>>>>>
>>>>>>>> by adding the #io-channel-cells property.
>>>>>>>>
>>>>>>>> Signed-off-by: Moritz Fischer <mdf@kernel.org>
>>>>>>>> Cc: Michal Simek <michal.simek@xilinx.com>
>>>>>>>> Cc: Sören Brinkmann <soren.brinkmann@xilinx.com>
>>>>>>>> Cc: Julia Cartwright <julia@ni.com>
>>>>>>>> Cc: linux-kernel@vger.kernel.org
>>>>>>>> Cc: devicetree@vger.kernel.org
>>>>>>>> ---
>>>>>>>>
>>>>>>>> Changes from v1:
>>>>>>>> - fix messed up commit message
>>>>>>>> ---
>>>>>>>>  arch/arm/boot/dts/zynq-7000.dtsi | 1 +
>>>>>>>>  1 file changed, 1 insertion(+)
>>>>>>>>
>>>>>>>> diff --git a/arch/arm/boot/dts/zynq-7000.dtsi b/arch/arm/boot/dts/zynq-7000.dtsi
>>>>>>>> index f3ac9bf..98233a8 100644
>>>>>>>> --- a/arch/arm/boot/dts/zynq-7000.dtsi
>>>>>>>> +++ b/arch/arm/boot/dts/zynq-7000.dtsi
>>>>>>>> @@ -72,6 +72,7 @@
>>>>>>>>                       interrupts = <0 7 4>;
>>>>>>>>                       interrupt-parent = <&intc>;
>>>>>>>>                       clocks = <&clkc 12>;
>>>>>>>> +                     #io-channel-cells = <1>;
>>>>>>>>               };
>>>>>>>>
>>>>>>>>               can0: can@e0008000 {
>>>>>>>>
>>>>>>>
>>>>>>> I think it will be good to the next step too.
>>>>>>> It means also add iio-hwmon node too.
>>>>>>>
>>>>>>> What do you think?
>>>>>>
>>>>>> I hadn't put it in there since dts is supposed to describe hw,
>>>>>> but obviously putting the actual hwmon in there makes it more useful.
>>>>>
>>>>> I had one discussion about this with Grant in past and it is common
>>>>> mistake. It is simplification of purpose of dts.
>>>>>
>>>>
>>>> If the iio-hwmon binding had gone through review it would have been rejected.
>>>
>>> Isn't it a time to deprecate it?
>>
>> Well, it's ABI now and has to stay forever. Deprecating it makes only sense
>> if there is a replacement, which there is not. The iio-hwmon bridge has its
>> usecases it's just instantiating it via devicetree which is not so nice.
>>
>>>
>>>>
>>>>>>
>>>>>> I can resubmit with the hwmon node in there.
>>>>>
>>>>> If you grep kernel tree you will see that others are using it too.
>>>>> Also there is accepted binding for that that's why I can't see big
>>>>> problem with it.
>>>>
>>>> Since this is an application specific binding I wouldn't put it in the
>>>> generic DT include file. It's a bit like adding a gpio-key binding for each
>>>> of the GPIOs just in case somebody wants to use it.
>>>
>>> psci is system specific too.
>>>
>>> IIRC this driver for zynq was written by ADI or with ADI help that's why
>>> you know much better than I what's the correct configuration.
>>>
>>> This targets PS IP which should be present in the hw all the time.
>>> Not sure if for all configuration but I expect at least the part of it
>>> is there all them time.
>>>
>>> If binding is incorrect then please remove it with removing from all
>>> dts/dtsi files which have this. The same is for of probe function in the
>>> driver itself.
>>> If this is not done then this is just +1 case.
>>>
>>> If you still insist that we shouldn't do it then please at least extend
>>> commit message and put there example how to wire it on zynq.
>>
>> There is a IIO driver for the XADC, this driver has a userspace interface
>> that exposes the measurements provided by the hardware. Using the hwmon
>> bridge will expose the same information just through a hwmon interface.
>>
>> One reason for using the iio-hwmon bridge is because you have a legacy
>> application that expects the a hwmon interface. But new applications that
>> want to access the XADC should really use the IIO interface if possible.
>>
>> In my opinion instantiating the hwmon bridge by default will only cause
>> confusion. There are now redundant interfaces and users will wonder what is
>> the difference between the two. Is it the same data, is it different data?
>> Which is the preferred interface? Which one is 'better'?
> 
> IMHO this should be covered by documentation. One paragraph in iio-hwmon
> binding can have answers for this and it will be very clear what people
> should use.

Any comment on this one?

Thanks,
Michal
Lars-Peter Clausen March 20, 2017, 3:34 p.m. | #11
On 03/20/2017 04:33 PM, Michal Simek wrote:
> On 17.3.2017 07:46, Michal Simek wrote:
>> On 16.3.2017 22:20, Lars-Peter Clausen wrote:
>>> On 03/16/2017 07:06 PM, Michal Simek wrote:
>>>> On 16.3.2017 17:51, Lars-Peter Clausen wrote:
>>>>> On 03/16/2017 05:45 PM, Michal Simek wrote:
>>>>>> On 16.3.2017 17:39, Moritz Fischer wrote:
>>>>>>> On Thu, Mar 16, 2017 at 9:16 AM, Michal Simek <michal.simek@xilinx.com> wrote:
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> On 8.3.2017 21:11, Moritz Fischer wrote:
>>>>>>>>> Fix
>>>>>>>>>
>>>>>>>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>>>>>>>> /amba/adc@f8007100
>>>>>>>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>>>>>>>> /amba/adc@f8007100
>>>>>>>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>>>>>>>> /amba/adc@f8007100
>>>>>>>>>
>>>>>>>>> by adding the #io-channel-cells property.
>>>>>>>>>
>>>>>>>>> Signed-off-by: Moritz Fischer <mdf@kernel.org>
>>>>>>>>> Cc: Michal Simek <michal.simek@xilinx.com>
>>>>>>>>> Cc: Sören Brinkmann <soren.brinkmann@xilinx.com>
>>>>>>>>> Cc: Julia Cartwright <julia@ni.com>
>>>>>>>>> Cc: linux-kernel@vger.kernel.org
>>>>>>>>> Cc: devicetree@vger.kernel.org
>>>>>>>>> ---
>>>>>>>>>
>>>>>>>>> Changes from v1:
>>>>>>>>> - fix messed up commit message
>>>>>>>>> ---
>>>>>>>>>  arch/arm/boot/dts/zynq-7000.dtsi | 1 +
>>>>>>>>>  1 file changed, 1 insertion(+)
>>>>>>>>>
>>>>>>>>> diff --git a/arch/arm/boot/dts/zynq-7000.dtsi b/arch/arm/boot/dts/zynq-7000.dtsi
>>>>>>>>> index f3ac9bf..98233a8 100644
>>>>>>>>> --- a/arch/arm/boot/dts/zynq-7000.dtsi
>>>>>>>>> +++ b/arch/arm/boot/dts/zynq-7000.dtsi
>>>>>>>>> @@ -72,6 +72,7 @@
>>>>>>>>>                       interrupts = <0 7 4>;
>>>>>>>>>                       interrupt-parent = <&intc>;
>>>>>>>>>                       clocks = <&clkc 12>;
>>>>>>>>> +                     #io-channel-cells = <1>;
>>>>>>>>>               };
>>>>>>>>>
>>>>>>>>>               can0: can@e0008000 {
>>>>>>>>>
>>>>>>>>
>>>>>>>> I think it will be good to the next step too.
>>>>>>>> It means also add iio-hwmon node too.
>>>>>>>>
>>>>>>>> What do you think?
>>>>>>>
>>>>>>> I hadn't put it in there since dts is supposed to describe hw,
>>>>>>> but obviously putting the actual hwmon in there makes it more useful.
>>>>>>
>>>>>> I had one discussion about this with Grant in past and it is common
>>>>>> mistake. It is simplification of purpose of dts.
>>>>>>
>>>>>
>>>>> If the iio-hwmon binding had gone through review it would have been rejected.
>>>>
>>>> Isn't it a time to deprecate it?
>>>
>>> Well, it's ABI now and has to stay forever. Deprecating it makes only sense
>>> if there is a replacement, which there is not. The iio-hwmon bridge has its
>>> usecases it's just instantiating it via devicetree which is not so nice.
>>>
>>>>
>>>>>
>>>>>>>
>>>>>>> I can resubmit with the hwmon node in there.
>>>>>>
>>>>>> If you grep kernel tree you will see that others are using it too.
>>>>>> Also there is accepted binding for that that's why I can't see big
>>>>>> problem with it.
>>>>>
>>>>> Since this is an application specific binding I wouldn't put it in the
>>>>> generic DT include file. It's a bit like adding a gpio-key binding for each
>>>>> of the GPIOs just in case somebody wants to use it.
>>>>
>>>> psci is system specific too.
>>>>
>>>> IIRC this driver for zynq was written by ADI or with ADI help that's why
>>>> you know much better than I what's the correct configuration.
>>>>
>>>> This targets PS IP which should be present in the hw all the time.
>>>> Not sure if for all configuration but I expect at least the part of it
>>>> is there all them time.
>>>>
>>>> If binding is incorrect then please remove it with removing from all
>>>> dts/dtsi files which have this. The same is for of probe function in the
>>>> driver itself.
>>>> If this is not done then this is just +1 case.
>>>>
>>>> If you still insist that we shouldn't do it then please at least extend
>>>> commit message and put there example how to wire it on zynq.
>>>
>>> There is a IIO driver for the XADC, this driver has a userspace interface
>>> that exposes the measurements provided by the hardware. Using the hwmon
>>> bridge will expose the same information just through a hwmon interface.
>>>
>>> One reason for using the iio-hwmon bridge is because you have a legacy
>>> application that expects the a hwmon interface. But new applications that
>>> want to access the XADC should really use the IIO interface if possible.
>>>
>>> In my opinion instantiating the hwmon bridge by default will only cause
>>> confusion. There are now redundant interfaces and users will wonder what is
>>> the difference between the two. Is it the same data, is it different data?
>>> Which is the preferred interface? Which one is 'better'?
>>
>> IMHO this should be covered by documentation. One paragraph in iio-hwmon
>> binding can have answers for this and it will be very clear what people
>> should use.
> 
> Any comment on this one?

Send a patch? :)
Michal Simek April 7, 2017, 7:11 a.m. | #12
On 20.3.2017 16:34, Lars-Peter Clausen wrote:
> On 03/20/2017 04:33 PM, Michal Simek wrote:
>> On 17.3.2017 07:46, Michal Simek wrote:
>>> On 16.3.2017 22:20, Lars-Peter Clausen wrote:
>>>> On 03/16/2017 07:06 PM, Michal Simek wrote:
>>>>> On 16.3.2017 17:51, Lars-Peter Clausen wrote:
>>>>>> On 03/16/2017 05:45 PM, Michal Simek wrote:
>>>>>>> On 16.3.2017 17:39, Moritz Fischer wrote:
>>>>>>>> On Thu, Mar 16, 2017 at 9:16 AM, Michal Simek <michal.simek@xilinx.com> wrote:
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> On 8.3.2017 21:11, Moritz Fischer wrote:
>>>>>>>>>> Fix
>>>>>>>>>>
>>>>>>>>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>>>>>>>>> /amba/adc@f8007100
>>>>>>>>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>>>>>>>>> /amba/adc@f8007100
>>>>>>>>>> OF: /iio_hwmon: could not get #io-channel-cells for
>>>>>>>>>> /amba/adc@f8007100
>>>>>>>>>>
>>>>>>>>>> by adding the #io-channel-cells property.
>>>>>>>>>>
>>>>>>>>>> Signed-off-by: Moritz Fischer <mdf@kernel.org>
>>>>>>>>>> Cc: Michal Simek <michal.simek@xilinx.com>
>>>>>>>>>> Cc: Sören Brinkmann <soren.brinkmann@xilinx.com>
>>>>>>>>>> Cc: Julia Cartwright <julia@ni.com>
>>>>>>>>>> Cc: linux-kernel@vger.kernel.org
>>>>>>>>>> Cc: devicetree@vger.kernel.org
>>>>>>>>>> ---
>>>>>>>>>>
>>>>>>>>>> Changes from v1:
>>>>>>>>>> - fix messed up commit message
>>>>>>>>>> ---
>>>>>>>>>>  arch/arm/boot/dts/zynq-7000.dtsi | 1 +
>>>>>>>>>>  1 file changed, 1 insertion(+)
>>>>>>>>>>
>>>>>>>>>> diff --git a/arch/arm/boot/dts/zynq-7000.dtsi b/arch/arm/boot/dts/zynq-7000.dtsi
>>>>>>>>>> index f3ac9bf..98233a8 100644
>>>>>>>>>> --- a/arch/arm/boot/dts/zynq-7000.dtsi
>>>>>>>>>> +++ b/arch/arm/boot/dts/zynq-7000.dtsi
>>>>>>>>>> @@ -72,6 +72,7 @@
>>>>>>>>>>                       interrupts = <0 7 4>;
>>>>>>>>>>                       interrupt-parent = <&intc>;
>>>>>>>>>>                       clocks = <&clkc 12>;
>>>>>>>>>> +                     #io-channel-cells = <1>;
>>>>>>>>>>               };
>>>>>>>>>>
>>>>>>>>>>               can0: can@e0008000 {
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> I think it will be good to the next step too.
>>>>>>>>> It means also add iio-hwmon node too.
>>>>>>>>>
>>>>>>>>> What do you think?
>>>>>>>>
>>>>>>>> I hadn't put it in there since dts is supposed to describe hw,
>>>>>>>> but obviously putting the actual hwmon in there makes it more useful.
>>>>>>>
>>>>>>> I had one discussion about this with Grant in past and it is common
>>>>>>> mistake. It is simplification of purpose of dts.
>>>>>>>
>>>>>>
>>>>>> If the iio-hwmon binding had gone through review it would have been rejected.
>>>>>
>>>>> Isn't it a time to deprecate it?
>>>>
>>>> Well, it's ABI now and has to stay forever. Deprecating it makes only sense
>>>> if there is a replacement, which there is not. The iio-hwmon bridge has its
>>>> usecases it's just instantiating it via devicetree which is not so nice.
>>>>
>>>>>
>>>>>>
>>>>>>>>
>>>>>>>> I can resubmit with the hwmon node in there.
>>>>>>>
>>>>>>> If you grep kernel tree you will see that others are using it too.
>>>>>>> Also there is accepted binding for that that's why I can't see big
>>>>>>> problem with it.
>>>>>>
>>>>>> Since this is an application specific binding I wouldn't put it in the
>>>>>> generic DT include file. It's a bit like adding a gpio-key binding for each
>>>>>> of the GPIOs just in case somebody wants to use it.
>>>>>
>>>>> psci is system specific too.
>>>>>
>>>>> IIRC this driver for zynq was written by ADI or with ADI help that's why
>>>>> you know much better than I what's the correct configuration.
>>>>>
>>>>> This targets PS IP which should be present in the hw all the time.
>>>>> Not sure if for all configuration but I expect at least the part of it
>>>>> is there all them time.
>>>>>
>>>>> If binding is incorrect then please remove it with removing from all
>>>>> dts/dtsi files which have this. The same is for of probe function in the
>>>>> driver itself.
>>>>> If this is not done then this is just +1 case.
>>>>>
>>>>> If you still insist that we shouldn't do it then please at least extend
>>>>> commit message and put there example how to wire it on zynq.
>>>>
>>>> There is a IIO driver for the XADC, this driver has a userspace interface
>>>> that exposes the measurements provided by the hardware. Using the hwmon
>>>> bridge will expose the same information just through a hwmon interface.
>>>>
>>>> One reason for using the iio-hwmon bridge is because you have a legacy
>>>> application that expects the a hwmon interface. But new applications that
>>>> want to access the XADC should really use the IIO interface if possible.
>>>>
>>>> In my opinion instantiating the hwmon bridge by default will only cause
>>>> confusion. There are now redundant interfaces and users will wonder what is
>>>> the difference between the two. Is it the same data, is it different data?
>>>> Which is the preferred interface? Which one is 'better'?
>>>
>>> IMHO this should be covered by documentation. One paragraph in iio-hwmon
>>> binding can have answers for this and it will be very clear what people
>>> should use.
>>
>> Any comment on this one?
> 
> Send a patch? :)
> 

I don't feel that I know iio enough to be good candidate to describe
this properly.

Thanks,
Michal

Patch

diff --git a/arch/arm/boot/dts/zynq-7000.dtsi b/arch/arm/boot/dts/zynq-7000.dtsi
index f3ac9bf..98233a8 100644
--- a/arch/arm/boot/dts/zynq-7000.dtsi
+++ b/arch/arm/boot/dts/zynq-7000.dtsi
@@ -72,6 +72,7 @@ 
 			interrupts = <0 7 4>;
 			interrupt-parent = <&intc>;
 			clocks = <&clkc 12>;
+			#io-channel-cells = <1>;
 		};
 
 		can0: can@e0008000 {