Re: [RFC PATCH 4/5] iio: accel: Support Kionix/ROHM KX022A accelerometer

From: Matti Vaittinen
Date: Sun Oct 02 2022 - 10:31:43 EST


On 10/2/22 14:18, Jonathan Cameron wrote:
On Wed, 28 Sep 2022 14:14:14 +0300
Matti Vaittinen <mazziesaccount@xxxxxxxxx> wrote:

Hi Jonathan,

On 9/22/22 20:03, Jonathan Cameron wrote:
On Wed, 21 Sep 2022 14:45:35 +0300
Matti Vaittinen <mazziesaccount@xxxxxxxxx> wrote:
+
+/*
+ * The sensor HW can support ODR up to 1600 Hz - which is beyond what most of
+ * Linux CPUs can handle w/o dropping samples. Also, the low power mode is not
+ * available for higher sample rates. Thus the driver only supports 200 Hz and
+ * slower ODRs. Slowest being 0.78 Hz
+ */
+static IIO_CONST_ATTR_SAMP_FREQ_AVAIL("0.78 1.563 3.125 6.25 12.5 25 50 100 200");
+static IIO_CONST_ATTR(scale_available,
+ "598.550415 1197.10083 2394.20166 4788.40332");
+
+static struct attribute *kx022a_attributes[] = {
+ &iio_const_attr_sampling_frequency_available.dev_attr.attr,
+ &iio_const_attr_scale_available.dev_attr.attr,

Use the read_avail() callback instead of doing these as attributes.
That makes the values available to consumer drivers...

Am I correct that populating the read_avail() does not add sysfs entries
for available scale/frequency? Eg, if I wish to expose the supported
values via sysfs I still need these attributes? Implementing the
read_avail() as well is not a problem though.

Need to also set the relevant bit in
info_mask_shared_by_xxx_avail in the channels for the sysfs files to be created

Thanks for the help! I missed this. I'll try that :)

Yours
-- Matti

--
Matti Vaittinen
Linux kernel developer at ROHM Semiconductors
Oulu Finland

~~ When things go utterly wrong vim users can always type :help! ~~