On 06/10/2013 09:40 AM, Sebastian Andrzej Siewior wrote:
> On 06/09/2013 06:41 PM, Lars-Peter Clausen wrote:
>> On 06/05/2013 06:24 PM, Sebastian Andrzej Siewior wrote:
>> [...]
>>> - return indio_dev->num_channels;
>>> + adc_dev->map = kcalloc(channels + 1, sizeof(struct iio_map),
>>> + GFP_KERNEL);
>>> + if (adc_dev->map == NULL)
>>> + goto err_free_chan;
>>> +
>>> + for (i = 0; i < channels; i++) {
>>> + adc_dev->map[i].adc_channel_label =
>>> + chan_array[i].datasheet_name;
>>> + adc_dev->map[i].consumer_dev_name = "any";
>>> + adc_dev->map[i].consumer_channel = chan_array[i].datasheet_name;
>>> + }
>>
>> This is not the way the IIO map interface is supposed to be used and I doubt
>> it
>> will actually work at all. The map either needs to be provided by board code
>> with the proper consumer device and channel name filled in or in your case
>> where you use devicetree you don't need to provide a map at all since this
>> will
>> all be handled by the generic IIO devicetree bindings. So I'd just drop this
>> patch.
>
> The channels are not described in the device tree. If so how would that
> be the case? Right now, I don't have any consumer. How do I test this
> easily if this is done correctly?
> If in doubt it will probably drop this until someone comes along who
> actually needs this.
You don't need to describe the channels in devicetree, except setting the
"#io-channel-cells" property of your ADC node to 1. You also need to initialize
the of_node property of your iio_device's struct's 'dev' field to the your adc
node.
After that it's just a matter of using, e.g.
io-channels = <&adc 1>;
io-channel-names = "voltage";
in your consumer.
- Lars
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html