Re: [PATCH v6 00/48] TI AM437X ADC1

Miquel Raynal
2021-10-20T15:36:17Z

Hi Lee,

miquel.raynal@bootlin.com wrote on Fri, 15 Oct 2021 10:14:18 +0200:

> /*
> * Reducing the Cc: list as this is just a rebase and all patches
> * received reviews already. Only the DT patches have received no
> * feedback, hence keeping the omap@ list in.
> */
>
> Hello,
>
> This is a (fairly big) series bringing support of AM437X ADC1.
> On TI AM33XX SoCs family there is an ADC that can also be connected to a
> touchscreen. This hardware has been extended and is present on certain
> SoCs from the AM437X family. In particular, the touchscreen has been
> replaced by a magnetic card reader. In both cases, the representation is
> an MFD device with two children:
> * on AM33XX: the touchscreen controller and the ADC
> * on AM437X: the magnetic stripe reader and the ADC
>
> This series really targets small and atomic changes so that the overall
> review is eased, even though it leads to a lot of rather small patches.
> Here are the steps:
> * Supporting the missing clock
> * Translating a single text file containing the description for the
> MFD, the touchscreen and the ADC into three independent yaml files.
> * Cleaning/preparing the MFD driver.
> * Supporting ADC1 in the MFD driver.
> * Cleaning/preparing of the ADC driver.
> * Supporting ADC1 in the ADC driver.
> * Updating various device trees.
>
> Here is the full series again, almost reviewed and acked entirely.
> The clock patch has been acked, the ADC patches as well, so we expect
> the series to go through the MFD tree if the maintainers agree with it.

Sorry to ping you so early, but we already are at -rc6 and I was
wondering if you could take the series as it has been on the mailing
list for a while and received no real change since a couple of weeks
already, possibly avoiding the need for yet another resend of 48
patches :)

Cheers,
Miquèl

