W dniu 7.06.2023 o 16:05, Hugo Villeneuve pisze: > From: Hugo Villeneuve <hvilleneuve@xxxxxxxxxxxx> > > Hello, > this patch series mainly fixes a GPIO regression and improve RS485 flags and > properties detection from DT. > > It now also includes various small fixes and improvements that were previously > sent as separate patches, but that made testing everything difficult. > > Patch 1 fixes an issue with init of first port during probing. > > Patch 2 fixes an issue when debugging IOcontrol register, but it is also > necessary for patch "fix regression with GPIO configuration" to work. > > Patch 3 fixes an incorrect label in sc16is7xx_probe() cleanup code. > > Patch 4 is a refactor of GPIO registration code in preparation for patch 5. > > Patches 5 and 6 fix a GPIO regression by (re)allowing to choose GPIO function > for GPIO pins shared with modem status lines. > > Patch 7 fixes a bug with the output value when first setting the GPIO direction. > > Patch 8 allows to read common rs485 device-tree flags and properties. > > Patch 9 introduces a delay after a reset operation to respect datasheet > timing recommandations. > > Patch 10 improves comments about chip variants. > > I have tested the changes on a custom board with two SC16IS752 DUART using a > Variscite IMX8MN NANO SOM. > > Thank you. > > Link: [v1] https://lkml.org/lkml/2023/5/17/967 <https://lkml.org/lkml/2023/5/17/967> > [v1] https://lkml.org/lkml/2023/5/17/777 <https://lkml.org/lkml/2023/5/17/777> > [v1] https://lkml.org/lkml/2023/5/17/780 <https://lkml.org/lkml/2023/5/17/780> > [v1] https://lkml.org/lkml/2023/5/17/785 <https://lkml.org/lkml/2023/5/17/785> > [v1] https://lkml.org/lkml/2023/5/17/1311 <https://lkml.org/lkml/2023/5/17/1311> > [v2] https://lkml.org/lkml/2023/5/18/516 <https://lkml.org/lkml/2023/5/18/516> > [v3] https://lkml.org/lkml/2023/5/25/7 <https://lkml.org/lkml/2023/5/25/7> > [v4] https://lkml.org/lkml/2023/5/29/656 <https://lkml.org/lkml/2023/5/29/656> > [v5] https://lkml.org/lkml/2023/6/1/1046 <https://lkml.org/lkml/2023/6/1/1046> > [v6] https://lkml.org/lkml/2023/6/1/1328 <https://lkml.org/lkml/2023/6/1/1328> > [v7] https://lkml.org/lkml/2023/6/2/861 <https://lkml.org/lkml/2023/6/2/861> > > Changes for V3: > - Integrated all patches into single serie to facilitate debugging and tests. > - Reduce number of exported GPIOs depending on new property > nxp,modem-control-line-ports > - Added additional example in DT bindings > > Changes for V4: > - Increase reset post delay to relax scheduler. > - Put comments patches at the end. > - Remove Fixes tag for patch "mark IOCONTROL register as volatile". > - Improve commit messages after reviews. > - Fix coding style issues after reviews. > - Change GPIO registration to always register the maximum number of GPIOs > supported by the chip, but maks-out GPIOs declared as modem control lines. > - Add patch to refactor GPIO registration. > - Remove patch "serial: sc16is7xx: fix syntax error in comments". > - Remove patch "add dump registers function" > > Changes for V5: > - Change patch order to facilitate stable backport(s). > - Change duplicate device addresses in DT binding examples. > - Use GENMASK for bit masks. > - Replace of_property_for_each_u32() with device_property_read_u32_array > - Add "Cc: stable..." tags > > Changes for V6: > - Fix compilation bug introduced by patch 3 > > Changes for V7: > - Minor changes and coding style fixes after review for > patch 5 "fix regression with GPIO configuration". > > Changes for V8: > - Move mctrl_mask to "struct sc16is7xx_port" to avoid compiler warning when > CONFIG_GPIOLIB is undefined. > - Add "struct device" member to "struct sc16is7xx_port", in order to avoid > passing a raw "struct device" to called functions from sc16is7xx_probe(). > - Add new patch "serial: sc16is7xx: remove obsolete out_thread label" > > Hugo Villeneuve (10): > serial: sc16is7xx: fix broken port 0 uart init > serial: sc16is7xx: mark IOCONTROL register as volatile > serial: sc16is7xx: remove obsolete out_thread label > serial: sc16is7xx: refactor GPIO controller registration > dt-bindings: sc16is7xx: Add property to change GPIO function > serial: sc16is7xx: fix regression with GPIO configuration > serial: sc16is7xx: fix bug when first setting GPIO direction > serial: sc16is7xx: add call to get rs485 DT flags and properties > serial: sc16is7xx: add post reset delay > serial: sc16is7xx: improve comments about variants > > .../bindings/serial/nxp,sc16is7xx.txt | 46 +++++ > drivers/tty/serial/sc16is7xx.c | 177 +++++++++++++----- > 2 files changed, 181 insertions(+), 42 deletions(-) > > > base-commit: a4d7d701121981e3c3fe69ade376fe9f26324161 > -- > 2.30.2 > Hello Hugo, I had a chance to retest and re-review everything, including setting state at direction change. So if the pending changes to v9 are only the conversion of dt-bindings to YAML and fixups to them, then: Reviewed-by: Lech Perczak <lech.perczak@xxxxxxxxxxxxxxx> Tested-by: Lech Perczak <lech.perczak@xxxxxxxxxxxxxxx> -- Pozdrawiam/With kind regards, Lech Perczak Sr. Software Engineer Camlin Technologies Poland Limited Sp. z o.o. Strzegomska 54, 53-611 Wroclaw Tel: (+48) 71 75 000 16 Email: lech.perczak@xxxxxxxxxxxxxxx Website: http://www.camlingroup.com