]> git.baikalelectronics.ru Git - kernel.git/commit
nfc: s3fwrn5: i2c: Enable optional clock from device tree
authorStephan Gerhold <stephan@gerhold.net>
Wed, 19 May 2021 09:16:13 +0000 (11:16 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 19 May 2021 19:44:23 +0000 (12:44 -0700)
commit05ff1c535f0c9f70b6533eac939c3ef095968580
tree11d90713ad3e0ca420b6355e047e352060e96bbc
parent73a06d4ca26ab95e6b3a0ede17b376180d54954a
nfc: s3fwrn5: i2c: Enable optional clock from device tree

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@gerhold.net>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/nfc/s3fwrn5/i2c.c