>
> Thanks,
> Miquèl
>
> Changes in v6:
> * Rebased the entire series on top of
> f38d3e404326 (linux-mfd/for-mfd-next) ("dt-bindings: mfd: Convert
> X-Powers AXP binding to a schema") as requested by Lee.
>
> Changes in v5:
> * Let the 48 v4 patch series aside, while only resending this patch that
> triggered a robot warning. Use the use_mag boolean instead of sticking
> to tscmag_wires which was not optimal anyway, silencing the 'not used'
> warning while keeping the code simple and clear.
>
> Changes in v4:
> * R-by/A-by tags added from Tony, Dmitry and Jonathan.
> * Inverted the order of three patches following Jonathan's advice:
> removing the ENB macro (and related definitions) should be done first,
> in order to avoid further updates of these useless macros. This lead
> to the addition of a new patch to first do the removal (which was part
> of patch "Drop useless definitions from the header" in the first
> place).
> * Updated the naming of the MFD driver data structure as discussed with
> Lee.
> * Used the "magnetic stripe reader" wording when appropriate.
> * Created a helper using the compatible to determine if there is a
> touchscreen or a magnetic stripe reader in this version of the
> hardware.
>
> Changes in v3:
> * Rebased on top of v5.15-rc1.
> * R-by/A-by tags added.
> * Light reordering to let the of_put_node() fix to be applied more easily
> * Dropped a patch made useless because of the previous reordering
> * Explained how the tscadc->ctrl variable was used.
> * Fixed a couple of typos.
> * Included the change for the HZ macro.
> * Went further in the BIT()/FIELD_PREP() cleanup.
> * Added maximum definitions for sample delay/open delay.
> * Removed useless definitions.
> * Fixed a couple of rebase conflicts (the series was not bisectable).
>
> Changes in v2:
> * Added various R-by/A-by tags.
> * Various typos & style fixes.
> [Bindings]
> * Included the missing ti,am654-tscadc compatible.
> * Reworded the compatible lines as requested by Jonathan.
> * Reworded the bindings content a little bit as advised by Rob (subnodes
> being objects, MFD descriptions provided once, status and unused
> labels removed).
> [SPDX changes]
> * Mentioned that the license macro and the license text matched.
> * Also added an SPDX tag in the MFD header.
> [MFD header]
> * Used the BIT(), GENMASK() and PREP_FIELD() macros when relevant.
> [MFD driver]
> * Did not reordered the variables declared on the probe stack as advised
> by Jonathan.
> * Added missing of_node_put() calls.
> * Moved the patch changing the place where the main structure is
> allocated to directly precede the patch using this change.
> * Fixed the driver data wiring (bug happening between ex patches 16 and
> 28).
> * Added a commit just to explain the reordering of the register writes
> during initialization/resume.
> * Explained the check about 'use_tsc' in the commit message.
> * Added a link to the TRM in a commit message referencing it.
> * Removed the use of the ti,tracks property, used a constant value
> instead.
> * Dropped the error check when retrieving the "wrong" DT property
> (coordiante-readouts) which is unused.
>
> Miquel Raynal (48):
> clk: ti: am43xx: Add clkctrl data for am43xx ADC1
> dt-bindings: mfd: ti,am3359-tscadc: Add a yaml description for this
> MFD
> dt-bindings: touchscreen: ti,am3359-tsc: New yaml description
> dt-bindings: iio: adc: ti,am3359-adc: New yaml description
> dt-bindings: touchscreen: ti,am3359-tsc: Remove deprecated text file
> dt-bindings: mfd: ti,am3359-tscadc: Describe am4372 MFD compatible
> dt-bindings: iio: adc: ti,am3359-adc: Describe am4372 ADC compatible
> mfd: ti_am335x_tscadc: Ensure a balanced number of node get/put
> mfd: ti_am335x_tscadc: Replace license text with SPDX tag
> mfd: ti_am335x_tscadc: Fix style
> mfd: ti_am335x_tscadc: Drop extra spacing when declaring stack
> variables
> mfd: ti_am335x_tscadc: Get rid of useless gotos
> mfd: ti_am335x_tscadc: Reword the comment explaining the dividers
> mfd: ti_am335x_tscadc: Don't search the tree for our clock
> mfd: ti_am335x_tscadc: Simplify divisor calculation
> mfd: ti_am335x_tscadc: Move the driver structure allocation earlier
> mfd: ti_am335x_tscadc: Use driver data
> mfd: ti_am335x_tscadc: Mimic the probe from resume()
> mfd: ti_am335x_tscadc: Drop useless variables from the driver
> structure
> mfd: ti_am335x_tscadc: Always provide an idle configuration
> mfd: ti_am335x_tscadc: Reorder the initialization steps
> mfd: ti_am335x_tscadc: Gather the ctrl register logic in one place
> mfd: ti_am335x_tscadc: Replace the header license text with SPDX tag
> mfd: ti_am335x_tscadc: Fix header spacing
> mfd: ti_am335x_tscadc: Use the new HZ_PER_MHZ macro
> mfd: ti_am335x_tscadc: Drop unused definitions from the header
> mfd: ti_am335x_tscadc: Use BIT(), GENMASK() and FIELD_PREP() when
> relevant
> mfd: ti_am335x_tscadc: Clarify the maximum values for DT entries
> mfd: ti_am335x_tscadc: Drop useless definitions from the header
> mfd: ti_am335x_tscadc: Rename the subsystem enable macro
> mfd: ti_am335x_tscadc: Add TSC prefix in certain macros
> mfd: ti_am335x_tscadc: Rename a variable
> mfd: ti_am335x_tscadc: Fix an error message
> mfd: ti_am335x_tscadc: Add a boolean to clarify the presence of a
> touchscreen
> mfd: ti_am335x_tscadc: Introduce a helper to deal with the type of
> hardware
> mfd: ti_am335x_tscadc: Add ADC1/magnetic reader support
> mfd: ti_am335x_tscadc: Support the correctly spelled DT property
> iio: adc: ti_am335x_adc: Wait the idle state to avoid stalls
> iio: adc: ti_am335x_adc: Replace license text with SPDX tag
> iio: adc: ti_am335x_adc: Fix style
> iio: adc: ti_am335x_adc: Get rid of useless gotos
> iio: adc: ti_am335x_adc: Gather the checks on the delays
> iio: adc: ti_am335x_adc: Add a unit to the timeout delay
> iio: adc: ti_am335x_adc: Add the scale information
> iio: adc: ti_am335x_adc: Add the am437x compatible
> ARM: dts: am437x-cm-t43: Use a correctly spelled DT property
> ARM: dts: am43xx: Describe the magnetic reader/ADC1 hardware module
> ARM: dts: am437x-gp-evm: enable ADC1
>
> .../bindings/iio/adc/ti,am3359-adc.yaml | 70 ++++++
> .../input/touchscreen/ti,am3359-tsc.yaml | 76 ++++++
> .../bindings/input/touchscreen/ti-tsc-adc.txt | 91 -------
> .../bindings/mfd/ti,am3359-tscadc.yaml | 84 +++++++
> arch/arm/boot/dts/am437x-cm-t43.dts | 2 +-
> arch/arm/boot/dts/am437x-gp-evm.dts | 8 +
> arch/arm/boot/dts/am437x-l4.dtsi | 31 ++-
> arch/arm/boot/dts/am43xx-clocks.dtsi | 7 +
> drivers/clk/ti/clk-43xx.c | 1 +
> drivers/iio/adc/ti_am335x_adc.c | 220 ++++++++++-------
> drivers/mfd/ti_am335x_tscadc.c | 233 ++++++++++--------
> include/dt-bindings/clock/am4.h | 1 +
> include/linux/mfd/ti_am335x_tscadc.h | 119 +++++----
> 13 files changed, 593 insertions(+), 350 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/iio/adc/ti,am3359-adc.yaml
> create mode 100644 Documentation/devicetree/bindings/input/touchscreen/ti,am3359-tsc.yaml
> delete mode 100644 Documentation/devicetree/bindings/input/touchscreen/ti-tsc-adc.txt
> create mode 100644 Documentation/devicetree/bindings/mfd/ti,am3359-tscadc.yaml
>