Hi Viorel, On 19/11/2020 18.24, Viorel Suman wrote: > Hi Peter, > >> DTS is supposed to look as follows: >>> >>> / { >>> ak4458_reset: gpio-reset { >>> compatible = "gpio-reset"; >>> reset-gpios = <&pca6416 4 GPIO_ACTIVE_LOW>; >>> #reset-cells = <0>; >>> initially-in-reset; >> >> I can not find anything resembling to this in next-20201119. >> Where is the implementation and documentation for this gpio-reset? > > The board schematics is not publicly available; some info may be seen in DTS files below: > https://source.codeaurora.org/external/imx/linux-imx/tree/arch/arm64/boot/dts/freescale/imx8mm-evk.dts?h=imx_5.4.24_2.1.0 > https://source.codeaurora.org/external/imx/linux-imx/tree/arch/arm64/boot/dts/freescale/imx8mm-ab2.dts?h=imx_5.4.24_2.1.0 > https://source.codeaurora.org/external/imx/linux-imx/tree/arch/arm64/boot/dts/freescale/imx8mp-ab2.dts?h=imx_5.4.24_2.1.0 > > In examples above the GPIO is handled by machine driver - wrong approach given that > it requires machine driver being probed before codec driver. Right, so this gpio-reset driver is not in mainline. You are adding support for something which does not exists ;) > >>> - ak4458->reset_gpiod = devm_gpiod_get_optional(ak4458->dev, >> "reset", >>> - GPIOD_OUT_LOW); >>> - if (IS_ERR(ak4458->reset_gpiod)) >>> - return PTR_ERR(ak4458->reset_gpiod); >>> + ak4458->reset = devm_reset_control_get_optional_shared(ak4458- >>> dev, NULL); >>> + if (IS_ERR(ak4458->reset)) >>> + return PTR_ERR(ak4458->reset); >> >> The binding documentation must be updated and you must support the gpio >> way as well. > > Sure, make sense. > >> When I had this discussion around using the reset framework for shared >> enable and/or reset pins it was suggested that _if_ such a driver makes >> sense then it should internally handle (by using magic strings) the fallback >> and work with pre-reset binding. > > Thanks, would appreciate if you point me to the discussion you had. There were few iterations of it when I finally given up, I can quickly find rfc v2: https://lkml.org/lkml/2019/10/30/311 Probably in earlier or later series the reset framework was also discussed. I ended up using GPIOD_FLAGS_BIT_NONEXCLUSIVE in the pcm3168a driver. https://lkml.org/lkml/2019/11/13/411 - Péter Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki