Greg Kroah-Hartman ba26342a38 IIO: 2nd set of new device support features and cleanup for 6.12
Late pull request as I was planing to include another series that
 is waiting for a fix to end up in char-misc-next.  That can wait
 for next cycle.
 
 Includes one immutable branch merge from MFD to get a necessary header
 change.
 
 Usual mix of a few new drivers, additional device support for existing
 drivers, new features and a bunch of cleanup across tree.
 
 New device support
 ==================
 
 asahi-kasei,ak8975
 - A few minor fixes as precursors to support for the AK09118 magnetometer
   that is very similar to the already supported AK09112
 awinic,aw96103
 - New driver for this capacitive proximity sensor.
 x-powers,axp202
 - Add support for the axp717 (including merge of MFD immutable branch).
 sophgo,saradc
 - New driver for this SOC ADC.
 
 Features
 ========
 
 adi,ad4695
 - Add calibration support.
 bosch,bmi323
 - Ensure device is in lowest power state on suspend.
 
 Cleanup and minor fixes
 =======================
 treewide
 - Start to standardize formatting of id tables (ADC drivers done so far).
 adi,ad5449
 - Drop platform data support as long unused in upstream kernel.
 bosch,bmc150
 - Use fwnode_irq_get_by_name() in place of of_ variant.
 - Use ACPI_HANDLE() to get the handle directly rather than via
   ACPI_COMPANION()
 google,cros_ec_mkbp_proximity
 - Include mod_devicetable.h instead of broader of.h
 mirochip,mcp320x
 - Drop vendorless compatible entries as not needed for backwards
   compatibility and should not be used in new boards.
 st,lsm6dsx
 - Use iio_read_acpi_mount_matrix() helper instead of open coding the
   same.
 - Drop some unnecessary dev_fwnode() calls to check if a fwnode is
   available.  All the calls made handle this anyway.
 xilinx,ams
 - Use device_for_each_child_node_scoped() to avoid manual release of
   fwnode handle.
 
 tools,generic-buffer
 - Handle failure to allocate trigger name.
 - Cleanup .*.cmd files if present.
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCAAvFiEEbilms4eEBlKRJoGxVIU0mcT0FogFAmbdfjgRHGppYzIzQGtl
 cm5lbC5vcmcACgkQVIU0mcT0FohI9Q/+LtJgdtVs+o9PVc/C77D1+5GLYnZfSi5c
 an3YuxsWZi4Cz9AdS3CWeRhBMvIS23nFHfD5iCkiWaL0Q4HkUp20DQy2nvHuGH17
 OSDYef1tIyiIJs9jb8u1BI8PuE3H9SfEbJ8GO2EHrfsLnEM9Oj1K3fEuYUldqOrp
 qZhIQw24FPiib0kcIGyLE8IHIg8WTEGDg2J2/TsP+J466N3QJl3nriAc8OAlwAIZ
 RFA1dfK4wTD7uFJ9buSZcQXYv8EAfF0QWm3FYUNGCOtCvyaVSLmMcgk/bVudqJcj
 0rRYSFUSqdLiMMBsKEbLpJtMXQ33WkD9ywNgjhlKyUDfa85RHaRb0xsjFEyJkDB0
 XzPVdkv626WT/u6eOI3EkTaN1+D0uX/YFHzECEXJFAR2RpggptVerZxTFppphA0x
 0HJ6rO6g8mhYH/yKXkTEFs7eV7+8k2oCOiwAcuPNdj52+8qyclykbdLiEy9YpWjF
 SsgRKwHz/Uao2RnVDwb9tsT/VvCq5hXnFL72xqobE1xpny40crOBm43bsajoSYul
 YvLtf0m3eJTv5UYaTTNtzXbbYfexKk8WcyYisRbeQGqki6LKBtRE+aoN1fCZ0GBH
 ZlLZaq29fkz8z47dHBEux++QS/LLaP812PQaFGC97p4rEhpxyZ3i8gUj2qgaXEYl
 5wCowP2+XgA=
 =pFg9
 -----END PGP SIGNATURE-----

Merge tag 'iio-for-6.12b' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-next

Jonathan writes:

IIO: 2nd set of new device support features and cleanup for 6.12

Late pull request as I was planing to include another series that
is waiting for a fix to end up in char-misc-next.  That can wait
for next cycle.

Includes one immutable branch merge from MFD to get a necessary header
change.

Usual mix of a few new drivers, additional device support for existing
drivers, new features and a bunch of cleanup across tree.

New device support
==================

asahi-kasei,ak8975
- A few minor fixes as precursors to support for the AK09118 magnetometer
  that is very similar to the already supported AK09112
awinic,aw96103
- New driver for this capacitive proximity sensor.
x-powers,axp202
- Add support for the axp717 (including merge of MFD immutable branch).
sophgo,saradc
- New driver for this SOC ADC.

Features
========

adi,ad4695
- Add calibration support.
bosch,bmi323
- Ensure device is in lowest power state on suspend.

Cleanup and minor fixes
=======================
treewide
- Start to standardize formatting of id tables (ADC drivers done so far).
adi,ad5449
- Drop platform data support as long unused in upstream kernel.
bosch,bmc150
- Use fwnode_irq_get_by_name() in place of of_ variant.
- Use ACPI_HANDLE() to get the handle directly rather than via
  ACPI_COMPANION()
