ARM: dts: Configure omap3 rng
authorTony Lindgren <tony@atomide.com>
Wed, 23 Oct 2019 18:39:42 +0000 (11:39 -0700)
committerTony Lindgren <tony@atomide.com>
Wed, 30 Oct 2019 15:14:03 +0000 (08:14 -0700)
Looks like omap3 RNG is similar to the omap2 rng, let's get it working
by configring the dts node for it.

We must also add rng_ick to core_l4_clkdm as noted by Adam Ford.

And please note that the RNG is likely disabled on HS devices. At least
n900 does not have it accessible, and instead omap3-rom-rng driver must
be used. So let's tag RNG as disabled on n900 as noted by Pali Rohár
<pali.rohar@gmail.com>.

On am3517 at least the clocks need to be configured to get it working
as noted by Adam Ford, so let's tag it disabled for now.

Cc: Aaro Koskinen <aaro.koskinen@iki.fi>
Cc: Adam Ford <aford173@gmail.com>
Cc: Pali Rohár <pali.rohar@gmail.com>
Cc: Sebastian Reichel <sre@kernel.org>
Cc: Tero Kristo <t-kristo@ti.com>
Tested-by: Adam Ford <aford173@gmail.com> #logicpd-torpedo-37xx-devkit
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/boot/dts/am3517.dtsi
arch/arm/boot/dts/omap3-n900.dts
arch/arm/boot/dts/omap3.dtsi
arch/arm/boot/dts/omap34xx-omap36xx-clocks.dtsi

index bf3002009b002faafe0d9ddc8338248d7a145f9d..baadf7e2f8f451ffd1493721a400a01ad183dde8 100644 (file)
        };
 };
 
+/* Not currently working, probably needs at least different clocks */
+&rng_target {
+       status = "disabled";
+       /delete-property/ clocks;
+};
+
 /* Table Table 5-79 of the TRM shows 480ab000 is reserved */
 &usb_otg_hs {
        status = "disabled";
index 84a5ade1e865bb85dba7d6fa93e0b291e8ea7d36..e1286510fdf863f3c91d6fd71f0fa64b55a66e62 100644 (file)
        };
 };
 
+/* RNG not directly accessible on n900, see omap3-rom-rng instead */
+&rng_target {
+       status = "disabled";
+};
+
 &usb_otg_hs {
        interface-type = <0>;
        usb-phy = <&usb2_phy>;
index 4043ecb3801682ebe37f1aad4c23e669fddfe47b..5698a3e241aa0ae867784488833e045695412506 100644 (file)
@@ -8,6 +8,7 @@
  * kind, whether express or implied.
  */
 
+#include <dt-bindings/bus/ti-sysc.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/pinctrl/omap.h>
                        status = "disabled";
                };
 
+               /* Likely needs to be tagged disabled on HS devices */
+               rng_target: target-module@480a0000 {
+                       compatible = "ti,sysc-omap2", "ti,sysc";
+                       reg = <0x480a003c 0x4>,
+                             <0x480a0040 0x4>,
+                             <0x480a0044 0x4>;
+                       reg-names = "rev", "sysc", "syss";
+                       ti,sysc-mask = <(SYSC_OMAP2_AUTOIDLE)>;
+                       ti,sysc-sidle = <SYSC_IDLE_FORCE>,
+                                       <SYSC_IDLE_NO>;
+                       ti,syss-mask = <1>;
+                       clocks = <&rng_ick>;
+                       clock-names = "ick";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0x480a0000 0x2000>;
+
+                       rng: rng@0 {
+                               compatible = "ti,omap2-rng";
+                               reg = <0x0 0x2000>;
+                               interrupts = <52>;
+                       };
+               };
+
                mcbsp2: mcbsp@49022000 {
                        compatible = "ti,omap3-mcbsp";
                        reg = <0x49022000 0xff>,
index 5e9d1afcd422ee02a3b10657284054ba86b8e378..21079cdf2663e073c0578cf20f8fed86570b6ad3 100644 (file)
                         <&gpt10_ick>, <&mcbsp5_ick>, <&mcbsp1_ick>,
                         <&omapctrl_ick>, <&aes2_ick>, <&sha12_ick>, <&icr_ick>,
                         <&des2_ick>, <&mspro_ick>, <&mailboxes_ick>,
-                        <&mspro_fck>;
+                        <&rng_ick>, <&mspro_fck>;
        };
 };