Changes from v1 -> v2:
- Rebase from 6.0 to 6.1-rc2 to get access to devm_regulator_get_enable.
- Use regmap instead of raw SPI commands. This fixes multiple issues:
- Remove need to assemble register address using bit shifts.
- Remove non DMA-safe stack-allocated buffers.
- Regmap has internal lock handling, removing the need for locking in the
driver read code using mlock.
- Use be16_to_cpu() instead of manually assembling values using bit shifts.
- Use generic device_property_read_u32() instead of devicetree specific
of_property_read_u32().
- Rename the "shunt-resistor" devicetree property to
"shunt-resistor-micro-ohms".
- Add supply regulator support for the two voltage domains of the chip
(vdd and vdig).
- Only perform soft reset if no GPIO line for hard resets is available.
- Change the error returned if the device does not respond after a reset
from "EBUSY" to "ENXIO" to indicate that this is likely a persistent
error (like a broken connection).
- Don't set the SPI mode manually.
- Provide a spi_device_id table.
- Declare local variables in reverse christmas tree order.
- Fix formatting of multi-line comments and some whitespace issues.
- Fix typos and missing "allOf:$ref to spi-peripheral-props.yaml"
in devicetree bindings.
See https://lore.kernel.org/lkml/[email protected]/
for the v1.
Thanks to Marcus, Jonathan and Krzysztof for the reviews.