On 1/30/2020 10:45 PM, Andr? Draszik wrote:
> On i.MX7, the SNVS requires a clock. This is similar to the clock
> bound to the SNVS RTC node, but if the SNVS RTC driver isn't enabled,
> then SNVS doesn't work, and as such the pwrkey driver doesn't
> work (i.e. hangs the kernel, as the clock isn't enabled).
>
This is true also for i.MX8M.
For this reason it would probably better splitting the
DT bindings update in a separate patch.
> Also see commit ec2a844ef7c1
> ("ARM: dts: imx7s: add snvs rtc clock")
> for a similar fix.
>
> Signed-off-by: Andr? Draszik <[email protected]>
> Cc: Anson Huang <[email protected]>
> Cc: Dmitry Torokhov <[email protected]>
> Cc: "Horia Geant?" <[email protected]>
> Cc: Aymen Sghaier <[email protected]>
> Cc: Herbert Xu <[email protected]>
> Cc: "David S. Miller" <[email protected]>
> Cc: Rob Herring <[email protected]>
> Cc: Mark Rutland <[email protected]>
> Cc: [email protected]
> Cc: [email protected]
> Cc: [email protected]
Reviewed-by: Horia Geant? <[email protected]>
> ---
> .../devicetree/bindings/crypto/fsl-sec4.txt | 17 +++++++++++++++++
> arch/arm/boot/dts/imx7s.dtsi | 2 ++
> 2 files changed, 19 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/crypto/fsl-sec4.txt b/Documentation/devicetree/bindings/crypto/fsl-sec4.txt
> index 2fe245ca816a..755c2838d658 100644
> --- a/Documentation/devicetree/bindings/crypto/fsl-sec4.txt
> +++ b/Documentation/devicetree/bindings/crypto/fsl-sec4.txt
> @@ -449,6 +449,19 @@ System ON/OFF key driver
> Value type: <phandle>
> Definition: this is phandle to the register map node.
>
> + - clocks
> + Usage: optional, required if SNVS LP requires explicit
> + enablement of clocks
> + Value type: <prop_encoded-array>
> + Definition: a clock specifier describing the clock required for
> + enabling and disabling SNVS LP RTC.
> +
> + - clock-names
> + Usage: optional, required if SNVS LP requires explicit
> + enablement of clocks
> + Value type: <string>
> + Definition: clock name string should be "snvs-pwrkey".
> +
> EXAMPLE:
> snvs-pwrkey@020cc000 {
> compatible = "fsl,sec-v4.0-pwrkey";
> @@ -456,6 +469,8 @@ EXAMPLE:
> interrupts = <0 4 0x4>
> linux,keycode = <116>; /* KEY_POWER */
> wakeup-source;
> + clocks = <&clks IMX7D_SNVS_CLK>;
> + clock-names = "snvs-pwrkey";
> };
>
> =====================================================================
> @@ -547,6 +562,8 @@ FULL EXAMPLE
> interrupts = <0 4 0x4>;
> linux,keycode = <116>; /* KEY_POWER */
> wakeup-source;
> + clocks = <&clks IMX7D_SNVS_CLK>;
> + clock-names = "snvs-pwrkey";
> };
> };
>
> diff --git a/arch/arm/boot/dts/imx7s.dtsi b/arch/arm/boot/dts/imx7s.dtsi
> index 1b812f4e7453..6240a6f58048 100644
> --- a/arch/arm/boot/dts/imx7s.dtsi
> +++ b/arch/arm/boot/dts/imx7s.dtsi
> @@ -614,6 +614,8 @@
> linux,keycode = <KEY_POWER>;
> wakeup-source;
> status = "disabled";
> + clocks = <&clks IMX7D_SNVS_CLK>;
> + clock-names = "snvs-pwrkey";
> };
> };
>
>