Message ID | 20210915155908.476767-1-miquel.raynal@bootlin.com (mailing list archive) |
---|---|
Headers | show |
Series | TI AM437X ADC1 | expand |
Hello Lee, miquel.raynal@bootlin.com wrote on Wed, 15 Sep 2021 17:58:21 +0200: > 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 card 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, but > rebased on the last -rc1. The clock patch has been acked, the ADC > patches as well, so we expect the series to go through the MFD > tree if hte maintainers agree with it. Lee, I would welcome your feedback about this big series. I received the acknowledgment of: * Stephen for the clock patch * Jonathan and Rob for the binding patches * Jonathan for the IIO patches * Jonathan again for the MFD patches There is currently only one issue left: I should reorder 28/47 before 26/47 and change the commit message of patch 27/47. If this is fine for you I would like to: * let you pick patches from 1 to 25 of v3 * I will send a v4 with only three patches: 26, 27, 28 with Jonathan's last comments addressed. * Finally you could take the remaining patches of v3 up to patch 44 (the last 3 are DT patches). Would this work for you? If possible I would like to avoid resending the entire series once again. Unless of course you have additional comments which I will obviously address. Thanks, Miquèl > 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 (47): > 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: 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 has_tsc > 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 | 243 ++++++++++-------- > include/dt-bindings/clock/am4.h | 1 + > include/linux/mfd/ti_am335x_tscadc.h | 115 ++++----- > 13 files changed, 599 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 >
On Wed, 15 Sep 2021, Miquel Raynal wrote: > 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 card 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, but > rebased on the last -rc1. The clock patch has been acked, the ADC > patches as well, so we expect the series to go through the MFD > tree if hte maintainers agree with it. > > Thanks, > Miquèl > > 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 (47): > 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: 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 has_tsc > mfd: ti_am335x_tscadc: Add ADC1/magnetic reader support > mfd: ti_am335x_tscadc: Support the correctly spelled DT property The MFD patches I haven't reviewed/replied to seem fine. > 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 | 243 ++++++++++-------- > include/dt-bindings/clock/am4.h | 1 + > include/linux/mfd/ti_am335x_tscadc.h | 115 ++++----- > 13 files changed, 599 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 >
Hi Lee, lee.jones@linaro.org wrote on Wed, 22 Sep 2021 17:02:00 +0100: > On Wed, 15 Sep 2021, Miquel Raynal wrote: > > > 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 card 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, but > > rebased on the last -rc1. The clock patch has been acked, the ADC > > patches as well, so we expect the series to go through the MFD > > tree if hte maintainers agree with it. > > > > Thanks, > > Miquèl > > > > 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 (47): > > 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: 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 has_tsc > > mfd: ti_am335x_tscadc: Add ADC1/magnetic reader support > > mfd: ti_am335x_tscadc: Support the correctly spelled DT property > > The MFD patches I haven't reviewed/replied to seem fine. Great! I'll address all your comments, bring-in the latest Reviewed-by/Acked-by that I received on the other patches and send a v4. Thanks for the feedback. Cheers, Miquèl