google,cros_ec_mkbp_proximity
- Include mod_devicetable.h instead of broader of.h
mirochip,mcp320x
- Drop vendorless compatible entries as not needed for backwards
  compatibility and should not be used in new boards.
st,lsm6dsx
- Use iio_read_acpi_mount_matrix() helper instead of open coding the
  same.
- Drop some unnecessary dev_fwnode() calls to check if a fwnode is
  available.  All the calls made handle this anyway.
xilinx,ams
- Use device_for_each_child_node_scoped() to avoid manual release of
  fwnode handle.

tools,generic-buffer
- Handle failure to allocate trigger name.
- Cleanup .*.cmd files if present.

* tag 'iio-for-6.12b' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jic23/iio: (28 commits)
  iio: adc: axp20x_adc: add support for AXP717 ADC
  dt-bindings: iio: adc: Add AXP717 compatible
  iio: adc: axp20x_adc: Add adc_en1 and adc_en2 to axp_data
  tools: iio: rm .*.cmd when make clean
  iio: adc: standardize on formatting for id match tables
  iio: proximity: aw96103: Add support for aw96103/aw96105 proximity sensor
  dt-bindings: iio: aw96103: Add bindings for aw96103/aw96105 sensor
  iio: adc: sophgo-saradc: Add driver for Sophgo CV1800B SARADC
  dt-bindings: iio: adc: sophgo,cv1800b-saradc: Add Sophgo CV1800B SARADC
  tools/iio: Add memory allocation failure check for trigger_name
  iio: imu: st_lsm6dsx: Remove useless dev_fwnode() calls
  iio: imu: st_lsm6dsx: Use iio_read_acpi_mount_matrix() helper
  iio: adc: mcp320x: Drop vendorless compatible strings
  iio: dac: ad5449: drop support for platform data
  iio: adc: xilinx-ams: use device_* to iterate over device child nodes
  iio: ABI: document ad4695 new attributes
  doc: iio: ad4695: update for calibration support
  iio: adc: ad4695: implement calibration support
  iio: adc: ad4695: add 2nd regmap for 16-bit registers
  iio: bmi323: peripheral in lowest power state on suspend
  ...
2024-09-08 13:23:57 +02:00
..
2024-09-03 12:13:23 +02:00

This directory attempts to document the ABI between the Linux kernel and
userspace, and the relative stability of these interfaces.  Due to the
everchanging nature of Linux, and the differing maturity levels, these
interfaces should be used by userspace programs in different ways.

We have four different levels of ABI stability, as shown by the four
different subdirectories in this location.  Interfaces may change levels
of stability according to the rules described below.

The different levels of stability are:

  stable/
	This directory documents the interfaces that the developer has
	defined to be stable.  Userspace programs are free to use these
	interfaces with no restrictions, and backward compatibility for
	them will be guaranteed for at least 2 years.  Most interfaces
	(like syscalls) are expected to never change and always be
	available.

  testing/
	This directory documents interfaces that are felt to be stable,
	as the main development of this interface has been completed.
	The interface can be changed to add new features, but the
	current interface will not break by doing this, unless grave
	errors or security problems are found in them.  Userspace
	programs can start to rely on these interfaces, but they must be
	aware of changes that can occur before these interfaces move to
	be marked stable.  Programs that use these interfaces are
	strongly encouraged to add their name to the description of
	these interfaces, so that the kernel developers can easily
	notify them if any changes occur (see the description of the
	layout of the files below for details on how to do this.)

  obsolete/
	This directory documents interfaces that are still remaining in
	the kernel, but are marked to be removed at some later point in
	time.  The description of the interface will document the reason
	why it is obsolete and when it can be expected to be removed.

  removed/
	This directory contains a list of the old interfaces that have
	been removed from the kernel.

Every file in these directories will contain the following information:

What:		Short description of the interface
Date:		Date created
KernelVersion:	Kernel version this feature first showed up in.
Contact:	Primary contact for this interface (may be a mailing list)
Description:	Long description of the interface and how to use it.
Users:		All users of this interface who wish to be notified when
		it changes.  This is very important for interfaces in
		the "testing" stage, so that kernel developers can work
		with userspace developers to ensure that things do not
		break in ways that are unacceptable.  It is also
		important to get feedback for these interfaces to make
		sure they are working in a proper way and do not need to
		be changed further.


Note:
   The fields should be use a simple notation, compatible with ReST markup.
   Also, the file **should not** have a top-level index, like::

	===
	foo
	===

How things move between levels:

Interfaces in stable may move to obsolete, as long as the proper
notification is given.

Interfaces may be removed from obsolete and the kernel as long as the
documented amount of time has gone by.

Interfaces in the testing state can move to the stable state when the
developers feel they are finished.  They cannot be removed from the
kernel tree without going through the obsolete state first.

It's up to the developer to place their interfaces in the category they
wish for it to start out in.


Notable bits of non-ABI, which should not under any circumstances be considered
stable:

- Kconfig.  Userspace should not rely on the presence or absence of any
  particular Kconfig symbol, in /proc/config.gz, in the copy of .config
  commonly installed to /boot, or in any invocation of the kernel build
  process.

- Kernel-internal symbols.  Do not rely on the presence, absence, location, or
  type of any kernel symbol, either in System.map files or the kernel binary
  itself.  See Documentation/process/stable-api-nonsense.rst.