On Fri, 3 May 2019 12:54:45 +0200 Fabien Lahoudere <fabien.lahoudere@xxxxxxxxxxxxx> wrote: > Chromebooks embedded controller (EC) provides new field in the 3rd version of > its protocol. Those values need to be exposed as sysfs entries. > > Minimum and maximum frequencies may probably be a standard iio ABI. > There is an existing ABI (sampling_frequency_available) but only for discrete > set of values. > We have different possible solution and I want to ask interested people for the > best one: > 1. we keep the ABI proposed in this RFC (in the chromebook specific code) > 2. we move min and max freq as 2 different standard ABI > 3. we add a new standard iio ABI to set a range (sampling_frequency_range) > 4. we change the 'sampling_frequency_available' ABI to return discrete values > like '2 4 6 8' or a range like '[2 - 8]' > 5. the solution I didn't think about Gah, it's been on my todo list for far too long to put out proper docs for it but we do have a way of doing this in IIO. Best bet is too look at the code in industrialio-core.c for iio_read_channel_info_avail, and specifically iio_format_avail_range That produces strings of the format [MIN STEP MAX] so more or less your option 4, with the [] syntax indicating to userspace that it's a range version. We did this a while back to provide a single interface for consumer drivers and for userspace. If you poke around in the period around when that patch was merged you'll find a discussion which was pretty much the options you have above. Note if anyone else wants to have a go at docs for this feature I would definitely welcome it! Jonathan > > Thanks > > Gwendal Grignou (1): > iio: common: cros_ec_sensors: add extra sensor API > > .../ABI/testing/sysfs-bus-iio-cros-ec | 24 ++++ > .../cros_ec_sensors/cros_ec_sensors_core.c | 126 +++++++++++++++++- > .../linux/iio/common/cros_ec_sensors_core.h | 7 + > include/linux/mfd/cros_ec_commands.h | 21 +++ > 4 files changed, 177 insertions(+), 1 deletion(-) >