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