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 <git@xxxxxxxxxx> > Cc: Anson Huang <Anson.Huang@xxxxxxx> > Cc: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> > Cc: "Horia Geantă" <horia.geanta@xxxxxxx> > Cc: Aymen Sghaier <aymen.sghaier@xxxxxxx> > Cc: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> > Cc: "David S. Miller" <davem@xxxxxxxxxxxxx> > Cc: Rob Herring <robh+dt@xxxxxxxxxx> > Cc: Mark Rutland <mark.rutland@xxxxxxx> > Cc: linux-crypto@xxxxxxxxxxxxxxx > Cc: devicetree@xxxxxxxxxxxxxxx > Cc: linux-input@xxxxxxxxxxxxxxx Reviewed-by: Horia Geantă <horia.geanta@xxxxxxx> > --- > .../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"; > }; > }; > >