Re: [linux-nfc] [PATCH v2 2/2] nfc: s3fwrn5: i2c: Enable optional clock from device tree

From: Krzysztof Kozlowski
Date: Wed May 19 2021 - 12:13:29 EST


On 19/05/2021 05:16, Stephan Gerhold wrote:
> S3FWRN5 depends on a clock input ("XI" pin) to function properly.
> Depending on the hardware configuration this could be an always-on
> oscillator or some external clock that must be explicitly enabled.
>
> So far we assumed that the clock is always-on.
> Make the driver request an (optional) clock from the device tree
> and make sure the clock is running before starting S3FWRN5.
>
> Note: S3FWRN5 asserts "GPIO2" whenever it needs the clock input to
> function correctly. On some hardware configurations, GPIO2 is
> connected directly to an input pin of the external clock provider
> (e.g. the main PMIC of the SoC). In that case, it can automatically
> AND the clock enable bit and clock request from S3FWRN5 so that
> the clock is actually only enabled when needed.
>
> It is also conceivable that on some other hardware configuration
> S3FWRN5's GPIO2 might be connected as a regular GPIO input
> of the SoC. In that case, follow-up patches could extend the
> driver to request the GPIO, set up an interrupt and only enable
> the clock when requested by S3FWRN5.
>
> Signed-off-by: Stephan Gerhold <stephan@xxxxxxxxxxx>
> ---
> This allows NFC to work properly on the Samsung Galaxy A3/A5 (2015).
>
> Changes in v2: Rewrite commit message and comment based on discussion
>
> Note: I tried to explain the setup a bit better but dropped most of
> the explanations about the exact configuration on the Samsung
> Galaxy A5. I think the HW-specific details were more confusing
> than helping. :)
>
> v1: https://lore.kernel.org/netdev/20210518133935.571298-2-stephan@xxxxxxxxxxx/
> ---
> drivers/nfc/s3fwrn5/i2c.c | 30 ++++++++++++++++++++++++++++--
> 1 file changed, 28 insertions(+), 2 deletions(-)
>

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxx>

Best regards,
Krzysztof