title: Load kernel module prior of device tree's probing
body: <p>I have developed a working driver for my <em>custom_hardware</em> that relies on the device tree. Because my driver may evolve, I do not want my driver to be part of the kernel (when I say 'be part of the kernel', I mean, to be compiled with the kernel during the kernel creation)</p>
  
  <p>Here is a glimpse of my dts:</p>
  
  <pre><code>custom_hardware: custom_hardware@0x41006000 {
      compatible = "mfg,custom";
      reg = &lt;0x41006000 0x1000&gt;;
      #interrupt-cells = &lt;0x1&gt;;
      interrupt-controller;
  };
  
  existing_hardware: existing_hardward@41004000 {
      compatible = "mfg,existing";
      reg = &lt;0x41004000 0x1000&gt;;
      interrupt-parent = &lt;&amp;custom_hardware&gt;;
      interrupts = &lt;0&gt;;
  };
  </code></pre>
  
  <p>The <em>existing_hardware</em>'s driver is already compiled with kernel (the <em>existing_hardware</em>'s driver has been compiled with the kernel during the kernel creation). </p>
  
  <p>What I would like to do is to append my <em>custom_hardware</em>'s driver to the ramfs and let the kernel loads the  <em>custom_hardware</em>'s driver prior of the <em>existing_hardware</em>'s driver.</p>
  
  <p>This is important since the <em>existing_hardware</em>'s driver requests a <em>virq</em> from the <em>irq_domain</em> of the <em>custom_hardware</em>'s driver. In order to get the <em>irq_domain</em>, the <em>custom_hardware</em>'s driver must be loaded first. </p>
  
  <p>Note that the <em>existing_hardware</em>'s driver gets loaded during the probing of the device tree which seems to happen in the early stage of the kernel booting sequence.</p>